From d78a958fc13b1dcb02b2709181c625c1e4d5964b Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 05 九月 2025 11:32:32 +0800
Subject: [PATCH] feat: 页面

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

diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 0f4c891..0e19d49 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -10,22 +10,21 @@
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="浠诲姟缂栧彿:" prop="name">
-                <ProFormText v-model="form.name"> </ProFormText>
+              <ProFormItemV2 label="浠诲姟缂栧彿:" prop="code">
+                <ProFormText v-model="form.code"> </ProFormText>
               </ProFormItemV2>
             </ProFormColItem>
-            <ProFormColItem :span="8"></ProFormColItem>
           </ProFormCol>
           <ProFormCol>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="缁撶畻鍗曞悕绉�:" prop="name">
-                <ProFormText v-model="form.name"> </ProFormText>
+              <ProFormItemV2 label="缁撶畻鍗曞悕绉�:" prop="settlementOrderName">
+                <ProFormText v-model="form.settlementOrderName"> </ProFormText>
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="涓婁紶鏃堕棿:" prop="name">
+              <ProFormItemV2 label="涓婁紶鏃堕棿:" prop="settlementOrderTime">
                 <ProFormDatePicker
-                  v-model="form.name"
+                  v-model="form.settlementOrderTime"
                   type="date"
                   format="YYYY-MM-DD HH:mm"
                 ></ProFormDatePicker>
@@ -34,13 +33,13 @@
           </ProFormCol>
           <ProFormCol>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="缁撶畻閲戦:" prop="money">
-                <ProFormInputNumber v-model="form.money"> </ProFormInputNumber>
+              <ProFormItemV2 label="缁撶畻閲戦:" prop="settlementAmount">
+                <ProFormInputNumber v-model="form.settlementAmount"> </ProFormInputNumber>
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="瀹炲彂閲戦:" prop="money">
-                <ProFormInputNumber v-model="form.money"> </ProFormInputNumber>
+              <ProFormItemV2 label="瀹炲彂閲戦:" prop="actualSettlementAmount">
+                <ProFormInputNumber v-model="form.actualSettlementAmount"> </ProFormInputNumber>
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
@@ -93,6 +92,12 @@
           }"
         >
         </ProTableV2>
+        <div class="chuck-add-or-edit-actions">
+          <el-button @click="handleBack">鍙栨秷</el-button>
+          <el-button class="chuck-add-or-edit-actions" type="primary" @click="handleSubmit"
+            >纭</el-button
+          >
+        </div>
       </ChunkCell>
     </AppScrollContainer>
     <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
@@ -110,27 +115,28 @@
   ProFormColItem,
   ProFormDatePicker,
   ProFormInputNumber,
-  ProFormRadio,
   useTable,
   ProTableV2,
   defineOperationBtns,
   SearchInput,
   QueryFilterItem,
   ProTableQueryFilterBar,
-  TextOverTooltip,
   useFormDialog,
 } from '@bole-core/components';
-import { Edit, Upload } from '@element-plus/icons-vue';
 import { SettlementListColumns } from './constants';
 import { useQuery } from '@tanstack/vue-query';
-import { downloadFileByUrl } from '@bole-core/core';
 import * as taskServices from '@/services/api/task';
+import * as taskUserServices from '@/services/api/taskUser';
 import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
+import { Message } from '@bole-core/core';
+import { paginateList } from '@/utils';
 
 defineOptions({
   name: 'ServiceChargeDetail',
 });
 
+const { closeViewPush } = useRouteView();
+const eventContext = useGlobalEventContext();
 const operationBtns = defineOperationBtns([
   {
     data: {
@@ -144,27 +150,36 @@
 ]);
 
 const route = useRoute();
-const id = (route.params.id as string) ?? '';
+const id = (route.query.id as string) ?? '';
+const url = (route.query.url as string) ?? '';
 
 const form = reactive({
   name: '',
-  money: 0,
-  status: 1,
+  settlementAmount: 0,
+  actualSettlementAmount: 0,
+  code: '',
+  settlementOrderName: '',
+  settlementOrderTime: '',
 });
 
 const { isLoading } = useQuery({
-  queryKey: ['taskServices/getTaskInfo', id],
+  queryKey: ['taskServices/getSettlementTask', id],
   queryFn: async () => {
-    return await taskServices.getTaskInfo(
+    return await taskServices.getSettlementTask(
       { id: id },
       {
         showLoading: false,
       }
     );
   },
-  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
+  placeholderData: () => ({} as API.GetSettlementTaskQueryResult),
   onSuccess(data) {
     form.name = data.name;
+    form.settlementAmount = data.settlementAmount;
+    form.actualSettlementAmount = data.actualSettlementAmount;
+    form.code = data.code;
+    form.settlementOrderName = data.settlementOrderName;
+    form.settlementOrderTime = data.settlementOrderTime;
   },
   enabled: !!id,
 });
@@ -178,17 +193,28 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetOpenTaskInfosQuery = {
+      let params: API.APIgetSettlementTaskUsersParams = {
+        taskInfoId: id,
+        settlementOrderUrl: url,
+      };
+      let res = await taskUserServices.getSettlementTaskUsers(params);
+      if (extraParamState.keywords) {
+        res.data = res.data?.filter((item) => {
+          return (
+            item.name.includes(extraParamState.keywords) ||
+            item.contactPhoneNumber.includes(extraParamState.keywords) ||
+            item.identity.includes(extraParamState.keywords)
+          );
+        });
+      }
+      return Promise.resolve({
         pageModel: {
           rows: pageSize,
           page: pageIndex,
-          orderInput: extraParamState.orderInput,
+          totalCount: res.data.length,
         },
-        keywords: extraParamState.keywords,
-      };
-
-      let res = await taskServices.getOpenTaskInfos(params);
-      return res;
+        data: paginateList(res.data, pageIndex, pageSize),
+      });
     } catch (error) {
       console.log('error: ', error);
     }
@@ -198,7 +224,7 @@
       keywords: '',
       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
     },
-    queryKey: ['taskServices/getOpenTaskInfos'],
+    queryKey: ['taskUserServices/getSettlementTaskUsers'],
     columnsRenderProps: {},
   }
 );
@@ -222,6 +248,28 @@
 
 async function handleAddOrEdit() {}
 
+async function handleSubmit() {
+  try {
+    let params: API.SureTaskSettlementOrderCommand = {
+      taskInfoId: id,
+      settlementOrderUrl: url,
+      taskInfoUsers: [],
+    };
+    let res = await taskServices.sureTaskSettlementOrder(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      eventContext.emit('sureTaskSettlementOrder');
+      handleBack();
+    }
+  } catch (error) {}
+}
+
+function handleBack() {
+  closeViewPush(route, {
+    name: 'ServiceChargeManageList',
+  });
+}
+
 onMounted(() => {
   getList();
 });

--
Gitblit v1.9.1