huangxw 8 ماه پیش
والد
کامیت
56743eb2cf
2فایلهای تغییر یافته به همراه45 افزوده شده و 4 حذف شده
  1. 11 0
      src/api/cdt/orders/index.ts
  2. 34 4
      src/views/cdt/orders/index.vue

+ 11 - 0
src/api/cdt/orders/index.ts

@@ -84,3 +84,14 @@ export const testOrderConfirmPay = (orderId?: any): any => {
         method: 'get'
     });
 };
+/**
+ * 取消订单
+ * @param query
+ * @returns {*}
+ */
+export const testOrderCancel = (orderId?: any): any => {
+    return request({
+        url: `/dgtmedicine/testOrder/refundPc/${orderId}`,
+        method: 'get'
+    });
+};

+ 34 - 4
src/views/cdt/orders/index.vue

@@ -8,7 +8,7 @@
             <div class="flex1 ov-hd pd-16 d-flex flex-cln">
                 <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="auto">
                     <el-form-item label="订单号:" prop="orderNo">
-                        <el-input v-model="queryParams.orderNo" placeholder="搜订单号" clearable style="width: 180px" @keyup.enter="handleQuery" />
+                        <el-input v-model="queryParams.orderNo" placeholder="搜订单号" clearable style="width: 140px" @keyup.enter="handleQuery" />
                     </el-form-item>
                     <el-form-item label="下单时间段" prop="dateRange">
                         <div class="d-flex" style="width: 180px">
@@ -19,10 +19,15 @@
                         <el-input v-model="queryParams.packageName" placeholder="请输入套餐名称关键字" clearable style="width: 160px" @keyup.enter="handleQuery" />
                     </el-form-item>
                     <el-form-item label="会员等级" prop="vipLevel">
-                        <el-select style="width: 160px" v-model="queryParams.vipLevel" clearable placeholder="请选择会员等级" @change="handleQuery">
+                        <el-select style="width: 140px" v-model="queryParams.vipLevel" clearable placeholder="搜会员等级" @change="handleQuery">
                             <el-option v-for="item in vip_level" :key="item.value" :label="item.label" :value="item.value"></el-option>
                         </el-select>
                     </el-form-item>
+                    <el-form-item label="支付方式" prop="payType">
+                        <el-select style="width: 120px" v-model="queryParams.payType" clearable placeholder="搜支付方式" @change="handleQuery">
+                            <el-option v-for="item in dm_pay_method" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                        </el-select>
+                    </el-form-item>
                     <el-form-item label="买家名称:" prop="cpyName">
                         <el-input v-model="queryParams.cpyName" placeholder="搜买家名称及关键字" clearable style="width: 160px" @keyup.enter="handleQuery" />
                     </el-form-item>
@@ -70,6 +75,10 @@
                                     <span></span>
                                     <el-button @click="confirmPay(row)" text class="small-btn-font" type="primary" size="small">确认付款</el-button>
                                 </template>
+                                <template v-if="['2', '3'].includes(row?.status) && row?.payType === '2'">
+                                    <span></span>
+                                    <el-button @click="cancelOrder(row)" text class="small-btn-font" type="primary" size="small">取消订单</el-button>
+                                </template>
                                 <template v-if="row?.status === '4'">
                                     <span></span>
                                     <el-button @click="clickRowReport(row)" text class="small-btn-font" type="primary" size="small">上传报告</el-button>
@@ -95,7 +104,7 @@
     <uploadInvoiceForm v-if="showInvoice" v-model:show="showInvoice" :info="rowInfo" @success="getList();getTabsCount()"></uploadInvoiceForm>
 </template>
 <script setup name="orders" lang="ts">
-import { testOrderConfirmPay, testOrderList, testOrderListCount } from '@/api/cdt/orders';
+import { testOrderCancel, testOrderConfirmPay, testOrderList, testOrderListCount } from '@/api/cdt/orders';
 import { colNoData } from '@/utils/noData';
 import { DateRange, searchTabs } from '@/views/models';
 import NP from 'number-precision';
@@ -104,7 +113,7 @@ import { debounce } from 'lodash';
 import { selectDictLabel } from '@/utils/ruoyi';
 const router = useRouter();
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { dm_package_type, dm_permit_type, vip_level, test_order_status_bg } = toRefs<any>(proxy?.useDict('dm_package_type', 'dm_permit_type', 'vip_level', 'test_order_status_bg'));
+const { dm_package_type, dm_permit_type, vip_level, test_order_status_bg, dm_pay_method } = toRefs<any>(proxy?.useDict('dm_package_type', 'dm_permit_type', 'vip_level', 'test_order_status_bg', 'dm_pay_method'));
 const queryParams = ref<any>({
     pageNum: 1,
     pageSize: 10,
@@ -186,6 +195,27 @@ const confirmPay = async (row: any) => {
         }
     });
 };
+// 取消订单
+const cancelOrder = async (row: any) => {
+    ElMessageBox({
+        title: '系统提示',
+        cancelButtonText: '我再想想',
+        confirmButtonText: '确认取消',
+        showCancelButton: true,
+        confirmButtonClass: 'el-button--danger',
+        message: h('p', null, [h('div', null, `是否将订单号:${row.orderNo}设置为取消状态?`), h('div', null, [h('span', null, '注意:'), h('span', { style: 'color: #F56C6C' }, '取消订单后,代表该订单已结束,请仔细核对!')])]),
+        callback: async (action: string) => {
+            if (action === 'confirm') {
+                const res = await testOrderCancel(row.id);
+                if (res) {
+                    ElMessage.success('操作成功');
+                    getList();
+                    getTabsCount();
+                }
+            }
+        }
+    });
+}
 onMounted(() => {
     getList();
     getTabsCount()