diff --git a/src/components/end_billing_modal/end_billing_modal.vue b/src/components/end_billing_modal/end_billing_modal.vue
index efa86df..40e3efd 100644
--- a/src/components/end_billing_modal/end_billing_modal.vue
+++ b/src/components/end_billing_modal/end_billing_modal.vue
@@ -76,6 +76,7 @@ export default {
// setTimeout(()=>uni.navigateBack(),1200);
this.$emit('timeEndBtn');
})
+ .catch(util.hideLoad)
},
selectBtn(type){
diff --git a/src/components/fixed_bar/fixed_bar.vue b/src/components/fixed_bar/fixed_bar.vue
new file mode 100644
index 0000000..96aa027
--- /dev/null
+++ b/src/components/fixed_bar/fixed_bar.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/order_refund/button.vue b/src/components/order_refund/button.vue
new file mode 100644
index 0000000..34e6ad0
--- /dev/null
+++ b/src/components/order_refund/button.vue
@@ -0,0 +1,22 @@
+
+
+ 退款
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/order_refund/fixed.vue b/src/components/order_refund/fixed.vue
new file mode 100644
index 0000000..0980267
--- /dev/null
+++ b/src/components/order_refund/fixed.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/order_refund/info.vue b/src/components/order_refund/info.vue
new file mode 100644
index 0000000..1ce011b
--- /dev/null
+++ b/src/components/order_refund/info.vue
@@ -0,0 +1,56 @@
+
+
+ 退款信息{{ nameKey || '' }}
+
+ 退款金额:
+ {{ refund_price }}
+
+
+ 退款单号:
+ {{ refund_no }}
+
+
+ 退款时间:
+ {{ refund_time }}
+
+
+ 退款原因:
+ {{ refund_reason }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/order_refund/modal.vue b/src/components/order_refund/modal.vue
new file mode 100644
index 0000000..18e3075
--- /dev/null
+++ b/src/components/order_refund/modal.vue
@@ -0,0 +1,231 @@
+
+
+
+
+
+ 退款
+
+
+ {{ refundInfo.stadium_name || '' }}
+ 订单编号:{{ refundInfo.order_no || '' }}
+ 手机号码:{{ refundInfo.mobile || '' }}
+
+
+
+
+ *
+ 退款金额
+
+
+
+ 可退{{ refundInfo.refundable_amount || 0 }}元
+
+
+
+
+ *
+ 退款积分
+
+
+
+ 可退{{ refundInfo.refundable_integral || 0 }}积分
+
+
+
+
+
+
+
+ 取消
+ 确认
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/timing_order/timing_order.vue b/src/components/timing_order/timing_order.vue
index be95aa8..1d6743f 100644
--- a/src/components/timing_order/timing_order.vue
+++ b/src/components/timing_order/timing_order.vue
@@ -80,8 +80,8 @@ export default {
// _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');
+ let _str = `stadium_id=${orderInfo.stadium_id || ''}&order_no=${orderInfo.order_no || ''}`
+ util.routeTo(`/subpackage/order/pages/timing/detail?${_str}`,'nT');
// this.$emit('orderDetailChange');
},
timeEndBtn(){
diff --git a/src/js/api.js b/src/js/api.js
index 1b0663b..1db1e8b 100644
--- a/src/js/api.js
+++ b/src/js/api.js
@@ -152,6 +152,7 @@ API['writeOff'] = {
API['order'] = {
reservationDetail:`${ORIGIN}/admin/assistant/stadiumOrder/detail`, //k-订单管理-场馆预约订单-预约场馆订单详情/ 次卡订单详情
sessionVerify:`${ORIGIN}/admin/person/number/rule/orderinfo/sessionVerify`, // 次票核销,输入二维码数量核销
+ orderRefundList:`${ORIGIN}/admin/stadium/order/refundList`, // 硬件管理(所有的订单)-退款信息列表(包括预订,计时)
}
// 20240325 后台功能迁移到小程序端
diff --git a/src/pages.json b/src/pages.json
index 813c428..c9eb464 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -604,6 +604,12 @@
"style" : {
"navigationBarTitleText": "租球机订单详情"
}
+ },
+ {
+ "path": "pages/timing/detail",
+ "style" : {
+ "navigationBarTitleText": "计时订单详情"
+ }
}
]
},
diff --git a/src/pages/site/confirm/confirm.vue b/src/pages/site/confirm/confirm.vue
index 9baa789..087b161 100644
--- a/src/pages/site/confirm/confirm.vue
+++ b/src/pages/site/confirm/confirm.vue
@@ -94,7 +94,7 @@ export default {
ocPrice: '',
ocReaon: '',
ocUsage: 1, // 1 -> 客户订场, 2-> 散客, 3-> 锁场, 4 -> 挂账
- light_up: false,
+ light_up: true,
usageLs: [
{ name: '客户订场', type: 1 }, { name: '散客', type: 2 },
{ name: '锁场', type: 3 }, { name: '挂账', type: 4 },
diff --git a/src/store/actions.js b/src/store/actions.js
index e195e2a..ace8154 100644
--- a/src/store/actions.js
+++ b/src/store/actions.js
@@ -13,5 +13,13 @@ export default {
commit('setBrandInfo',res);
return res;
})
+ },
+
+ getOrderRefundList({commit, state}, order_no){
+ return servers.get({
+ url: API.order.orderRefundList,
+ data: { order_no },
+ isDefaultGet: false
+ })
}
}
\ No newline at end of file
diff --git a/src/store/index.js b/src/store/index.js
index 36a4a95..38ef2f5 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -44,7 +44,8 @@ export default new Vuex.Store({
'1014': '储值卡管理',
'1015': '进场人数异常',
'1016': '系统工具',
- '1017': '钱包提现'
+ '1017': '钱包提现',
+ '1018': '退款权限'
},
// 场地占用提交页面信息
occupyInfo: {
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 c9e1f8c..2d36f30 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
@@ -161,6 +161,26 @@
微信交易号:{{orderInfo.trade_no || ''}}
+
+
+
+
+
+
+
+
+
@@ -237,7 +257,13 @@ import util from '@/utils/util';
import deviceServer from '../../../js/device_server';
import deviceApi from '../../../js/device_api';
import { mapState } from 'vuex';
+import orderRefundFixed from '@/components/order_refund/fixed.vue'
+import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
+ components: {
+ 'order-refund-fixed': orderRefundFixed,
+ 'order-refund-info': orderRefundInfo,
+ },
props: {
orderInfo: {
type: Object,
@@ -592,6 +618,10 @@ export default {
this.isShowSuccessIC = !this.isShowSuccessIC
this.$emit('okChange');
},
+ refunndBtn(){
+ // this.$emit('refundbtn');
+ this.$emit('click:refund');
+ }
}
}
diff --git a/src/subpackage/device/components/order/reservation_site_detail/reservation_site_detail.vue b/src/subpackage/device/components/order/reservation_site_detail/reservation_site_detail.vue
index 3239102..fb4d734 100644
--- a/src/subpackage/device/components/order/reservation_site_detail/reservation_site_detail.vue
+++ b/src/subpackage/device/components/order/reservation_site_detail/reservation_site_detail.vue
@@ -98,6 +98,12 @@
优惠券优惠
-¥{{orderInfo.coupons_amount || 0}}
+
+ 团购券抵扣
+ -¥{{ orderInfo.extension.meituan_args.meituan_coupon_deduction_amount || 0}}
+
合计支付:¥{{orderInfo.pay_amount || 0}}
@@ -135,14 +141,35 @@
-
-
+
+
+
+
+
+
-
-
diff --git a/src/subpackage/device/pages/order_details/order_details.vue b/src/subpackage/device/pages/order_details/order_details.vue
index f294e36..bc8d1cd 100644
--- a/src/subpackage/device/pages/order_details/order_details.vue
+++ b/src/subpackage/device/pages/order_details/order_details.vue
@@ -2,67 +2,56 @@
-
+
-
-
-
- false">
- 退款
-
- {{ pageInfo.stadium_name || '-' }}
- 订单编号:{{ pageInfo.order_no || '-' }}
- 手机号码:{{ pageInfo.mobile || '-' }}
-
-
- *退款金额
-
-
-
- 最多可退{{ (pageInfo.extension&&pageInfo.extension.refundable_amount) || 0 }}元
-
- 确认退款
-
-
+
+
+
@@ -225,82 +192,5 @@
}
-.refund-mask{
- position: fixed;
- left: 0;
- top: 0;
- bottom: 0;
- right: 0;
- background-color: rgba($color: #000, $alpha: .5);
- .rm-content{
- position: absolute;
- left: 50%;
- top: 50%;
- transform: translate(-50%, -50%);
- padding: 80upx;
- background-color: #fff;
- width: 620upx;
- border-radius: 10upx;
- .rc-tit{
- margin-bottom: 30upx;
- text-align: center;
- font-size: 32upx;
- font-weight: 500;
- color: #1A1A1A;
- }
- .rc-info{
- margin-bottom: 34upx;
- .ri-view{
- line-height: 40upx;
- font-size: 28upx;
- color: #9C9C9F;
- @include textHide(1);
- &:first-child{
- font-weight: 500;
- color: #1A1A1A;
- }
- }
- }
- .rc-price{
- margin-bottom: 32upx;
- .rp-name{
- margin-bottom: 8upx;
- font-size: 28upx;
- line-height: 48upx;
- color: #1A1A1A;
- .rn-txt{
- color: #EA5061;
- }
- }
- .rp-frame{
- padding: 0 20upx;
- height: 88upx;
- border-radius: 10upx;
- border: 2upx solid #D8D8D8;
- .rf-ipt{
- width: 100%;
- height: 100%;
- font-size: 28upx;
- color: #1A1A1A;
- }
- }
- .rp-tip{
- font-size: 24upx;
- color: #EA5061;
- }
- }
- .ri-btn{
- margin: 0 auto;
- width: 240upx;
- line-height: 88upx;
- text-align: center;
- border-radius: 10upx;
- font-size: 32upx;
- font-weight: 500;
- color: #fff;
- background-color: $themeColor;
- }
- }
-}
diff --git a/src/subpackage/order/js/api.js b/src/subpackage/order/js/api.js
index ac8af38..4597f0a 100644
--- a/src/subpackage/order/js/api.js
+++ b/src/subpackage/order/js/api.js
@@ -35,6 +35,13 @@ export const ORDER_API = {
rentballEndBilling:`${ORIGIN}/admin/stadium/rentball/order/end`, // 结束订单-后台
// 20220727
rentBallOrderDetails:`${ORIGIN}/admin/stadium/hardware/order/rentBallOrderDetails`, // 硬件管理-订单详情_copy
+ // 20240614 tid1523 统一退款
+ venueCourseOrderRefund:`${ORIGIN}/admin/venueCourse/orderRefund`, // 课程订单-退款
+ userValueCardRefundFixed:`${ORIGIN}/admin/userValueCard/refundFixed`, // 储值卡订单-退款
+ timeOrderDetail:`${ORIGIN}/admin/assistant/timeOrder/detail`, //k-订单管理-计时订单详情
+ timeOrderComplete:`${ORIGIN}/admin/assistant/timeOrder/complete`, //【20220208】k-订单管理-计时订单完结
+ orderRefund:`${ORIGIN}/admin/stadium/order/refund`, // A订单管理-场馆预订订单-订单退款 (零售订单、场地、次卡)
+ userMonthlyCardRefundFixed:`${ORIGIN}/admin/userMonthlyCard/refundFixed`, // 年月卡订单-订单退款
}
export default ORDER_API;
\ No newline at end of file
diff --git a/src/subpackage/order/pages/curriculum/detail/detail.vue b/src/subpackage/order/pages/curriculum/detail/detail.vue
index 43f2ff8..a74ef44 100644
--- a/src/subpackage/order/pages/curriculum/detail/detail.vue
+++ b/src/subpackage/order/pages/curriculum/detail/detail.vue
@@ -86,21 +86,29 @@
交易流水:
-
-
- 退款单号:
-
-
- 退款时间:
-
-
- 退款金额:
-
-
-
-
+
+
+
+
+
+
+
+
@@ -109,50 +117,104 @@ import a_line from '../../../../../components/order_list/a_line/a_line.vue';
import util from '../../../../../utils/util';
import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
+import orderRefundFixed from '@/components/order_refund/fixed.vue'
+import orderRefundModal from '@/components/order_refund/modal.vue';
+import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
computed: {
course_period_nums_give(){
let { orderInfo } = this;
let _num = orderInfo.course_period_nums_give || 0;
return (_num + '').replace('-', '')
+ },
+ refundTimes(){
+ // 课程订单只支持一次退款,refund_times + 1 间接实现
+ let _num = this.refundList?.length || 0;
+ return _num + 1;
}
},
// ('订单状态 0-待付款 1-进行中 2-已结束 3-已退款 4-已取消')
components: {
'a-line': a_line,
+ 'order-refund-fixed': orderRefundFixed,
+ 'order-refund-modal': orderRefundModal,
+ 'order-refund-info': orderRefundInfo
},
data(){
return {
orderInfo: {
user_info: {}
- }
+ },
+ refundList: [], // 退款列表
}
},
onLoad(options){
this.getInfo(options.order_no);
+ this.getRefundTimes(options.order_no);
},
methods: {
+ refunndBtn(){
+ let { orderInfo, refundTimes } = this;
+ this.$refs.orderRefundModal.show({
+ stadium_name: orderInfo?.extension?.stadium_name ?? '',
+ order_no: orderInfo?.order_no ?? '',
+ mobile: orderInfo?.student_phone ?? '',
+ refundable_amount: orderInfo?.extension?.refundable_amount ?? 0,
+ refundable_integral: orderInfo?.extension?.refundable_integral ?? 0,
+ refund_times: refundTimes,
+ confirm: e => {
+ this.venueCourseOrderRefund({
+ order_no: orderInfo?.order_no ?? '',
+ amount: e.refund_amount || 0,
+ integral: e.refund_integral || 0
+ })
+ }
+ });
+ },
+ venueCourseOrderRefund({ order_no = '', amount = 0, integral = 0}){
+ util.showLoad();
+ server.get({
+ url: ORDER_API.venueCourseOrderRefund,
+ data: { order_no, amount, integral },
+ isDefaultGet: false
+ })
+ .then(res=>{
+ util.hideLoad();
+ if(res.data.code == 0){
+ util.showNone(res.data.message || '操作成功!');
+ }else{
+ util.showNone(res.data.message || '操作失败!');
+ }
+ })
+ .catch(util.hideLoad)
+ .finally(_=>setTimeout(_=>{
+ this.getInfo(order_no);
+ this.getRefundTimes(order_no);
+ }, 1200));
+ },
+ async getRefundTimes(order_no){
+ try{
+ let _refundRes = await this.$store.dispatch('getOrderRefundList', order_no);
+ let _refundLs = _refundRes?.data?.data?.list || [];
+ this.refundList = _refundLs;
+ }catch(err){
+ console.warn('getRefundTimes err', err);
+ }
+ },
getInfo(order_no){
+ util.showLoad();
server.get({
url: ORDER_API.venueCourse_orderInfo,
data: { order_no },
failMsg: '加载失败!'
})
.then(res=>{
+ util.hideLoad();
this.orderInfo = res || {};
})
+ .catch(util.hideLoad)
},
getPayType: util.order_pay_type_txt,
- // getPayType(type){
- // // [0微信支付,1支付宝支付,2会员换卡支付, 3商家主动]
- // let _obj = {
- // 0: '微信支付',
- // 1: '支付宝支付',
- // 2: '会员换卡支付',
- // 3: '商家主动',
- // }
- // return _obj[type] || '-'
- // }
}
}
diff --git a/src/subpackage/order/pages/retail/detail/detail.vue b/src/subpackage/order/pages/retail/detail/detail.vue
index 7860259..83b2f30 100644
--- a/src/subpackage/order/pages/retail/detail/detail.vue
+++ b/src/subpackage/order/pages/retail/detail/detail.vue
@@ -2,36 +2,36 @@
@@ -39,37 +39,37 @@
- {{ e.erp_retail_goods ? (e.erp_retail_goods.goods_name || '-') : (e.name || '-') }}
- ¥{{ e.price || 0 }}
-
- sku:{{ e.erp_retail_goods ? (e.erp_retail_goods.erp_goods ? e.erp_retail_goods.erp_goods.erp_goods_sku : '-') : '-' }}
-
- 型号:{{ e.erp_retail_goods ? (e.erp_retail_goods.erp_goods ? e.erp_retail_goods.erp_goods.erp_goods_type : '-') : '-' }} 规格:{{ e.spec || '-' }}
- x{{ e.nums || 0 }}
-
-
+ {{ e.erp_retail_goods ? (e.erp_retail_goods.goods_name || '-') : (e.name || '-') }}
+ ¥{{ e.price || 0 }}
+
+ sku:{{ e.erp_retail_goods ? (e.erp_retail_goods.erp_goods ? e.erp_retail_goods.erp_goods.erp_goods_sku : '-') : '-' }}
+
+ 型号:{{ e.erp_retail_goods ? (e.erp_retail_goods.erp_goods ? e.erp_retail_goods.erp_goods.erp_goods_type : '-') : '-' }} 规格:{{ e.spec || '-' }}
+ x{{ e.nums || 0 }}
+
+
-
-
- 金额小计
- ¥{{ orderInfo.amount || 0 }}
-
-
- 积分抵扣
- ¥{{ orderInfo.deduction_amount || 0 }}
-
-
- 折扣金额
- -¥{{ orderInfo.discount_amount || 0 }}
-
-
- 优惠券优惠
- -¥{{ orderInfo.coupons_amount || 0 }}
-
- 合计支付:¥{{ orderInfo.pay_amount || 0 }}
+
+
+ 金额小计
+ ¥{{ orderInfo.amount || 0 }}
+
+
+ 积分抵扣
+ ¥{{ orderInfo.deduction_amount || 0 }}
+
+
+ 折扣金额
+ -¥{{ orderInfo.discount_amount || 0 }}
+
+
+ 优惠券优惠
+ -¥{{ orderInfo.coupons_amount || 0 }}
+ 合计支付:¥{{ orderInfo.pay_amount || 0 }}
+
支付详情
@@ -78,33 +78,28 @@
-
-
-
-
- 退款信息{{ index + 1 }}
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -114,16 +109,22 @@ import server from '../../../js/server';
import util from '../../../../../utils/util';
import s_line from '../../../components/s_line/s_line.vue';
import p_line from '../../../components/p_line/p_line.vue';
+import orderRefundFixed from '@/components/order_refund/fixed.vue'
+import orderRefundModal from '@/components/order_refund/modal.vue';
+import orderRefundInfo from '@/components/order_refund/info.vue';
import { mapState } from 'vuex';
export default {
components: {
's-line': s_line,
'p-line': p_line,
+ 'order-refund-fixed': orderRefundFixed,
+ 'order-refund-modal': orderRefundModal,
+ 'order-refund-info': orderRefundInfo
},
data(){
return {
orderInfo: {},
- refundList: []
+ refundList: []
}
},
computed:{
@@ -131,19 +132,74 @@ export default {
},
onLoad(options){
this.getOrderInfo(options.order_no);
+ this.retailOrderInfoRefundList({
+ order_no: options.order_no,
+ brand_id: this.brandInfo.brand.id
+ })
},
methods: {
+ refunndBtn(){
+ let { orderInfo, refundList } = this;
+ this.$refs.orderRefundModal.show({
+ stadium_name: orderInfo?.stadium_name ?? '',
+ order_no: orderInfo?.order_no ?? '',
+ mobile: orderInfo?.mobile ?? '',
+ refundable_amount: orderInfo?.extension?.refundable_amount ?? 0,
+ refundable_integral: orderInfo?.extension?.refundable_integral ?? 0,
+ refund_times: refundList?.length || 0,
+ confirm: e => {
+ console.log('refund' , e)
+ // this.venueCourseOrderRefund({
+ // order_no: orderInfo?.order_no ?? '',
+ // amount: e.refund_amount || 0,
+ // integral: e.refund_integral || 0
+ // })
+ this.confirmRefundReq({
+ order_no: orderInfo?.order_no || '',
+ amount: e.refund_amount || 0,
+ integral: e.refund_integral || 0
+ })
+ }
+ });
+ },
+ confirmRefundReq({ order_no = '', amount = 0, integral = 0}){
+ util.showLoad();
+ server.get({
+ url: ORDER_API.orderRefund,
+ data: { order_no, amount, integral },
+ isDefaultGet: false
+ })
+ .then(res=>{
+ util.hideLoad();
+ if(res.data.code == 0){
+ util.showNone(res.data.message || '操作成功!');
+ }else{
+ util.showNone(res.data.message || '操作失败!');
+ }
+ })
+ .then(_=>{
+ setTimeout(_=>{
+ let { orderInfo } = this;
+ this.getOrderInfo(orderInfo?.order_no || '');
+ this.retailOrderInfoRefundList({
+ order_no: orderInfo?.order_no || '',
+ brand_id: orderInfo?.brand_id || ''
+ })
+ }, 1200);
+ })
+ .catch(util.hideLoad)
+ },
// payTypeTxt: util.order_pay_type_txt,
- payTypeTxt(payType, cardNo) {
- let _obj = {
- 0: '微信支付',
- 1: '支付宝支付',
- 2: `储值卡支付 ${cardNo ? '(' + cardNo + ')' : ''}`,
- 3: '现金支付',
- 4: '其他'
- };
- return _obj[payType] || '-'
- },
+ payTypeTxt(payType, cardNo) {
+ let _obj = {
+ 0: '微信支付',
+ 1: '支付宝支付',
+ 2: `储值卡支付 ${cardNo ? '(' + cardNo + ')' : ''}`,
+ 3: '现金支付',
+ 4: '其他'
+ };
+ return _obj[payType] || '-'
+ },
getStatus(status){
let _obj = {
1: '交易成功',
@@ -160,21 +216,24 @@ export default {
})
.then(res=>{
this.orderInfo = res || {};
- // this.orderInfo.refunds = [
- // { refund_amount: this.orderInfo.refund_amount, refund_no: this.orderInfo.refund_no, refund_time: this.orderInfo.refund_time, refund_reason: this.orderInfo.refund_reason },
- // { refund_amount: this.orderInfo.refund_amount, refund_no: this.orderInfo.refund_no, refund_time: this.orderInfo.refund_time, refund_reason: this.orderInfo.refund_reason }
- // ];
- server.get({
- url: ORDER_API.retailOrderInfoRefundList,
- data: { order_no, brand_id: this.brandInfo.brand.id },
- failMsg: '加载失败!'
- })
- .then(res=>{
- util.hideLoad();
- this.refundList = res.list;
- });
+ // this.orderInfo.refunds = [
+ // { refund_amount: this.orderInfo.refund_amount, refund_no: this.orderInfo.refund_no, refund_time: this.orderInfo.refund_time, refund_reason: this.orderInfo.refund_reason },
+ // { refund_amount: this.orderInfo.refund_amount, refund_no: this.orderInfo.refund_no, refund_time: this.orderInfo.refund_time, refund_reason: this.orderInfo.refund_reason }
+ // ];
+
});
},
+ retailOrderInfoRefundList({ order_no, brand_id }){
+ server.get({
+ url: ORDER_API.retailOrderInfoRefundList,
+ data: { order_no, brand_id },
+ failMsg: '加载失败!'
+ })
+ .then(res=>{
+ util.hideLoad();
+ this.refundList = res?.list || [];
+ });
+ }
}
}
@@ -189,57 +248,57 @@ export default {
margin-bottom: 26upx;
padding: 0 24upx;
background-color: #fff;
- .ra-header {
- position: relative;
- padding: 30upx 0;
- @include centerFlex(flex-start);
- >image {
- width: 32upx;
- height: 30upx;
- margin-right: 14upx;
- }
- >text {
- font-size: 28upx;
- font-weight: 500;
- color: #1A1A1A;
+ .ra-header {
+ position: relative;
+ padding: 30upx 0;
+ @include centerFlex(flex-start);
+ >image {
+ width: 32upx;
+ height: 30upx;
+ margin-right: 14upx;
+ }
+ >text {
+ font-size: 28upx;
+ font-weight: 500;
+ color: #1A1A1A;
+ }
+ >view {
+ position: absolute;
+ bottom: 0%;
+ width: 100%;
+ height: 2upx;
+ background-color: #D8D8D8;
+ }
+ }
+ .rh-name{
+ padding: 18upx 0;
+ .rh-name-line {
+ @include centerFlex(space-between);
+ font-size: 28upx;
+ font-weight: 400;
+ margin-bottom: 10upx;
+
+ >view {
+ &:first-child {
+ color: #9C9C9F;
+ @include centerFlex(flex-start);
+ flex-grow: 1;
+
+ >view {
+ width: 152upx;
+ flex-shrink: 0;
+ }
+ >text {
+ color: #1A1A1A;
+ @include textHide(1);
+ }
}
- >view {
- position: absolute;
- bottom: 0%;
- width: 100%;
- height: 2upx;
- background-color: #D8D8D8;
+
+ &:nth-child(2) {
+ flex-shrink: 0;
}
}
- .rh-name{
- padding: 18upx 0;
- .rh-name-line {
- @include centerFlex(space-between);
- font-size: 28upx;
- font-weight: 400;
- margin-bottom: 10upx;
-
- >view {
- &:first-child {
- color: #9C9C9F;
- @include centerFlex(flex-start);
- flex-grow: 1;
-
- >view {
- width: 152upx;
- flex-shrink: 0;
- }
- >text {
- color: #1A1A1A;
- @include textHide(1);
- }
- }
-
- &:nth-child(2) {
- flex-shrink: 0;
- }
- }
- }
+ }
}
}
.rc-goods-info{
@@ -256,32 +315,32 @@ export default {
.rgl-item{
padding-top: 30upx;
// border-bottom: 2upx solid #D8D8D8;
- color: #9C9C9F;
- font-size: 28upx;
-
- .rgl-item-desc {
- display: flex;
- justify-content: space-between;
- margin-bottom: 20upx;
- color: #1A1A1A;
- }
- .rgl-item-sku {
- margin-bottom: 10upx;
- }
- .rgl-item-type-spec {
- display: flex;
- justify-content: space-between;
- align-items: flex-end;
- >text {
- color: #1A1A1A;
- }
- }
- .rgl-item-bottom-line {
- width: 100%;
- height: 2upx;
- background-color: #D8D8D8;
- margin-top: 18upx;
- }
+ color: #9C9C9F;
+ font-size: 28upx;
+
+ .rgl-item-desc {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 20upx;
+ color: #1A1A1A;
+ }
+ .rgl-item-sku {
+ margin-bottom: 10upx;
+ }
+ .rgl-item-type-spec {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-end;
+ >text {
+ color: #1A1A1A;
+ }
+ }
+ .rgl-item-bottom-line {
+ width: 100%;
+ height: 2upx;
+ background-color: #D8D8D8;
+ margin-top: 18upx;
+ }
}
}
}
@@ -324,15 +383,4 @@ export default {
color: #1A1A1A;
}
}
- .rc-refund-info{
- padding: 30upx;
- margin-top: 24upx;
- background-color: #fff;
- .rpi-tit{
- margin-bottom: 16upx;
- line-height: 44upx;
- font-size: 28upx;
- color: #9C9C9F;
- }
- }
\ No newline at end of file
diff --git a/src/subpackage/order/pages/stored_value_card/detail/detail.vue b/src/subpackage/order/pages/stored_value_card/detail/detail.vue
index f7b9a58..59ec707 100644
--- a/src/subpackage/order/pages/stored_value_card/detail/detail.vue
+++ b/src/subpackage/order/pages/stored_value_card/detail/detail.vue
@@ -65,24 +65,27 @@
-
-
- 退款信息{{i+1}}
-
-
-
- 退款金额:{{ e.amount || 0 }}
-
-
- 退款单号:{{ e.refund_no || '-' }}
-
-
- 退款时间:{{ e.refund_time || '-' }}
-
-
- 退款原因:{{ e.reason || '-' }}
-
-
+
+
+
+
+
+
+
+
@@ -91,9 +94,15 @@ import s_line from '../../../components/s_line/s_line.vue';
import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
import util from '../../../../../utils/util';
+import orderRefundFixed from '@/components/order_refund/fixed.vue'
+import orderRefundModal from '@/components/order_refund/modal.vue';
+import orderRefundInfo from '@/components/order_refund/info.vue';
export default {
components: {
's-line': s_line,
+ 'order-refund-fixed': orderRefundFixed,
+ 'order-refund-modal': orderRefundModal,
+ 'order-refund-info': orderRefundInfo
},
computed: {
cardInfo(){
@@ -116,6 +125,46 @@ export default {
this.getOrderInfo({ order_no: options.order_no });
},
methods: {
+ refunndBtn(){
+ let { orderInfo } = this;
+ let _pay_amount = +orderInfo?.pay_amount || 0;
+ let _refund_amount = +orderInfo?.refund_amount || 0;
+ let _deduction_integral = +orderInfo?.deduction_integral || 0;
+ let _refund_integral = +orderInfo?.refund_integral || 0;
+ this.$refs.orderRefundModal.show({
+ stadium_name: orderInfo?.stadium?.stadium_name ?? '',
+ order_no: orderInfo?.order_no ?? '',
+ mobile: orderInfo?.mobile ?? '',
+ refundable_amount: _pay_amount - _refund_amount,
+ refundable_integral: _deduction_integral - _refund_integral,
+ refund_times: orderInfo?.refunds?.length || 0,
+ confirm: e => {
+ this.userValueCardRefundFixed({
+ order_no: orderInfo?.order_no ?? '',
+ amount: e.refund_amount || 0,
+ integral: e.refund_integral || 0
+ })
+ }
+ });
+ },
+ userValueCardRefundFixed({ order_no = '', amount = 0, integral = 0}){
+ util.showLoad();
+ server.get({
+ url: ORDER_API.userValueCardRefundFixed,
+ data: { order_no, amount, integral },
+ isDefaultGet: false
+ })
+ .then(res=>{
+ util.hideLoad();
+ if(res.data.code == 0){
+ util.showNone(res.data.message || '操作成功!');
+ }else{
+ util.showNone(res.data.message || '操作失败!');
+ }
+ })
+ .catch(util.hideLoad)
+ .finally(_=>setTimeout(_=>this.getOrderInfo({ order_no }), 1200));
+ },
payStatus(status){
if(status == 1)return '已付款';
if(status == 4)return '已退款';
diff --git a/src/subpackage/order/pages/timing/detail.vue b/src/subpackage/order/pages/timing/detail.vue
new file mode 100644
index 0000000..da4dddd
--- /dev/null
+++ b/src/subpackage/order/pages/timing/detail.vue
@@ -0,0 +1,379 @@
+
+
+
+
+
+ {{orderInfo.stadium_name || '-'}}
+
+
+ 订单编号:{{orderInfo.order_no || '-'}}
+ {{zh_order_status(orderInfo.pay_status)}}
+
+
+ 创建时间:{{orderInfo.model.created_at || '-'}}
+
+
+ 用户昵称:{{orderInfo.nickname || '-'}}
+
+
+
+ 计时信息
+
+
+ 项目:{{orderInfo.project_name || '-'}}({{orderInfo.venue_name || '-'}})
+ 进场时间:{{orderInfo.start_time || '-'}}
+
+ 离场时间:{{orderInfo.end_time || '-'}}
+ 时长合计:{{orderInfo.extension.duration || '-'}}
+
+
+
+ 金额小计
+ ¥{{orderInfo.amount || 0}}
+
+
+ 积分抵扣
+ -¥{{orderInfo.deduction_amount ||0}}
+
+
+ 折扣金额
+ -¥{{orderInfo.discount_amount||0}}
+
+
+ 优惠券优惠
+ -¥{{orderInfo.coupons_amount || 0}}
+
+
+ 合计支付:¥{{orderInfo.pay_amount ||0}}
+
+
+
+
+ 支付信息
+
+ 支付方式:{{zh_pay_type(orderInfo.pay_type)}}
+ 支付时间:{{orderInfo.pay_time || '-'}}
+ 微信交易号:{{orderInfo.trade_no || ''}}
+ 操作人:{{orderInfo.end_bill_operator_name || ''}}
+
+
+
+
+
+
+
+
+
+ 结束计费
+ 完结订单
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/subpackage/order/pages/ym_card/detail/detail.vue b/src/subpackage/order/pages/ym_card/detail/detail.vue
index 13ffcbe..204b2d6 100644
--- a/src/subpackage/order/pages/ym_card/detail/detail.vue
+++ b/src/subpackage/order/pages/ym_card/detail/detail.vue
@@ -53,7 +53,30 @@
+
+
+
+
+
+
+
+
+
+
@@ -67,6 +90,9 @@
import a_line from '../../../../../components/order_list/a_line/a_line.vue';
import s_line from '../../../components/s_line/s_line.vue';
import p_line from '../../../components/p_line/p_line.vue';
+import orderRefundFixed from '@/components/order_refund/fixed.vue'
+import orderRefundModal from '@/components/order_refund/modal.vue';
+import orderRefundInfo from '@/components/order_refund/info.vue';
import util from '../../../../../utils/util';
import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
@@ -75,7 +101,14 @@ export default {
'a-line': a_line,
's-line': s_line,
'p-line': p_line,
-
+ 'order-refund-fixed': orderRefundFixed,
+ 'order-refund-modal': orderRefundModal,
+ 'order-refund-info': orderRefundInfo
+ },
+ computed: {
+ _extension(){
+ return this.orderInfo?.extension || {}
+ }
},
data(){
return {
@@ -84,16 +117,79 @@ export default {
extension: {}
},
optionsQuery: {},
+ refundInfo: {},
+ refundList: []
}
},
onLoad(options){
this.getCardInfo({
id: options.id,
card_no: options.card_no
- });
- this.optionsQuery = options || {};
+ })
+ .then(res=>{
+ if(res.order_no)this.getRefundInfo(res.order_no || '');
+ })
+ this.optionsQuery = options;
},
methods: {
+ refunndBtn(){
+ let { orderInfo, _extension, refundList } = this;
+ this.$refs.orderRefundModal.show({
+ stadium_name: _extension?.name ?? '',
+ order_no: orderInfo?.order_no ?? '',
+ mobile: orderInfo?.mobile ?? '',
+ refundable_amount: +_extension?.refundable_amount || 0,
+ refundable_integral: 0,
+ refund_times: refundList?.length || 0,
+ confirm: e => {
+ this.userMonthlyCardRefundFixed({
+ order_no: orderInfo?.order_no || '',
+ amount: +e.refund_amount || 0,
+ integral: +e.refund_integral || 0
+ });
+ }
+ });
+ },
+ async getRefundInfo(order_no){
+ try{
+ let _refundRes = await this.$store.dispatch('getOrderRefundList', order_no);
+ let _ls = _refundRes?.data?.data?.list || [];
+ this.refundList = _ls;
+ console.log('refundRes', _refundRes);
+ }catch(err){
+ console.warn('getRefundTimes err', err);
+ }
+ },
+ // 年月卡订单-订单退款
+ userMonthlyCardRefundFixed({ order_no = '', amount = 0, integral = 0 }){
+ util.showLoad();
+ server.post({
+ url: ORDER_API.userMonthlyCardRefundFixed,
+ data: { order_no, amount, deduction_integral: integral },
+ isDefaultGet: false
+ })
+ .then(res=>{
+ util.hideLoad();
+ if(res.data.code == 0){
+ util.showNone(res.data.message || '操作成功!');
+ }else{
+ util.showNone(res.data.message || '操作失败!');
+ }
+ })
+ .catch(util.hideLoad)
+ .finally(_=>
+ setTimeout(_=>{
+ this.getCardInfo({
+ id: this.optionsQuery?.id,
+ card_no: this.optionsQuery?.card_no
+
+ })
+ .then(res=>{
+ if(res.order_no)this.getRefundInfo(res.order_no || '');
+ })
+ }, 1200)
+ );
+ },
previewImg(url){
if(!url)return
uni.previewImage({ urls: [ url ] });
@@ -166,14 +262,18 @@ export default {
},
getCardInfo({id, card_no}){
util.showLoad();
- server.get({
+ return server.get({
url: ORDER_API.userMonthlyCardInfo,
data: { id, card_no },
failMsg: '加载失败!'
})
.then(res=>{
util.hideLoad();
- this.orderInfo = res || {};
+ return this.orderInfo = res || {};
+ })
+ .catch(err=>{
+ util.hideLoad();
+ console.warn('getCardInfo err', err);
})
},
toRecord(){
@@ -187,7 +287,7 @@ export default {