From 01e7edf41912e62d4a1b5a137d30cebf5609303d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 16 九月 2025 15:06:36 +0800
Subject: [PATCH] Merge branch 'dev-v1.1' of http://120.26.58.240:8888/r/flexJobAdminBClient into dev-v1.1

---
 src/views/ServiceChargeManage/ServiceChargeDetail.vue |  175 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 120 insertions(+), 55 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 72b74e5..dd0843d 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -74,13 +74,13 @@
             >
               <el-button text type="primary" class="pro-table-operation-btn">瀵煎叆</el-button>
             </BlFileUpload>
-            <el-button type="primary" link @click="handleDownload()">瀵煎嚭</el-button>
+            <el-button type="primary" link @click="handleExport()">瀵煎嚭</el-button>
           </template>
         </ProTableQueryFilterBar>
         <ProTableV2
           v-bind="proTableProps"
           :columns="SettlementListColumns"
-          :show-operation-column="false"
+          :operationBtns="operationBtns"
           :auto-height="false"
           ref="proTable"
           :tableProps="{
@@ -94,7 +94,7 @@
             v-if="isSettlement"
             class="chuck-add-or-edit-actions"
             type="primary"
-            @click="handleSubmit"
+            @click="handleSubmit()"
             >缁撶畻</el-button
           >
         </div>
@@ -134,7 +134,8 @@
 import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
 import SettleDetailDialog from './components/SettleDetailDialog.vue';
 import { Message } from '@bole-core/core';
-import { paginateList, setOssFileName, toThousand } from '@/utils';
+import { downloadFile, paginateList, setOssFileName, toThousand } from '@/utils';
+import _ from 'lodash';
 
 defineOptions({
   name: 'ServiceChargeDetail',
@@ -155,10 +156,9 @@
 ]);
 const route = useRoute();
 const id = (route.params.id as string) ?? '';
-const url = (route.query.url as string) ?? '';
 const settlement = (route.query.settlement as string) ?? '';
 
-const isSettlement = computed(() => !!url || !!settlement);
+const isSettlement = computed(() => !!settlement);
 
 const form = reactive({
   name: '',
@@ -179,10 +179,10 @@
 const state = reactive({ ...BaseState });
 
 const { isLoading } = useQuery({
-  queryKey: ['taskUserServices/getSettlementTaskUsers', id, url],
+  queryKey: ['taskUserServices/getSettlementTaskUsers', id],
   queryFn: async () => {
     return await taskUserServices.getSettlementTaskUsers(
-      { taskInfoId: id, settlementOrderUrl: url },
+      { id: id },
       {
         showLoading: false,
       }
@@ -199,25 +199,25 @@
       form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
       form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
     }
-    if (res?.errors?.length > 0) {
-      Message.tipMessage('瀛樺湪瀵煎叆閿欒鐨勬暟鎹紝鏄惁瀵煎嚭锛�').then(() => {
-        XLSXUtils.exportToXLSX({
-          workbookDataList: res.errors,
-          fileName: '缁撶畻瀵煎叆-閿欒鏁版嵁',
-          workbookHeaderMap: {
-            name: '濮撳悕',
-            identity: '韬唤璇佸彿',
-            taskName: '浠诲姟鍚嶇О',
-            settlementAmount: '缁撶畻閲戦',
-            actualSettlementAmount: '瀹炲彂閲戦',
-            receiveAccount: '鏀舵璐︽埛',
-            bank: '鎵�灞為摱琛�',
-            bankBranch: '寮�鎴锋敮琛屽悕绉�',
-            errorMessage: '閿欒淇℃伅',
-          },
-        });
-      });
-    }
+    // if (res?.errors?.length > 0) {
+    //   Message.tipMessage('瀛樺湪瀵煎叆閿欒鐨勬暟鎹紝鏄惁瀵煎嚭锛�').then(() => {
+    //     XLSXUtils.exportToXLSX({
+    //       workbookDataList: res.errors,
+    //       fileName: '缁撶畻瀵煎叆-閿欒鏁版嵁',
+    //       workbookHeaderMap: {
+    //         name: '濮撳悕',
+    //         identity: '韬唤璇佸彿',
+    //         taskName: '浠诲姟鍚嶇О',
+    //         settlementAmount: '缁撶畻閲戦',
+    //         actualSettlementAmount: '瀹炲彂閲戦',
+    //         receiveAccount: '鏀舵璐︽埛',
+    //         bank: '鎵�灞為摱琛�',
+    //         bankBranch: '寮�鎴锋敮琛屽悕绉�',
+    //         errorMessage: '閿欒淇℃伅',
+    //       },
+    //     });
+    //   });
+    // }
     getList();
   },
   enabled: !!id,
@@ -273,45 +273,84 @@
   onConfirm: handleAddOrEdit,
   defaultFormParams: {
     id: '',
-    name: '',
+    settlementAmount: null as number,
+    actualSettlementAmount: null as number,
+    receiveAccount: '',
+    bank: '',
+    bankBranch: '',
   },
 });
 
-function openDialog(row?) {
+function openDialog(row?: API.GetSettlementTaskUsersQueryResultItem) {
   if (row) {
     handleEdit({
       id: row?.id,
-      name: row?.name,
+      settlementAmount: row?.settlementAmount ?? null,
+      actualSettlementAmount: row?.actualSettlementAmount ?? null,
+      receiveAccount: row?.receiveAccount ?? '',
+      bank: row?.bank ?? '',
+      bankBranch: row?.bankBranch ?? '',
     });
   }
 }
 
-async function handleAddOrEdit() {}
-
-async function sureTaskSettlementOrder() {
+async function handleAddOrEdit() {
   try {
-    let params: API.SureTaskSettlementOrderCommand = {
-      taskInfoId: id,
-      settlementOrderUrl: url,
-      taskInfoUsers:
-        proTableProps.value.tableData?.length > 0
-          ? proTableProps.value.tableData.map(
-              (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser)
-            )
-          : [],
+    let params: API.EditTaskSettlementOrderRosterCommand = {
+      id: editForm.id,
+      settlementAmount: editForm.settlementAmount,
+      actualSettlementAmount: editForm.actualSettlementAmount,
+      receiveAccount: editForm.receiveAccount,
+      bank: editForm.bank,
+      bankBranch: editForm.bankBranch,
     };
-    let res = await taskServices.sureTaskSettlementOrder(params);
+    let res = await taskServices.editTaskSettlementOrderRoster(params);
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
-      eventContext.emit('sureTaskSettlementOrder');
-      handleBack();
+      getList(paginationState.pageIndex);
     }
   } catch (error) {}
 }
 
 function handleUploadSuccess(response: UploadUserFile & { file: File & { uid: number } }) {
   if (response.path) {
-    // sureTaskSettlementOrder();
+    importTaskSettlementOrderRosters(response.path);
+  }
+}
+
+async function importTaskSettlementOrderRosters(url: string) {
+  try {
+    let params: API.ImportTaskSettlementOrderRostersCommand = {
+      id: id,
+      url: url,
+    };
+    let res = await taskServices.importTaskSettlementOrderRosters(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+      if (res?.errors?.length > 0) {
+        Message.tipMessage('瀛樺湪瀵煎叆閿欒鐨勬暟鎹紝鏄惁瀵煎嚭锛�').then(() => {
+          XLSXUtils.exportToXLSX({
+            workbookDataList: res.errors,
+            fileName: '缁撶畻瀵煎叆-閿欒鏁版嵁',
+            workbookHeaderMap: {
+              name: '濮撳悕',
+              identity: '韬唤璇佸彿',
+              taskName: '浠诲姟鍚嶇О',
+              settlementAmount: '缁撶畻閲戦',
+              actualSettlementAmount: '瀹炲彂閲戦',
+              receiveAccount: '鏀舵璐︽埛',
+              bank: '鎵�灞為摱琛�',
+              bankBranch: '寮�鎴锋敮琛屽悕绉�',
+              errorMessage: '閿欒淇℃伅',
+            },
+          });
+        });
+      }
+    }
+  } catch (error) {
+  } finally {
+    form.settlementUrl = [] as UploadUserFile[];
   }
 }
 
@@ -341,21 +380,47 @@
 });
 
 async function handleSettle() {
+  sureTaskSettlementOrder();
+}
+
+async function sureTaskSettlementOrder() {
   try {
     let params: API.SureTaskSettlementCommand = {
-      taskInfoId: settleEditForm.id,
+      taskInfoId: id,
     };
-    console.log('params: ', params);
-    // let res = await taskServices.sureTaskSettlement(params);
-    // if (res) {
-    //   Message.successMessage('鎿嶄綔鎴愬姛');
-    //   eventContext.emit('sureTaskSettlementOrder');
-    //   handleBack();
-    // }
+    let res = await taskServices.sureTaskSettlement(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      eventContext.emit('sureTaskSettlementOrder');
+      handleBack();
+    }
   } catch (error) {}
 }
 
-function handleDownload() {}
+const handleExport = _.debounce(
+  async () => {
+    // if (paginationState.total === 0) {
+    //   Message.warnMessage('娌℃湁鏁版嵁鍙互瀵煎嚭鍝');
+    //   return;
+    // }
+    try {
+      let params: API.ExportTaskSettlementOrderRostersCommand = {
+        id: id,
+      };
+      let res = await taskServices.exportTaskSettlementOrderRosters(params, {
+        responseType: 'blob',
+        getResponse: true,
+      });
+      if (res) {
+        console.log('res: ', res);
+        //@ts-ignore
+        downloadFile(res?.data, `${form.name}-${form.code}`, 'xlsx');
+      }
+    } catch (error) {}
+  },
+  1000,
+  { leading: true, trailing: false }
+);
 
 function handleBack() {
   closeViewPush(route, {

--
Gitblit v1.9.1