From e67c28471a65ecae3a4266a71efb55eb63dacdef Mon Sep 17 00:00:00 2001 From: "liujw155@outlook.com" Date: Thu, 17 Aug 2023 17:52:52 +0800 Subject: [PATCH] add ticket check modal --- src/components/order_list/modal/ticket_check.vue | 247 +++++++++++++++++++++ src/components/organize_order/organize_order.vue | 8 +- .../reservation_order/reservation_order.vue | 55 ++--- src/components/site/order_modal/order_modal.vue | 7 +- src/components/timing_order/timing_order.vue | 11 +- src/js/api.js | 7 + src/pages/order_list/order_list.vue | 25 ++- .../reservation_people_detail.vue | 28 ++- .../device/pages/order_details/order_details.vue | 26 +-- 9 files changed, 348 insertions(+), 66 deletions(-) create mode 100644 src/components/order_list/modal/ticket_check.vue diff --git a/src/components/order_list/modal/ticket_check.vue b/src/components/order_list/modal/ticket_check.vue new file mode 100644 index 0000000..1bf7981 --- /dev/null +++ b/src/components/order_list/modal/ticket_check.vue @@ -0,0 +1,247 @@ + + + + + \ No newline at end of file diff --git a/src/components/organize_order/organize_order.vue b/src/components/organize_order/organize_order.vue index 74dda8a..916bb17 100644 --- a/src/components/organize_order/organize_order.vue +++ b/src/components/organize_order/organize_order.vue @@ -82,12 +82,8 @@ export default { methods:{ toOrderDetails(){ let { orderInfo } = this - let _query = {} - _query["stadium_id"] = orderInfo.stadium_id - _query["order_no"] = orderInfo.order_no - _query["order_type"] = 10 - util.routeTo(`/subpackage/device/pages/order_details/order_details?query=${util.jsonStr(_query)}`,'nT'); - // this.$emit('orderDetailChange'); + let _str = `stadium_id=${orderInfo.stadium_id || ''}&order_no=${orderInfo.order_no || ''}&order_type=10` + util.routeTo(`/subpackage/device/pages/order_details/order_details?${_str}`,'nT'); }, clickSendAmount(){ let that = this diff --git a/src/components/reservation_order/reservation_order.vue b/src/components/reservation_order/reservation_order.vue index 78bc787..e3db0af 100644 --- a/src/components/reservation_order/reservation_order.vue +++ b/src/components/reservation_order/reservation_order.vue @@ -67,9 +67,8 @@ 实付款 ¥{{orderInfo.pay_amount || '0'}} + 核销 - @@ -115,6 +114,9 @@ export default { }, }, methods:{ + verifyBtn(){ + this.$emit('verify') + }, zh_order_status(orderInfo = {}){ // 订单状态 -1已作废0未支付1已支付待使用2已使用3已失效4已退款 let _status = orderInfo.pay_status || ''; @@ -141,11 +143,8 @@ export default { }, detailChange(){ let { orderInfo } = this - let _query = {} - _query["stadium_id"] = orderInfo.stadium_id - _query["order_no"] = orderInfo.order_no - _query["order_type"] = 3 - util.routeTo(`/subpackage/device/pages/order_details/order_details?query=${util.jsonStr(_query)}`,'nT'); + let _str = `stadium_id=${orderInfo.stadium_id || ''}&order_no=${orderInfo.order_no || ''}&order_type=3` + util.routeTo(`/subpackage/device/pages/order_details/order_details?${_str}`,'nT'); } } @@ -213,41 +212,33 @@ export default { padding-top: 20upx; padding-bottom: 30upx; border-top: 2upx solid #D8D8D8; - .rb-line{ - @include centerFlex(space-between); - .rl-view{ - line-height: 40upx; - font-size: 24upx; - color: #9c9c9f; - &:first-child{ - margin-right: 20upx; - flex-shrink: 0; - } - &+.rl-view{ - flex-grow: 1; - text-align: right; - @include textHide(1); - } - } + display: flex; + justify-content: space-between; + .rb-btn{ + margin-left: 12upx; + flex-shrink: 0; + width: 192upx; + line-height: 80upx; + text-align: center; + border-radius: 10upx; + font-size: 32upx; + font-weight: 500; + color: #fff; + background-color: $themeColor; } .rb-total{ + flex-grow: 1; line-height: 40upx; - text-align: right; font-size: 24upx; color: #9c9c9f; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; .rt-txt{ color: #1A1A1A; margin-left: 10rpx; } } } - .ro-bot-line{ - height: 90upx; - line-height: 90upx; - border-top: 2upx solid #D8D8D8; - font-size: 24upx; - color: #9c9c9f; - @include textHide(1); - } } \ No newline at end of file diff --git a/src/components/site/order_modal/order_modal.vue b/src/components/site/order_modal/order_modal.vue index af290dd..8596c8d 100644 --- a/src/components/site/order_modal/order_modal.vue +++ b/src/components/site/order_modal/order_modal.vue @@ -271,11 +271,8 @@ export default { }, toOrderInfo(){ let { orderInfo, queryInfo } = this; - let _query = {} - _query["stadium_id"] = queryInfo.stadium_id - _query["order_no"] = orderInfo.order_no - _query["order_type"] = 3 - util.routeTo(`/subpackage/device/pages/order_details/order_details?query=${util.jsonStr(_query)}`,'nT'); + let _str = `stadium_id=${queryInfo.stadium_id || ''}&order_no=${orderInfo.order_no || ''}&order_type=3` + util.routeTo(`/subpackage/device/pages/order_details/order_details?${_str}`,'nT'); }, toShare(){ let { orderInfo, queryInfo } = this; diff --git a/src/components/timing_order/timing_order.vue b/src/components/timing_order/timing_order.vue index d9a96d6..be95aa8 100644 --- a/src/components/timing_order/timing_order.vue +++ b/src/components/timing_order/timing_order.vue @@ -76,11 +76,12 @@ export default { methods:{ toOrderDetails(){ let { orderInfo } = this - let _query = {} - _query["stadium_id"] = orderInfo.stadium_id - _query["order_no"] = orderInfo.order_no - _query["order_type"] = 1 - util.routeTo(`/subpackage/device/pages/order_details/order_details?query=${util.jsonStr(_query)}`,'nT'); + // let _query = {} + // _query["stadium_id"] = orderInfo.stadium_id + // _query["order_no"] = orderInfo.order_no + // _query["order_type"] = 1 + let _str = `stadium_id=${orderInfo.stadium_id || ''}&order_no=${orderInfo.order_no || ''}&order_type=1` + util.routeTo(`/subpackage/device/pages/order_details/order_details?${_str}`,'nT'); // this.$emit('orderDetailChange'); }, timeEndBtn(){ diff --git a/src/js/api.js b/src/js/api.js index 555181e..bf95320 100644 --- a/src/js/api.js +++ b/src/js/api.js @@ -140,6 +140,13 @@ API['writeOff'] = { } +// 20230817 【ID1001370】 商家助手次卡订单增加核销功能 + +API['order'] = { + reservationDetail:`${ORIGIN}/admin/assistant/stadiumOrder/detail`, //k-订单管理-场馆预约订单-预约场馆订单详情/ 次卡订单详情 +} + + export default { ORIGIN, API }; diff --git a/src/pages/order_list/order_list.vue b/src/pages/order_list/order_list.vue index a550ea2..7525d73 100644 --- a/src/pages/order_list/order_list.vue +++ b/src/pages/order_list/order_list.vue @@ -47,7 +47,7 @@ - + @@ -113,6 +113,12 @@ 确定 + + + @@ -137,6 +143,8 @@ import ym_card from '../../components/order_list/ym_card/ym_card.vue'; // 年月卡 import stored_value_card from '../../components/order_list/stored_value_card/stored_value_card.vue'; // 储值卡订单 + import ticket_check from '../../components/order_list/modal/ticket_check.vue'; + import util from '../../utils/util'; import { servers } from '../../js/server'; import { API } from '../../js/api'; @@ -163,6 +171,8 @@ 'retail': retail, 'ym-card': ym_card, 'stored-value-card': stored_value_card, + + 'ticket-check': ticket_check, }, computed:{ isStoreInfo(){ @@ -260,6 +270,19 @@ }, methods: { + reservationVerify(index){ + let { orderList } = this; + this.$refs.ticketCheckModal.show({ + info: orderList?.[index] || {}, + index, + }); + }, + verifyConfirm({ orderInfo, orderIndex }){ + if(!orderInfo?.id || isNaN(orderIndex) ||+orderIndex < 0)return; + let _orderList = this?.orderList?.slice() || []; + _orderList[orderIndex] = orderInfo; + this.orderList = _orderList; + }, tabChange: util.debounce(function(ID){ if(this.curTabID === ID)return; this.curTabID = ID; diff --git a/src/subpackage/device/components/order/reservation_people_detail/reservation_people_detail.vue b/src/subpackage/device/components/order/reservation_people_detail/reservation_people_detail.vue index 230ca0a..0b56217 100644 --- a/src/subpackage/device/components/order/reservation_people_detail/reservation_people_detail.vue +++ b/src/subpackage/device/components/order/reservation_people_detail/reservation_people_detail.vue @@ -35,11 +35,18 @@ - {{ orderInfo.bind_iccard_info.id > 0?'解绑IC卡':'绑定IC卡' }} + {{ orderInfo.bind_iccard_info.id > 0?'解绑IC卡':'绑定IC卡' }} - 验证信息({{orderInfo.available_num || 0}}张可用) + + 验证信息 + ({{orderInfo.available_num || 0}}张可用) + 核销 + 有效期至: @@ -616,6 +623,18 @@ export default { font-size: 28rpx; margin-left: 28rpx; } + .rb-verify-btn{ + display: inline-block; + margin-left: 28upx; + width: 132upx; + line-height: 64upx; + text-align: center; + border-radius: 10upx; + font-size: 32upx; + font-weight: 500; + color: #fff; + background-color: $themeColor; + } } .rb-time{ line-height: 48rpx; @@ -656,17 +675,18 @@ export default { .s-btn{ flex-shrink: 0; margin-left: 10upx; - padding: 0 22upx; + padding: 0 18upx; height: 44upx; line-height: 44upx; font-size: 28upx; border-radius: 10upx; - background-color: $themeColor; + background-color: #68C43B; color: #fff; } } .rs-active{ >view:first-child{ + font-weight: 500; color: #009874; } } diff --git a/src/subpackage/device/pages/order_details/order_details.vue b/src/subpackage/device/pages/order_details/order_details.vue index d7e2bc8..ff1b0e8 100644 --- a/src/subpackage/device/pages/order_details/order_details.vue +++ b/src/subpackage/device/pages/order_details/order_details.vue @@ -27,6 +27,8 @@ 确认退款 + + @@ -35,7 +37,7 @@ import reservationSiteDetail from '../../components/order/reservation_site_detail/reservation_site_detail.vue'; import reservationPeopleDetail from '../../components/order/reservation_people_detail/reservation_people_detail.vue'; import organizeDetail from '../../components/order/organize_detail/organize_detail.vue'; - + import ticket_check from '../../../../components/order_list/modal/ticket_check.vue'; import util from '../../../../utils/util'; import deviceServer from '../../js/device_server'; import deviceApi from '../../js/device_api'; @@ -46,6 +48,7 @@ 'reservation-site-detail': reservationSiteDetail, 'reservation-people-detail': reservationPeopleDetail, 'organize-detail': organizeDetail, + 'ticket-check': ticket_check, }, computed:{ titleName(){ @@ -74,19 +77,16 @@ } }, onLoad(options) { - console.log(options) - let _query = util.jsonPar(options.query); - this.optionsQuery = _query - console.log(_query) - this.$nextTick(_=>{ - uni.setNavigationBarTitle({ - title: this.titleName - }) - }) + this.optionsQuery = options; + this.getPageInfo({ - orderType: _query.order_type, - stadium_id: _query.stadium_id, - order_no: _query.order_no, + orderType: options.order_type, + stadium_id: options.stadium_id, + order_no: options.order_no, + }); + + this.$nextTick(_=>{ + uni.setNavigationBarTitle({ title: this.titleName }); }) }, methods: {