From 289f3b2ae5b39b63f1c57daa6c771c0214161363 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 09 九月 2025 15:51:13 +0800
Subject: [PATCH] fix: bug

---
 src/views/ServiceChargeManage/ServiceChargeDetail.vue |   77 ++++++++++++++++++++++++++++----------
 1 files changed, 56 insertions(+), 21 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 3770baa..f608798 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -1,5 +1,5 @@
 <template>
-  <LoadingLayout :loading="state.loading">
+  <LoadingLayout :loading="isLoading">
     <AppContainer>
       <ChunkCell title="缁撶畻鍗曡鎯�">
         <ProForm :model="form" ref="formRef" label-width="120px" :is-read="true">
@@ -129,6 +129,7 @@
   QueryFilterItem,
   ProTableQueryFilterBar,
   useFormDialog,
+  XLSXUtils,
 } from '@bole-core/components';
 import { SettlementListColumns } from './constants';
 import { useQuery } from '@tanstack/vue-query';
@@ -169,6 +170,7 @@
   code: '',
   settlementOrderName: '',
   settlementOrderTime: '',
+  settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[],
 });
 
 const BaseState = {
@@ -177,10 +179,10 @@
 
 const state = reactive({ ...BaseState });
 
-onMounted(async () => {
-  await getList();
-  state.loading = false;
-});
+// onMounted(async () => {
+//   await getList();
+//   state.loading = false;
+// });
 
 // const { isLoading } = useQuery({
 //   queryKey: ['taskServices/getSettlementTask', id],
@@ -203,6 +205,50 @@
 //   },
 //   enabled: !!id,
 // });
+const { isLoading } = useQuery({
+  queryKey: ['taskUserServices/getSettlementTaskUsers', id, url],
+  queryFn: async () => {
+    return await taskUserServices.getSettlementTaskUsers(
+      { taskInfoId: id, settlementOrderUrl: url },
+      {
+        showLoading: false,
+      }
+    );
+  },
+  placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult),
+  onSuccess(res) {
+    form.settlementTaskUsers = res?.data ?? [];
+    if (res?.detail) {
+      form.name = res?.detail?.name;
+      form.settlementAmount = res?.detail?.settlementAmount ?? 0;
+      form.actualSettlementAmount = res?.detail?.actualSettlementAmount ?? 0;
+      form.code = res?.detail?.code;
+      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: '閿欒淇℃伅',
+          },
+        });
+      });
+    }
+    getList();
+  },
+  enabled: !!id,
+});
 
 const {
   getDataSource: getList,
@@ -213,13 +259,9 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.APIgetSettlementTaskUsersParams = {
-        taskInfoId: id,
-        settlementOrderUrl: url,
-      };
-      let res = await taskUserServices.getSettlementTaskUsers(params);
+      let list = [...form.settlementTaskUsers];
       if (extraParamState.keywords) {
-        res.data = res.data?.filter((item) => {
+        list = list?.filter((item) => {
           return (
             item.name.includes(extraParamState.keywords) ||
             item.contactPhoneNumber.includes(extraParamState.keywords) ||
@@ -227,21 +269,14 @@
           );
         });
       }
-      if (res?.detail) {
-        form.name = res?.detail?.name;
-        form.settlementAmount = res?.detail?.settlementAmount ?? 0;
-        form.actualSettlementAmount = res?.detail?.actualSettlementAmount ?? 0;
-        form.code = res?.detail?.code;
-        form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
-        form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
-      }
+
       return Promise.resolve({
         pageModel: {
           rows: pageSize,
           page: pageIndex,
-          totalCount: res.data.length,
+          totalCount: list.length,
         },
-        data: paginateList(res.data, pageIndex, pageSize),
+        data: paginateList(list, pageIndex, pageSize),
       });
     } catch (error) {
       console.log('error: ', error);

--
Gitblit v1.9.1