diff --git a/src/subpackage/common/components/card_search.vue b/src/subpackage/common/components/card_search.vue index 2a4b789..f0292a8 100644 --- a/src/subpackage/common/components/card_search.vue +++ b/src/subpackage/common/components/card_search.vue @@ -44,11 +44,9 @@ import API from '../js/api.js'; export default { props: { sid: { - type: String, default: '' }, amount: { - type: String, default: '' }, }, diff --git a/src/subpackage/common/js/api.js b/src/subpackage/common/js/api.js index e38485a..dc2a536 100644 --- a/src/subpackage/common/js/api.js +++ b/src/subpackage/common/js/api.js @@ -5,6 +5,8 @@ export const COMMON_API = { takeUpBbocPay:`${ORIGIN}/admin/stadium/venue/takeUpBbocPay`, // 挂账收款的接口 venueTakeUp: `${ORIGIN}/admin/stadium/venue/takeUp`, // 商家助手-占用场地提交 canUseValueCardList: `${ORIGIN}/admin/stadium/canUseValueCard/list`, // 商家助手-占用场地可用储值卡列表 + + } export default COMMON_API; \ No newline at end of file diff --git a/src/subpackage/common/pages/pay_type_select.vue b/src/subpackage/common/pages/pay_type_select.vue index ab89d2d..60ea767 100644 --- a/src/subpackage/common/pages/pay_type_select.vue +++ b/src/subpackage/common/pages/pay_type_select.vue @@ -14,15 +14,15 @@ - + 押金抵扣 - 押金订单号:cs202001101505698956 - 押金金额:¥50元 + 押金订单号:{{ depositOrderInfo.order_no || '-' }} + 押金金额:¥{{ depositOrderInfo.amount || '0' }}元 注:押金金额≥实收金额才可支付,扣除费用后剩余押金会原路退回给用户! @@ -111,12 +111,14 @@ export default { payMethodsID: 0, optionsQuery: {}, otherTypeRemark: '', - selectedCard: {} + selectedCard: {}, + // md0612 + depositOrderInfo: null, } }, /** * @param {Object} _options = JSON.parse(decodeURIComponent(option.query)) - * @param {String} _options.type 1 -> 客户订场, 2-> 散客, 3-> 锁场, 4 -> 挂账 + * @param {String} _options.type 1 -> 客户订场, 2-> 散客, 3-> 锁场, 4 -> 挂账, 5-> 场地计时订单结束计费 * @param {String} _options.brand_id * @param {String} _options.amount * @param {Object} _options.stadiumInfo @@ -131,6 +133,12 @@ export default { onLoad(option){ let optionsQuery = util.jsonPar(decodeURIComponent(option.query)); this.optionsQuery = optionsQuery; + + const eventChannel = this.getOpenerEventChannel(); + // md0612 支付订单需求 + eventChannel.on('emitFromSiteOrder', async data =>{ + this.depositOrderInfo = data?.depositInfo ?? null; + }) }, methods: { cardSelectConfirm(e){ @@ -140,11 +148,20 @@ export default { }, submitBtn: util.debounce(function(){ let _type = this.optionsQuery?.type; + if(+_type === 5)return this.siteOrderEndPay(); // 挂账订单支付提交 if(+_type === 4)return this.takeUpBbocPay(); if(_type !== 4)return this.takeUpSubmit(); }, 300, true), + siteOrderEndPay(){ + let { optionsQuery, payMethodsID, otherTypeRemark, selectedCard, payAmount } = this; + const eventChannel = this.getOpenerEventChannel(); + let _data = { pay_type: this.getPayMethodsName(payMethodsID) }; + if(selectedCard?.card_no&& payMethodsID === 3)_data['card_no'] = selectedCard?.card_no; + if(otherTypeRemark&& payMethodsID === 4)_data['mark'] = otherTypeRemark; + eventChannel.emit('orderPay', _data); + }, payMethodsChange(typeNum){ let { stadiumInfo, optionsQuery } = this; // 储值卡 @@ -166,6 +183,7 @@ export default { { name: '现金支付', id: 2 }, { name: '储值卡支付', id: 3 }, { name: '其它', id: 4 }, + { name: '押金抵扣', id: 5 }, ] }, diff --git a/src/subpackage/order/js/api.js b/src/subpackage/order/js/api.js index 08aa0ac..aafc3db 100644 --- a/src/subpackage/order/js/api.js +++ b/src/subpackage/order/js/api.js @@ -55,6 +55,9 @@ export const ORDER_API = { cardOrderGet:`${ORIGIN}/admin/venue/number/card/order/get`, // 订场卡订单 - 详情 cardOrderRefund:`${ORIGIN}/admin/venue/number/card/order/refund`, // 订场卡订单 - 退款 cardSoldUsage:`${ORIGIN}/admin/venue/number/card/sold/usage`, // 已售订场卡 - 使用记录 + // md 250612 + orderPayinfo: `${ORIGIN}/admin/assistant/billing/order/payinfo`, // 【1001429】【收银系统】场时 - 支付信息 + orderPay: `${ORIGIN}/admin/assistant/billing/order/pay`, // 【1001429】【收银系统】场时 - 支付 } diff --git a/src/subpackage/order/pages/timekeeping/order_detail/common.js b/src/subpackage/order/pages/timekeeping/order_detail/common.js index 642ef9a..730bbd9 100644 --- a/src/subpackage/order/pages/timekeeping/order_detail/common.js +++ b/src/subpackage/order/pages/timekeeping/order_detail/common.js @@ -123,4 +123,24 @@ export function siteAndPeopleRefundServer({ order_no = '', amount = 0, integral showNone('操作失败!'); console.warn('getOrderDetail err -->', err); }) +} + +export function orderPay({ brand_id, order_no, amount, pay_type, card_no, mark }){ + return server.post({ + url: ORDER_API.orderPay, + data: { + brand_id, order_no, amount, pay_type, card_no, mark + }, + isDefaultGet: false + }) + .then(res =>{ + if(res.data.code == 0){ + return res?.data?.data ?? {}; + }else{ + return Promise.reject(res); + } + }) + .catch(err =>{ + console.warn('subpackage order timekeeping order detail common.js err -->', err); + }) } \ No newline at end of file diff --git a/src/subpackage/order/pages/timekeeping/order_detail/site.vue b/src/subpackage/order/pages/timekeeping/order_detail/site.vue index 767de40..a8e34ab 100644 --- a/src/subpackage/order/pages/timekeeping/order_detail/site.vue +++ b/src/subpackage/order/pages/timekeeping/order_detail/site.vue @@ -24,7 +24,7 @@ {{ orderInfo.start_time || '-' }} 现场扫码结算 {{ orderInfo.end_time || '-' }} {{ orderInfo.extension&&orderInfo.extension.duration || '-' }} @@ -121,7 +121,7 @@ class="pod-btn" v-if="orderInfo.status_text === '待支付'" @click="finishOrder" - >完结订单 + >支付订单 { + hideLoad(); + if(res.data.code == 0){ + console.log(res); + return 'success' + }else{ + return Promise.reject(res); + } + }) + .catch(err =>{ + hideLoad(); + showModal({ content: err?.data?.message ?? '操作失败!' }); + console.warn('subpackage order timekeeping order detail site err -->', err); + }) + }, refundOrder(){ let { orderInfo, extension, refundList } = this; this.$refs.orderRefundModal.show({ @@ -289,39 +315,64 @@ export default { }); }, 1000); }, - toPay: res=>{ - console.log(res); - let _query = { - brand_id: orderInfo?.brand_id ?? '', - amount: res?.amount ?? 0, - stadiumInfo: { - id: orderInfo?.stadium_id, - name: orderInfo?.stadium_name, - logo: orderInfo?.stadium_logo, - }, - }; - routeTo(`/subpackage/common/pages/pay_type_select?query=${jsonStr(_query)}`, 'rT') + toPay: pRes =>{ + this.endToPay(pRes?.amount ?? 0); } }); }, - // // 完结订单弹窗 - finishOrder(){ + endToPay(payAmount){ let { orderInfo } = this; - finishOrder({ - brand_id: orderInfo?.brand_id, - order_no: orderInfo?.order_no, - stadium_id: orderInfo?.stadium_id, - opts: { - finally: ()=> { - setTimeout(()=>{ - this.getOrderDetail({ - brand_id: orderInfo?.brand_id, - order_no: orderInfo?.order_no - }); - }, 1000); + let _brand_id = orderInfo?.brand_id ?? '', + _amount = payAmount ?? 0, + _order_no = orderInfo?.order_no ?? ''; + + let _query = { + brand_id: _brand_id, + amount: _amount, + type: 5, + stadiumInfo: { + id: orderInfo?.stadium_id, + name: orderInfo?.stadium_name, + logo: orderInfo?.stadium_logo, + }, + }; + uni.navigateTo({ + url: `/subpackage/common/pages/pay_type_select?query=${jsonStr(_query)}`, + events: { + orderPay: opRes=>{ + this.orderPay({ + ...opRes, brand_id: _brand_id, order_no: _order_no, amount: _amount, + }) + .then(rRes=>{ + if(rRes === 'success'){ + routeTo(); + this.$nextTick(_=>{ + this.$refs.endBillingModal.hide(); + showNone('操作成功!'); + setTimeout(_=>{ + this.getOrderDetail({ brand_id: _brand_id, order_no: _order_no }); + }, 1000); + }) + } + }) + } + }, + success: navRes=> { + let _query = {}; + if(orderInfo?.extension?.show_deposit)_query.depositInfo = { + amount: orderInfo?.extension?.deposit_amount ?? 0, + order_no: orderInfo?.deposit_order_no ?? '', } + navRes.eventChannel.emit('emitFromSiteOrder', _query); } - }) + }); + }, + // // 完结订单弹窗 + finishOrder(){ + let { orderInfo } = this; + // md0612 “完结订单“按钮改成”支付订单“,支付订单按钮要跳转支付页面 + this.endToPay(orderInfo?.amount ?? 0); + }, toDepoistDetail(){ let { orderInfo } = this;