From 821b026fd6ea28580feabea29e9ad302f19bc1d5 Mon Sep 17 00:00:00 2001 From: Tuzki <1720599558@qq.com> Date: Fri, 27 Sep 2024 21:42:45 +0800 Subject: [PATCH] =?UTF-8?q?refactor(bookTicket):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E9=80=89=E6=8B=A9=E5=92=8C=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化了bookTicket组件中日期选择和支付数量逻辑。修复了选择日期后购买数量未重置的问题,确保在选择日期时能够正确更新可购买数量。另外,调整了支付数量的校验逻辑,确保在数量变化时进行正确的有效性检查。 --- common/pay.js | 203 +++++++++--------- common/share.js | 2 +- pages/personcenter/personcenter.vue | 10 +- static/css/common.css | 2 +- subPageA/scenic/scenicdetial/scenicdetial.vue | 17 +- subPageB/suggest/sug_from.vue | 93 +------- subPageB/suggest/sug_list.vue | 7 +- subPageC/bookTicket/bookTicket.vue | 173 ++++++++------- subPageC/components/f-pay/f-pay.vue | 23 +- subPageC/order/order.vue | 59 +++-- subPageC/order/orderDetail.vue | 33 ++- 11 files changed, 298 insertions(+), 324 deletions(-) diff --git a/common/pay.js b/common/pay.js index 9f63d03..a5c5ce6 100644 --- a/common/pay.js +++ b/common/pay.js @@ -3,103 +3,112 @@ import { isWechat } from './util'; import HttpRequest from '@/common/httpRequest' import HttpConfig from '@/common/config' // 支付(app、小程序) -function setPay(payInfo, callback) { - let userInfo = uni.getStorageSync('userInfo') - let httpData = { - // userId: userInfo.userId || '', - // sessionId: userInfo.sessionId || '', - // openid: userInfo.openId, - // tradeNo: payInfo.tradeNo, // 创建支付订单时返回的 订单号 - - id: payInfo.tradeNo, - channelCode: "wx_lite", - channelExtras: { - openid: userInfo.openid, - } - } - HttpRequest.post(HttpConfig.payOrder, httpData, 'json', false, false).then((res) => { - console.log(res, '请求结果') - let payData = {} - // success: function (res) { - // var flag = true - // // #ifdef MP-ALIPAY - // if (res.code == 0) { - // flag = true - // } else { - // flag = false - // } - // #endif - // callback && callback({ - // success: flag, - if (res.data == null) { - callback && callback({ - success: false, - data: res.msg - }) - } - console.log(JSON.parse(res.data.displayContent)) - const data = JSON.parse(res.data.displayContent) - - // }); - // console.log('success:' + JSON.stringify(res)); - // }, - // fail: function (err) { - // callback && callback({ - // success: false, - // data: err - // }); - // console.log('fail:' + JSON.stringify(err)); - // } - // }; - if (payInfo.type == 'mpwxpay') { - console.log('微信小程序支付') - // 微信小程序 - payData.provider = 'wxpay'; - payData.timeStamp = data.timeStamp; - payData.nonceStr = data.nonceStr; - payData.package = data.packageValue; - payData.signType = data.signType; - payData.paySign = data.paySign; - } else if (payInfo.type == 'wxpay') { - // app微信 - payData.provider = 'wxpay'; - payData.orderInfo = data.tradeNo; - } else if (payInfo.type == 'alipay') { - payData.provider = 'alipay'; - payData.orderInfo = data.sdk_transaction_id; - } else if (payInfo.type == 'baidu') { - payData.provider = 'baidu'; - payData.orderInfo = data.tradeNo; - } else if (payInfo.type == 'toutiao') { - payData.provider = 'toutiao'; - payData.service = 5; // 5:拉起小程序收银台 其他:不拉起字节跳动小程序收银台 - payData._debug = 1; - // payData.payChannel = { - // default_pay_channel: 'wx' // wx|| alipay - // }; - payData.orderInfo = { - order_id: data.order_id, - order_token: data.order_token - }; - } - console.log("支付参数", payData); - uni.requestPayment({ - ...payData, - success: success => { - callback && callback({ - success: true, - data: success - }); - }, - fail: fail => { - callback && callback({ - success: false, - data: fail - }); - } - }); - }); +async function setPay(payInfo, callback) { + try { + const userInfo = uni.getStorageSync('userInfo'); + + const httpData = { + id: payInfo.tradeNo, + channelCode: "wx_lite", + channelExtras: { + openid: userInfo.openid, + } + }; + + // 调用预支付函数并等待结果 + const res = await prePayOrder(httpData); + console.log(res, '请求结果'); + + if (res.data == null) { + callback && callback({ + success: false, + data: res.msg + }); + return; + } + + console.log(JSON.parse(res.data.displayContent)); + const data = JSON.parse(res.data.displayContent); + + // 根据支付类型设置支付参数 + const payData = preparePayData(payInfo, data); + + console.log("支付参数", payData); + + // 进行支付请求 + await processPayment(payData, callback); + + } catch (error) { + callback && callback({ + success: false, + data: error.message + }); + console.error('支付过程出错:', error); + } +} + +// 预支付函数 +function prePayOrder(httpData) { + return HttpRequest.post(HttpConfig.payOrder, httpData, 'json', false, false); +} + +// 准备支付参数 +function preparePayData(payInfo, data) { + const payData = {}; + + if (payInfo.type == 'mpwxpay') { + console.log('微信小程序支付'); + payData.provider = 'wxpay'; + payData.timeStamp = data.timeStamp; + payData.nonceStr = data.nonceStr; + payData.package = data.packageValue; + payData.signType = data.signType; + payData.paySign = data.paySign; + } else if (payInfo.type == 'wxpay') { + payData.provider = 'wxpay'; + payData.orderInfo = data.tradeNo; + } else if (payInfo.type == 'alipay') { + payData.provider = 'alipay'; + payData.orderInfo = data.sdk_transaction_id; + } else if (payInfo.type == 'baidu') { + payData.provider = 'baidu'; + payData.orderInfo = data.tradeNo; + } else if (payInfo.type == 'toutiao') { + payData.provider = 'toutiao'; + payData.service = 5; // 5:拉起小程序收银台 + payData._debug = 1; + payData.orderInfo = { + order_id: data.order_id, + order_token: data.order_token + }; + } + + return payData; +} + +// 处理支付请求的函数 +function processPayment(payData, callback) { + return new Promise((resolve, reject) => { + uni.requestPayment({ + ...payData, + success: (success) => { + callback && callback({ + success: true, + data: success + }); + resolve(success); + }, + fail: (fail) => { + callback && callback({ + success: false, + data: fail + }); + reject(fail); + } + }); + }); } + //公众号微信支付 function wxPublicPay(payInfo, callback) { if (!isWechat()) { @@ -163,4 +172,4 @@ function wxPublicPay(payInfo, callback) { export { setPay, //支付(app、小程序) wxPublicPay, //公众号微信支付 -} \ No newline at end of file +} diff --git a/common/share.js b/common/share.js index 9e8ec60..1ed8bdc 100644 --- a/common/share.js +++ b/common/share.js @@ -3,7 +3,7 @@ export default { return { //设置默认的分享参数 share: { - title: 'E码游', + title: 'E鹿悦游', path: '/pages/index/index', imageUrl: '', desc: '“E”站式游景区', diff --git a/pages/personcenter/personcenter.vue b/pages/personcenter/personcenter.vue index 3a33745..5ce63df 100644 --- a/pages/personcenter/personcenter.vue +++ b/pages/personcenter/personcenter.vue @@ -119,7 +119,7 @@ console.log(res.target) } return { - title: 'E码游鹿泉', + title: 'E鹿悦游', path: '/pages/index/index' } }, @@ -393,7 +393,7 @@ .btn-item { display: flex; align-items: center; - + padding: 10rpx 0; .btns { @@ -402,7 +402,7 @@ display: flex; align-items: center; width: 100%; - + padding: 0; border-color: transparent; border-radius: unset; @@ -444,7 +444,7 @@ } } - .btn-left { + .btn-left { display: flex; flex:1; align-items: center; @@ -468,4 +468,4 @@ } } } - \ No newline at end of file + diff --git a/static/css/common.css b/static/css/common.css index b4cdabf..d3e7e3a 100644 --- a/static/css/common.css +++ b/static/css/common.css @@ -842,7 +842,7 @@ page{ background: #f5f5f5;} .lst_sug_warp .lst_sug_unit:last-child{ border: none;} .zhed_gao{ height: 160rpx; overflow: hidden; position: relative; margin-bottom: 15rpx;} -.zhed_gao:after{ display: block; width: 70rpx; height: 51rpx; content: '...'; background: #fff; font-size: 32rpx; color: #999; position: absolute; right: 50rpx; bottom: -15rpx; text-align: center; } +/* .zhed_gao:after{ display: block; width: 70rpx; height: 51rpx; content: '...'; background: #fff; font-size: 32rpx; color: #999; position: absolute; right: 50rpx; bottom: -15rpx; text-align: center; } */ /* 投诉form表单页 */ diff --git a/subPageA/scenic/scenicdetial/scenicdetial.vue b/subPageA/scenic/scenicdetial/scenicdetial.vue index 60819ea..273e1d7 100644 --- a/subPageA/scenic/scenicdetial/scenicdetial.vue +++ b/subPageA/scenic/scenicdetial/scenicdetial.vue @@ -6,7 +6,7 @@ - + @@ -166,6 +166,7 @@ export default { onUnload() { }, onShow() { this.param.page = 1; + this.detailInfo(this.guid) }, onReady() { // setTimeout(function() { @@ -304,16 +305,6 @@ export default { } }); }, - //门票分类 - getTicketSortList(val) { - this.$Request - .get(this.$config.getTicketSortList, { tenantId: val }, null, null, false, false) - .then((res) => { - console.log(res, "门票分类"); - this.ticketSortList = res.data; - this.getTicketList(val); - }); - }, //门票列表 getTicketList(val) { this.$Request @@ -335,7 +326,7 @@ export default { //攻略简介 goJianJie() { const obj = { - playtime: this.info.playtime, + playtime: this.info.businesstime, smobile: this.info.smobile, tips: this.info.tips, sdescribe: this.info.sdescribe, @@ -609,7 +600,7 @@ body { background-image: url("https://eluyou.ailuquan.cn:80/pda/index/no_video.png"); background-repeat: no-repeat; background-size: contain; - + ::v-deep #myVideo { width: 100%; height: 100%; diff --git a/subPageB/suggest/sug_from.vue b/subPageB/suggest/sug_from.vue index ca4a6d1..368a351 100644 --- a/subPageB/suggest/sug_from.vue +++ b/subPageB/suggest/sug_from.vue @@ -59,9 +59,7 @@ 这件事发生在哪里? - + { @@ -309,12 +307,9 @@ export default { content: "提交成功", showCancel: false, success() { - uni.redirectTo({ - url: "/subPageA/suggest/sug_list?type=" + that.type + uni.navigateBack({ + delta: 1 }) - // uni.navigateBack({ - // delta: 1 - // }) } }) } else { @@ -345,21 +340,7 @@ export default { url = "kong"; } } - switch (uni.getSystemInfoSync().platform) { - case 'android': - console.log('运行Android上') - this.$util.bindGpsObj(that); - Android.gotoDetial("ImageFrom", "camera"); - Android.gotoDetial('SVGLINE', url); - break; - case 'ios': - console.log('运行iOS上') - this.$util.bindGpsObj(that); - window.location.href = "https://www.baidu.com?url=svg&value=" + url; - break; - default: - break; - } + }); uni.showLoading({ title: "开启相机中...", @@ -403,7 +384,7 @@ export default { uni.chooseImage({ count: 9, // 最多可以选择的图片张数,默认9 sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有 - sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有 + sourceType: ['album'], // album 从相册选图,camera 使用相机,默认二者都有 success: function (res) { uni.showLoading({ mask: true, @@ -452,68 +433,6 @@ export default { delImg: function (index) { this.pics.splice(index, 1); }, - getLocation: function () { - var that = this; - uni.showLoading({ - title: "定位中", - mask: true - }) - this.$util.bindGpsObj(that); - this.$util.getLocation( - function (res) { - if (that.$wechat.isWechat()) { - that.latitude = res.latitude; - that.longitude = res.longitude; - } - var data = { - lat: res.latitude, - lng: res.longitude, - poi: "0", - key: "Z2IBZ-6BRKG-Z52QT-IU3J2-6P3QO-WIBII" - } - that.$Request.post(that.$config.getAddressByLatLng, data).then(res => { - if (res.status == 0) { - that.address = res.result.address; - } - }); - uni.hideLoading(); - }, - function () { - console.log('location error---'); - uni.hideLoading(); - } - ); - }, - callGpsSuccess: function (lat, lng) { - var that = this; - var data = { - lat: lat, - lng: lng, - poi: "0", - key: "Z2IBZ-6BRKG-Z52QT-IU3J2-6P3QO-WIBII" - } - that.$Request.post(that.$config.getAddressByLatLng, data).then(res => { - if (res.status == 0) { - that.address = res.result.address; - } - }); - uni.hideLoading(); - }, - callGpsFail: function () { - var that = this; - var data = { - lat: this.$param.lat, - lng: this.$param.lng, - poi: "0", - key: "Z2IBZ-6BRKG-Z52QT-IU3J2-6P3QO-WIBII" - } - that.$Request.post(that.$config.getAddressByLatLng, data).then(res => { - if (res.status == 0) { - that.address = res.result.address; - } - }); - uni.hideLoading(); - }, } } diff --git a/subPageB/suggest/sug_list.vue b/subPageB/suggest/sug_list.vue index ac8ab88..0c035a1 100644 --- a/subPageB/suggest/sug_list.vue +++ b/subPageB/suggest/sug_list.vue @@ -106,6 +106,11 @@ export default { type: 1 } }, + onShow() { + this.controlList = []; + this.page = 1; + this.getUserMsg(); + }, onLoad: function (options) { var that = this; this.$util.getNetworkType( @@ -132,7 +137,7 @@ export default { } this.$util.hideLoadingByTime(); this.type = options.type; - this.getUserMsg(); + // this.getUserMsg(); }, methods: { onReachScroll: function (t) { diff --git a/subPageC/bookTicket/bookTicket.vue b/subPageC/bookTicket/bookTicket.vue index 38e1112..4e42709 100644 --- a/subPageC/bookTicket/bookTicket.vue +++ b/subPageC/bookTicket/bookTicket.vue @@ -4,16 +4,16 @@ {{ ticket.ticketname }} - + 使用有效期: - {{ + {{ parseArrTime(ticket.usevalidityStart) }}至{{ parseArrTime(ticket.usevalidityEnd) }} {{ parseTime(ticket.usevalidityStart) }}至{{ parseTime(ticket.usevalidityEnd) - }} + }} @@ -55,7 +55,7 @@ 购票数量 - @@ -77,7 +77,7 @@ - + 联系人信息 @@ -124,10 +124,13 @@ 需填 {{ ticket.touristInformation == 2 ? 1 : peopleNums() }} 位 - - {{ item.name }} + + + {{ item.name }} + + 新增 @@ -149,10 +152,10 @@ {{ item.name || '暂无' }} 身份证 {{ - item.idCardNumber||'暂无' }} + item.idCardNumber || '暂无' }} 手机号 {{ - item.phoneNumber || '暂无' - }} + item.phoneNumber || '暂无' + }} @@ -172,7 +175,8 @@ {{ item.name || '暂无' }} - {{ labelName(item.idtype) }}:{{ item.idCardNumber || '暂无' }} + {{ labelName(item.idtype) }}:{{ item.idCardNumber || + '暂无' }} 手机号 {{ item.phoneNumber || '暂无' }} @@ -266,17 +270,17 @@ 购票限制 {{ ticketInfos.buyticketlimit == 1 - ? "不限" - : "每人限购" + ticketInfos.ticketlimitnum + "张" - }} + ? "不限" + : "每人限购" + ticketInfos.ticketlimitnum + "张" + }} 使用时段 {{ ticketInfos.usertimeslotStart == ticketInfos.usertimeslotEnd - ? "全天" - : ticketInfos.usertimeslotStart + "至" + ticketInfos.usertimeslotEnd - }} + ? "全天" + : ticketInfos.usertimeslotStart + "至" + ticketInfos.usertimeslotEnd + }} @@ -285,7 +289,7 @@ 费用包含 门票 - {{ ticketInfos.ticketname || "-" }} + {{ ticket.ticketname || "-" }} @@ -420,7 +424,7 @@ import uniDataSelect from "../components/uni-data-select/components/uni-data-sel const validateID = (idType, value) => { let regex; - + switch (idType) { case 1: // 身份证 regex = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/; @@ -477,6 +481,7 @@ export default { data() { return { maxNum: -1, + maxBuyNums:300, tentId: null, selected: null, //门票日历 startDate: parseTime(new Date()), @@ -539,13 +544,13 @@ export default { validateFunction: (rule, value, data, callback) => { const reg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/; let that = this - + if (!value) { callback("证件号不能为空"); } // else if (that.baseFormData.idtype == 1 && !reg.test(value)) { // callback("请输入正确的身份证号码"); - // } + // } else { callback(); } @@ -587,7 +592,7 @@ export default { // } // if (val.qmxId == null) { this.$nextTick(() => { - this.sumPrice = val.settlementPrice * val.num; + this.sumPrice = Number(val.settlementPrice) * Number(val.num); }) // } }, @@ -596,7 +601,7 @@ export default { 'dataList': { handler(val) { console.log(val); - this.navUserList = val.slice(0, 3) + this.navUserList = val }, deep: true } @@ -612,6 +617,7 @@ export default { fullDate: this.getFullDate(i), isAvailable: true, price: "0元", + inventory:0, }); } console.log(options); @@ -637,7 +643,7 @@ export default { mounted() { }, methods: { labelName(val) { - + switch (val) { case 1: return '身份证' @@ -744,7 +750,7 @@ export default { //查日历库存 getdateTicket() { let that = this; - + if (this.ticket && this.ticket.qmxId == null) { if (this.ticket.datesettings == 1) { // 不限库存 @@ -754,7 +760,7 @@ export default { //使用日期和使用小时模式:单日,这里使用日期设置不论星期还是多日都不影响返回的日期了 //不限库存/总库存 if (this.ticket.inventorySettings == 1 || this.ticket.inventorySettings == 2) { - + const params = { ticketId: that.ticket.id, date: that.parseTime(new Date()), @@ -766,9 +772,9 @@ export default { res.data.forEach(items => { const obj = { date: items.date, - info: items.isAvailable ? "库存:" + that.ticket.currentinventory:'', + info: items.isAvailable ? "库存:" + that.ticket.currentinventory : '', infoColor: "#666", - topInfo: items.isAvailable ?items.settlementPrice + '元':'', + topInfo: items.isAvailable ? items.settlementPrice + '元' : '', topInfoColor: "", badgeColor: "", disable: !items.isAvailable, // 禁用 @@ -780,6 +786,7 @@ export default { selectedDates.forEach((item, index) => { that.dates[index].isAvailable = item.disable; that.dates[index].price = item.topInfo; + that.dates[index].inventory = -1 }); console.log(this.dates); @@ -790,7 +797,7 @@ export default { } //日库存 if (that.ticket.inventorySettings == 3) { - + const params = { ticketId: that.ticket.id, @@ -803,9 +810,9 @@ export default { res.data.forEach(items => { const obj = { date: items.date, - info: items.isAvailable || items.inventory == 0? "库存:" + items.inventory:'', + info: items.isAvailable || items.inventory != 0 ? "库存:" + items.inventory : '', infoColor: "#666", - topInfo: items.isAvailable || items.inventory == 0 ? items.settlementPrice + '元':'', + topInfo: items.isAvailable || items.inventory != 0 ? items.settlementPrice + '元' : '', topInfoColor: "", badgeColor: "", disable: !items.isAvailable || items.inventory == 0, // 禁用 @@ -816,6 +823,7 @@ export default { selectedDates.forEach((item, index) => { that.dates[index].isAvailable = item.disable; that.dates[index].price = item.topInfo; + that.dates[index].inventory = item.inventory == -1 ? -1: item.inventory; }); console.log(this.dates); @@ -837,13 +845,13 @@ export default { that.selected = []; that.ticket.settlementPrice = res.data[0].settlementPrice - console.log(that.ticket,'thatthatthat') + console.log(that.ticket, 'thatthatthat') res.data.forEach(items => { const obj = { date: items.date, - info: !items.isAvailable||items.inventory == -1 ? "" : "库存:" + items.inventory, + info: !items.isAvailable || items.inventory == -1 ? "" : "库存:" + items.inventory, infoColor: "#666", - topInfo: !items.isAvailable ? "":items.settlementPrice + '元', + topInfo: !items.isAvailable ? "" : items.settlementPrice + '元', topInfoColor: "", badgeColor: "", disable: !items.isAvailable, // 禁用 @@ -854,6 +862,7 @@ export default { selectedDates.forEach((item, index) => { that.dates[index].isAvailable = item.disable; that.dates[index].price = item.topInfo; + that.dates[index].inventory = item.inventory==-1?-1:item.inventory; }); console.log(this.dates); @@ -889,9 +898,9 @@ export default { res.data.forEach(items => { const obj = { date: items.date, - info: items.isAvailable ?"库存:" + that.ticket.currentinventory:'', + info: items.isAvailable ? "库存:" + that.ticket.currentinventory : '', infoColor: "#666", - topInfo: items.isAvailable ?items.settlementPrice + '元':'', + topInfo: items.isAvailable ? items.settlementPrice + '元' : '', topInfoColor: "", badgeColor: "", disable: !items.isAvailable, // 禁用 @@ -918,9 +927,9 @@ export default { res.data.forEach(items => { const obj = { date: items.date, - info: items.isAvailable || items.inventory == 0 ?"库存:" + items.inventory:'', + info: items.isAvailable || items.inventory == 0 ? "库存:" + items.inventory : '', infoColor: "#666", - topInfo: items.isAvailable || items.inventory == 0 ?items.settlementPrice + '元':'', + topInfo: items.isAvailable || items.inventory == 0 ? items.settlementPrice + '元' : '', topInfoColor: "", badgeColor: "", disable: !items.isAvailable || items.inventory == 0, // 禁用 @@ -946,9 +955,9 @@ export default { res.data.forEach(items => { const obj = { date: items.date, - info: items.isAvailable && items.inventory != -1 ? "库存:" + items.inventory:"" , + info: items.isAvailable && items.inventory != -1 ? "库存:" + items.inventory : "", infoColor: "#666", - topInfo: items.isAvailable?items.settlementPrice + '元':'', + topInfo: items.isAvailable ? items.settlementPrice + '元' : '', topInfoColor: "", badgeColor: "", disable: !items.isAvailable, // 禁用 @@ -1024,7 +1033,7 @@ export default { chooseDate(index, date) { console.log(date); if (date.isAvailable == false) { - + this.nowIndex = index; this.ticket.date = date.fullDate; this.choseDate = date.fullDate; @@ -1032,6 +1041,7 @@ export default { this.ticket.settlementPrice = parseFloat(date.price.replace("元", "").trim()); this.ticket.num = 1 this.sumPrice = this.ticket.settlementPrice * this.ticket.num; + this.maxBuyNums = date.inventory == -1 ? 300 : date.inventory this.$forceUpdate(); console.log(this.ticket, "this.ticket"); @@ -1112,7 +1122,7 @@ export default { //删除游客信息 del(val) { this.$nextTick(() => { - + console.log(this.dataList, this.sessionDataList, this.navUserList); this.dataList = this.dataList.filter(item => item.id != val.id); @@ -1151,7 +1161,7 @@ export default { //查看是否有重复订单 checkOrder(val) { // if (this.ticket.qmxId == null) { - + if (this.ticket.touristInformation == 2) { if (!this.selectUserList || this.selectUserList.length < 1) { uni.showToast({ title: "暂无游客信息", icon: "none" }); @@ -1189,7 +1199,7 @@ export default { this.$Request .get(this.$config.isHaveOrder, params, null, null, false, true) .then(res => { - + console.log(res); if (res.data != 0 && val != 'continue') { @@ -1198,7 +1208,7 @@ export default { else { this.$refs.warningPop.close(); - + if (that.ticket && that.ticket.qmxId == null) { @@ -1221,13 +1231,13 @@ export default { }; this.setOrder(httpData) } else { - + let allValid = true; let allValids = true; let allValidtel = true; for (let i = 0; i < that.ticket.visitorInfoList.length; i++) { // let isValid = validateID(that.ticket.visitorInfoList[i].idtype, that.ticket.visitorInfoList[i].idCardNumber); - + let isValid = validateID(that.ticket.visitorInfoList[i].idtype, that.ticket.visitorInfoList[i].idCardNumber); if (!isValid && this.ticket.ischeckedIdcard == 1) { uni.showToast({ @@ -1237,7 +1247,7 @@ export default { allValid = false; break; } - if (this.ticket.ischeckedIdcard == 1 && !that.ticket.visitorInfoList[i].idCardNumber){ + if (this.ticket.ischeckedIdcard == 1 && !that.ticket.visitorInfoList[i].idCardNumber) { uni.showToast({ title: `第${i + 1}位游客${this.labelName(that.ticket.visitorInfoList[i].idtype)}未输入,请检查!`, icon: "none" @@ -1245,7 +1255,7 @@ export default { allValid = false; break; } - if (this.ticket.ischeckedMobile == 1 && !that.ticket.visitorInfoList[i].phoneNumber){ + if (this.ticket.ischeckedMobile == 1 && !that.ticket.visitorInfoList[i].phoneNumber) { uni.showToast({ title: `第${i + 1}位游客手机号未输入,请检查!`, icon: "none" @@ -1273,15 +1283,16 @@ export default { allValids = true; } let arr = [...that.ticket.visitorInfoList] - arr.forEach(item=>{ - if (that.ticket.ischeckedMobile == 0){ + arr.forEach(item => { + if (that.ticket.ischeckedMobile == 0) { item.phoneNumber = ""; } - if (that.ticket.ischeckedIdcard ==0){ - item.idCardName = ""; + if (that.ticket.ischeckedIdcard == 0) { + item.idCardNumber = ""; } + console.log(item, '当前访客信息'); }) - console.log(arr, 'arrarrarr',that.ticket.ischeckedMobile,that.ticket.ischeckedIdcard) + console.log(arr, 'arrarrarr', that.ticket.ischeckedMobile, that.ticket.ischeckedIdcard) if (allValid && allValids && allValidtel) { const httpData = { openid: userInfo.openid, @@ -1305,10 +1316,10 @@ export default { } } } else { - + if (that.ticket.qmxTicketInfoVO.needContactName == true) { - + if (!that.bookerusername) { uni.showToast({ title: '请输入联系人姓名', @@ -1318,7 +1329,7 @@ export default { } } if (that.ticket.qmxTicketInfoVO.needContactPhone == true) { - + if (!that.bookerphone) { uni.showToast({ title: '请输入联系人手机号', @@ -1336,7 +1347,7 @@ export default { } } if (that.ticket.qmxTicketInfoVO.needContactIdCard == true) { - + if (!that.bookeridcard) { uni.showToast({ title: '请输入联系人身份证号', @@ -1353,8 +1364,8 @@ export default { return; } } - if (that.ticket.visitorInfoList&&that.ticket.visitorInfoList.length > 0) { - + if (that.ticket.visitorInfoList && that.ticket.visitorInfoList.length > 0) { + let allValid = true; let allValids = true; let allValidtel = true; @@ -1411,7 +1422,7 @@ export default { item.phoneNumber = ""; } if (that.ticketIdType == null) { - item.idCardName = ""; + item.idCardNumber = ""; } }) if (allValid && allValids && allValidtel) { @@ -1502,16 +1513,17 @@ export default { calendarConfirm(e) { let that = this console.log(e); - + this.dates.forEach((item, index) => { if (item.fullDate == e.fulldate) { this.$nextTick(() => { that.nowIndex = index }) - }else{ + } else { that.nowIndex = -1 } }) + this.maxBuyNums = e.info == "" ? 300 : Number(e.info.split(":")[1]) this.ticket.date = e.fulldate; this.ticket.settlementPrice = parseFloat( e.extraInfo.topInfo.replace("元", "").trim() @@ -1534,13 +1546,13 @@ export default { }, //购票数量 changeCount(val, ticket) { - console.log(val); + console.log(val, ticket); this.ticket.num = val; - this.sumPrice = ticket.settlementPrice * val; + this.sumPrice = Number(ticket.settlementPrice) * val; }, //选择游客 selectUser(val, boo) { - + let this_ = this; if (val) { @@ -1559,19 +1571,7 @@ export default { } }) this_.selectUserList.push(val); - // if (boo == true) { - // const index = this.navUserList.findIndex(user => user.selected == false); - - // // 如果找到了,进行替换 - // if (index !== -1) { - // this.$nextTick(() => { - // this.navUserList.splice(index, 1, val); - // }) - // console.log(this.navUserList, 'this.navUserList') - // } else { - // console.log('没有找到 select 为 false 的对象。'); - // } - // } + } } else { val.selected = false; @@ -1867,6 +1867,19 @@ export default { margin-left: 10rpx; } + .user-list-box { + width: 75%; + display: flex; + align-items: center; + overflow-x: scroll; + + .m-user-list-left { + width: fit-content; + flex: none; + } + } + + .m-user-list.active { background: #ebf5ff; border-radius: 12rpx; diff --git a/subPageC/components/f-pay/f-pay.vue b/subPageC/components/f-pay/f-pay.vue index 01fe88a..bc49c36 100644 --- a/subPageC/components/f-pay/f-pay.vue +++ b/subPageC/components/f-pay/f-pay.vue @@ -39,9 +39,9 @@ 订单详情 - {{ order.orderInfo.ticketList[0].ticketname - || order.ticketList[0].ticketname }} x {{ - order.orderInfo.ticketList[0].ticketNums || order.ticketList[0].ticketNums }}张 + {{ order.orderInfo.ticketList[0].ticketname + || order.ticketList[0].ticketname }} x{{ + order.orderInfo.ticketNums || order.ticketNums }}张 @@ -284,7 +284,7 @@ export default { tradeNo: this.order.orderInfo ? this.order.orderInfo.belongingPayOrderId : this.order.belongingPayOrderId // 订单编号 }, (res) => { - console.log(res,'支付结果') + console.log(res, '支付结果') that.isPayDisabled = false; // 小程序支付的回调 if (res.success) { @@ -544,6 +544,21 @@ export default { /* padding-right: 20px; */ overflow: hidden; text-overflow: ellipsis; + + display: flex; + align-items: center; + justify-content: space-between; + + .ticket-name{ + width: 80%; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .ticket-nums{ + flex: 1; + margin-left: auto; + } } &:not(:last-child) { diff --git a/subPageC/order/order.vue b/subPageC/order/order.vue index 8ae165d..e9c4e70 100644 --- a/subPageC/order/order.vue +++ b/subPageC/order/order.vue @@ -38,10 +38,7 @@ - + {{ item.ticketList[0].ticketname }} @@ -58,7 +55,7 @@ 使用有效期:{{ parseTime(item.ticketList[0].startdate, '{y}-{m}-{d}') }}至{{ - parseTime(item.ticketList[0].enddate, '{y}-{m}-{d}') }} + parseTime(item.ticketList[0].enddate, '{y}-{m}-{d}') }} @@ -87,7 +84,7 @@ 使用有效期:{{ parseTime(items.startdate, '{y}-{m}-{d}') }}至{{ - parseTime(items.enddate, '{y}-{m}-{d}') }} + parseTime(items.enddate, '{y}-{m}-{d}') }} @@ -133,9 +130,13 @@ 退款清单 - {{ item.ticketname }} *{{ - item.ticketNums - }}张 + {{ + item.ticketname }} + *{{ + item.ticketNums + }}张 + @@ -356,9 +357,9 @@ export default { let that = this const userInfo = uni.getStorageSync("userInfo"); const extConfig = uni.getExtConfigSync ? uni.getExtConfigSync() : {}; - console.log(uni.getExtConfigSync(),'extConfigextConfigextConfig') + console.log(uni.getExtConfigSync(), 'extConfigextConfigextConfig') let appId = extConfig.app_id - + let httpData = { openid: userInfo.openid, appid: appId, @@ -378,7 +379,7 @@ export default { return item; }); listWithShow.forEach(item => { - + const index = item.ticketList.findIndex(ele => ele.ticketStatus == '1' && ele.refundRules != 1); if (index != -1) { item.canAbove = true @@ -408,7 +409,14 @@ export default { }, //退款 refund(val) { - this.orderInfo = val + console.log(val, 'val') + if (val && Array.isArray(val.ticketList)) { + const filteredList = val.ticketList.filter(item => item.ticketStatus == 1); + val.ticketList = filteredList; // 更新 ticketList + } + this.orderInfo = val; // 赋值给 orderInfo + console.log(this.orderInfo); + // backOrder this.$refs.refundPopup.open(); }, @@ -717,7 +725,7 @@ export default { padding: 30rpx; background: #fff; border-radius: 15rpx; - box-shadow: 0 0 8px 2px #dedede; + box-shadow: 0 0 8px 2px #e0efff; .m-pop-title { text-align: center; @@ -726,8 +734,7 @@ export default { .m-pop-middle { margin: 30rpx 0; padding: 20rpx; - background: #eee; - box-shadow: inset 0 0 10px 2px #e2e2e2; + background: #fbfbfb; border-radius: 15rpx; .m-middle-list { @@ -751,6 +758,8 @@ export default { font-size: 24rpx; color: #111; } + + } } @@ -785,4 +794,22 @@ export default { .m-prime:not(:last-child) { margin-right: 20rpx; } + +.m-item-value-item { + display: flex; + align-items: center; + justify-content: space-between; + + .ticket-name { + width: 75%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .ticket-num { + flex: 1; + margin-left: auto; + } +} diff --git a/subPageC/order/orderDetail.vue b/subPageC/order/orderDetail.vue index 9f89223..e2cec93 100644 --- a/subPageC/order/orderDetail.vue +++ b/subPageC/order/orderDetail.vue @@ -19,15 +19,10 @@ 应付金额 ¥{{ formData.settlementAmount }} - - {{ formData.ticketList[0].ticketname }} - {{ formData.ticketList.length }} x - {{ formData.ticketList[0].settlementAmount }} - - - + {{ formData.ticketList[0].ticketname }} - x {{ formData.ticketList.length }} 份 + {{ formData.ticketNums }} 张 + {{ formData.settlementAmount }}元 @@ -49,11 +44,9 @@ @@ -63,13 +56,13 @@ - 已检票次数:{{ item.ticketCheckedNums }}/{{ item.ticketChecksNums }}次 + 已检票次数:{{ item.ticketCheckedNums }}/{{ item.ticketChecksNums }}次 单票退款 - {{ - item.ticketStatusName }} + {{ + item.ticketStatusName||'暂无' }} @@ -248,8 +241,8 @@ export default { let httpData = { orderNumber: this_.formData.orderNumber, } - this.$Request - .get(this.$config.cancelOrder, httpData, null, null, false, false) + this_.$Request + .get(this_.$config.cancelOrder, httpData, null, null, false, false) .then((res) => { if (res.code == 0) { uni.showToast({ @@ -567,6 +560,8 @@ export default { position: relative; padding: 40rpx 80rpx; border-bottom: 1px dashed #fff; + text-align: left; + font-size: 24rpx; &::before { content: "游客"; @@ -729,4 +724,4 @@ export default { .refond-btn-hover { opacity: 0.9; } - \ No newline at end of file +