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 @@
+
+
+
+
+
+ 核销次票
+
+
+ 到期时间:{{ orderInfo.end_time || '-' }}
+ 剩余待使用:{{ orderInfo.available_num || 0 }}
+
+
+ *核销次数
+
+
+
+
+
+
+
+ 张
+
+ 确认核销数量后,系统将会自动核销对应数量的票,核销后“待使用”的验证码状态更改为“已使用”
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+
+
+
\ 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 @@
- 0?bindICCardChange(1):bindICCardChange(2)">{{ orderInfo.bind_iccard_info.id > 0?'解绑IC卡':'绑定IC卡' }}
+ 0?bindICCardChange(1):bindICCardChange(2)"
+ >{{ 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: {