diff --git a/src/pages/order/list.vue b/src/pages/order/list.vue
index 581cf48..bbfd708 100644
--- a/src/pages/order/list.vue
+++ b/src/pages/order/list.vue
@@ -5,7 +5,7 @@ import { routeTo, showNone } from '@/utils/polish';
import { reactive, ref } from 'vue';
import { orderList } from "@/api";
const tab = reactive({
- list: [ {name: '全部'}, {name: '已核销'}, {name: '已退款'}, ],
+ list: [ {name: '全部', val: ''}, { name: '待使用', val: 1 }, { name: '已退款', val: 4 }, ],
idx: 0
});
let loadPage = 1;
@@ -16,9 +16,14 @@ onLoad(() => {
});
onReachBottom(()=>{
- getOrderLs({ page: ++loadPage });
+ let _status = tab.list[tab.idx]?.val ?? '';
+ getOrderLs({ page: ++loadPage, status: _status });
})
-
+function tabChange(data){
+ loadPage = 1;
+ orderLs.value = [];
+ getOrderLs({ status: data.ele.val });
+}
function toOrderDetail(e){
let _qryStr = `brand_id=${e?.brand_id ?? ''}&order_no=${e?.order_no ?? ''}`;
@@ -60,7 +65,7 @@ function order_zh_status(status){
diff --git a/src/subpackage/groupon/components/site/table.vue b/src/subpackage/groupon/components/site/table.vue
index df99c29..e465838 100644
--- a/src/subpackage/groupon/components/site/table.vue
+++ b/src/subpackage/groupon/components/site/table.vue
@@ -33,17 +33,17 @@ const itemClick = function(k, i, j){
_tableCopy[i].items[j]._is_selected = !k?._is_selected;
// 自动勾选连场和起订
// 获取设置场地列表
- const autoSelect = new AutoSelect({
- items: _tableCopy[i].items ?? [],
- index: j,
- timeUnit: 2,
- bookingHour: 3,
- })
- let [ _handleSelectItems, _noticeList ] = autoSelect.getInfo();
+ // const autoSelect = new AutoSelect({
+ // items: _tableCopy[i].items ?? [],
+ // index: j,
+ // timeUnit: 2,
+ // bookingHour: 3,
+ // })
+ // let [ _handleSelectItems, _noticeList ] = autoSelect.getInfo();
- _tableCopy[i].items = _handleSelectItems;
- // 提示弹窗
- nextTick(_=>autoSelect.showModalList(_noticeList || []));
+ // _tableCopy[i].items = _handleSelectItems;
+ // // 提示弹窗
+ // nextTick(_=>autoSelect.showModalList(_noticeList || []));
emits('update:sitetable', _tableCopy);
diff --git a/src/subpackage/groupon/pages/confirm_order/venue.vue b/src/subpackage/groupon/pages/confirm_order/venue.vue
index 93f14e6..aa27e4e 100644
--- a/src/subpackage/groupon/pages/confirm_order/venue.vue
+++ b/src/subpackage/groupon/pages/confirm_order/venue.vue
@@ -49,10 +49,7 @@ function pvc_func(data){
}
function confirmBtn(){
-
let _tVal = ticketInfo.value;
- let _classTags = (venueData.value?.venues ?? []).map(e=>e?._class_tag ?? '');
-
const _query = {
verifyToken: verify_token.value ?? '',
poiId: _tVal?.poi_id ?? '',
@@ -165,7 +162,8 @@ function createBookOrder(data){
>
温馨提示:团购券需一次性使用完,一经使用不退不换
-
+
+
*联系方式:
为了场馆更好地为您服务,请准确填写您的联系方式
diff --git a/src/subpackage/order/api/index.js b/src/subpackage/order/api/index.js
index 9040d81..d85e210 100644
--- a/src/subpackage/order/api/index.js
+++ b/src/subpackage/order/api/index.js
@@ -1,5 +1,11 @@
import server from '@/api/server';
export const orderGet = params => server.post({ url: '/stadium/order/get', ...params }); // 预约订单详情
+export const cancelCheck = params => server.post({ url: '/stadium/order/cancelCheck', ...params }); // 检测预约订单是否可以取消
+export const orderCancel = params => server.post({ url: '/stadium/order/cancel', ...params }); // A我的预约订单-取消预约订单 申请退款
+export const getCreateOrderProxyData = params => server.post({ url: '/pay/douyin/getCreateOrderProxyData', ...params }); // 获取抖音退款信息
+
+
+
diff --git a/src/subpackage/order/components/detail/cancel_modal.vue b/src/subpackage/order/components/detail/cancel_modal.vue
new file mode 100644
index 0000000..9d12fdc
--- /dev/null
+++ b/src/subpackage/order/components/detail/cancel_modal.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+ 取消预约原因
+
+ {{ e.txt }}
+
+ 确认
+
+
+
+
+
\ No newline at end of file
diff --git a/src/subpackage/order/components/detail/contact.vue b/src/subpackage/order/components/detail/contact.vue
index 45e6bb7..776ba2c 100644
--- a/src/subpackage/order/components/detail/contact.vue
+++ b/src/subpackage/order/components/detail/contact.vue
@@ -17,10 +17,11 @@ onLoad(() => {
-
+
+
{{ address ?? '-' }}>
@@ -32,7 +33,8 @@ onLoad(() => {
- 距离23m
+
+
diff --git a/src/subpackage/order/pages/detail.vue b/src/subpackage/order/pages/detail.vue
index 769ac65..4fa0385 100644
--- a/src/subpackage/order/pages/detail.vue
+++ b/src/subpackage/order/pages/detail.vue
@@ -5,22 +5,29 @@ import textLine from "../components/detail/text_line.vue";
import detailGoods from "../components/detail/goods.vue";
import detailVerify from "../components/detail/verify.vue";
import detailContact from "../components/detail/contact.vue";
+import cancelModal from "../components/detail/cancel_modal.vue";
import venueInfoAsync from "@/subpackage/groupon/components/venue_info.vue";
-import { orderGet } from "../api";
+import { orderGet, cancelCheck, orderCancel, getCreateOrderProxyData } from "../api";
import { get_zh_day } from "@/utils";
+import { showLoad, hideLoad, showNone } from "@/utils/polish";
const orderInfo = ref({});
+const cancelModalRef = ref(null);
// order_type 0场地 1/2次卡
onLoad(options => {
+ getOrderInfo({
+ brand_id: options?.brand_id ?? '',
+ order_no: options?.order_no ?? '',
+ });
+});
+
+function getOrderInfo({ brand_id, order_no }){
orderGet({
- data: {
- brand_id: options?.brand_id ?? '',
- order_no: options?.order_no ?? '',
- }
+ data: { brand_id, order_no, }
})
.then(res=>{
orderInfo.value = res?.data ?? {};
})
-});
+}
function previewImg(img){
uni.previewImage({ urls: [ img ] });
@@ -34,7 +41,7 @@ function phoneClick(){
function navClick(){
let _oInfo = orderInfo.value;
- wx.openLocation({
+ uni.openLocation({
latitude: +_oInfo.lat,
longitude: +_oInfo.lng,
name: _oInfo.stadium_name,
@@ -65,7 +72,123 @@ function order_zh_status(status){
return ['未支付','待使用','已使用','已失效','已退款'][status] || '';
}
-
+
+function refundBtn(){
+ console.warn('refundBtn', cancelModalRef.value);
+ cancelModalRef.value.init({
+ successFunc: async reason => {
+ return serverOrderCancel({
+ brand_id: orderInfo.value?.brand_id ?? '',
+ order_no: orderInfo.value?.order_no ?? '',
+ reason
+ });
+ let cCheck = await dyOrderCancelCheck({
+ brand_id: orderInfo.value?.brand_id ?? '',
+ order_no: orderInfo.value?.order_no ?? '',
+ reason
+ });
+ if(cCheck !== 'success')return;
+ dyRefund(reason);
+ }
+ });
+}
+
+async function dyRefund(reason){
+ let _order = orderInfo.value;
+ try{
+ let _refundInfo = await getCancelOrderData(orderInfo.order_no);
+ console.warn('getCancelOrderData --->', _refundInfo)
+ if(!_refundInfo?.sku_list?.length)return;
+ let _skuls = _refundInfo.sku_list
+ let _refundObj = {
+ outOrderNo: _order?.order_no ?? '', // 外部商户订单号
+ refundInfo: { // 退款信息
+ reason: [ reason ] // 退款理由(总数不能超过 20 个,单个退款理由字数不能超过 60 个)
+ },
+ skuList: _skuls.map(el=>({
+ skuId: el.sku_id,
+ skuType: el.sku_id_type,
+ quantity: el.quantity,
+ })),
+ callbackData: {
+ order_entry_schema: {
+ path: 'subpackage/order/pages/detail',
+ params: {
+ brand_id: _order?.brand_id ?? '',
+ order_no: _order?.order_no ?? '',
+ }
+ }
+ },
+ success: rRes =>{
+ console.warn('申请退款成功! dyRefund --->', rRes);
+ // setTimeout(_=>{
+ // this.getDetail({
+ // brand_id: orderInfo.brand_id || '',
+ // order_no: orderInfo.order_no || '',
+ // })
+ // }, 1000)
+ serverOrderCancel({
+ brand_id: _order?.brand_id ?? '',
+ order_no: _order?.order_no ?? '',
+ reason
+ });
+
+ },
+ fail: fErr => {
+ console.warn('申请退款失败 dyRefund --->', fErr);
+ showNone(fErr.errMsg || '申请退款失败!稍后重试')
+ // this.orderCancelServer({
+ // orderInfo,
+ // reason: _reason
+ // });
+ }
+ };
+ console.warn('applyRefund obj --->', _refundObj)
+ tt.applyRefund(_refundObj);
+ }catch(err){
+
+ }
+
+}
+// 抖音订单取消检测
+function dyOrderCancelCheck({ brand_id, order_no, reason }){
+ return cancelCheck({
+ data: { brand_id, order_no, reason, }
+ })
+ .then(res=>{
+ console.warn('dyOrderCancelCheck--->', res);
+ if(res?.code === 0)return 'success';
+ })
+}
+// 获取退款配置信息
+function getCancelOrderData(order_no){
+ return getCreateOrderProxyData({
+ data: { order_no }
+ })
+ .then(res=>{
+ if(res?.code === 0)return res?.data ?? {};
+ })
+}
+// 服务端退款
+function serverOrderCancel({ brand_id, order_no, reason }){
+ return orderCancel({
+ data: { brand_id, order_no, reason, }
+ })
+ .then(res=>{
+ if(res?.code === 0){
+ showNone(res?.message ?? '操作成功!');
+ setTimeout(_=>{
+ getOrderInfo({
+ brand_id,
+ order_no
+ });
+ }, 1200);
+ }
+ })
+}
+
+
+
@@ -157,9 +280,11 @@ function order_zh_status(status){
>
- 申请退款
+
+ 申请退款
+