Browse Source

finish md0612

dev
刘嘉炜 1 week ago
parent
commit
1552229bd9
  1. 2
      src/subpackage/common/components/card_search.vue
  2. 2
      src/subpackage/common/js/api.js
  3. 28
      src/subpackage/common/pages/pay_type_select.vue
  4. 3
      src/subpackage/order/js/api.js
  5. 20
      src/subpackage/order/pages/timekeeping/order_detail/common.js
  6. 111
      src/subpackage/order/pages/timekeeping/order_detail/site.vue

2
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: ''
},
},

2
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;

28
src/subpackage/common/pages/pay_type_select.vue

@ -14,15 +14,15 @@
</view>
</view>
<view class="pts-content">
<view class="pc-box" @click="payMethodsChange(5)">
<view class="pc-box" @click="payMethodsChange(5)" v-if="depositOrderInfo">
<view class="pc-methods-item">
<image mode="aspectFit" src="/subpackage/common/static/images/pay_types/ic_0.png" class="pi-icon"></image>
<view class="pi-txt">押金抵扣</view>
<view class="pi-selected" v-if="payMethodsID === 5">&#xe610;</view>
</view>
<view class="pc-info">
<view class="pi-txt"><text class="pt-black">押金订单号</text>cs202001101505698956</view>
<view class="pi-txt"><text class="pt-black">押金金额</text>¥50</view>
<view class="pi-txt"><text class="pt-black">押金订单号</text>{{ depositOrderInfo.order_no || '-' }}</view>
<view class="pi-txt"><text class="pt-black">押金金额</text>¥{{ depositOrderInfo.amount || '0' }}</view>
<view class="pi-txt">押金金额实收金额才可支付扣除费用后剩余押金会原路退回给用户</view>
</view>
</view>
@ -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 },
]
},

3
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】【收银系统】场时 - 支付
}

20
src/subpackage/order/pages/timekeeping/order_detail/common.js

@ -124,3 +124,23 @@ export function siteAndPeopleRefundServer({ order_no = '', amount = 0, integral
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);
})
}

111
src/subpackage/order/pages/timekeeping/order_detail/site.vue

@ -24,7 +24,7 @@
<kv-line label="进场时间:">{{ orderInfo.start_time || '-' }}</kv-line>
<kv-line
label="离场时间:"
v-if="[ '待使用', '已取消预约', '计费中', '使用中' ].includes(orderInfo.status_text)&&orderInfo.settlement_type === 1"
v-if="[ '待使用', '已取消预约', '计费中', '使用中' ].includes(orderInfo.status_text)&&orderInfo.settlement_type === 0"
>现场扫码结算</kv-line>
<kv-line label="离场时间:" v-else>{{ orderInfo.end_time || '-' }}</kv-line>
<kv-line label="时长合计:">{{ orderInfo.extension&&orderInfo.extension.duration || '-' }}</kv-line>
@ -121,7 +121,7 @@
class="pod-btn"
v-if="orderInfo.status_text === '待支付'"
@click="finishOrder"
>完结订单</view>
>支付订单</view>
<view
class="pod-btn"
v-if="orderInfo.status_text === '计费中'"
@ -180,7 +180,9 @@ import refundButton from "@/components/order_refund/permission_btn.vue";
import orderRefundModal from '@/components/order_refund/modal.vue';
import orderRefundInfo from '@/components/order_refund/info.vue';
import { showModal, routeTo, jsonStr } from '@/utils/util';
import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
import { showModal, routeTo, jsonStr, showLoad, hideLoad, showNone } from '@/utils/util';
import { getOrderDetail, cancelOrderServer, finishOrder, siteAndPeopleRefundServer } from "./common";
export default {
components: {
@ -222,6 +224,30 @@ export default {
});
},
methods: {
orderPay({ brand_id, order_no, amount, pay_type, card_no, mark }){
showLoad();
return server.post({
url: ORDER_API.orderPay,
data: {
brand_id, order_no, amount, pay_type, card_no, mark
},
isDefaultGet: false
})
.then(res =>{
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;

Loading…
Cancel
Save