diff --git a/src/components/order_list/modal/ticket_check.vue b/src/components/order_list/modal/ticket_check.vue
index 1bf7981..03f628a 100644
--- a/src/components/order_list/modal/ticket_check.vue
+++ b/src/components/order_list/modal/ticket_check.vue
@@ -63,43 +63,78 @@ export default {
this.ticketNumber--;
}
},
- confirm(){
- let { ticketNumber, orderInfo } = this;
+ confirm: util.debounce(async function(){
+ let { ticketNumber, orderInfo, orderIndex } = this;
let { available_num, id } = orderInfo;
if(+available_num === 0)return;
if(+ticketNumber > +available_num)return util.showNone('核销次数不能大于剩余次数');
- this.getOrderInfo({
- order_no: orderInfo.order_no,
- stadium_id: orderInfo.stadium_id
- })
+ try{
+ util.showLoad();
+ let _verifyInfo = await this.sessionVerify({
+ brand_id: orderInfo.brand_id || '',
+ nums: ticketNumber,
+ order_no: orderInfo.order_no || ''
+ });
+ util.hideLoad();
+ util.showNone('核销成功!');
+ await new Promise(resolve => setTimeout(resolve, 1200));
+
+ if(orderIndex>=0){ // 列表刷新
+ try{
+ let _orderInfo = await this.getOrderInfo({
+ order_no: orderInfo.order_no,
+ stadium_id: orderInfo.stadium_id
+ });
+ if(!_orderInfo.order_no)return util.showNone('加载订单信息失败!');
+ this.$emit('confirm', { orderInfo: _orderInfo || {}, orderIndex });
+ }catch(err){
+ console.warn('加载订单信息失败!', err);
+ }
+ this.getOrderInfo({
+ order_no: orderInfo.order_no,
+ stadium_id: orderInfo.stadium_id
+ })
+ }else{ // 详情页直接调用详情方法
+ this.$emit('confirm');
+ }
+
+ this.hide();
+ }catch(err){
+ util.hideLoad();
+ console.warn('核销失败', err);
+ }
- this.hide();
- },
+ }, 300, true),
getOrderInfo({
order_no,
stadium_id
}){
let { orderIndex } = this;
util.showLoad();
- servers.get({
+ return servers.get({
url: API.order.reservationDetail,
data: { order_no, stadium_id },
failMsg: '加载订单信息失败!'
})
.then(res => {
util.hideLoad();
- this.$emit('confirm', { orderInfo: res || {}, orderIndex });
+ return this.orderInfo = res || {};
+
})
},
- show({ info, index }) {
- let { orderInfo } = this;
- this.orderInfo = info || {};
- this.orderIndex = index;
+ sessionVerify({ brand_id, nums, order_no }){
+ return servers.post({
+ url: API.order.sessionVerify,
+ data: { brand_id, nums, order_no },
+ failMsg: '核销失败!'
+ })
+ },
+ show({ order_no, stadium_id, index }) {
+ this.ticketNumber = 1;
+ this.orderIndex = isNaN(index) || index < 0 ? -1 : index;
this.isShow = true;
this.$emit('show');
- if(orderInfo?.id !== info?.id){
- this.ticketNumber = 1;
- }
+ this.getOrderInfo({ order_no, stadium_id });
},
hide() {
this.isShow = false;
diff --git a/src/components/reservation_order/reservation_order.vue b/src/components/reservation_order/reservation_order.vue
index e3db0af..bef6e11 100644
--- a/src/components/reservation_order/reservation_order.vue
+++ b/src/components/reservation_order/reservation_order.vue
@@ -67,7 +67,11 @@
实付款 ¥{{orderInfo.pay_amount || '0'}}
- 核销
+ 核销
diff --git a/src/js/api.js b/src/js/api.js
index bf95320..c582d83 100644
--- a/src/js/api.js
+++ b/src/js/api.js
@@ -144,6 +144,7 @@ API['writeOff'] = {
API['order'] = {
reservationDetail:`${ORIGIN}/admin/assistant/stadiumOrder/detail`, //k-订单管理-场馆预约订单-预约场馆订单详情/ 次卡订单详情
+ sessionVerify:`${ORIGIN}/admin/person/number/rule/orderinfo/sessionVerify`, // 次票核销,输入二维码数量核销
}
diff --git a/src/pages/order_list/order_list.vue b/src/pages/order_list/order_list.vue
index 7525d73..658e3d6 100644
--- a/src/pages/order_list/order_list.vue
+++ b/src/pages/order_list/order_list.vue
@@ -272,12 +272,15 @@
methods: {
reservationVerify(index){
let { orderList } = this;
+ let _orderInfo = orderList?.[index] || {};
this.$refs.ticketCheckModal.show({
- info: orderList?.[index] || {},
+ order_no: _orderInfo.order_no,
+ stadium_id: _orderInfo.stadium_id,
index,
});
},
verifyConfirm({ orderInfo, orderIndex }){
+ console.log('verifyConfirm',orderInfo, orderIndex);
if(!orderInfo?.id || isNaN(orderIndex) ||+orderIndex < 0)return;
let _orderList = this?.orderList?.slice() || [];
_orderList[orderIndex] = orderInfo;
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 0b56217..d0dde75 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
@@ -45,7 +45,11 @@
验证信息
({{orderInfo.available_num || 0}}张可用)
- 核销
+ 核销
@@ -316,6 +320,9 @@ export default {
};
},
methods:{
+ verifyBtn(){
+ this.$emit('verify');
+ },
recoverBtn(ele){
console.warn('orderInfo',this.orderInfo);
console.warn('ele', ele);
@@ -323,8 +330,8 @@ export default {
util.showModal({
title: '提示',
content: '是否确认恢复该验证码为待使用状态',
+ showCancel: true,
success: res=> {
-
if(res.confirm){
util.showLoad();
deviceServer.get({
diff --git a/src/subpackage/device/pages/order_details/order_details.vue b/src/subpackage/device/pages/order_details/order_details.vue
index ff1b0e8..432e762 100644
--- a/src/subpackage/device/pages/order_details/order_details.vue
+++ b/src/subpackage/device/pages/order_details/order_details.vue
@@ -3,7 +3,13 @@
-
+
@@ -28,7 +34,10 @@
-
+
@@ -90,6 +99,21 @@
})
},
methods: {
+ verifyConfirm(){
+ let { optionsQuery } = this;
+ this.getPageInfo({
+ orderType: optionsQuery.order_type,
+ stadium_id: optionsQuery.stadium_id,
+ order_no: optionsQuery.order_no,
+ })
+ },
+ verifyBtn(){
+ let { pageInfo } = this;
+ this.$refs.ticketCheckModal.show({
+ order_no: pageInfo.order_no,
+ stadium_id: pageInfo.stadium_id,
+ });
+ },
refreshPage(){
let { optionsQuery } = this;
this.isOrderRefund = false;