From a23afdffd8fbcf17f1ca270f865be6907040058d Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 11 十一月 2025 14:37:45 +0800
Subject: [PATCH] fix: bug

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

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 21a8b34..b8bbe5d 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -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>
@@ -90,7 +90,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)
@@ -99,9 +99,9 @@
             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()"
@@ -112,6 +112,7 @@
     </AppScrollContainer>
     <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
     <SettleDetailDialog v-bind="dialogSettleProps" />
+    <ResettleEditDialog v-bind="dialogResettleProps" />
   </LoadingLayout>
 </template>
 <script setup lang="ts">
@@ -144,6 +145,7 @@
 import * as taskUserServices from '@/services/api/taskUser';
 import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
 import SettleDetailDialog from './components/SettleDetailDialog.vue';
+import ResettleEditDialog from './components/ResettleEditDialog.vue';
 import { Message } from '@bole-core/core';
 import { SettlementReceiveStatusText, EnumTaskSettlementAuditStatus } from '@/constants';
 import {
@@ -172,7 +174,21 @@
       onClick: (role) => openDialog(role),
     },
     extraProps: {
-      hide: () => !isSettlement.value,
+      hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+        row.settlementReceiveStatus !== SettlementReceiveStatus.Refunded,
+    },
+  },
+  {
+    data: {
+      enCode: 'editBtn',
+      name: '閲嶆柊缁撶畻',
+    },
+    emits: {
+      onClick: (role) => againSureTaskSettlementOrderRoster(role),
+    },
+    extraProps: {
+      hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+        row.settlementReceiveStatus !== SettlementReceiveStatus.Refunded,
     },
   },
 ]);
@@ -199,6 +215,8 @@
   auditStatus: '' as any as EnumTaskSettlementAuditStatus,
 
   timeoutServiceFee: 0,
+
+  settlementStatus: '' as any as EnumTaskSettlementStatus,
 });
 
 const BaseState = {
@@ -234,6 +252,7 @@
       form.settlementAccess = res?.detail?.settlementAccess;
       form.auditStatus = res?.detail?.auditStatus;
       form.timeoutServiceFee = res?.detail?.timeoutServiceFee ?? 0;
+      form.settlementStatus = res?.detail?.settlementStatus;
       // form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
       // form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
     }
@@ -337,22 +356,33 @@
 
 function openDialog(row?: API.GetSettlementTaskUsersQueryResultItem) {
   if (row) {
-    handleEdit({
-      id: row?.id,
-      settlementAmount: row?.settlementAmount ?? null,
-      actualSettlementAmount: row?.actualSettlementAmount ?? null,
-      receiveAccount: row?.receiveAccount ?? '',
-      bank: row?.bank ?? '',
-      // 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 ?? '',
-    });
+    if (isSettlement) {
+      handleEdit({
+        id: row?.id,
+        settlementAmount: row?.settlementAmount ?? null,
+        actualSettlementAmount: row?.actualSettlementAmount ?? null,
+        receiveAccount: row?.receiveAccount ?? '',
+        bank: row?.bank ?? '',
+        // 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 ?? '',
+      });
+    } else {
+      handleResettleEdit({
+        id: row?.id,
+        name: row?.name ?? '',
+        bank: row?.bank ?? '',
+        bankBranch: row?.bankBranch ?? '',
+        receiveAccount: row?.receiveAccount ?? '',
+        remark: row?.remark ?? '',
+      });
+    }
   }
 }
 
@@ -430,13 +460,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,
   });
 }
@@ -496,6 +532,56 @@
   { leading: true, trailing: false }
 );
 
+const {
+  dialogProps: dialogResettleProps,
+  handleEdit: handleResettleEdit,
+  editForm: resettleEditForm,
+} = useFormDialog({
+  onConfirm: handleResettle,
+  defaultFormParams: {
+    id: '',
+    name: '',
+    bank: '',
+    bankBranch: '',
+    receiveAccount: '',
+    remark: '',
+  },
+});
+
+async function handleResettle() {
+  try {
+    let params: API.EditTaskSettlementOrderRosterCommand = {
+      id: id,
+      bank: resettleEditForm.bank,
+      bankBranch: resettleEditForm.bankBranch,
+      receiveAccount: resettleEditForm.receiveAccount,
+      remark: resettleEditForm.remark,
+      settlementAmount: 0,
+      actualSettlementAmount: 0,
+    };
+    let res = await taskServices.editTaskSettlementOrderRoster(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      refetch();
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+
+async function againSureTaskSettlementOrderRoster(row: API.GetSettlementTaskUsersQueryResultItem) {
+  try {
+    let params: API.AgainSureTaskSettlementOrderRosterCommand = {
+      id: row.id,
+    };
+    let res = await taskServices.againSureTaskSettlementOrderRoster(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      refetch();
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+
 function handleBack() {
   closeViewPush(route, {
     name: 'ServiceChargeManageList',

--
Gitblit v1.9.1