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

---
 src/views/ServiceChargeManage/constants/columns.ts                 |   16 +-
 src/views/ServiceChargeManage/ServiceChargeDetail.vue              |   39 +++--
 .eslintrc-auto-import.json                                         |    2 
 src/services/api/codeUrl.ts                                        |   30 ++++
 src/services/api/typings.d.ts                                      |  140 ++++++++++++++++++--
 src/views/ServiceChargeManage/ServiceChargeManage.vue              |   15 +
 src/hooks/index.ts                                                 |    1 
 src/services/api/task.ts                                           |   18 ++
 src/services/api/index.ts                                          |    2 
 auto-imports.d.ts                                                  |    6 
 src/views/ServiceChargeManage/components/UploadStatementDialog.vue |   18 ++
 src/constants/apiEnum.ts                                           |   36 +++--
 src/hooks/settlement.ts                                            |   23 +++
 src/services/api/user.ts                                           |   32 ++++
 14 files changed, 316 insertions(+), 62 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 7afcca3..76dc90d 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -19,6 +19,7 @@
     "EnumBillingMethodUnitText": true,
     "EnumClientType": true,
     "EnumClientTypeText": true,
+    "EnumCodeUrlScene": true,
     "EnumContractTemplateStatus": true,
     "EnumContractTemplateStatusText": true,
     "EnumContractTemplateValueRecorder": true,
@@ -228,6 +229,7 @@
     "useRouter": true,
     "useSetReactive": true,
     "useSlots": true,
+    "useTaskSelect": true,
     "useTemplateRef": true,
     "useUser": true,
     "useVModel": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index c4782fe..89831f3 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -23,6 +23,7 @@
   const EnumBillingMethodUnitText: typeof import('./src/constants/task')['EnumBillingMethodUnitText']
   const EnumClientType: typeof import('./src/constants/apiEnum')['EnumClientType']
   const EnumClientTypeText: typeof import('./src/constants/apiEnumText')['EnumClientTypeText']
+  const EnumCodeUrlScene: typeof import('./src/constants/apiEnum')['EnumCodeUrlScene']
   const EnumContractTemplateStatus: typeof import('./src/constants/apiEnum')['EnumContractTemplateStatus']
   const EnumContractTemplateStatusText: typeof import('./src/constants/electronSign')['EnumContractTemplateStatusText']
   const EnumContractTemplateValueRecorder: typeof import('./src/constants/apiEnum')['EnumContractTemplateValueRecorder']
@@ -221,6 +222,7 @@
   const useSetReactive: typeof import('./src/hooks/global/helper')['useSetReactive']
   const useSign: typeof import('./src/hooks/sign')['useSign']
   const useSlots: typeof import('vue')['useSlots']
+  const useTaskSelect: typeof import('./src/hooks/settlement')['useTaskSelect']
   const useTemplateRef: typeof import('vue')['useTemplateRef']
   const useUser: typeof import('./src/hooks/useUser')['useUser']
   const useVModel: typeof import('./src/hooks/help')['useVModel']
@@ -236,7 +238,7 @@
   export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
   import('vue')
   // @ts-ignore
-  export type { EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionStatus, EnumEnterpriseWalletTransactionType, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionStatus, EnumEnterpriseWalletTransactionType, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
+  export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionStatus, EnumEnterpriseWalletTransactionType, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionStatus, EnumEnterpriseWalletTransactionType, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
   import('./src/constants/apiEnum')
   // @ts-ignore
   export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
@@ -284,6 +286,7 @@
     readonly EnumBillingMethodUnitText: UnwrapRef<typeof import('./src/constants/task')['EnumBillingMethodUnitText']>
     readonly EnumClientType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumClientType']>
     readonly EnumClientTypeText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumClientTypeText']>
+    readonly EnumCodeUrlScene: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumCodeUrlScene']>
     readonly EnumContractTemplateStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumContractTemplateStatus']>
     readonly EnumContractTemplateStatusText: UnwrapRef<typeof import('./src/constants/electronSign')['EnumContractTemplateStatusText']>
     readonly EnumContractTemplateValueRecorder: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumContractTemplateValueRecorder']>
@@ -473,6 +476,7 @@
     readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
     readonly useSetReactive: UnwrapRef<typeof import('./src/hooks/global/helper')['useSetReactive']>
     readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
+    readonly useTaskSelect: UnwrapRef<typeof import('./src/hooks/settlement')['useTaskSelect']>
     readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
     readonly useUser: UnwrapRef<typeof import('./src/hooks/useUser')['useUser']>
     readonly useVModel: UnwrapRef<typeof import('./src/hooks/help')['useVModel']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 281da50..9f228cf 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -21,6 +21,12 @@
   Wxmp = 20,
 }
 
+/** 缂栧彿鍦板潃鍦烘櫙 */
+export enum EnumCodeUrlScene {
+  /**绛剧害鍦板潃 */
+  ElectronSignUrl = 10,
+}
+
 /** 鍚堝悓鍒剁増鐘舵�� */
 export enum EnumContractTemplateStatus {
   /**寰呭埗鐗� */
@@ -293,34 +299,36 @@
   FlexJobServerTaskUser = 2,
   /**浠诲姟楠屾敹 */
   FlexJobServerTaskCheckReceive = 3,
+  /**缂栧彿鍦板潃 */
+  CommonServerCodeUrls = 4,
   /**鏂囦欢 */
-  CommonServerFileUtils = 4,
+  CommonServerFileUtils = 5,
   /**鏂囧瓧璇嗗埆 */
-  CommonServerOcrUtils = 5,
+  CommonServerOcrUtils = 6,
   /**鏃ュ織璁板綍 */
-  CommonServerLogRecords = 6,
+  CommonServerLogRecords = 7,
   /**鐢ㄦ埛璁よ瘉 */
-  UserServerAuth = 7,
+  UserServerAuth = 8,
   /**鐢ㄦ埛鑿滃崟 */
-  UserServerMenu = 8,
+  UserServerMenu = 9,
   /**鐢ㄦ埛璧勬簮 */
-  UserServerResource = 9,
+  UserServerResource = 10,
   /**鐢ㄦ埛瑙掕壊 */
-  UserServerRole = 10,
+  UserServerRole = 11,
   /**鐢ㄦ埛淇℃伅 */
-  UserServerUser = 11,
+  UserServerUser = 12,
   /**鐢靛瓙绛� */
-  UserServerElectronSign = 12,
+  UserServerElectronSign = 13,
   /**鐢ㄦ埛绠�鍘� */
-  UserServerUserResume = 13,
+  UserServerUserResume = 14,
   /**浼佷笟淇℃伅 */
-  UserServerEnterprise = 14,
+  UserServerEnterprise = 15,
   /**浼佷笟閽卞寘 */
-  UserServerEnterpriseWallet = 15,
+  UserServerEnterpriseWallet = 16,
   /**鐏靛伐淇℃伅 */
-  UserServerEnterpriseEmployee = 16,
+  UserServerEnterpriseEmployee = 17,
   /**鐢靛瓙绛� */
-  ElectronSignServerElectronSign = 17,
+  ElectronSignServerElectronSign = 18,
 }
 
 /** 璧勬簮璇锋眰鏂瑰紡 */
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index e79975f..bf536bc 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -9,3 +9,4 @@
 export * from './menu';
 export * from './dic';
 export * from './sign';
+export * from './settlement';
diff --git a/src/hooks/settlement.ts b/src/hooks/settlement.ts
new file mode 100644
index 0000000..afc6f9c
--- /dev/null
+++ b/src/hooks/settlement.ts
@@ -0,0 +1,23 @@
+import { useQuery, useQueryClient } from '@tanstack/vue-query';
+import * as taskServices from '@/services/api/task';
+
+export function useTaskSelect() {
+  const queryClient = useQueryClient();
+
+  const { data } = useQuery({
+    queryKey: ['taskServices/getTaskSelect'],
+    queryFn: () => {
+      return taskServices.getTaskSelect(
+        {},
+        {
+          showLoading: false,
+        }
+      );
+    },
+    placeholderData: () => [] as API.SelectOptionGuidGetTaskSelectQueryOption[],
+  });
+
+  const taskSelect = computed(() => data.value?.map((x) => x.data));
+
+  return { taskSelect };
+}
diff --git a/src/services/api/codeUrl.ts b/src/services/api/codeUrl.ts
new file mode 100644
index 0000000..481bb5b
--- /dev/null
+++ b/src/services/api/codeUrl.ts
@@ -0,0 +1,30 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏌ヨ缂栧彿鍦板潃 GET /api/common/codeUrl/getCodeUrl */
+export async function getCodeUrl(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetCodeUrlParams,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/common/codeUrl/getCodeUrl', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 淇濆瓨缂栧彿鍦板潃 POST /api/common/codeUrl/saveCodeUrl */
+export async function saveCodeUrl(body: API.SaveCodeUrlCommand, options?: API.RequestConfig) {
+  return request<string>('/api/common/codeUrl/saveCodeUrl', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 76b273c..1c75685 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -11,6 +11,7 @@
 import * as resource from './resource';
 import * as dictionary from './dictionary';
 import * as enterpriseWallet from './enterpriseWallet';
+import * as codeUrl from './codeUrl';
 import * as electronSign from './electronSign';
 import * as userResume from './userResume';
 import * as auth from './auth';
@@ -29,6 +30,7 @@
   resource,
   dictionary,
   enterpriseWallet,
+  codeUrl,
   electronSign,
   userResume,
   auth,
diff --git a/src/services/api/task.ts b/src/services/api/task.ts
index 573a56e..06e974f 100644
--- a/src/services/api/task.ts
+++ b/src/services/api/task.ts
@@ -155,6 +155,24 @@
   });
 }
 
+/** 鏌ヨ浠诲姟閫夋嫨鍣ㄦ暟鎹� GET /api/flexjob/task/getTaskSelect */
+export async function getTaskSelect(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetTaskSelectParams,
+  options?: API.RequestConfig
+) {
+  return request<API.SelectOptionGuidGetTaskSelectQueryOption[]>(
+    '/api/flexjob/task/getTaskSelect',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
+      ...(options || {}),
+    }
+  );
+}
+
 /** 鎾ゅ洖缁撶畻 POST /api/flexjob/task/revokeTaskSettlementOrder */
 export async function revokeTaskSettlementOrder(
   body: API.RevokeTaskSettlementOrderCommand,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index a904276..0a699bf 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -29,6 +29,13 @@
     date?: string;
   }
 
+  interface APIgetCodeUrlParams {
+    /** 鍦烘櫙 */
+    scene?: EnumCodeUrlScene;
+    /** 缂栧彿 */
+    code?: string;
+  }
+
   interface APIgetContractTemplateParams {
     /** 妯℃澘Id */
     id?: string;
@@ -146,6 +153,11 @@
     request?: GetPersonalLoginInfoQuery;
   }
 
+  interface APIgetPersonalUserBankCardParams {
+    /** 鏌ヨ涓汉鐢ㄦ埛閾惰鍗′俊鎭� */
+    request?: GetPersonalUserBankCardQuery;
+  }
+
   interface APIgetPersonalUserElectronSignParams {
     /** 鐏靛伐Id */
     id?: string;
@@ -202,6 +214,11 @@
   interface APIgetTaskInfoParams {
     /** Id */
     id?: string;
+  }
+
+  interface APIgetTaskSelectParams {
+    /** 鍏抽敭瀛� */
+    keywords?: string;
   }
 
   interface APIgetTaskUserHireStatusParams {
@@ -493,6 +510,11 @@
     Wxmp = 20,
   }
 
+  enum EnumCodeUrlScene {
+    /**绛剧害鍦板潃 */
+    ElectronSignUrl = 10,
+  }
+
   enum EnumContractTemplateStatus {
     /**寰呭埗鐗� */
     Wait = 10,
@@ -738,34 +760,36 @@
     FlexJobServerTaskUser = 2,
     /**浠诲姟楠屾敹 */
     FlexJobServerTaskCheckReceive = 3,
+    /**缂栧彿鍦板潃 */
+    CommonServerCodeUrls = 4,
     /**鏂囦欢 */
-    CommonServerFileUtils = 4,
+    CommonServerFileUtils = 5,
     /**鏂囧瓧璇嗗埆 */
-    CommonServerOcrUtils = 5,
+    CommonServerOcrUtils = 6,
     /**鏃ュ織璁板綍 */
-    CommonServerLogRecords = 6,
+    CommonServerLogRecords = 7,
     /**鐢ㄦ埛璁よ瘉 */
-    UserServerAuth = 7,
+    UserServerAuth = 8,
     /**鐢ㄦ埛鑿滃崟 */
-    UserServerMenu = 8,
+    UserServerMenu = 9,
     /**鐢ㄦ埛璧勬簮 */
-    UserServerResource = 9,
+    UserServerResource = 10,
     /**鐢ㄦ埛瑙掕壊 */
-    UserServerRole = 10,
+    UserServerRole = 11,
     /**鐢ㄦ埛淇℃伅 */
-    UserServerUser = 11,
+    UserServerUser = 12,
     /**鐢靛瓙绛� */
-    UserServerElectronSign = 12,
+    UserServerElectronSign = 13,
     /**鐢ㄦ埛绠�鍘� */
-    UserServerUserResume = 13,
+    UserServerUserResume = 14,
     /**浼佷笟淇℃伅 */
-    UserServerEnterprise = 14,
+    UserServerEnterprise = 15,
     /**浼佷笟閽卞寘 */
-    UserServerEnterpriseWallet = 15,
+    UserServerEnterpriseWallet = 16,
     /**鐏靛伐淇℃伅 */
-    UserServerEnterpriseEmployee = 16,
+    UserServerEnterpriseEmployee = 17,
     /**鐢靛瓙绛� */
-    ElectronSignServerElectronSign = 17,
+    ElectronSignServerElectronSign = 18,
   }
 
   enum EnumResourceMethod {
@@ -1490,6 +1514,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetPersonalUserBankCardQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetPersonalUserBankCardQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetPersonalUserElectronSignQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -2140,6 +2182,25 @@
     errorCode?: string;
     /** 鏁版嵁 */
     data?: SelectOptionGuidGetEnterpriseContractTemplateSelectQueryOption[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultListSelectOptionGuidGetTaskSelectQueryOption {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: SelectOptionGuidGetTaskSelectQueryOption[];
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -3622,6 +3683,20 @@
     hireRefuseTaskCount?: number;
   }
 
+  type GetPersonalUserBankCardQuery = Record<string, any>;
+
+  interface GetPersonalUserBankCardQueryResult {
+    access?: EnumEnterpriseWalletAccess;
+    /** 閾惰鍗″彿 */
+    code?: string;
+    /** 鎵�灞為摱琛� */
+    bank?: string;
+    /** 鎵�灞炴敮琛� */
+    bankBranch?: string;
+    /** 閾惰棰勭暀鎵嬫満鍙� */
+    phoneNumber?: string;
+  }
+
   interface GetPersonalUserElectronSignQueryResult {
     /** 鐏靛伐Id */
     id?: string;
@@ -4279,6 +4354,15 @@
     stoppedReleaseCount?: number;
   }
 
+  interface GetTaskSelectQueryOption {
+    /** 浠诲姟Id */
+    id?: string;
+    /** 浠诲姟鍗曞彿 */
+    code?: string;
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+  }
+
   interface GetTaskUserHireStatusQueryResult {
     hireStatus?: EnumTaskUserHireStatus;
   }
@@ -4813,6 +4897,14 @@
     taskInfoId?: string;
   }
 
+  interface SaveCodeUrlCommand {
+    scene?: EnumCodeUrlScene;
+    /** 鍦板潃 */
+    url?: string;
+    /** 杩囨湡鏃堕棿 */
+    expiredTime?: string;
+  }
+
   interface SaveContractTemplateCommand {
     /** 浼佷笟Id锛堣繍钀ョ淇濆瓨鏃讹級 */
     enterpriseId?: string;
@@ -5063,6 +5155,18 @@
     id?: string;
   }
 
+  interface SavePersonalUserBankCardCommand {
+    access?: EnumEnterpriseWalletAccess;
+    /** 閾惰鍗″彿 */
+    code?: string;
+    /** 鎵�灞為摱琛� */
+    bank?: string;
+    /** 鎵�灞炴敮琛� */
+    bankBranch?: string;
+    /** 閾惰棰勭暀鎵嬫満鍙� */
+    phoneNumber?: string;
+  }
+
   interface SaveRoleCommand {
     /** Id */
     id?: string;
@@ -5194,6 +5298,14 @@
     data?: GetEnterpriseContractTemplateSelectQueryOption;
   }
 
+  interface SelectOptionGuidGetTaskSelectQueryOption {
+    /** 鍊� */
+    value?: string;
+    /** 鏍囩 */
+    label?: string;
+    data?: GetTaskSelectQueryOption;
+  }
+
   interface SelectOptionStringGetDictionaryDataSelectQueryResultOption {
     /** 鍊� */
     value?: string;
diff --git a/src/services/api/user.ts b/src/services/api/user.ts
index 43f20b8..99c7719 100644
--- a/src/services/api/user.ts
+++ b/src/services/api/user.ts
@@ -20,6 +20,23 @@
   );
 }
 
+/** 鏌ヨ涓汉鐢ㄦ埛閾惰鍗′俊鎭� GET /api/user/user/getPersonalUserBankCard */
+export async function getPersonalUserBankCard(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetPersonalUserBankCardParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetPersonalUserBankCardQueryResult>('/api/user/user/getPersonalUserBankCard', {
+    method: 'GET',
+    params: {
+      ...params,
+      request: undefined,
+      ...params['request'],
+    },
+    ...(options || {}),
+  });
+}
+
 /** 鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹� POST /api/user/user/getPersonalUserInfos */
 export async function getPersonalUserInfos(
   body: API.GetPersonalUserInfosQuery,
@@ -68,6 +85,21 @@
   });
 }
 
+/** 淇濆瓨鐢ㄦ埛閾惰鍗′俊鎭� POST /api/user/user/savePersonalUserBankCard */
+export async function savePersonalUserBankCard(
+  body: API.SavePersonalUserBankCardCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/user/savePersonalUserBankCard', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 璁剧疆鐢ㄦ埛淇℃伅瑙掕壊 PUT /api/user/user/setUserInfoRoles */
 export async function setUserInfoRoles(
   body: API.SetUserInfoRolesCommand,
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 0e19d49..c808dc8 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -1,6 +1,6 @@
 <template>
   <LoadingLayout :loading="isLoading">
-    <AppScrollContainer>
+    <AppContainer>
       <ChunkCell title="缁撶畻鍗曡鎯�">
         <ProForm :model="form" ref="formRef" label-width="120px" :is-read="true">
           <ProFormCol>
@@ -34,12 +34,12 @@
           <ProFormCol>
             <ProFormColItem :span="8">
               <ProFormItemV2 label="缁撶畻閲戦:" prop="settlementAmount">
-                <ProFormInputNumber v-model="form.settlementAmount"> </ProFormInputNumber>
+                <ProFormText v-model="form.settlementAmount"> </ProFormText>
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
               <ProFormItemV2 label="瀹炲彂閲戦:" prop="actualSettlementAmount">
-                <ProFormInputNumber v-model="form.actualSettlementAmount"> </ProFormInputNumber>
+                <ProFormText v-model="form.actualSettlementAmount"> </ProFormText>
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
@@ -67,7 +67,7 @@
           </el-steps>
         </div>
       </ChunkCell> -->
-      <ChunkCell title="缁撶畻鍚嶅崟">
+      <ChunkCell title="缁撶畻鍚嶅崟" style="flex: 1">
         <ProTableQueryFilterBar @on-reset="reset">
           <template #query>
             <QueryFilterItem>
@@ -84,7 +84,7 @@
         <ProTableV2
           v-bind="proTableProps"
           :columns="SettlementListColumns"
-          :operationBtns="operationBtns"
+          :show-operation-column="false"
           :auto-height="false"
           ref="proTable"
           :tableProps="{
@@ -93,19 +93,20 @@
         >
         </ProTableV2>
         <div class="chuck-add-or-edit-actions">
-          <el-button @click="handleBack">鍙栨秷</el-button>
+          <el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button>
           <el-button class="chuck-add-or-edit-actions" type="primary" @click="handleSubmit"
             >纭</el-button
           >
         </div>
       </ChunkCell>
-    </AppScrollContainer>
+    </AppContainer>
     <EditAccountInfoDialog v-bind="dialogProps"></EditAccountInfoDialog>
   </LoadingLayout>
 </template>
 <script setup lang="ts">
 import {
   LoadingLayout,
+  AppContainer,
   AppScrollContainer,
   ChunkCell,
   ProForm,
@@ -129,7 +130,7 @@
 import * as taskUserServices from '@/services/api/taskUser';
 import EditAccountInfoDialog from './components/EditAccountInfoDialog.vue';
 import { Message } from '@bole-core/core';
-import { paginateList } from '@/utils';
+import { paginateList, setOssFileName, toThousand } from '@/utils';
 
 defineOptions({
   name: 'ServiceChargeDetail',
@@ -150,13 +151,13 @@
 ]);
 
 const route = useRoute();
-const id = (route.query.id as string) ?? '';
+const id = (route.params.id as string) ?? '';
 const url = (route.query.url as string) ?? '';
 
 const form = reactive({
   name: '',
-  settlementAmount: 0,
-  actualSettlementAmount: 0,
+  settlementAmount: '',
+  actualSettlementAmount: '',
   code: '',
   settlementOrderName: '',
   settlementOrderTime: '',
@@ -175,10 +176,10 @@
   placeholderData: () => ({} as API.GetSettlementTaskQueryResult),
   onSuccess(data) {
     form.name = data.name;
-    form.settlementAmount = data.settlementAmount;
-    form.actualSettlementAmount = data.actualSettlementAmount;
+    form.settlementAmount = toThousand(data.settlementAmount);
+    form.actualSettlementAmount = toThousand(data.actualSettlementAmount);
     form.code = data.code;
-    form.settlementOrderName = data.settlementOrderName;
+    form.settlementOrderName = setOssFileName(data.settlementOrderName);
     form.settlementOrderTime = data.settlementOrderTime;
   },
   enabled: !!id,
@@ -225,7 +226,11 @@
       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
     },
     queryKey: ['taskUserServices/getSettlementTaskUsers'],
-    columnsRenderProps: {},
+    columnsRenderProps: {
+      settlementTime: { type: 'date' },
+      settlementAmount: { type: 'money' },
+      actualSettlementAmount: { type: 'money' },
+    },
   }
 );
 
@@ -253,7 +258,9 @@
     let params: API.SureTaskSettlementOrderCommand = {
       taskInfoId: id,
       settlementOrderUrl: url,
-      taskInfoUsers: [],
+      taskInfoUsers: proTableProps.value.tableData.map(
+        (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser)
+      ),
     };
     let res = await taskServices.sureTaskSettlementOrder(params);
     if (res) {
diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue
index 5c3e3c1..cdc4296 100644
--- a/src/views/ServiceChargeManage/ServiceChargeManage.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeManage.vue
@@ -284,7 +284,8 @@
 });
 
 async function handleAddOrEdit() {
-  goDetail(editForm.id, editForm.settlementUrl[0]?.url);
+  console.log('editForm: ', editForm);
+  goDetail(editForm.id, editForm.settlementUrl[0]?.path);
 }
 
 const {
@@ -320,8 +321,8 @@
     id: row.id,
     name: row.name,
     code: row.code,
-    settlementUserCount: row.settlementUserCount,
-    settlementAmount: row.settlementAmount,
+    settlementUserCount: row.settlementUserCount ?? 0,
+    settlementAmount: row.settlementAmount ?? 0,
   });
 }
 
@@ -343,16 +344,18 @@
   response: UploadUserFile & { file: File & { uid: number } },
   row: API.GetSettlementTasksQueryResultItem
 ) {
-  if (response.url) {
-    goDetail(row.id, response.url);
+  if (response.path) {
+    goDetail(row.id, response.path);
   }
 }
 
 function goDetail(id: string, url?: string) {
   router.push({
     name: 'ServiceChargeDetail',
-    query: {
+    params: {
       id: id,
+    },
+    query: {
       url: url ? url : '',
     },
   });
diff --git a/src/views/ServiceChargeManage/components/UploadStatementDialog.vue b/src/views/ServiceChargeManage/components/UploadStatementDialog.vue
index 7cd652e..46e8393 100644
--- a/src/views/ServiceChargeManage/components/UploadStatementDialog.vue
+++ b/src/views/ServiceChargeManage/components/UploadStatementDialog.vue
@@ -11,8 +11,10 @@
       <ProFormItemV2 label="浠诲姟鍗曞彿锛�" prop="code" :check-rules="[{ message: '璇烽�夋嫨浠诲姟鍗曞彿' }]">
         <ProFormSelect
           v-model="form.code"
-          :valueEnum="[]"
+          :valueEnum="taskSelect"
           placeholder="璇烽�夋嫨浠诲姟鍗曞彿"
+          enum-value-key="id"
+          enum-label-key="code"
           filterable
           clearable
           @change="handleCodeChange"
@@ -36,7 +38,7 @@
           v-model:file-url="form.settlementUrl"
           :limit="1"
           :limitFileSize="10"
-          accept="jpg/jpeg,png,pdf"
+          accept="xlsx,xls"
         ></ProFormUpload>
       </ProFormItemV2>
     </ProForm>
@@ -60,6 +62,7 @@
   ProFormSelect,
   UploadUserFile,
 } from '@bole-core/components';
+import { Message } from '@bole-core/core';
 
 defineOptions({
   name: 'UploadStatementDialog',
@@ -73,6 +76,8 @@
   settlementUrl: UploadUserFile[];
 };
 
+const { taskSelect } = useTaskSelect();
+
 const visible = defineModel({ type: Boolean });
 
 const form = defineModel<Form>('form');
@@ -84,7 +89,14 @@
 
 const dialogForm = ref<FormInstance>();
 
-function handleCodeChange() {}
+function handleCodeChange(value: string) {
+  if (value) {
+    form.value.name = taskSelect.value?.find((item) => item.id === value)?.name ?? '';
+    form.value.id = value;
+  } else {
+    Message.errorMessage('璇烽�夋嫨浠诲姟鍗曞彿');
+  }
+}
 
 function onDialogClose() {
   if (!dialogForm.value) return;
diff --git a/src/views/ServiceChargeManage/constants/columns.ts b/src/views/ServiceChargeManage/constants/columns.ts
index 867fec1..aecda4a 100644
--- a/src/views/ServiceChargeManage/constants/columns.ts
+++ b/src/views/ServiceChargeManage/constants/columns.ts
@@ -61,42 +61,42 @@
   },
   {
     id: '2',
-    enCode: 'name',
+    enCode: 'identity',
     name: '韬唤璇佸彿',
   },
   {
     id: '3',
-    enCode: 'name',
+    enCode: 'contactPhoneNumber',
     name: '鎵嬫満鍙�',
   },
   {
     id: '4',
-    enCode: 'name',
+    enCode: 'bank',
     name: '鎵�灞為摱琛�',
   },
   {
     id: '5',
-    enCode: 'name',
+    enCode: 'bankBranch',
     name: '鎵�灞炴敮琛�',
   },
   {
     id: '6',
-    enCode: 'name',
+    enCode: 'receiveAccount',
     name: '鏀舵甯愭埛',
   },
   {
     id: '7',
-    enCode: 'signNum',
+    enCode: 'settlementAmount',
     name: '缁撶畻閲戦',
   },
   {
     id: '8',
-    enCode: 'name',
+    enCode: 'actualSettlementAmount',
     name: '瀹炲彂閲戦',
   },
   {
     id: '9',
-    enCode: 'name',
+    enCode: 'settlementTime',
     name: '缁撶畻鏃堕棿',
   },
 ]);

--
Gitblit v1.9.1