From b331f884097a2dc5086c8cf043c8c8f52e7640fe Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 12 九月 2025 17:34:39 +0800
Subject: [PATCH] Merge branch 'master' into dev-v1.1

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

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index de7d1ff..72b74e5 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -15,7 +15,7 @@
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
-          <ProFormCol>
+          <!-- <ProFormCol>
             <ProFormColItem :span="8">
               <ProFormItemV2 label="缁撶畻鍗曞悕绉�:" prop="settlementOrderName">
                 <ProFormText v-model="form.settlementOrderName"> </ProFormText>
@@ -30,7 +30,7 @@
                 ></ProFormDatePicker>
               </ProFormItemV2>
             </ProFormColItem>
-          </ProFormCol>
+          </ProFormCol> -->
           <ProFormCol>
             <ProFormColItem :span="8">
               <ProFormItemV2 label="缁撶畻閲戦:" prop="settlementAmount">
@@ -47,28 +47,6 @@
           </ProFormCol>
         </ProForm>
       </ChunkCell>
-      <!-- <ChunkCell title="缁撶畻娴佺▼">
-        <div class="step-wrapper">
-          <el-steps :active="1" align-center finish-status="process">
-            <el-step title="缁撶畻鍗曚笂浼�" :icon="Edit">
-              <template #description>
-                <div>鍒涘缓浜�:{{ form.name }}</div>
-                <div>鏃堕棿:{{ form.name }}</div>
-                <TextOverTooltip>澶囨敞:{{ form.name }}</TextOverTooltip>
-              </template>
-            </el-step>
-            <el-step title="缁撶畻浠樻" :icon="Upload">
-              <template #description>
-                <div>鍒涘缓浜�:{{ form.name }}</div>
-                <div>鏃堕棿:{{ form.name }}</div>
-                <TextOverTooltip
-                  >澶囨敞:{{ 'form.nameform.nameform.eform.nameform.nameform.name' }}</TextOverTooltip
-                >
-              </template>
-            </el-step>
-          </el-steps>
-        </div>
-      </ChunkCell> -->
       <ChunkCell title="缁撶畻鍚嶅崟" style="flex: 1" class="settlement-user-list-chunk">
         <ProTableQueryFilterBar @on-reset="reset">
           <template #query>
@@ -81,6 +59,22 @@
               >
               </SearchInput>
             </QueryFilterItem>
+          </template>
+          <template #btn v-if="isSettlement">
+            <BlFileUpload
+              v-model:file-url="form.settlementUrl"
+              ref="uploadRef"
+              :showTip="false"
+              :show-file-list="false"
+              class="pro-table-operation-btn upload-style-btn"
+              :on-success="(event) => handleUploadSuccess(event)"
+              :limitFileSize="null"
+              :limit="1"
+              accept="xlsx,xls"
+            >
+              <el-button text type="primary" class="pro-table-operation-btn">瀵煎叆</el-button>
+            </BlFileUpload>
+            <el-button type="primary" link @click="handleDownload()">瀵煎嚭</el-button>
           </template>
         </ProTableQueryFilterBar>
         <ProTableV2
@@ -97,23 +91,23 @@
         <div class="chuck-add-or-edit-actions">
           <el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button>
           <el-button
-            v-if="!isDetail"
+            v-if="isSettlement"
             class="chuck-add-or-edit-actions"
             type="primary"
             @click="handleSubmit"
-            >纭</el-button
+            >缁撶畻</el-button
           >
         </div>
       </ChunkCell>
     </AppContainer>
     <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
+    <SettleDetailDialog v-bind="dialogSettleProps" />
   </LoadingLayout>
 </template>
 <script setup lang="ts">
 import {
   LoadingLayout,
   AppContainer,
-  AppScrollContainer,
   ChunkCell,
   ProForm,
   ProFormItemV2,
@@ -130,12 +124,15 @@
   ProTableQueryFilterBar,
   useFormDialog,
   XLSXUtils,
+  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';
 import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
+import SettleDetailDialog from './components/SettleDetailDialog.vue';
 import { Message } from '@bole-core/core';
 import { paginateList, setOssFileName, toThousand } from '@/utils';
 
@@ -156,12 +153,12 @@
     },
   },
 ]);
-
 const route = useRoute();
 const id = (route.params.id as string) ?? '';
 const url = (route.query.url as string) ?? '';
+const settlement = (route.query.settlement as string) ?? '';
 
-const isDetail = computed(() => !url);
+const isSettlement = computed(() => !!url || !!settlement);
 
 const form = reactive({
   name: '',
@@ -171,6 +168,8 @@
   settlementOrderName: '',
   settlementOrderTime: '',
   settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[],
+
+  settlementUrl: [] as UploadUserFile[],
 });
 
 const BaseState = {
@@ -179,32 +178,6 @@
 
 const state = reactive({ ...BaseState });
 
-// onMounted(async () => {
-//   await getList();
-//   state.loading = false;
-// });
-
-// const { isLoading } = useQuery({
-//   queryKey: ['taskServices/getSettlementTask', id],
-//   queryFn: async () => {
-//     return await taskServices.getSettlementTask(
-//       { id: id },
-//       {
-//         showLoading: false,
-//       }
-//     );
-//   },
-//   placeholderData: () => ({} as API.GetSettlementTaskQueryResult),
-//   onSuccess(data) {
-//     form.name = data.name;
-//     form.settlementAmount = data.settlementAmount ?? 0;
-//     form.actualSettlementAmount = data.actualSettlementAmount ?? 0;
-//     form.code = data.code;
-//     form.settlementOrderName = setOssFileName(data.settlementOrderName);
-//     form.settlementOrderTime = data.settlementOrderTime ?? '';
-//   },
-//   enabled: !!id,
-// });
 const { isLoading } = useQuery({
   queryKey: ['taskUserServices/getSettlementTaskUsers', id, url],
   queryFn: async () => {
@@ -315,7 +288,7 @@
 
 async function handleAddOrEdit() {}
 
-async function handleSubmit() {
+async function sureTaskSettlementOrder() {
   try {
     let params: API.SureTaskSettlementOrderCommand = {
       taskInfoId: id,
@@ -336,6 +309,54 @@
   } catch (error) {}
 }
 
+function handleUploadSuccess(response: UploadUserFile & { file: File & { uid: number } }) {
+  if (response.path) {
+    // sureTaskSettlementOrder();
+  }
+}
+
+function handleSubmit() {
+  handleSettleEdit({
+    id: id,
+    name: form.name,
+    code: form.code,
+    settlementUserCount: form.settlementTaskUsers.length,
+    actualSettlementAmount: form.actualSettlementAmount,
+  });
+}
+
+const {
+  dialogProps: dialogSettleProps,
+  handleEdit: handleSettleEdit,
+  editForm: settleEditForm,
+} = useFormDialog({
+  onConfirm: handleSettle,
+  defaultFormParams: {
+    id: '',
+    name: '',
+    code: '',
+    settlementUserCount: 0,
+    actualSettlementAmount: 0,
+  },
+});
+
+async function handleSettle() {
+  try {
+    let params: API.SureTaskSettlementCommand = {
+      taskInfoId: settleEditForm.id,
+    };
+    console.log('params: ', params);
+    // let res = await taskServices.sureTaskSettlement(params);
+    // if (res) {
+    //   Message.successMessage('鎿嶄綔鎴愬姛');
+    //   eventContext.emit('sureTaskSettlementOrder');
+    //   handleBack();
+    // }
+  } catch (error) {}
+}
+
+function handleDownload() {}
+
 function handleBack() {
   closeViewPush(route, {
     name: 'ServiceChargeManageList',

--
Gitblit v1.9.1