From 9ee573586eeb1240ebd131baa1087bb41c76e776 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 31 十月 2025 15:29:36 +0800
Subject: [PATCH] fix: bug

---
 src/views/ServiceChargeManage/ServiceChargeManage.vue |  132 +++++++++++++++++++++++++++++---------------
 1 files changed, 87 insertions(+), 45 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue
index ceb3bee..b70296a 100644
--- a/src/views/ServiceChargeManage/ServiceChargeManage.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeManage.vue
@@ -47,7 +47,7 @@
         <template #btn>
           <!-- <el-button type="primary" link @click="handleDownloadTemplate()">缁撶畻鍗曟ā鏉�</el-button> -->
           <!-- <el-button type="primary" @click="handleAdd()">涓婁紶缁撶畻鍗�</el-button> -->
-          <!-- <el-button type="primary" @click="handleDownloadTemplate()">瀵煎嚭</el-button> -->
+          <el-button type="primary" @click="handleExport()">瀵煎嚭</el-button>
         </template>
       </ProTableQueryFilterBar>
       <ProTableV2
@@ -120,7 +120,7 @@
   EnumTaskCheckReceiveStatusTextForFilter,
   EnumTaskCheckReceiveStatus,
 } from '@/constants';
-import { downloadFileByUrl, format, setOssFileName } from '@/utils';
+import { downloadFileByUrl, format, setOssFileName, setOSSLink } from '@/utils';
 import * as taskServices from '@/services/api/task';
 import { ModelValueType } from 'element-plus';
 import UploadStatementDialog from './components/UploadStatementDialog.vue';
@@ -128,6 +128,7 @@
 import SettlMethodDialog from './components/SettlMethodDialog.vue';
 import RechargeEnterpriseWalletDialog from './components/RechargeEnterpriseWalletDialog.vue';
 import { Message } from '@bole-core/core';
+import _ from 'lodash';
 
 defineOptions({
   name: 'ServiceChargeManageList',
@@ -160,7 +161,7 @@
   {
     data: {
       enCode: 'settleBtn',
-      name: '缁撶畻',
+      name: '缁撶畻纭',
     },
     emits: {
       onClick: (role: API.GetSettlementTasksQueryResultItem) => openSettleMethodDialog(role),
@@ -169,39 +170,38 @@
       hide: (role: API.GetSettlementTasksQueryResultItem) =>
         !(
           role.settlementStatus === EnumTaskSettlementStatus.Wait &&
-          role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
+          role.auditStatus !== EnumTaskSettlementAuditStatus.Pass
         ),
     },
   },
-  {
-    data: {
-      enCode: 'recallBtn',
-      name: '鎾ゅ洖',
-    },
-    emits: {
-      onClick: (role) => handleRecall(role),
-    },
-    extraProps: {
-      hide: (role: API.GetSettlementTasksQueryResultItem) =>
-        !(
-          role.settlementStatus === EnumTaskSettlementStatus.InProcess &&
-          role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
-        ),
-    },
-  },
-  {
-    data: {
-      enCode: 'settleAuditBtn',
-      name: '缁撶畻瀹℃牳',
-    },
-    emits: {
-      onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id),
-    },
-    extraProps: {
-      hide: (role: API.GetSettlementTasksQueryResultItem) =>
-        role.auditStatus !== EnumTaskSettlementAuditStatus.Wait,
-    },
-  },
+  // {
+  //   data: {
+  //     enCode: 'recallBtn',
+  //     name: '鎾ゅ洖',
+  //   },
+  //   emits: {
+  //     onClick: (role) => handleRecall(role),
+  //   },
+  //   extraProps: {
+  //     hide: (role: API.GetSettlementTasksQueryResultItem) =>
+  //       !(
+  //         role.settlementStatus === EnumTaskSettlementStatus.InProcess &&
+  //         role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
+  //       ),
+  //   },
+  // },
+  // {
+  //   data: {
+  //     enCode: 'settleAuditBtn',
+  //     name: '缁撶畻瀹℃牳',
+  //   },
+  //   emits: {
+  //     onClick: (role: API.GetSettlementTasksQueryResultItem) => goDetail(role.id, 'settlement'),
+  //   },
+  //   extraProps: {
+  //     hide: (role: API.GetSettlementTasksQueryResultItem) => role.auditStatus !== null,
+  //   },
+  // },
   {
     data: {
       enCode: 'detailBtn',
@@ -221,10 +221,14 @@
       name: '瀵煎嚭',
     },
     emits: {
-      onClick: (role) => handleExport(role),
+      onClick: (role) => handleRowExport(role),
     },
     extraProps: {
-      hide: () => true,
+      hide: (role: API.GetSettlementTasksQueryResultItem) =>
+        !(
+          role.settlementStatus !== EnumTaskSettlementStatus.InProcess &&
+          role.settlementStatus !== EnumTaskSettlementStatus.Wait
+        ),
     },
   },
 ]);
@@ -295,6 +299,7 @@
       settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText },
       checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
       auditStatus: { type: 'enum', valueEnum: EnumTaskSettlementAuditStatusText },
+      settlementAccess: { type: 'enum', valueEnum: EnumEnterpriseWalletAccessText },
       actualSettlementAmount: { type: 'money' },
       settlementAmount: { type: 'money' },
       settlementTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
@@ -433,17 +438,18 @@
 });
 
 function openSettleMethodDialog(row: API.GetSettlementTasksQueryResultItem) {
-  handleSettlMethodAdd({
-    id: row.id,
-    settlementAccess: '' as any as EnumEnterpriseWalletAccess,
-  });
+  // handleSettlMethodAdd({
+  //   id: row.id,
+  //   settlementAccess: '' as any as EnumEnterpriseWalletAccess,
+  // });
+  goDetail(row.id, 'settlement');
 }
 
 async function handleSettlMethod() {
-  goDetail(settlMethodEditForm.id, 'settlement', settlMethodEditForm.settlementAccess);
+  goDetail(settlMethodEditForm.id, 'settlement');
 }
 
-function goDetail(id: string, settlement?: string, settlementAccess?: EnumEnterpriseWalletAccess) {
+function goDetail(id: string, settlement?: string) {
   router.push({
     name: 'ServiceChargeDetail',
     params: {
@@ -451,14 +457,26 @@
     },
     query: {
       settlement: settlement ? settlement : '',
-      settlementAccess: settlementAccess ? settlementAccess : '',
+      // settlementAccess: settlementAccess ? settlementAccess : '',
     },
   });
 }
 
-function handleExport(val) {
-  console.log('val: ', val);
-}
+const handleRowExport = _.debounce(
+  async (row: API.GetSettlementTasksQueryResultItem) => {
+    try {
+      let params: API.ExportTaskSettlementOrderRostersCommand = {
+        id: row.id,
+      };
+      let res = await taskServices.exportTaskSettlementOrderRosters(params);
+      if (res) {
+        downloadFileByUrl(setOSSLink(res), `${row.name}-${row.code}`);
+      }
+    } catch (error) {}
+  },
+  1000,
+  { leading: true, trailing: false }
+);
 
 function handleDownloadTemplate() {
   downloadFileByUrl(
@@ -466,4 +484,28 @@
     '缁撶畻鍗曟ā鏉�'
   );
 }
+
+const handleExport = _.debounce(
+  async () => {
+    if (paginationState.total === 0) {
+      Message.warnMessage('娌℃湁鏁版嵁鍙互瀵煎嚭鍝');
+      return;
+    }
+    try {
+      let params: API.ExportTaskSettlementOrdersCommand = {
+        keywords: extraParamState.keywords,
+        checkReceiveStatus: extraParamState.checkReceiveStatus,
+        settlementStatus: extraParamState.settlementStatus,
+        settlementTimeBegin: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+        settlementTimeEnd: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+      };
+      let res = await taskServices.exportTaskSettlementOrders(params);
+      if (res) {
+        downloadFileByUrl(setOSSLink(res));
+      }
+    } catch (error) {}
+  },
+  1000,
+  { leading: true, trailing: false }
+);
 </script>

--
Gitblit v1.9.1