From c41e0d0abff2a4b7b22ea1e276aa18493359c9c8 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 16:34:01 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdminBClient

---
 src/views/ServiceChargeManage/ServiceChargeDetail.vue |  116 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 81 insertions(+), 35 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index dd0843d..bd8b274 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -1,6 +1,6 @@
 <template>
   <LoadingLayout :loading="isLoading">
-    <AppContainer>
+    <AppScrollContainer>
       <ChunkCell title="缁撶畻鍗曡鎯�">
         <ProForm :model="form" ref="formRef" label-width="120px" :is-read="true">
           <ProFormCol>
@@ -84,22 +84,32 @@
           :auto-height="false"
           ref="proTable"
           :tableProps="{
-            maxHeight: '250px',
+            maxHeight: '400px',
           }"
         >
         </ProTableV2>
         <div class="chuck-add-or-edit-actions">
           <el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button>
           <el-button
-            v-if="isSettlement"
+            v-if="
+              isSettlement &&
+              (!form.auditStatus || form.auditStatus !== EnumTaskSettlementAuditStatus.Pass)
+            "
             class="chuck-add-or-edit-actions"
             type="primary"
             @click="handleSubmit()"
-            >缁撶畻</el-button
+            >缁撶畻鐢宠</el-button
+          >
+          <el-button
+            v-if="isSettlement && form.auditStatus === EnumTaskSettlementAuditStatus.Pass"
+            class="chuck-add-or-edit-actions"
+            type="primary"
+            @click="handleSubmit()"
+            >鎻愪氦缁撶畻</el-button
           >
         </div>
       </ChunkCell>
-    </AppContainer>
+    </AppScrollContainer>
     <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
     <SettleDetailDialog v-bind="dialogSettleProps" />
   </LoadingLayout>
@@ -108,6 +118,7 @@
 import {
   LoadingLayout,
   AppContainer,
+  AppScrollContainer,
   ChunkCell,
   ProForm,
   ProFormItemV2,
@@ -134,7 +145,15 @@
 import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
 import SettleDetailDialog from './components/SettleDetailDialog.vue';
 import { Message } from '@bole-core/core';
-import { downloadFile, paginateList, setOssFileName, toThousand } from '@/utils';
+import { SettlementReceiveStatusText, EnumTaskSettlementAuditStatus } from '@/constants';
+import {
+  downloadFile,
+  downloadFileByUrl,
+  paginateList,
+  setOssFileName,
+  setOSSLink,
+  toThousand,
+} from '@/utils';
 import _ from 'lodash';
 
 defineOptions({
@@ -152,12 +171,15 @@
     emits: {
       onClick: (role) => openDialog(role),
     },
+    extraProps: {
+      hide: () => !isSettlement.value,
+    },
   },
 ]);
 const route = useRoute();
 const id = (route.params.id as string) ?? '';
 const settlement = (route.query.settlement as string) ?? '';
-
+// const settlementAccess = route.query.settlementAccess ?? '';
 const isSettlement = computed(() => !!settlement);
 
 const form = reactive({
@@ -170,6 +192,11 @@
   settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[],
 
   settlementUrl: [] as UploadUserFile[],
+
+  settlementAccess: '' as any as EnumEnterpriseWalletAccess,
+  isSettlement: isSettlement.value,
+
+  auditStatus: '' as any as EnumTaskSettlementAuditStatus,
 });
 
 const BaseState = {
@@ -178,15 +205,21 @@
 
 const state = reactive({ ...BaseState });
 
-const { isLoading } = useQuery({
-  queryKey: ['taskUserServices/getSettlementTaskUsers', id],
+const { isLoading, refetch } = useQuery({
+  queryKey: ['taskUserServices/getSettlementTaskUsers', id, toRef(form, 'isSettlement')],
   queryFn: async () => {
-    return await taskUserServices.getSettlementTaskUsers(
-      { id: id },
-      {
-        showLoading: false,
-      }
-    );
+    let params: API.APIgetSettlementTaskUsersParams = {
+      id: id,
+    };
+    // if (form.settlementAccess) {
+    //   params.settlementAccess = Number(form.settlementAccess);
+    // }
+    if (form.isSettlement) {
+      params.isImport = true;
+    }
+    return await taskUserServices.getSettlementTaskUsers(params, {
+      showLoading: false,
+    });
   },
   placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult),
   onSuccess(res) {
@@ -196,8 +229,10 @@
       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 ?? '';
+      form.settlementAccess = res?.detail?.settlementAccess;
+      form.auditStatus = res?.detail?.auditStatus;
+      // form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
+      // form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
     }
     // if (res?.errors?.length > 0) {
     //   Message.tipMessage('瀛樺湪瀵煎叆閿欒鐨勬暟鎹紝鏄惁瀵煎嚭锛�').then(() => {
@@ -265,6 +300,7 @@
       settlementTime: { type: 'date' },
       settlementAmount: { type: 'money' },
       actualSettlementAmount: { type: 'money' },
+      settlementReceiveStatus: { type: 'enum', valueEnum: SettlementReceiveStatusText },
     },
   }
 );
@@ -277,7 +313,9 @@
     actualSettlementAmount: null as number,
     receiveAccount: '',
     bank: '',
-    bankBranch: '',
+    totalWorkHours: null as number,
+    settlementAccess: form.settlementAccess,
+    // bankBranch: '',
   },
 });
 
@@ -289,7 +327,9 @@
       actualSettlementAmount: row?.actualSettlementAmount ?? null,
       receiveAccount: row?.receiveAccount ?? '',
       bank: row?.bank ?? '',
-      bankBranch: row?.bankBranch ?? '',
+      totalWorkHours: row?.totalWorkHours ?? null,
+      settlementAccess: form.settlementAccess,
+      // bankBranch: row?.bankBranch ?? '',
     });
   }
 }
@@ -302,11 +342,14 @@
       actualSettlementAmount: editForm.actualSettlementAmount,
       receiveAccount: editForm.receiveAccount,
       bank: editForm.bank,
-      bankBranch: editForm.bankBranch,
+      totalWorkHours: editForm.totalWorkHours,
+      // bankBranch: editForm.bankBranch,
     };
     let res = await taskServices.editTaskSettlementOrderRoster(params);
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
+      form.isSettlement = false;
+      refetch();
       getList(paginationState.pageIndex);
     }
   } catch (error) {}
@@ -327,6 +370,8 @@
     let res = await taskServices.importTaskSettlementOrderRosters(params);
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
+      form.isSettlement = false;
+      refetch();
       getList(paginationState.pageIndex);
       if (res?.errors?.length > 0) {
         Message.tipMessage('瀛樺湪瀵煎叆閿欒鐨勬暟鎹紝鏄惁瀵煎嚭锛�').then(() => {
@@ -336,12 +381,12 @@
             workbookHeaderMap: {
               name: '濮撳悕',
               identity: '韬唤璇佸彿',
-              taskName: '浠诲姟鍚嶇О',
+              contactPhoneNumber: '鎵嬫満鍙�',
+              bank: '鎵�灞為摱琛�',
+              bankBranch: '鎵�灞炴敮琛�',
+              receiveAccount: '鏀舵璐︽埛',
               settlementAmount: '缁撶畻閲戦',
               actualSettlementAmount: '瀹炲彂閲戦',
-              receiveAccount: '鏀舵璐︽埛',
-              bank: '鎵�灞為摱琛�',
-              bankBranch: '寮�鎴锋敮琛屽悕绉�',
               errorMessage: '閿欒淇℃伅',
             },
           });
@@ -361,6 +406,7 @@
     code: form.code,
     settlementUserCount: form.settlementTaskUsers.length,
     actualSettlementAmount: form.actualSettlementAmount,
+    settlementAccess: form.settlementAccess,
   });
 }
 
@@ -376,6 +422,7 @@
     code: '',
     settlementUserCount: 0,
     actualSettlementAmount: 0,
+    settlementAccess: '' as any as EnumEnterpriseWalletAccess,
   },
 });
 
@@ -399,22 +446,17 @@
 
 const handleExport = _.debounce(
   async () => {
-    // if (paginationState.total === 0) {
-    //   Message.warnMessage('娌℃湁鏁版嵁鍙互瀵煎嚭鍝');
-    //   return;
-    // }
+    if (paginationState.total === 0) {
+      Message.warnMessage('娌℃湁鏁版嵁鍙互瀵煎嚭鍝');
+      return;
+    }
     try {
       let params: API.ExportTaskSettlementOrderRostersCommand = {
         id: id,
       };
-      let res = await taskServices.exportTaskSettlementOrderRosters(params, {
-        responseType: 'blob',
-        getResponse: true,
-      });
+      let res = await taskServices.exportTaskSettlementOrderRosters(params);
       if (res) {
-        console.log('res: ', res);
-        //@ts-ignore
-        downloadFile(res?.data, `${form.name}-${form.code}`, 'xlsx');
+        downloadFileByUrl(setOSSLink(res), `${form.name}-${form.code}`);
       }
     } catch (error) {}
   },
@@ -444,6 +486,10 @@
     }
   }
 }
+
+.chuck-add-or-edit-actions {
+  margin-bottom: 20px;
+}
 </style>
 <style lang="scss">
 .text-over-tooltip-content {

--
Gitblit v1.9.1