From b635695521d03fb15e90c400cdd2f9779adb73b4 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 31 十月 2025 09:59:10 +0800
Subject: [PATCH] feat: 1.3

---
 src/views/ServiceChargeManage/ServiceChargeManage.vue |   55 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue
index f172b46..1582a0d 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
@@ -121,7 +121,7 @@
   EnumTaskCheckReceiveStatus,
   EnumEnterpriseWalletAccessText,
 } 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';
@@ -129,6 +129,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',
@@ -215,10 +216,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
+        ),
     },
   },
 ]);
@@ -452,9 +457,21 @@
   });
 }
 
-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(
@@ -462,4 +479,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