From b8c0efefec84532e2d2ea9115e8a85e1b7c62f64 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期六, 01 十一月 2025 14:12:54 +0800
Subject: [PATCH] fix: bug

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

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 8ec892d..59b4f1f 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>
@@ -61,7 +61,7 @@
             </QueryFilterItem>
           </template>
           <template #btn v-if="isSettlement">
-            <BlFileUpload
+            <!-- <BlFileUpload
               v-model:file-url="form.settlementUrl"
               ref="uploadRef"
               :showTip="false"
@@ -73,7 +73,7 @@
               accept="xlsx,xls"
             >
               <el-button text type="primary" class="pro-table-operation-btn">瀵煎叆</el-button>
-            </BlFileUpload>
+            </BlFileUpload> -->
             <el-button type="primary" link @click="handleExport()">瀵煎嚭</el-button>
           </template>
         </ProTableQueryFilterBar>
@@ -84,32 +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
+          <!-- <el-button
             v-if="
               isSettlement &&
-              (!!form.auditStatus || form.auditStatus === EnumTaskSettlementAuditStatus.Fail)
+              (!form.auditStatus || form.auditStatus !== EnumTaskSettlementAuditStatus.Pass)
             "
             class="chuck-add-or-edit-actions"
             type="primary"
             @click="handleSubmit()"
             >缁撶畻鐢宠</el-button
-          >
+          > -->
           <el-button
-            v-if="isSettlement && form.auditStatus === EnumTaskSettlementAuditStatus.Pass"
+            v-if="isSettlement"
             class="chuck-add-or-edit-actions"
             type="primary"
             @click="handleSubmit()"
-            >鎻愪氦缁撶畻</el-button
+            >缁撶畻纭</el-button
           >
         </div>
       </ChunkCell>
-    </AppContainer>
+    </AppScrollContainer>
     <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
     <SettleDetailDialog v-bind="dialogSettleProps" />
   </LoadingLayout>
@@ -118,6 +118,7 @@
 import {
   LoadingLayout,
   AppContainer,
+  AppScrollContainer,
   ChunkCell,
   ProForm,
   ProFormItemV2,
@@ -196,6 +197,10 @@
   isSettlement: isSettlement.value,
 
   auditStatus: '' as any as EnumTaskSettlementAuditStatus,
+
+  timeoutServiceFee: 0,
+
+  supplierEnterpriseId: '',
 });
 
 const BaseState = {
@@ -230,6 +235,8 @@
       form.code = res?.detail?.code;
       form.settlementAccess = res?.detail?.settlementAccess;
       form.auditStatus = res?.detail?.auditStatus;
+      form.timeoutServiceFee = res?.detail?.timeoutServiceFee ?? 0;
+      form.supplierEnterpriseId = res?.detail?.supplierEnterpriseId;
       // form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
       // form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
     }
@@ -300,6 +307,13 @@
       settlementAmount: { type: 'money' },
       actualSettlementAmount: { type: 'money' },
       settlementReceiveStatus: { type: 'enum', valueEnum: SettlementReceiveStatusText },
+      serviceFee: { type: 'money' },
+      timeoutHours: {
+        formatter: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+          row.timeoutHours ? `${row.timeoutHours}灏忔椂` : '',
+      },
+      timeoutFee: { type: 'money' },
+      otherFee: { type: 'money' },
     },
   }
 );
@@ -312,9 +326,15 @@
     actualSettlementAmount: null as number,
     receiveAccount: '',
     bank: '',
-    totalWorkHours: null as number,
+    // totalWorkHours: null as number,
     settlementAccess: form.settlementAccess,
     // bankBranch: '',
+    timeoutServiceFee: 0,
+    serviceFee: null as number,
+    timeoutHours: null as number,
+    timeoutFee: null as number,
+    otherFee: null as number,
+    remark: '',
   },
 });
 
@@ -326,23 +346,36 @@
       actualSettlementAmount: row?.actualSettlementAmount ?? null,
       receiveAccount: row?.receiveAccount ?? '',
       bank: row?.bank ?? '',
-      totalWorkHours: row?.totalWorkHours ?? null,
+      // totalWorkHours: row?.totalWorkHours ?? null,
       settlementAccess: form.settlementAccess,
       // bankBranch: row?.bankBranch ?? '',
+      timeoutServiceFee: form.timeoutServiceFee,
+      serviceFee: row?.serviceFee ?? 0,
+      timeoutHours: row?.timeoutHours ?? null,
+      timeoutFee: row?.timeoutFee ?? null,
+      otherFee: row?.otherFee ?? null,
+      remark: row?.remark ?? '',
     });
   }
 }
 
 async function handleAddOrEdit() {
   try {
+    const settlementAmount =
+      (editForm.timeoutFee ?? 0) + (editForm.serviceFee ?? 0) + (editForm.otherFee ?? 0);
     let params: API.EditTaskSettlementOrderRosterCommand = {
       id: editForm.id,
-      settlementAmount: editForm.settlementAmount,
+      settlementAmount: settlementAmount,
       actualSettlementAmount: editForm.actualSettlementAmount,
       receiveAccount: editForm.receiveAccount,
       bank: editForm.bank,
-      totalWorkHours: editForm.totalWorkHours,
+      // totalWorkHours: editForm.totalWorkHours,
       // bankBranch: editForm.bankBranch,
+      serviceFee: editForm.serviceFee,
+      timeoutHours: editForm.timeoutHours,
+      timeoutFee: editForm.timeoutFee,
+      otherFee: editForm.otherFee,
+      remark: editForm.remark,
     };
     let res = await taskServices.editTaskSettlementOrderRoster(params);
     if (res) {
@@ -384,6 +417,7 @@
               bank: '鎵�灞為摱琛�',
               bankBranch: '鎵�灞炴敮琛�',
               receiveAccount: '鏀舵璐︽埛',
+              totalWorkHours: '绱宸ユ椂锛堝皬鏃讹級',
               settlementAmount: '缁撶畻閲戦',
               actualSettlementAmount: '瀹炲彂閲戦',
               errorMessage: '閿欒淇℃伅',
@@ -405,7 +439,9 @@
     code: form.code,
     settlementUserCount: form.settlementTaskUsers.length,
     actualSettlementAmount: form.actualSettlementAmount,
+    settlementAmount: form.settlementAmount,
     settlementAccess: form.settlementAccess,
+    supplierEnterpriseId: form.supplierEnterpriseId,
   });
 }
 
@@ -420,13 +456,39 @@
     name: '',
     code: '',
     settlementUserCount: 0,
+    settlementAmount: 0,
     actualSettlementAmount: 0,
     settlementAccess: '' as any as EnumEnterpriseWalletAccess,
+    supplierEnterpriseId: '',
   },
 });
 
 async function handleSettle() {
-  sureTaskSettlementOrder();
+  auditTaskSettlement();
+}
+
+async function auditTaskSettlement() {
+  try {
+    let params: API.AuditTaskSettlementCommand = {
+      id: id,
+      auditStatus: EnumTaskSettlementAuditStatus.Pass,
+      rosters: form.settlementTaskUsers.map((item) => ({
+        id: item.id,
+        serviceFee: item.serviceFee,
+        timeoutHours: item.timeoutHours,
+        timeoutFee: item.timeoutFee,
+        otherFee: item.otherFee,
+        remark: item.remark,
+        settlementAmount: item.settlementAmount,
+      })),
+    };
+    let res = await taskServices.auditTaskSettlement(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      eventContext.emit('sureTaskSettlementOrder');
+      handleBack();
+    }
+  } catch (error) {}
 }
 
 async function sureTaskSettlementOrder() {
@@ -485,6 +547,10 @@
     }
   }
 }
+
+.chuck-add-or-edit-actions {
+  margin-bottom: 20px;
+}
 </style>
 <style lang="scss">
 .text-over-tooltip-content {

--
Gitblit v1.9.1