From f251855688664c719801a535221df5876208fdbc Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 13 十一月 2025 16:13:37 +0800
Subject: [PATCH] fix: bug

---
 src/views/ServiceChargeManage/ServiceChargeDetail.vue |   83 +++++++++++++++++++++++++++++------------
 1 files changed, 58 insertions(+), 25 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index d7df477..b4503cb 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -74,12 +74,18 @@
             >
               <el-button text type="primary" class="pro-table-operation-btn">瀵煎叆</el-button>
             </BlFileUpload> -->
-            <el-button type="primary" link @click="handleExport()">瀵煎嚭</el-button>
+            <el-button
+              v-if="checkSubModuleItemShow('pageButton', 'exportBtn')"
+              type="primary"
+              link
+              @click="handleExport()"
+              >瀵煎嚭</el-button
+            >
           </template>
         </ProTableQueryFilterBar>
         <ProTableV2
           v-bind="proTableProps"
-          :columns="SettlementListColumns"
+          :columns="column"
           :operationBtns="operationBtns"
           :auto-height="false"
           ref="proTable"
@@ -90,7 +96,7 @@
         </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.Pass)
@@ -98,10 +104,10 @@
             class="chuck-add-or-edit-actions"
             type="primary"
             @click="handleSubmit()"
-            >缁撶畻鐢宠</el-button
-          > -->
+            >缁撶畻纭</el-button
+          >
           <el-button
-            v-if="isSettlement"
+            v-if="isSettlement && form.auditStatus === EnumTaskSettlementAuditStatus.Pass"
             class="chuck-add-or-edit-actions"
             type="primary"
             @click="handleSubmit()"
@@ -139,7 +145,6 @@
   BlFileUpload,
   UploadUserFile,
 } from '@bole-core/components';
-import { SettlementListColumns } from './constants';
 import { useQuery } from '@tanstack/vue-query';
 import * as taskServices from '@/services/api/task';
 import * as taskUserServices from '@/services/api/taskUser';
@@ -164,28 +169,22 @@
 
 const { closeViewPush } = useRouteView();
 const eventContext = useGlobalEventContext();
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+  editBtn: {
     emits: {
       onClick: (role) => openDialog(role),
     },
     extraProps: {
       hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
         !(
-          form.settlementStatus === EnumTaskSettlementStatus.Fail ||
-          form.settlementStatus === EnumTaskSettlementStatus.Part
+          (row.settlementReceiveStatus === SettlementReceiveStatus.Refunded &&
+            form.auditStatus === EnumTaskSettlementAuditStatus.Pass) ||
+          form.auditStatus === EnumTaskSettlementAuditStatus.Wait
         ),
     },
   },
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '閲嶆柊缁撶畻',
-    },
+  reSettleBtn: {
     emits: {
       onClick: (role) => againSureTaskSettlementOrderRoster(role),
     },
@@ -194,7 +193,11 @@
         row.settlementReceiveStatus !== SettlementReceiveStatus.Refunded,
     },
   },
-]);
+};
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+  operationBtnMap,
+});
+
 const route = useRoute();
 const id = (route.params.id as string) ?? '';
 const settlement = (route.query.settlement as string) ?? '';
@@ -463,13 +466,19 @@
 }
 
 function handleSubmit() {
+  let actualList = form.settlementTaskUsers.filter((x) => x.actualSettlementAmount > 0);
+  const actualSettlementAmount = actualList.reduce(
+    (pre, cur) => pre + cur.actualSettlementAmount,
+    0
+  );
+  const settlementAmount = actualList.reduce((pre, cur) => pre + cur.settlementAmount, 0);
   handleSettleEdit({
     id: id,
     name: form.name,
     code: form.code,
-    settlementUserCount: form.settlementTaskUsers.length,
-    actualSettlementAmount: form.actualSettlementAmount,
-    settlementAmount: form.settlementAmount,
+    settlementUserCount: actualList.length,
+    actualSettlementAmount: actualSettlementAmount,
+    settlementAmount: settlementAmount,
     settlementAccess: form.settlementAccess,
   });
 }
@@ -492,7 +501,31 @@
 });
 
 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() {

--
Gitblit v1.9.1