From 39c74bb3e5ac61d2a2e992fe66d26ce46f3bb32a Mon Sep 17 00:00:00 2001 From: 1019933623 <1019933623@qq.com> Date: Thu, 31 Mar 2022 11:14:17 +0800 Subject: [PATCH] tapd 1000742&1000745 --- .../end_billing_modal/end_billing_modal.vue | 193 +++++++++++++++++++++ src/components/timing_order/timing_order.vue | 45 ++++- src/js/api.js | 5 + src/pages/order_list/order_list.vue | 2 +- .../write_off/confirm_order/confirm_order.vue | 33 +++- .../number_of_people/number_of_people.vue | 154 ++++++++++++++-- .../write_off/search_result/search_result.vue | 52 +++++- src/static/images/icon/selected_ring.png | Bin 0 -> 503 bytes .../order/timing_detail/timing_detail.vue | 144 ++++----------- src/subpackage/device/js/device_api.js | 1 + .../device/pages/order_details/order_details.vue | 34 +++- 11 files changed, 526 insertions(+), 137 deletions(-) create mode 100644 src/components/end_billing_modal/end_billing_modal.vue create mode 100644 src/static/images/icon/selected_ring.png diff --git a/src/components/end_billing_modal/end_billing_modal.vue b/src/components/end_billing_modal/end_billing_modal.vue new file mode 100644 index 0000000..bb92650 --- /dev/null +++ b/src/components/end_billing_modal/end_billing_modal.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/components/timing_order/timing_order.vue b/src/components/timing_order/timing_order.vue index 0536153..d9a96d6 100644 --- a/src/components/timing_order/timing_order.vue +++ b/src/components/timing_order/timing_order.vue @@ -12,7 +12,7 @@ - + 项目: @@ -25,16 +25,29 @@ {{ orderInfo.extension.duration || '-'}} + 结束计费 实付款 ¥{{orderInfo.pay_amount || 0}} + + + @@ -223,22 +309,22 @@ export default { } } .nop-main{ - padding: 8upx 30upx 0; + padding: 8upx 0upx 0; .nm-date{ - margin-bottom: 86upx; + margin: 0 24rpx 86rpx; line-height: 44upx; font-size: 32upx; color: #1a1a1a; } .nm-tit{ - margin-bottom: 48upx; + margin: 0 30rpx 16rpx; text-align: center; font-size: 32upx; font-weight: 500; } .nm-num{ position: relative; - margin: 0 auto 100upx; + margin: 0 auto; display: block; width: 400upx; height: 400upx; @@ -267,8 +353,16 @@ export default { 100% {transform: rotate(0deg);} } } + .nm-txt{ + margin: 10rpx auto 42rpx; + color: #9C9C9F; + font-size: 28rpx; + text-align: center; + line-height: 40rpx; + text-decoration: underline; + } .nm-btn{ - margin: 0 auto 106upx; + margin: 0 auto; width: 618upx; line-height: 112upx; height: 112upx; @@ -278,8 +372,24 @@ export default { color: #fff; background-color: $themeColor; } + .nm-line{ + margin: 46rpx 0 0; + padding: 34rpx 28rpx 20rpx 34rpx; + border-top: 2rpx solid #F2F2F7; + @include centerFlex(space-between); + .nl-txt{ + color: #1A1A1A; + font-size: 32rpx; + line-height: 44rpx; + } + + .nl-switch{ + flex-shrink: 0; + flex-grow: 0; + } + } .nm-tip{ - margin-bottom: 30upx; + margin: 0 32rpx 30rpx 34rpx; font-size: 28upx; line-height: 52upx; color: #9C9C9F; @@ -356,6 +466,30 @@ export default { } } } + .nmm-btm{ + margin-bottom: 8rpx; + } + .nmm-line{ + margin: 78rpx 70rpx 0 74rpx; + @include centerFlex(space-between); + >view{ + &:first-child{ + color: #1A1A1A; + font-size: 28rpx; + line-height: 48rpx; + } + &:nth-child(2){ + width: 156rpx; + height: 68rpx; + border: 2rpx solid #009874; + border-radius: 10rpx; + color: #009874; + font-size: 32rpx; + line-height: 64rpx; + text-align: center; + } + } + } } } diff --git a/src/pages/write_off/search_result/search_result.vue b/src/pages/write_off/search_result/search_result.vue index 346eb28..9547a32 100644 --- a/src/pages/write_off/search_result/search_result.vue +++ b/src/pages/write_off/search_result/search_result.vue @@ -27,10 +27,10 @@ ({{ e.type || '-' }}) - 用户昵称:{{ e.extension.nickname || '-' }} + 用户信息:{{ e.extension.user_phone || '-' }}({{ e.extension.nickname || '-' }}) - 核销码: {{ e.verify_code || '-' }} + 核销码: {{e.verify_code || '-' }} 验证方式:{{ e.desc || '-' }} @@ -39,9 +39,10 @@ 核销时间:{{ e.verify_time || '-'}} - 离场时间:{{ e.verify_leave_time || '未扫码离场'}} + 离场时间:{{ e.verify_leave_time || ''}} + 手动离场 核销订单 @@ -162,7 +163,34 @@ export default { let _list = res.list || []; return _list }) - } + }, + + leaveBtn(item){ + let { curStadium } = this; + util.showModal({ + title: '提示', + content: '是否确认手动离场?', + showCancel: true, + success: modalRes=>{ + if(modalRes.confirm){ + util.showLoad(); + servers.get({ + url: API.writeOff.leaveVerifyOrder, + data: { + brand_id: curStadium.brand_id, + id: item.id, + }, + failMsg: '请求失败!' + }) + .then(res=>{ + util.hideLoad(); + util.showNone('操作成功!'); + this.refreshList() + }) + } + } + }) + }, } } @@ -241,6 +269,7 @@ export default { .r-order-list{ padding: 0 24upx; .l-item{ + position: relative; margin-bottom: 24upx; padding: 0 20upx; border-radius: 10upx; @@ -269,9 +298,22 @@ export default { color: $themeColor; } } - + } } + .i-btn{ + position: absolute; + right: 20rpx; + bottom: 32rpx; + background-color: #009874; + border-radius: 10rpx; + width: 156rpx; + height: 68rpx; + color: #FFFFFF; + font-size: 28rpx; + text-align: center; + line-height: 68rpx; + } } } .r-bottom-btn{ diff --git a/src/static/images/icon/selected_ring.png b/src/static/images/icon/selected_ring.png new file mode 100644 index 0000000000000000000000000000000000000000..280cd03ff7ec33225f633ec999e1096bd209bd53 GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dynE^f_u0Wb$UOB^z5{6k73^PkW zXjUo1tRk>TB~%0`2vh))Ed`@8h8d+`1;q@rN*HFBG0ZAsm|4s)8?0tVF#`ydGRy`V z2$U*jm{SQ<{BGB;sX)7wN`m}?8QA`aU)(>5@4I~chu5!eT|2#X$%4*MZ+8Q|+WV2= zPPV49a;;DPFfcGmd%8G=Se$MRzP{~<0*A>8&1K&=)&Bdhtez6AT@ z>!Y-0h)W9wANpjpLQItPr_|cC|8hLtmvmq0yola1QC&Sb|J0=~%BMFkZvFf0VZi&} z?#&Fw@6xXn>~`o|e&2w>MZ~Vz{!{0j?jtX3@)_8fZbJMq(WLx9~-o2?= zd?~BxYv(NEgFjew)xrwS)XIEp{+O^mxtGm2`tQ^Wo2%Uxb4C5U#wISY?u=LKq7dVS zdxX5yUQBUm(oj^>j0@J85|Q离场时间:{{orderInfo.end_time || '-'}} 时长合计:{{orderInfo.extension.duration || '-'}} - + 金额小计 ¥{{orderInfo.amount || 0}} @@ -53,26 +53,30 @@ 支付方式:{{zh_pay_type(orderInfo.pay_type)}} 支付时间:{{orderInfo.pay_time || '-'}} - 微信交易号:{{orderInfo.trade_no || ''}} + 微信交易号:{{orderInfo.trade_no || ''}} + 操作人:{{orderInfo.end_bill_operator_name || ''}} - 结束计费 - - - - - - - 结束计费 - 操作人:{{orderInfo.end_bill_operator_name || '-'}} - 时长合计:{{orderInfo.extension.duration || '-'}} - 金额合计:¥{{orderInfo.amount || '-'}} - *请输入金额 - - 确认 + + 退款信息 + + 退款原因:{{orderInfo.refund_reason || '-'}} + 退款时间:{{orderInfo.refund_time || '-'}} + 退款单号:{{orderInfo.refund_no || '-'}} + 结束计费 + 完结订单 + + + + @@ -81,7 +85,11 @@ import util from '@/utils/util'; import deviceServer from '../../../js/device_server'; import deviceApi from '../../../js/device_api'; import { mapState } from 'vuex'; +import end_billing_modal from '../../../../../components/end_billing_modal/end_billing_modal.vue'; export default { + components: { + 'end-billing-modal': end_billing_modal, + }, props: { orderInfo: { type: Object, @@ -92,9 +100,10 @@ export default { ...mapState(['brandInfo']), zh_order_status(){ // 订单状态 0计费中1已完成 + let { orderInfo } = this return status =>{ const _obj = { - '0': '计费中', + '0': orderInfo.early_end_timing==true?'待支付':'计费中', '1': '已完成', '4': '已退款', } @@ -116,30 +125,16 @@ export default { }, data() { return { - isShowEnd: false, - input_amount: "", + isEndBill: false, } }, methods: { - confirmChange(){ - let { brandInfo, orderInfo, input_amount } = this - if(input_amount == '')return util.showNone('请输入金额!'); - util.showLoad(); - deviceServer.get({ - url: deviceApi.timeOrderEnd, - data: { - brand_id: brandInfo.brand.id, - order_no: orderInfo.order_no, - pay_amount: parseFloat(input_amount), - }, - failMsg: '加载失败!' - }) - .then(res=>{ - util.hideLoad() - util.showNone('操作成功!'); - this.isShowEnd = false - setTimeout(()=>uni.navigateBack(),1200); - }) + completeBtn(){ + this.$emit('completeBtn'); + }, + + timeEndBtn(){ + this.$emit('refreshPage'); }, } } @@ -265,77 +260,6 @@ export default { line-height: 112rpx; text-align: center; } - .odm-end-modal{ - position: absolute; - left: 65rpx; - top: 12%; - background-color: #fff; - width: 620rpx; - padding: 30rpx 0rpx 80rpx; - border-radius: 10rpx; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - .oem-close{ - width: 100%; - @include centerFlex(flex-end); - >image{ - width: 32rpx; - height: 32rpx; - margin-right: 30rpx; - } - } - .oem-tit { - color: #333; - font-size: 32rpx; - font-weight: 700; - margin: 16rpx 0rpx 34rpx; - } - .oem-line{ - width: 456rpx; - color: #333; - font-size: 28rpx; - line-height: 48rpx; - .ol-txt1{ - color: #009874; - } - .ol-txt2{ - color: #FF873D; - } - } - .oem-tips{ - width: 456rpx; - margin: 34rpx 0rpx 8rpx; - color: #EA5061; - font-size: 28rpx; - >text{ - color: #333333; - } - } - .oem-ipt{ - width: 456rpx; - border: 2rpx solid #D8D8D8; - border-radius: 10rpx; - & input { - flex-grow: 1; - height: 88rpx; - color: #333; - font-size: 28rpx; - padding: 0rpx 20rpx; - } - } - .oem-btn{ - width: 240rpx; - height: 88rpx; - margin-top: 60rpx; - border-radius: 10rpx; - background-color: #009874; - color: #FFF; - font-size: 32rpx; - line-height: 88rpx; - text-align: center; - } - } + } diff --git a/src/subpackage/device/js/device_api.js b/src/subpackage/device/js/device_api.js index 7e9293a..db8d9c1 100644 --- a/src/subpackage/device/js/device_api.js +++ b/src/subpackage/device/js/device_api.js @@ -36,6 +36,7 @@ export const DEVICE_API = { iccardList:`${ORIGIN}/admin/assistant/iccard/list`, //k-ic卡列表 timeOrderDetail:`${ORIGIN}/admin/assistant/timeOrder/detail`, //k-订单管理-计时订单详情 timeOrderEnd:`${ORIGIN}/admin/assistant/timeOrder/end`, //k-订单管理-订单计时结束 + timeOrderComplete:`${ORIGIN}/admin/assistant/timeOrder/complete`, //【20220208】k-订单管理-计时订单完结 // 20210521 恢复次卡核销状态 recoveryToSuccess:`${ORIGIN}/admin/stadium/order/recoveryToSuccess`, // 恢复次卡核销状态 diff --git a/src/subpackage/device/pages/order_details/order_details.vue b/src/subpackage/device/pages/order_details/order_details.vue index d1a3325..d7e2bc8 100644 --- a/src/subpackage/device/pages/order_details/order_details.vue +++ b/src/subpackage/device/pages/order_details/order_details.vue @@ -5,7 +5,7 @@ - + @@ -159,6 +159,38 @@ order_no: optionsQuery.order_no, }) }, + + // 计时订单-完结订单 + completeBtn(){ + let { pageInfo } = this + util.showModal({ + title: '提示', + content: '是否确认完结订单?', + showCancel: true, + success: modalRes=>{ + if(modalRes.confirm){ + util.showLoad(); + deviceServer.get({ + url: deviceApi.timeOrderComplete, //计时订单完结 + data: { + brand_id: pageInfo.brand_id, + order_no: pageInfo.order_no, + }, + failMsg: '请求失败!' + }) + .then(res=>{ + util.hideLoad(); + util.showNone('操作成功!'); + this.refreshPage() + util.previousPageFunction({ + fnName: 'refreshList', + query: { isLoad: false}, + }); + }) + } + } + }) + }, } }