From 82e77f2e73e262776748b94f1978c2aafaf724e8 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 31 十月 2025 09:21:13 +0800
Subject: [PATCH] feat: 1.3

---
 src/views/CustomerManage/components/ResetPasswordDialog.vue         |   71 ++
 src/views/ServiceChargeManage/constants/columns.ts                  |   45 +
 src/views/CustomerManage/CustomerManage.vue                         |   68 +
 src/views/EmploymentManage/constants/columns.ts                     |   39 +
 src/views/ServiceChargeManage/ServiceChargeDetail.vue               |  128 ++++
 src/views/FinanceManage/components/DistributionDetailView.vue       |    1 
 src/views/CustomerManage/components/ResetOperatorPasswordDialog.vue |   81 +++
 src/services/api/task.ts                                            |   15 
 src/views/CustomerManage/constants/customerManage.ts                |  106 ++--
 src/views/FinanceManage/constants/columns.ts                        |   31 
 src/views/ServiceChargeManage/components/ResettleEditDialog.vue     |   90 +++
 auto-imports.d.ts                                                   |   14 
 src/constants/apiEnum.ts                                            |   36 +
 src/constants/index.ts                                              |    1 
 src/constants/app.ts                                                |    1 
 src/views/CustomerManage/components/AddOrEditCustomerView.vue       |  279 +++++++--
 .eslintrc-auto-import.json                                          |    6 
 src/services/api/typings.d.ts                                       |  378 ++++++++++++++
 src/store/modules/user.ts                                           |    1 
 src/views/ServiceChargeManage/ServiceChargeManage.vue               |   14 
 src/constants/customer.ts                                           |    9 
 src/views/UserManage/UserManageList.vue                             |   24 
 src/services/api/enterprise.ts                                      |   86 +++
 src/services/api/index.ts                                           |   28 
 src/views/UserManage/components/AddOrEditUserDialog.vue             |    4 
 25 files changed, 1,312 insertions(+), 244 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 5a6af36..34cdfee 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -30,9 +30,14 @@
     "EnumDbAuditOperate": true,
     "EnumElectronSignAccess": true,
     "EnumElectronSignVerifyType": true,
+    "EnumEnterpriseCooperationSignStatus": true,
+    "EnumEnterpriseCooperationSignStatusText": true,
+    "EnumEnterpriseCooperationStatus": true,
+    "EnumEnterpriseCooperationStatusText": true,
     "EnumEnterpriseCostStatus": true,
     "EnumEnterpriseCostType": true,
     "EnumEnterpriseRealMethod": true,
+    "EnumEnterpriseType": true,
     "EnumEnterpriseWalletAccess": true,
     "EnumEnterpriseWalletAccessText": true,
     "EnumEnterpriseWalletAccessTextForSettle": true,
@@ -73,6 +78,7 @@
     "EnumSettlementCycleText": true,
     "EnumSmsAccess": true,
     "EnumSmsStatus": true,
+    "EnumTaskApplyStatus": true,
     "EnumTaskCheckReceiveMethod": true,
     "EnumTaskCheckReceiveMethodText": true,
     "EnumTaskCheckReceiveStatus": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index e31e30b..e4958c7 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -33,9 +33,14 @@
   const EnumDbAuditOperate: typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']
   const EnumElectronSignAccess: typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']
   const EnumElectronSignVerifyType: typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']
+  const EnumEnterpriseCooperationSignStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationSignStatus']
+  const EnumEnterpriseCooperationSignStatusText: typeof import('./src/constants/customer')['EnumEnterpriseCooperationSignStatusText']
+  const EnumEnterpriseCooperationStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationStatus']
+  const EnumEnterpriseCooperationStatusText: typeof import('./src/constants/customer')['EnumEnterpriseCooperationStatusText']
   const EnumEnterpriseCostStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']
   const EnumEnterpriseCostType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']
   const EnumEnterpriseRealMethod: typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']
+  const EnumEnterpriseType: typeof import('./src/constants/apiEnum')['EnumEnterpriseType']
   const EnumEnterpriseWalletAccess: typeof import('./src/constants/apiEnum')['EnumEnterpriseWalletAccess']
   const EnumEnterpriseWalletAccessText: typeof import('./src/constants/enterpriseWallet')['EnumEnterpriseWalletAccessText']
   const EnumEnterpriseWalletAccessTextForSettle: typeof import('./src/constants/task')['EnumEnterpriseWalletAccessTextForSettle']
@@ -78,6 +83,7 @@
   const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
   const EnumSmsStatus: typeof import('./src/constants/apiEnum')['EnumSmsStatus']
   const EnumSmsTemplateType: typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']
+  const EnumTaskApplyStatus: typeof import('./src/constants/apiEnum')['EnumTaskApplyStatus']
   const EnumTaskCheckReceiveMethod: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveMethod']
   const EnumTaskCheckReceiveMethodText: typeof import('./src/constants/task')['EnumTaskCheckReceiveMethodText']
   const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
@@ -289,7 +295,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, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
+  export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskApplyStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskApplyStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
   import('./src/constants/apiEnum')
   // @ts-ignore
   export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
@@ -351,9 +357,14 @@
     readonly EnumDbAuditOperate: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']>
     readonly EnumElectronSignAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']>
     readonly EnumElectronSignVerifyType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']>
+    readonly EnumEnterpriseCooperationSignStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationSignStatus']>
+    readonly EnumEnterpriseCooperationSignStatusText: UnwrapRef<typeof import('./src/constants/customer')['EnumEnterpriseCooperationSignStatusText']>
+    readonly EnumEnterpriseCooperationStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationStatus']>
+    readonly EnumEnterpriseCooperationStatusText: UnwrapRef<typeof import('./src/constants/customer')['EnumEnterpriseCooperationStatusText']>
     readonly EnumEnterpriseCostStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']>
     readonly EnumEnterpriseCostType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']>
     readonly EnumEnterpriseRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']>
+    readonly EnumEnterpriseType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseType']>
     readonly EnumEnterpriseWalletAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseWalletAccess']>
     readonly EnumEnterpriseWalletAccessText: UnwrapRef<typeof import('./src/constants/enterpriseWallet')['EnumEnterpriseWalletAccessText']>
     readonly EnumEnterpriseWalletAccessTextForSettle: UnwrapRef<typeof import('./src/constants/task')['EnumEnterpriseWalletAccessTextForSettle']>
@@ -394,6 +405,7 @@
     readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']>
     readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']>
     readonly EnumSmsStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsStatus']>
+    readonly EnumTaskApplyStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskApplyStatus']>
     readonly EnumTaskCheckReceiveMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveMethod']>
     readonly EnumTaskCheckReceiveMethodText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskCheckReceiveMethodText']>
     readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 1f65500..4a29a7f 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -101,6 +101,22 @@
   Face = 20,
 }
 
+/** 绛剧害鐘舵�� */
+export enum EnumEnterpriseCooperationSignStatus {
+  /**鏈绾� */
+  None = 10,
+  /**宸茬绾� */
+  Completed = 20,
+}
+
+/** 浼佷笟鍚堜綔鐘舵�� */
+export enum EnumEnterpriseCooperationStatus {
+  /**鏈悎浣� */
+  None = 10,
+  /**宸插悎浣� */
+  Completed = 20,
+}
+
 /** 浼佷笟鐢ㄩ噺鎵h垂鐘舵�� */
 export enum EnumEnterpriseCostStatus {
   /**鎵h垂鎴愬姛 */
@@ -123,6 +139,14 @@
   Identity3 = 10,
   /**浼佷笟鍥涜绱� */
   Identity4 = 20,
+}
+
+/** 浼佷笟绫诲瀷 */
+export enum EnumEnterpriseType {
+  /**渚涘簲鍟� */
+  Supplier = 0,
+  /**鐢叉柟浼佷笟 */
+  PartyA = 1,
 }
 
 /** 浼佷笟閽卞寘閫氶亾 */
@@ -465,6 +489,16 @@
   Success = 20,
   /**鍙戦�佸け璐� */
   Fail = 30,
+}
+
+/** 浠诲姟鎶ュ悕鐘舵�� */
+export enum EnumTaskApplyStatus {
+  /**寰呭紑濮� */
+  Wait = 10,
+  /**杩涜涓� */
+  InProcess = 20,
+  /**宸茬粨鏉� */
+  End = 21,
 }
 
 /** 浠诲姟楠屾敹鏂瑰紡 */
@@ -837,6 +871,8 @@
   WaitHire = 10,
   /**寰呯绾� */
   WaitSignContract = 20,
+  /**宸茶阿缁� */
+  HireRefuse = 30,
 }
 
 /** 鎴戠殑宸插綍鐢ㄥ垎椤靛垪琛�-鐘舵�� */
diff --git a/src/constants/app.ts b/src/constants/app.ts
index edcedd5..090be88 100644
--- a/src/constants/app.ts
+++ b/src/constants/app.ts
@@ -3,4 +3,5 @@
 export const AppLocalConfig = {
   userType: EnumUserType.Enterprise,
   clientType: EnumClientType.PcWeb,
+  enterpriseType: EnumEnterpriseType.Supplier,
 };
diff --git a/src/constants/customer.ts b/src/constants/customer.ts
new file mode 100644
index 0000000..c346729
--- /dev/null
+++ b/src/constants/customer.ts
@@ -0,0 +1,9 @@
+export const EnumEnterpriseCooperationStatusText = {
+  [EnumEnterpriseCooperationStatus.None]: '鏈悎浣�',
+  [EnumEnterpriseCooperationStatus.Completed]: '宸插悎浣�',
+};
+
+export const EnumEnterpriseCooperationSignStatusText = {
+  [EnumEnterpriseCooperationSignStatus.None]: '鏈绾�',
+  [EnumEnterpriseCooperationSignStatus.Completed]: '宸茬绾�',
+};
diff --git a/src/constants/index.ts b/src/constants/index.ts
index c391531..5647ab8 100644
--- a/src/constants/index.ts
+++ b/src/constants/index.ts
@@ -17,3 +17,4 @@
 export * from './finance';
 export * from './common';
 export * from './user';
+export * from './customer';
diff --git a/src/services/api/enterprise.ts b/src/services/api/enterprise.ts
index 868563d..1878577 100644
--- a/src/services/api/enterprise.ts
+++ b/src/services/api/enterprise.ts
@@ -68,6 +68,77 @@
   );
 }
 
+/** 鏌ヨ瀹㈡埛璇︽儏锛堢敳鏂逛紒涓氾級 GET /api/user/enterprise/getPartyAEnterprise */
+export async function getPartyAEnterprise(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetPartyAEnterpriseParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetPartyAEnterpriseQueryResult>('/api/user/enterprise/getPartyAEnterprise', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ瀹㈡埛绠$悊锛堢敳鏂瑰鎴凤級 POST /api/user/enterprise/getPartyAEnterprises */
+export async function getPartyAEnterprises(
+  body: API.GetPartyAEnterprisesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.PagedListQueryResultGetPartyAEnterprisesQueryResultItem>(
+    '/api/user/enterprise/getPartyAEnterprises',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ渚涘簲鍟嗙鐞� POST /api/user/enterprise/getSupplierEnterprises */
+export async function getSupplierEnterprises(
+  body: API.GetSupplierEnterprisesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.PagedListQueryResultGetSupplierEnterprisesQueryResultItem>(
+    '/api/user/enterprise/getSupplierEnterprises',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ渚涘簲鍟嗛�夋嫨鍣ㄦ暟鎹� GET /api/user/enterprise/getSupplierEnterpriseSelect */
+export async function getSupplierEnterpriseSelect(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetSupplierEnterpriseSelectParams,
+  options?: API.RequestConfig
+) {
+  return request<API.SelectOptionGuidGetSupplierEnterpriseSelectQueryOption[]>(
+    '/api/user/enterprise/getSupplierEnterpriseSelect',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+        request: undefined,
+        ...params['request'],
+      },
+      ...(options || {}),
+    }
+  );
+}
+
 /** 淇濆瓨浼佷笟 POST /api/user/enterprise/saveEnterprise */
 export async function saveEnterprise(body: API.SaveEnterpriseCommand, options?: API.RequestConfig) {
   return request<string>('/api/user/enterprise/saveEnterprise', {
@@ -95,6 +166,21 @@
   });
 }
 
+/** 娣诲姞瀹㈡埛浼佷笟锛堢敳鏂逛紒涓氾級 POST /api/user/enterprise/savePartyAEnterprise */
+export async function savePartyAEnterprise(
+  body: API.SavePartyAEnterpriseCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/enterprise/savePartyAEnterprise', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 璁剧疆浼佷笟鐢靛瓙绛鹃厤缃� PUT /api/user/enterprise/setEnterpriseElectronSignSetting */
 export async function setEnterpriseElectronSignSetting(
   body: API.SetEnterpriseElectronSignSettingCommand,
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index e99bcae..522d40c 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -5,46 +5,46 @@
 import * as enterpriseEmployee from './enterpriseEmployee';
 import * as user from './user';
 import * as role from './role';
+import * as task from './task';
 import * as enterpriseWallet from './enterpriseWallet';
 import * as ocrUtils from './ocrUtils';
-import * as task from './task';
 import * as enterprise from './enterprise';
-import * as logRecords from './logRecords';
 import * as resource from './resource';
+import * as logRecords from './logRecords';
 import * as dictionary from './dictionary';
-import * as codeUrl from './codeUrl';
+import * as taskCheckReceive from './taskCheckReceive';
 import * as electronSign from './electronSign';
 import * as userResume from './userResume';
 import * as auth from './auth';
-import * as taskCheckReceive from './taskCheckReceive';
 import * as taskUser from './taskUser';
-import * as sms from './sms';
-import * as settings from './settings';
+import * as codeUrl from './codeUrl';
+import * as syncDatabase from './syncDatabase';
 import * as menu from './menu';
+import * as sms from './sms';
 import * as userWallet from './userWallet';
 import * as fileUtils from './fileUtils';
-import * as syncDatabase from './syncDatabase';
+import * as settings from './settings';
 export default {
   enterpriseEmployee,
   user,
   role,
+  task,
   enterpriseWallet,
   ocrUtils,
-  task,
   enterprise,
-  logRecords,
   resource,
+  logRecords,
   dictionary,
-  codeUrl,
+  taskCheckReceive,
   electronSign,
   userResume,
   auth,
-  taskCheckReceive,
   taskUser,
-  sms,
-  settings,
+  codeUrl,
+  syncDatabase,
   menu,
+  sms,
   userWallet,
   fileUtils,
-  syncDatabase,
+  settings,
 };
diff --git a/src/services/api/task.ts b/src/services/api/task.ts
index 84167b8..ad58f4e 100644
--- a/src/services/api/task.ts
+++ b/src/services/api/task.ts
@@ -2,6 +2,21 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 鍐嶆纭缁撶畻 POST /api/flexjob/task/againSureTaskSettlementOrderRoster */
+export async function againSureTaskSettlementOrderRoster(
+  body: API.AgainSureTaskSettlementOrderRosterCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/task/againSureTaskSettlementOrderRoster', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 瀹℃牳浠诲姟缁撶畻 POST /api/flexjob/task/auditTaskSettlement */
 export async function auditTaskSettlement(
   body: API.AuditTaskSettlementCommand,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index beb6a74..ce28d1d 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -3,6 +3,11 @@
     [key: string]: any;
   }
 
+  interface AgainSureTaskSettlementOrderRosterCommand {
+    /** 鍚嶅崟Id */
+    id?: string;
+  }
+
   interface APIcheckHealthParams {
     /** 鍋ュ悍鏍¢獙 */
     request?: CheckHealthQuery;
@@ -180,6 +185,11 @@
     roleId?: string;
   }
 
+  interface APIgetPartyAEnterpriseParams {
+    /** 鍚堜綔Id */
+    id?: string;
+  }
+
   interface APIgetPersonalLoginInfoParams {
     /** 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 */
     request?: GetPersonalLoginInfoQuery;
@@ -245,6 +255,11 @@
     isImport?: boolean;
     /** 鎿嶄綔浠ょ墝 */
     operatorToken?: string;
+  }
+
+  interface APIgetSupplierEnterpriseSelectParams {
+    /** 鏌ヨ渚涘簲鍟嗛�夋嫨鍣ㄦ暟鎹� */
+    request?: GetSupplierEnterpriseSelectQuery;
   }
 
   interface APIgetTaskEnterpriseParams {
@@ -787,6 +802,20 @@
     Face = 20,
   }
 
+  enum EnumEnterpriseCooperationSignStatus {
+    /**鏈绾� */
+    None = 10,
+    /**宸茬绾� */
+    Completed = 20,
+  }
+
+  enum EnumEnterpriseCooperationStatus {
+    /**鏈悎浣� */
+    None = 10,
+    /**宸插悎浣� */
+    Completed = 20,
+  }
+
   enum EnumEnterpriseCostStatus {
     /**鎵h垂鎴愬姛 */
     Success = 10,
@@ -806,6 +835,13 @@
     Identity3 = 10,
     /**浼佷笟鍥涜绱� */
     Identity4 = 20,
+  }
+
+  enum EnumEnterpriseType {
+    /**渚涘簲鍟� */
+    Supplier = 0,
+    /**鐢叉柟浼佷笟 */
+    PartyA = 1,
   }
 
   enum EnumEnterpriseWalletAccess {
@@ -1121,6 +1157,15 @@
     Success = 20,
     /**鍙戦�佸け璐� */
     Fail = 30,
+  }
+
+  enum EnumTaskApplyStatus {
+    /**寰呭紑濮� */
+    Wait = 10,
+    /**杩涜涓� */
+    InProcess = 20,
+    /**宸茬粨鏉� */
+    End = 21,
   }
 
   enum EnumTaskCheckReceiveMethod {
@@ -2212,6 +2257,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetPartyAEnterpriseQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetPartyAEnterpriseQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetPersonalApplyTaskInfosQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3200,6 +3263,25 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultListSelectOptionGuidGetSupplierEnterpriseSelectQueryOption {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: SelectOptionGuidGetSupplierEnterpriseSelectQueryOption[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultListSelectOptionGuidGetTaskSelectQueryOption {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3365,6 +3447,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultPagedListQueryResultGetPartyAEnterprisesQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PagedListQueryResultGetPartyAEnterprisesQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultPagedListQueryResultGetRolesQueryResultItem {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3373,6 +3473,24 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: PagedListQueryResultGetRolesQueryResultItem;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultPagedListQueryResultGetSupplierEnterprisesQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PagedListQueryResultGetSupplierEnterprisesQueryResultItem;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -3690,6 +3808,10 @@
   }
 
   interface GetCheckReceiveTaskQueryResultObjectData {
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浠诲姟鍚嶇О */
     name?: string;
     /** 浠诲姟鍗曞彿 */
@@ -3741,6 +3863,10 @@
   interface GetCheckReceiveTasksQueryResultItem {
     /** 浠诲姟Id */
     id?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浠诲姟鍚嶇О */
     name?: string;
     /** 浠诲姟鍗曞彿 */
@@ -4491,6 +4617,7 @@
   interface GetEnterprisesQueryResultItem {
     /** Id */
     id?: string;
+    type?: EnumEnterpriseType;
     /** 浼佷笟鍏ㄧО */
     enterpriseName?: string;
     /** 娉曚汉濮撳悕 */
@@ -4547,6 +4674,10 @@
     identity?: string;
     /** 浣欓 */
     balance?: number;
+    /** 鍙敤浣欓 */
+    availableBalance?: number;
+    /** 宸插喕缁� */
+    freezeBalance?: number;
   }
 
   interface GetEnterpriseWalletExpandindirectOrderQueryResult {
@@ -5132,6 +5263,84 @@
     name?: string;
   }
 
+  interface GetPartyAEnterpriseQueryResult {
+    /** 鍚堜綔Id */
+    id?: string;
+    /** 鐢叉柟浼佷笟Id */
+    partyAEnterpriseId?: string;
+    /** 浼佷笟鍚嶇О */
+    enterpriseName?: string;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 娉曚汉韬唤璇佸彿 */
+    legalIdentity?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode?: string;
+    /** 娉ㄥ唽璧勬湰 */
+    registeredCapital?: string;
+    /** 浼佷笟绫诲瀷 */
+    enterpriseType?: string;
+    /** 鎴愮珛鏃ユ湡 */
+    establishmentDate?: string;
+    /** 鎵�鍦ㄧ渷浠界紪鍙� */
+    provinceCode?: string;
+    /** 鎵�鍦ㄧ渷浠� */
+    provinceContent?: string;
+    /** 鎵�鍦ㄥ煄甯傜紪鍙� */
+    cityCode?: string;
+    /** 鎵�鍦ㄥ煄甯� */
+    cityContent?: string;
+    /** 璇︾粏鍦板潃 */
+    address?: string;
+    /** 缁忚惀鑼冨洿 */
+    mainBusiness?: string;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鑱旂郴閭 */
+    contactEmail?: string;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+    /** 鍚堜綔鍗忚 */
+    cooperationAgreementUrl?: string;
+    /** 鐢ㄦ埛Id */
+    userId?: string;
+    /** 璐﹀彿 */
+    userName?: string;
+  }
+
+  interface GetPartyAEnterprisesQuery {
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetPartyAEnterprisesQueryResultItem {
+    /** 鍚堜綔Id */
+    id?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode?: string;
+    /** 瀹㈡埛ID */
+    partyAEnterpriseId?: string;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鎵�鍦ㄧ渷浠� */
+    provinceContent?: string;
+    /** 鎵�鍦ㄥ煄甯� */
+    cityContent?: string;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+  }
+
   interface GetPersonalApplyTaskInfosQuery {
     status?: GetPersonalApplyTaskInfosQueryStatus;
     pageModel?: PagedListQueryPageModel;
@@ -5146,6 +5355,10 @@
   interface GetPersonalApplyTaskInfosQueryResultItem {
     /** 浠诲姟Id */
     id?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浠诲姟鍚嶇О */
     name?: string;
     /** 浠诲姟寮�濮嬫椂闂� */
@@ -5181,6 +5394,8 @@
     WaitHire = 10,
     /**寰呯绾� */
     WaitSignContract = 20,
+    /**宸茶阿缁� */
+    HireRefuse = 30,
   }
 
   interface GetPersonalCancelTaskInfosQuery {
@@ -5196,6 +5411,10 @@
   interface GetPersonalCancelTaskInfosQueryResultItem {
     /** 浠诲姟Id */
     id?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浠诲姟鍚嶇О */
     name?: string;
     /** 浠诲姟寮�濮嬫椂闂� */
@@ -5241,6 +5460,10 @@
   interface GetPersonalHireTaskInfosQueryResultItem {
     /** 浠诲姟Id */
     id?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浠诲姟鍚嶇О */
     name?: string;
     /** 浠诲姟寮�濮嬫椂闂� */
@@ -5594,8 +5817,15 @@
     balance?: number;
     /** 浼佷笟鍚嶇О */
     enterpriseName?: string;
+    /** 渚涘簲鍟� */
+    supplierEnterpriseName?: string;
     /** 浠诲姟鍚嶇О */
     taskName?: string;
+    /** 浠诲姟鍗曞彿 */
+    taskCode?: string;
+    /** 缁撶畻鍗曞彿 */
+    settlementCode?: string;
+    settlementAccess?: EnumEnterpriseWalletAccess;
     /** 缁撶畻鍗曞悕绉� */
     settlementOrderName?: string;
     settlementStatus?: EnumTaskSettlementStatus;
@@ -5789,6 +6019,7 @@
     /** 鍚嶇О */
     name?: string;
     userType?: EnumUserType;
+    enterpriseType?: EnumEnterpriseType;
     clientType?: EnumClientType;
     /** 鏈�浣庣骇鍒� */
     minLevel?: number;
@@ -5809,6 +6040,7 @@
 
   interface GetRolesQuery {
     userType?: EnumUserType;
+    enterpriseType?: EnumEnterpriseType;
     clientType?: EnumClientType;
     /** 鍏抽敭瀛� */
     keywords?: string;
@@ -5821,6 +6053,7 @@
     /** 鍚嶇О */
     name?: string;
     userType?: EnumUserType;
+    enterpriseType?: EnumEnterpriseType;
     clientType?: EnumClientType;
     /** 鏈�浣庣骇鍒� */
     minLevel?: number;
@@ -5906,6 +6139,8 @@
     name?: string;
     /** 浠诲姟鍗曞彿 */
     code?: string;
+    /** 缁撶畻鍗曞彿 */
+    settlementCode?: string;
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
     settlementOrderStatus?: EnumTaskSettlementOrderStatus;
     /** 缁撶畻鍗曞悕绉� */
@@ -5925,7 +6160,10 @@
     settlementRemark?: string;
     /** 缁撶畻浜烘暟 */
     settlementUserCount?: number;
+    settlementAccess?: EnumEnterpriseWalletAccess;
     auditStatus?: EnumTaskSettlementAuditStatus;
+    /** 鎿嶄綔浜� */
+    operator?: string;
   }
 
   interface GetSettlementTasksQueryResultObjectData {
@@ -5946,6 +6184,10 @@
   interface GetSettlementTaskUsersQueryResultDetail {
     /** 缁撶畻璁㈠崟Id */
     id?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 鏍¢獙楠屾敹璧峰鏃ユ湡 */
     checkReceiveBeginDate?: string;
     /** 鏍¢獙楠屾敹鎴鏃ユ湡 */
@@ -6123,6 +6365,52 @@
     signName?: string;
   }
 
+  type GetSupplierEnterpriseSelectQuery = Record<string, any>;
+
+  interface GetSupplierEnterpriseSelectQueryOption {
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    supplierEnterprise?: GetSupplierEnterpriseSelectQueryOptionEnterprise;
+  }
+
+  interface GetSupplierEnterpriseSelectQueryOptionEnterprise {
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+  }
+
+  interface GetSupplierEnterprisesQuery {
+    /** 鍏抽敭瀛� */
+    keywords?: string;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetSupplierEnterprisesQueryResultItem {
+    /** 鍚堜綔Id */
+    id?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode?: string;
+    /** 渚涘簲鍟咺D */
+    supplierEnterpriseId?: string;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鎵�鍦ㄧ渷浠� */
+    provinceContent?: string;
+    /** 鎵�鍦ㄥ煄甯� */
+    cityContent?: string;
+    /** 鎵�灞炶涓� */
+    industryTypeContent?: string;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+  }
+
   interface GetTaskEnterpriseQueryResult {
     /** 浼佷笟鍏ㄧО */
     enterpriseName?: string;
@@ -6147,6 +6435,12 @@
   interface GetTaskInfoQueryResult {
     /** Id */
     id?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 渚涘簲鍟� */
+    supplierEnterpriseName?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浼佷笟Id */
     enterpriseId?: string;
     /** 浼佷笟鍏ㄧО */
@@ -6293,11 +6587,21 @@
   interface GetTaskInfosQueryResultItem {
     /** Id */
     id?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 渚涘簲鍟� */
+    supplierEnterpriseName?: string;
+    /** 渚涘簲鍟嗚处鍙� */
+    supplierEnterpriseUserName?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浠诲姟鍚嶇О */
     name: string;
     /** 浠诲姟鍗曞彿 */
     code?: string;
-    /** 浼佷笟鍏ㄧО */
+    /** 鎵�灞炲鎴稩d */
+    enterpriseId?: string;
+    /** 鎵�灞炲鎴� */
     enterpriseName?: string;
     /** 鐢ㄦ埛鍚� */
     userName?: string;
@@ -6341,6 +6645,7 @@
     applyBeginTime?: string;
     /** 鎶ュ悕缁撴潫鏃堕棿 */
     applyEndTime?: string;
+    applyStatus?: EnumTaskApplyStatus;
     checkReceiveMethod?: EnumTaskCheckReceiveMethod;
     paymentMethod?: EnumTaskPaymentMethod;
     settlementAccess?: EnumEnterpriseWalletAccess;
@@ -7055,10 +7360,22 @@
     data?: GetEnterprisesQueryResultItem[];
   }
 
+  interface PagedListQueryResultGetPartyAEnterprisesQueryResultItem {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetPartyAEnterprisesQueryResultItem[];
+  }
+
   interface PagedListQueryResultGetRolesQueryResultItem {
     pageModel?: PagedListQueryResultPageModel;
     /** 鏁版嵁 */
     data?: GetRolesQueryResultItem[];
+  }
+
+  interface PagedListQueryResultGetSupplierEnterprisesQueryResultItem {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetSupplierEnterprisesQueryResultItem[];
   }
 
   interface PagedListQueryResultPageModel {
@@ -7081,6 +7398,7 @@
     password: string;
     type?: EnumUserType;
     clientType?: EnumClientType;
+    enterpriseType?: EnumEnterpriseType;
   }
 
   interface PersonalUserElectronSignCommand {
@@ -7490,6 +7808,49 @@
     id?: string;
   }
 
+  interface SavePartyAEnterpriseCommand {
+    /** 浼佷笟鍚嶇О */
+    enterpriseName: string;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 娉曚汉韬唤璇佸彿 */
+    legalIdentity?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode: string;
+    /** 娉ㄥ唽璧勬湰 */
+    registeredCapital?: string;
+    /** 浼佷笟绫诲瀷 */
+    enterpriseType?: string;
+    /** 鎴愮珛鏃ユ湡 */
+    establishmentDate?: string;
+    /** 鎵�鍦ㄧ渷浠界紪鍙� */
+    provinceCode?: string;
+    /** 鎵�鍦ㄥ煄甯傜紪鍙� */
+    cityCode?: string;
+    /** 璇︾粏鍦板潃 */
+    address?: string;
+    /** 缁忚惀鑼冨洿 */
+    mainBusiness?: string;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鑱旂郴閭 */
+    contactEmail?: string;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+    /** 鍚堜綔鍗忚 */
+    cooperationAgreementUrl?: string;
+    /** 璐﹀彿 */
+    userName?: string;
+    /** 瀵嗙爜锛堥�夊~ 濉簡灏辨敼涓嶅~灏变笉鏀癸級 */
+    password?: string;
+    /** 鎿嶄綔瀵嗙爜锛堥�夊~ 濉簡灏辨敼涓嶅~灏变笉鏀癸級 */
+    operatorPassword?: string;
+    /** Id */
+    id?: string;
+  }
+
   interface SavePersonalUserBankCardCommand {
     /** 鐏靛伐Id */
     enterpriseEmployeeId?: string;
@@ -7514,6 +7875,7 @@
     /** 鍚嶇О */
     name?: string;
     userType?: EnumUserType;
+    enterpriseType?: EnumEnterpriseType;
     clientType?: EnumClientType;
     /** 鏈�浣庣骇鍒� */
     minLevel?: number;
@@ -7552,6 +7914,10 @@
   }
 
   interface SaveTaskInfoCommand {
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 闇�姹備汉鏁� */
+    needPeopleNumber?: number;
     /** 浠诲姟鍚嶇О */
     name: string;
     billingMethod: EnumBillingMethod;
@@ -7725,6 +8091,14 @@
     /** 鏍囩 */
     label?: string;
     data?: GetEnterpriseWalletAccessSelectQueryOption;
+  }
+
+  interface SelectOptionGuidGetSupplierEnterpriseSelectQueryOption {
+    /** 鍊� */
+    value?: string;
+    /** 鏍囩 */
+    label?: string;
+    data?: GetSupplierEnterpriseSelectQueryOption;
   }
 
   interface SelectOptionGuidGetTaskSelectQueryOption {
@@ -7926,6 +8300,7 @@
     verifyCode?: string;
     type?: EnumUserType;
     clientType?: EnumClientType;
+    enterpriseType?: EnumEnterpriseType;
   }
 
   interface StopElectronSignCommand {
@@ -8749,5 +9124,6 @@
     /** 鐢ㄦ埛鐧诲綍鍑瘉 */
     code: string;
     type?: EnumUserType;
+    enterpriseType?: EnumEnterpriseType;
   }
 }
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 91a830c..9358c34 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -77,6 +77,7 @@
           // password: md5Encrypt(params.password),
           type: AppLocalConfig.userType,
           clientType: AppLocalConfig.clientType,
+          enterpriseType: AppLocalConfig.enterpriseType,
         },
         {
           showLoading: false,
diff --git a/src/views/CustomerManage/CustomerManage.vue b/src/views/CustomerManage/CustomerManage.vue
index b255d5c..90acbda 100644
--- a/src/views/CustomerManage/CustomerManage.vue
+++ b/src/views/CustomerManage/CustomerManage.vue
@@ -3,6 +3,24 @@
     <AppContainer>
       <ProTableQueryFilterBar @on-reset="reset">
         <template #query>
+          <QueryFilterItem tip-content="鍚堜綔鐘舵��">
+            <FieldRadio
+              v-model="extraParamState.cooperationStatus"
+              :value-enum="EnumEnterpriseCooperationStatusText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem tip-content="绛剧害鐘舵��">
+            <FieldRadio
+              v-model="extraParamState.signStatus"
+              :value-enum="EnumEnterpriseCooperationSignStatusText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
           <QueryFilterItem>
             <SearchInput
               v-model="extraParamState.keywords"
@@ -14,15 +32,14 @@
           </QueryFilterItem>
         </template>
         <template #btn>
-          <el-button
-            @click="goAddOrEdit()"
-            icon="Plus"
-            type="primary"
-            >鏂板瀹㈡埛</el-button
-          >
+          <el-button @click="goAddOrEdit()" icon="Plus" type="primary">鏂板瀹㈡埛</el-button>
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2 v-bind="proTableProps" :columns="CustomerManageColumns" :operationBtns="operationBtns">
+      <ProTableV2
+        v-bind="proTableProps"
+        :columns="CustomerManageColumns"
+        :operationBtns="operationBtns"
+      >
       </ProTableV2>
     </AppContainer>
   </LoadingLayout>
@@ -31,7 +48,7 @@
 <script setup lang="ts">
 import {
   ProTableQueryFilterBar,
-  OperationBtnType,
+  FieldRadio,
   ProTableV2,
   SearchInput,
   LoadingLayout,
@@ -39,16 +56,20 @@
   QueryFilterItem,
   useTable,
   useFormDialog,
-  defineOperationBtns
+  defineOperationBtns,
 } from '@bole-core/components';
-import * as taskServices from '@/services/api/task';
-import {CustomerManageColumns} from './constants';
+import * as enterpriseServices from '@/services/api/enterprise';
+import { CustomerManageColumns } from './constants';
+import {
+  EnumEnterpriseCooperationStatusText,
+  EnumEnterpriseCooperationSignStatusText,
+} from '@/constants';
 
 defineOptions({
   name: 'CustomerManage',
 });
 
-const operationBtns=defineOperationBtns([
+const operationBtns = defineOperationBtns([
   {
     data: {
       enCode: 'detailBtn',
@@ -67,7 +88,7 @@
       onClick: (role) => goAddOrEdit(role),
     },
   },
-])
+]);
 
 const BaseState = {
   loading: true,
@@ -99,16 +120,18 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetTaskInfosQuery = {
+      let params: API.GetPartyAEnterprisesQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
         keywords: extraParamState.keywords,
+        cooperationStatus: extraParamState.cooperationStatus,
+        signStatus: extraParamState.signStatus,
       };
 
-      let res = await taskServices.getTaskInfos(params, {
+      let res = await enterpriseServices.getPartyAEnterprises(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -117,14 +140,21 @@
   {
     defaultExtraParams: {
       keywords: '',
-        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+      cooperationStatus: '' as any as EnumEnterpriseCooperationStatus,
+      signStatus: '' as any as EnumEnterpriseCooperationSignStatus,
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    queryKey: ['enterpriseServices/getPartyAEnterprises'],
+    columnsRenderProps: {
+      cooperationStatus: { type: 'enum', valueEnum: EnumEnterpriseCooperationStatusText },
+      signStatus: { type: 'enum', valueEnum: EnumEnterpriseCooperationSignStatusText },
     },
   }
 );
 
-const router=useRouter();
+const router = useRouter();
 
-function goAddOrEdit(row?: API.GetTaskInfosQueryResultItem) {
+function goAddOrEdit(row?: API.GetPartyAEnterprisesQueryResultItem) {
   router.push({
     name: 'AddOrEditCustomer',
     params: {
@@ -133,7 +163,7 @@
   });
 }
 
-function goDetail(row: API.GetTaskInfosQueryResultItem) {
+function goDetail(row: API.GetPartyAEnterprisesQueryResultItem) {
   router.push({
     name: 'CustomerDetail',
     params: {
diff --git a/src/views/CustomerManage/components/AddOrEditCustomerView.vue b/src/views/CustomerManage/components/AddOrEditCustomerView.vue
index 8377969..f667e9f 100644
--- a/src/views/CustomerManage/components/AddOrEditCustomerView.vue
+++ b/src/views/CustomerManage/components/AddOrEditCustomerView.vue
@@ -50,87 +50,54 @@
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2
-                label="娉ㄥ唽璧勬湰:"
-                prop="societyCreditCode"
-                :check-rules="[{ message: '璇疯緭鍏ユ敞鍐岃祫鏈�', type: 'societyCreditCode' }]"
-              >
-                <ProFormText v-model.trim="form.societyCreditCode" placeholder="璇疯緭鍏ユ敞鍐岃祫鏈�" />
+              <ProFormItemV2 label="娉ㄥ唽璧勬湰:" prop="registeredCapital">
+                <ProFormText v-model.trim="form.registeredCapital" placeholder="璇疯緭鍏ユ敞鍐岃祫鏈�" />
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2
-                label="浼佷笟绫诲瀷:"
-                prop="societyCreditCode"
-                :check-rules="[{ message: '璇疯緭鍏ヤ紒涓氱被鍨�', type: 'societyCreditCode' }]"
-              >
-                <ProFormText v-model.trim="form.societyCreditCode" placeholder="璇疯緭鍏ヤ紒涓氱被鍨�" />
+              <ProFormItemV2 label="浼佷笟绫诲瀷:" prop="enterpriseType">
+                <ProFormText v-model.trim="form.enterpriseType" placeholder="璇疯緭鍏ヤ紒涓氱被鍨�" />
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
           <ProFormCol>
             <ProFormColItem :span="8">
-              <ProFormItemV2
-                label="鎴愮珛鏃ユ湡:"
-                prop="date"
-                :check-rules="[{ message: '璇烽�夋嫨鎴愮珛鏃ユ湡' }]"
-              >
-                <ProFormDatePicker v-model="form.date" type="date" placeholder="璇烽�夋嫨鎴愮珛鏃ユ湡" />
-              </ProFormItemV2>
-            </ProFormColItem>
-            <ProFormColItem :span="8">
-              <ProFormItemV2
-                label="鎵�鍦ㄧ渷浠�:"
-                prop="areaList"
-                :check-rules="[
-                  {
-                    type: 'array',
-                    message: '璇烽�夋嫨',
-                  },
-                ]"
-              >
-                <ProFromAddressSelectV2
-                  v-model:areaList="form.areaList"
-                  areaListPlaceholder="璇烽�夋嫨"
-                  :layer="AreaType.City"
+              <ProFormItemV2 label="鎴愮珛鏃ユ湡:" prop="establishmentDate">
+                <ProFormDatePicker
+                  v-model="form.establishmentDate"
+                  type="date"
+                  placeholder="璇烽�夋嫨鎴愮珛鏃ユ湡"
                 />
               </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
               <ProFormItemV2
-                label="鎵�鍦ㄥ煄甯�:"
+                label="鎵�鍦ㄥ湴鍖�:"
                 prop="areaList"
                 :check-rules="[
                   {
                     type: 'array',
-                    message: '璇烽�夋嫨',
+                    message: '璇烽�夋嫨鎵�鍦ㄥ湴鍖�',
                   },
                 ]"
               >
                 <ProFromAddressSelectV2
                   v-model:areaList="form.areaList"
-                  areaListPlaceholder="璇烽�夋嫨"
+                  areaListPlaceholder="璇烽�夋嫨鎵�鍦ㄥ湴鍖�"
                   :layer="AreaType.City"
                 />
               </ProFormItemV2>
             </ProFormColItem>
+            <ProFormColItem :span="8"> </ProFormColItem>
           </ProFormCol>
           <ProFormCol>
             <ProFormColItem :span="8">
-              <ProFormItemV2
-                label="璇︾粏鍦板潃:"
-                prop="societyCreditCode"
-                :check-rules="[{ message: '璇疯緭鍏ヨ缁嗗湴鍧�' }]"
-              >
-                <ProFormText v-model.trim="form.societyCreditCode" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" />
+              <ProFormItemV2 label="璇︾粏鍦板潃:" prop="address">
+                <ProFormText v-model.trim="form.address" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" />
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
-          <ProFormItemV2
-            label="缁忚惀鑼冨洿:"
-            prop="mainBusiness"
-            :check-rules="[{ message: '璇疯緭鍏ョ粡钀ヨ寖鍥�' }]"
-          >
+          <ProFormItemV2 label="缁忚惀鑼冨洿:" prop="mainBusiness">
             <ProFormTextArea
               v-model="form.mainBusiness"
               maxlength="200"
@@ -185,13 +152,30 @@
           </ProFormCol>
           <ProFormCol>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="鍚堜綔鐘舵��:" prop="contacts"> </ProFormItemV2>
+              <ProFormItemV2 label="鍚堜綔鐘舵��:" prop="cooperationStatus">
+                <ProFormRadio
+                  v-model="form.cooperationStatus"
+                  :value-enum="EnumEnterpriseCooperationStatusText"
+                />
+              </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="绛剧害鐘舵��:" prop="contacts"> </ProFormItemV2>
+              <ProFormItemV2 label="绛剧害鐘舵��:" prop="signStatus">
+                <ProFormRadio
+                  v-model="form.signStatus"
+                  :value-enum="EnumEnterpriseCooperationSignStatusText"
+                />
+              </ProFormItemV2>
             </ProFormColItem>
             <ProFormColItem :span="8">
-              <ProFormItemV2 label="鍚堜綔鍗忚:" prop="contacts"> </ProFormItemV2>
+              <ProFormItemV2 label="鍚堜綔鍗忚:" prop="cooperationAgreementUrl">
+                <ProFormUpload
+                  v-model:file-url="form.cooperationAgreementUrl"
+                  :limit="1"
+                  :limitFileSize="10"
+                  accept="jpg/jpeg,png,pdf"
+                ></ProFormUpload>
+              </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
         </ProForm>
@@ -218,17 +202,42 @@
                 />
               </ProFormItemV2>
             </ProFormColItem>
-            <ProFormColItem :span="8" v-if="!isEdit">
+          </ProFormCol>
+          <ProFormCol v-if="!isDetail">
+            <ProFormColItem :span="8">
               <ProFormItemV2
                 label="瀵嗙爜:"
                 prop="password"
-                :check-rules="[{ message: '璇疯緭鍏ュ瘑鐮�' }]"
+                :check-rules="[{ required: !isEdit, message: '璇疯緭鍏ュ瘑鐮�' }]"
               >
-                <ProFormText
-                  v-model.trim="form.password"
-                  :maxlength="30"
-                  placeholder="璇疯緭鍏ュ瘑鐮�"
-                />
+                <div class="password-input">
+                  <ProFormText
+                    v-if="!isEdit"
+                    v-model.trim="form.password"
+                    :maxlength="30"
+                    placeholder="璇疯緭鍏ュ瘑鐮�"
+                  />
+                  <el-button v-else type="primary" link @click="openResetPasswordDialog"
+                    >淇敼瀵嗙爜</el-button
+                  >
+                </div>
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+          <ProFormCol v-if="!isDetail">
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鎿嶄綔瀵嗙爜:" prop="operatorPassword">
+                <div class="password-input">
+                  <ProFormText
+                    v-if="!isEdit"
+                    v-model.trim="form.operatorPassword"
+                    :maxlength="30"
+                    placeholder="璇疯緭鍏ユ搷浣滃瘑鐮�"
+                  />
+                  <el-button type="primary" v-else link @click="openResetOperatorPasswordDialog"
+                    >淇敼瀵嗙爜</el-button
+                  >
+                </div>
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
@@ -239,6 +248,10 @@
         </ProForm>
       </ChunkCell>
     </AppScrollContainer>
+    <ResetPasswordDialog v-bind="resetPasswordDialogProps"></ResetPasswordDialog>
+    <ResetOperatorPasswordDialog
+      v-bind="resetOperatorPasswordDialogProps"
+    ></ResetOperatorPasswordDialog>
   </LoadingLayout>
 </template>
 
@@ -250,20 +263,36 @@
   ProFormItemV2,
   ChunkCell,
   ProFormText,
-  ProFormSelect,
+  ProFormUpload,
   ProFormTextArea,
   ProFormCol,
   ProFormColItem,
   ProFormDatePicker,
+  ProFormRadio,
+  UploadUserFile,
+  useFormDialog,
 } from '@bole-core/components';
-import { FormRules, FormInstance } from 'element-plus';
+import { FormInstance } from 'element-plus';
 import * as enterpriseServices from '@/services/api/enterprise';
-import { useRouteView, useGlobalEventContext, GlobalEvent } from '@/hooks';
+import * as userServices from '@/services/api/user';
+import { useRouteView, useGlobalEventContext } from '@/hooks';
 import _ from 'lodash';
-import { validateFormList, filterCN, removeEmptyKeys } from '@/utils';
-import { Message, BoleRegExp } from '@bole-core/core';
+import {
+  EnumEnterpriseCooperationStatusText,
+  EnumEnterpriseCooperationSignStatusText,
+} from '@/constants';
+import {
+  validateFormList,
+  filterCN,
+  removeEmptyKeys,
+  format,
+  convertApi2FormUrlOnlyOne,
+} from '@/utils';
+import { Message } from '@bole-core/core';
 import { useQuery } from '@tanstack/vue-query';
 import { AreaType } from '@/constants';
+import ResetPasswordDialog from './ResetPasswordDialog.vue';
+import ResetOperatorPasswordDialog from './ResetOperatorPasswordDialog.vue';
 
 defineOptions({
   name: 'AddOrEditCustomerView',
@@ -288,21 +317,29 @@
   legalPerson: '',
   legalIdentity: '',
   societyCreditCode: '',
-  industryTypeCode: '',
-  mainBusiness: '',
+  registeredCapital: '',
+  enterpriseType: '',
+  establishmentDate: '',
   areaList: [] as string[],
+  address: '',
+  mainBusiness: '',
   contacts: '',
   contactPhoneNumber: '',
   contactEmail: '',
+  cooperationStatus: EnumEnterpriseCooperationStatus.None,
+  signStatus: EnumEnterpriseCooperationSignStatus.None,
+  cooperationAgreementUrl: [] as UploadUserFile[],
   userName: '',
   password: '',
-  date: '',
+  operatorPassword: '',
+
+  userId: '',
 });
 
-const { isLoading } = useQuery({
-  queryKey: ['enterpriseServices/getEnterprise', id],
+const { isLoading, refetch } = useQuery({
+  queryKey: ['enterpriseServices/getPartyAEnterprise', id],
   queryFn: async () => {
-    return await enterpriseServices.getEnterprise(
+    return await enterpriseServices.getPartyAEnterprise(
       { id: id },
       {
         showLoading: false,
@@ -315,16 +352,90 @@
     form.legalPerson = data.legalPerson;
     form.legalIdentity = data.legalIdentity;
     form.societyCreditCode = data.societyCreditCode;
-    form.industryTypeCode = data.industryTypeCode ?? '';
+    form.registeredCapital = data.registeredCapital;
+    form.enterpriseType = data.enterpriseType;
+    form.establishmentDate = data.establishmentDate;
+    form.areaList = [data.provinceCode, data.cityCode].filter(Boolean);
+    form.address = data.address;
     form.mainBusiness = data.mainBusiness;
     form.contacts = data.contacts;
     form.contactPhoneNumber = data.contactPhoneNumber;
     form.contactEmail = data.contactEmail;
+    form.cooperationStatus = data.cooperationStatus;
+    form.signStatus = data.signStatus;
+    form.cooperationAgreementUrl = convertApi2FormUrlOnlyOne(data.cooperationAgreementUrl);
     form.userName = data.userName;
-    form.areaList = [data.provinceCode, data.cityCode].filter(Boolean);
+
+    form.userId = data.userId;
   },
   enabled: computed(() => !!id),
 });
+
+const {
+  dialogProps: resetPasswordDialogProps,
+  handleAdd: handleResetPasswordAdd,
+  editForm: resetPasswordEditForm,
+} = useFormDialog({
+  onConfirm: resetPassword,
+  defaultFormParams: {
+    ids: '',
+    password: '',
+  },
+});
+
+function openResetPasswordDialog() {
+  handleResetPasswordAdd({
+    ids: form.userId,
+    password: '',
+  });
+}
+
+async function resetPassword() {
+  try {
+    let params: API.ResetUserPasswordsCommand = {
+      ids: [resetPasswordEditForm.ids],
+      password: resetPasswordEditForm.password,
+    };
+    let res = await userServices.resetUserPasswords(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      refetch();
+    }
+  } catch (error) {}
+}
+
+const {
+  dialogProps: resetOperatorPasswordDialogProps,
+  handleAdd: handleResetOperatorPasswordAdd,
+  editForm: resetOperatorPasswordEditForm,
+} = useFormDialog({
+  onConfirm: resetOperatorPassword,
+  defaultFormParams: {
+    ids: '',
+    operatorPassword: '',
+  },
+});
+
+function openResetOperatorPasswordDialog() {
+  handleResetOperatorPasswordAdd({
+    ids: form.userId,
+    operatorPassword: '',
+  });
+}
+
+async function resetOperatorPassword() {
+  try {
+    let params: API.ResetUserOperatorPasswordsCommand = {
+      ids: [resetOperatorPasswordEditForm.ids],
+      operatorPassword: resetOperatorPasswordEditForm.operatorPassword,
+    };
+    let res = await userServices.resetUserOperatorPasswords(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      refetch();
+    }
+  } catch (error) {}
+}
 
 const formRef = ref<FormInstance>();
 const settingFormRef = ref<FormInstance>();
@@ -345,25 +456,32 @@
 
 async function handleCreateOrEditFlexEnterprise() {
   try {
-    let params: API.SaveEnterpriseCommand = {
+    let params: API.SavePartyAEnterpriseCommand = {
       enterpriseName: form.enterpriseName,
       legalPerson: form.legalPerson,
       legalIdentity: form.legalIdentity,
       societyCreditCode: form.societyCreditCode,
+      registeredCapital: form.registeredCapital,
+      enterpriseType: form.enterpriseType,
+      establishmentDate: format(form.establishmentDate, 'YYYY-MM-DD'),
       provinceCode: form.areaList[0],
       cityCode: form.areaList[1],
-      industryTypeCode: form.industryTypeCode,
+      address: form.address,
       mainBusiness: form.mainBusiness,
       contacts: form.contacts,
       contactPhoneNumber: form.contactPhoneNumber,
       contactEmail: form.contactEmail,
+      cooperationStatus: form.cooperationStatus,
+      signStatus: form.signStatus,
+      cooperationAgreementUrl: form.cooperationAgreementUrl[0]?.path,
       userName: form.userName,
       password: form.password,
+      operatorPassword: form.operatorPassword,
     };
     if (isEdit) {
       params.id = id;
     }
-    let res = await enterpriseServices.saveEnterprise(removeEmptyKeys(params));
+    let res = await enterpriseServices.savePartyAEnterprise(removeEmptyKeys(params));
     if (res) {
       Message.successMessage(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛');
       eventContext.emit(isEdit ? 'customerManage:edit' : 'customerManage:add');
@@ -374,7 +492,16 @@
 
 function handleBack() {
   closeViewPush(route, {
-    name: 'EnterpriseManageList',
+    name: 'CustomerManage',
   });
 }
 </script>
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+
+.password-input {
+  display: flex;
+  flex: 1;
+  min-width: 0;
+}
+</style>
diff --git a/src/views/CustomerManage/components/ResetOperatorPasswordDialog.vue b/src/views/CustomerManage/components/ResetOperatorPasswordDialog.vue
new file mode 100644
index 0000000..cd7be05
--- /dev/null
+++ b/src/views/CustomerManage/components/ResetOperatorPasswordDialog.vue
@@ -0,0 +1,81 @@
+<template>
+  <ProDialog
+    :title="form.title"
+    v-model="visible"
+    @close="onDialogClose"
+    destroy-on-close
+    draggable
+    :width="800"
+  >
+    <ProForm :model="form" ref="dialogForm" label-width="120px">
+      <ProFormItemV2
+        label="鎿嶄綔瀵嗙爜:"
+        prop="operatorPassword"
+        :check-rules="[
+          { message: '璇疯緭鍏ユ搷浣滃瘑鐮�' },
+          {
+            message: '璇疯緭鍏�6浣嶆暟瀛�',
+            pattern: /\b\d{6}\b/,
+          },
+        ]"
+      >
+        <ProFormText
+          placeholder="璇疯緭鍏ユ搷浣滃瘑鐮�"
+          v-model.trim="form.operatorPassword"
+          :maxlength="30"
+        ></ProFormText>
+      </ProFormItemV2>
+    </ProForm>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="emit('onCancel')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormInstance } from 'element-plus';
+import { ProDialog, ProForm, ProFormItemV2, ProFormText } from '@bole-core/components';
+
+defineOptions({
+  name: 'ResetOperatorPasswordDialog',
+});
+
+// type Props = {};
+
+// const props = withDefaults(defineProps<Props>(), {});
+
+const visible = defineModel({ type: Boolean });
+
+type Form = {
+  title?: string;
+  ids: string;
+  operatorPassword: string;
+};
+
+const form = defineModel<Form>('form');
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+function onDialogClose() {
+  if (!dialogForm.value) return;
+  dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+  if (!dialogForm.value) return;
+  dialogForm.value.validate((valid) => {
+    if (valid) {
+      emit('onConfirm');
+    } else {
+      return;
+    }
+  });
+}
+</script>
diff --git a/src/views/CustomerManage/components/ResetPasswordDialog.vue b/src/views/CustomerManage/components/ResetPasswordDialog.vue
new file mode 100644
index 0000000..f622c4f
--- /dev/null
+++ b/src/views/CustomerManage/components/ResetPasswordDialog.vue
@@ -0,0 +1,71 @@
+<template>
+  <ProDialog
+    :title="form.title"
+    v-model="visible"
+    @close="onDialogClose"
+    destroy-on-close
+    draggable
+    :width="800"
+  >
+    <ProForm :model="form" ref="dialogForm" label-width="120px">
+      <ProFormItemV2 label="瀵嗙爜:" prop="password" :check-rules="[{ message: '璇疯緭鍏ュ瘑鐮�' }]">
+        <ProFormText
+          placeholder="璇疯緭鍏ュ瘑鐮�"
+          v-model.trim="form.password"
+          :maxlength="30"
+        ></ProFormText>
+      </ProFormItemV2>
+    </ProForm>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="emit('onCancel')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormInstance } from 'element-plus';
+import { ProDialog, ProForm, ProFormItemV2, ProFormText } from '@bole-core/components';
+
+defineOptions({
+  name: 'ResetPasswordDialog',
+});
+
+// type Props = {};
+
+// const props = withDefaults(defineProps<Props>(), {});
+
+const visible = defineModel({ type: Boolean });
+
+type Form = {
+  title?: string;
+  ids: string;
+  password: string;
+};
+
+const form = defineModel<Form>('form');
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+function onDialogClose() {
+  if (!dialogForm.value) return;
+  dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+  if (!dialogForm.value) return;
+  dialogForm.value.validate((valid) => {
+    if (valid) {
+      emit('onConfirm');
+    } else {
+      return;
+    }
+  });
+}
+</script>
diff --git a/src/views/CustomerManage/constants/customerManage.ts b/src/views/CustomerManage/constants/customerManage.ts
index 94ab1ea..ceb47dc 100644
--- a/src/views/CustomerManage/constants/customerManage.ts
+++ b/src/views/CustomerManage/constants/customerManage.ts
@@ -1,54 +1,54 @@
-  import {defineColumns} from '@bole-core/components'
+import { defineColumns } from '@bole-core/components';
 
-  export const CustomerManageColumns = defineColumns([
-    {
-      id: '1',
-      enCode: 'name',
-      name: '浼佷笟鍚嶇О',
-    },
-    {
-      id: '2',
-      enCode: 'phoneNumber',
-      name: '缁熶竴淇$敤浠g爜',
-    },
-    {
-      id: '3',
-      enCode: 'status',
-      name: '瀹㈡埛ID',
-    },
-    {
-      id: '4',
-      enCode: 'createdTime',
-      name: '娉曚汉濮撳悕',
-    },
-    {
-      id: '5',
-      enCode: 'createdTime',
-      name: '鑱旂郴浜哄悕绉�',
-    },
-    {
-      id: '6',
-      enCode: 'createdTime',
-      name: '鑱旂郴鐢佃瘽',
-    },
-    {
-      id: '7',
-      enCode: 'createdTime',
-      name: '鐪佷唤',
-    },
-    {
-      id: '8',
-      enCode: 'createdTime',
-      name: '鍩庡競',
-    },
-    {
-      id: '9',
-      enCode: 'createdTime',
-      name: '鍚堜綔鐘舵��',
-    },
-    {
-      id: '10',
-      enCode: 'createdTime',
-      name: '绛剧害鐘舵��',
-    },
-  ])
+export const CustomerManageColumns = defineColumns([
+  {
+    id: '1',
+    enCode: 'enterpriseName',
+    name: '浼佷笟鍚嶇О',
+  },
+  {
+    id: '2',
+    enCode: 'societyCreditCode',
+    name: '缁熶竴淇$敤浠g爜',
+  },
+  {
+    id: '3',
+    enCode: 'partyAEnterpriseId',
+    name: '瀹㈡埛ID',
+  },
+  {
+    id: '4',
+    enCode: 'legalPerson',
+    name: '娉曚汉濮撳悕',
+  },
+  {
+    id: '5',
+    enCode: 'contacts',
+    name: '鑱旂郴浜哄悕绉�',
+  },
+  {
+    id: '6',
+    enCode: 'contactPhoneNumber',
+    name: '鑱旂郴鐢佃瘽',
+  },
+  {
+    id: '7',
+    enCode: 'provinceContent',
+    name: '鐪佷唤',
+  },
+  {
+    id: '8',
+    enCode: 'cityContent',
+    name: '鍩庡競',
+  },
+  {
+    id: '9',
+    enCode: 'cooperationStatus',
+    name: '鍚堜綔鐘舵��',
+  },
+  {
+    id: '10',
+    enCode: 'signStatus',
+    name: '绛剧害鐘舵��',
+  },
+]);
diff --git a/src/views/EmploymentManage/constants/columns.ts b/src/views/EmploymentManage/constants/columns.ts
index 2cd5a95..f12d246 100644
--- a/src/views/EmploymentManage/constants/columns.ts
+++ b/src/views/EmploymentManage/constants/columns.ts
@@ -13,66 +13,81 @@
   },
   {
     id: '3',
+    enCode: 'supplierEnterpriseName',
+    name: '鎵�灞炲鎴�',
+  },
+  {
+    id: '4',
+    enCode: 'supplierEnterpriseId',
+    name: '瀹㈡埛ID',
+  },
+  {
+    id: '5',
     enCode: 'billingMethod',
     name: '缁撶畻鍛ㄦ湡',
   },
   {
-    id: '4',
+    id: '6',
     enCode: 'serviceFee',
     name: '鏈嶅姟璐归噾棰�',
   },
   {
-    id: '5',
+    id: '7',
     enCode: 'settlementCycle',
     name: '缁撶畻鏂瑰紡',
   },
   {
-    id: '6',
+    id: '8',
     enCode: 'genderLimit',
     name: '鎬у埆瑕佹眰',
   },
   {
-    id: '7',
+    id: '9',
+    enCode: 'needPeopleNumber',
+    name: '闇�姹備汉鏁�',
+  },
+  {
+    id: '10',
     enCode: 'userCount',
     name: '鎶ュ悕浜烘暟',
   },
   {
-    id: '8',
+    id: '11',
     enCode: 'applyBeginTime',
     name: '鎶ュ悕寮�濮�',
   },
   {
-    id: '9',
+    id: '12',
     enCode: 'applyEndTime',
     name: '鎶ュ悕缁撴潫',
   },
   {
-    id: '10',
+    id: '13',
     enCode: 'applyStatus',
     name: '鎶ュ悕鐘舵��',
   },
   {
-    id: '11',
+    id: '14',
     enCode: 'status',
     name: '浠诲姟鐘舵��',
   },
   {
-    id: '12',
+    id: '15',
     enCode: 'createdTime',
     name: '鍙戝竷鏃ユ湡',
   },
   {
-    id: '13',
+    id: '16',
     enCode: 'beginTime',
     name: '浠诲姟寮�濮嬫棩鏈�',
   },
   {
-    id: '14',
+    id: '17',
     enCode: 'endTime',
     name: '浠诲姟缁撴潫鏃ユ湡',
   },
   {
-    id: '15',
+    id: '18',
     enCode: 'releaseStatus',
     name: '鍙戝竷鐘舵��',
   },
diff --git a/src/views/FinanceManage/components/DistributionDetailView.vue b/src/views/FinanceManage/components/DistributionDetailView.vue
index dfce1fa..1e7e395 100644
--- a/src/views/FinanceManage/components/DistributionDetailView.vue
+++ b/src/views/FinanceManage/components/DistributionDetailView.vue
@@ -63,6 +63,7 @@
     columnsRenderProps: {
       amount: { type: 'money' },
       settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText },
+      settlementAccess: { type: 'enum', valueEnum: EnumEnterpriseWalletAccessText },
       settlementTime: { type: 'date' },
     },
   }
diff --git a/src/views/FinanceManage/constants/columns.ts b/src/views/FinanceManage/constants/columns.ts
index 2ab4109..728b4e8 100644
--- a/src/views/FinanceManage/constants/columns.ts
+++ b/src/views/FinanceManage/constants/columns.ts
@@ -13,31 +13,46 @@
   },
   {
     id: '3',
-    enCode: 'settlementOrderName',
-    name: '缁撶畻鍗曞悕绉�',
+    enCode: 'taskCode',
+    name: '浠诲姟鍗曞彿',
   },
   {
     id: '4',
-    enCode: 'receiveName',
-    name: '濮撳悕',
+    enCode: 'settlementCode',
+    name: '缁撶畻鍗曞彿',
   },
   {
     id: '5',
-    enCode: 'receiveAccount',
-    name: '鎵嬫満鍙�',
+    enCode: 'receiveName',
+    name: '濮撳悕',
   },
+  // {
+  //   id: '3',
+  //   enCode: 'settlementOrderName',
+  //   name: '缁撶畻鍗曞悕绉�',
+  // },
   {
     id: '6',
+    enCode: 'settlementAccess',
+    name: '缁撶畻鏂瑰紡',
+  },
+  {
+    id: '7',
+    enCode: 'receiveAccount',
+    name: '缁撶畻璐︽埛',
+  },
+  {
+    id: '8',
     enCode: 'amount',
     name: '缁撶畻閲戦',
   },
   {
-    id: '7',
+    id: '9',
     enCode: 'settlementStatus',
     name: '缁撶畻鐘舵��',
   },
   {
-    id: '8',
+    id: '10',
     enCode: 'settlementTime',
     name: '缁撶畻鏃ユ湡',
   },
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 21a8b34..5b9a6c6 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,27 @@
       onClick: (role) => openDialog(role),
     },
     extraProps: {
-      hide: () => !isSettlement.value,
+      hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+        !(
+          form.settlementStatus === EnumTaskSettlementStatus.Fail ||
+          form.settlementStatus === EnumTaskSettlementStatus.Part
+        ),
+    },
+  },
+  {
+    data: {
+      enCode: 'editBtn',
+      name: '閲嶆柊缁撶畻',
+    },
+    emits: {
+      onClick: (role) => againSureTaskSettlementOrderRoster(role),
+    },
+    extraProps: {
+      hide: (row: API.GetSettlementTaskUsersQueryResultItem) =>
+        !(
+          form.settlementStatus === EnumTaskSettlementStatus.Fail ||
+          form.settlementStatus === EnumTaskSettlementStatus.Part
+        ),
     },
   },
 ]);
@@ -199,6 +221,8 @@
   auditStatus: '' as any as EnumTaskSettlementAuditStatus,
 
   timeoutServiceFee: 0,
+
+  settlementStatus: '' as any as EnumTaskSettlementStatus,
 });
 
 const BaseState = {
@@ -234,6 +258,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 +362,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 ?? '',
+      });
+    }
   }
 }
 
@@ -496,6 +532,54 @@
   { 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('鎿嶄綔鎴愬姛');
+      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('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+
 function handleBack() {
   closeViewPush(route, {
     name: 'ServiceChargeManageList',
diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue
index 2d3ee4c..f172b46 100644
--- a/src/views/ServiceChargeManage/ServiceChargeManage.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeManage.vue
@@ -47,7 +47,7 @@
         <template #btn>
           <!-- <el-button type="primary" link @click="handleDownloadTemplate()">缁撶畻鍗曟ā鏉�</el-button> -->
           <!-- <el-button type="primary" @click="handleAdd()">涓婁紶缁撶畻鍗�</el-button> -->
-          <!-- <el-button type="primary" @click="handleDownloadTemplate()">瀵煎嚭</el-button> -->
+          <el-button type="primary" @click="handleDownloadTemplate()">瀵煎嚭</el-button>
         </template>
       </ProTableQueryFilterBar>
       <ProTableV2
@@ -119,6 +119,7 @@
   EnumTaskCheckReceiveStatusText,
   EnumTaskCheckReceiveStatusTextForFilter,
   EnumTaskCheckReceiveStatus,
+  EnumEnterpriseWalletAccessText,
 } from '@/constants';
 import { downloadFileByUrl, format, setOssFileName } from '@/utils';
 import * as taskServices from '@/services/api/task';
@@ -167,10 +168,7 @@
     },
     extraProps: {
       hide: (role: API.GetSettlementTasksQueryResultItem) =>
-        !(
-          role.settlementStatus === EnumTaskSettlementStatus.Wait &&
-          role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
-        ),
+        role.settlementStatus !== EnumTaskSettlementStatus.Wait,
     },
   },
   {
@@ -183,10 +181,7 @@
     },
     extraProps: {
       hide: (role: API.GetSettlementTasksQueryResultItem) =>
-        !(
-          role.settlementStatus === EnumTaskSettlementStatus.InProcess &&
-          role.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
-        ),
+        role.settlementStatus !== EnumTaskSettlementStatus.InProcess,
     },
   },
   // {
@@ -294,6 +289,7 @@
       settlementStatus: { type: 'enum', valueEnum: EnumTaskSettlementStatusText },
       checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
       auditStatus: { type: 'enum', valueEnum: EnumTaskSettlementAuditStatusText },
+      settlementAccess: { type: 'enum', valueEnum: EnumEnterpriseWalletAccessText },
       actualSettlementAmount: { type: 'money' },
       settlementAmount: { type: 'money' },
       settlementTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
diff --git a/src/views/ServiceChargeManage/components/ResettleEditDialog.vue b/src/views/ServiceChargeManage/components/ResettleEditDialog.vue
new file mode 100644
index 0000000..970bb20
--- /dev/null
+++ b/src/views/ServiceChargeManage/components/ResettleEditDialog.vue
@@ -0,0 +1,90 @@
+<template>
+  <ProDialog
+    title="缂栬緫"
+    v-model="visible"
+    @close="onDialogClose"
+    destroy-on-close
+    draggable
+    :width="700"
+  >
+    <ProForm :model="form" ref="dialogForm" label-width="120px">
+      <ProFormItemV2 label="濮撳悕锛�" prop="name" mode="read">
+        <ProFormText v-model.trim="form.name"></ProFormText>
+      </ProFormItemV2>
+      <ProFormItemV2 label="閾惰锛�" prop="bank" :check-rules="[{ message: '璇疯緭鍏ラ摱琛�' }]">
+        <ProFormText placeholder="璇疯緭鍏ラ摱琛�" v-model.trim="form.bank"></ProFormText>
+      </ProFormItemV2>
+      <ProFormItemV2 label="鏀锛�" prop="bankBranch" :check-rules="[{ message: '璇疯緭鍏ユ敮琛�' }]">
+        <ProFormText placeholder="璇疯緭鍏ユ敮琛�" v-model.trim="form.bankBranch"></ProFormText>
+      </ProFormItemV2>
+      <ProFormItemV2
+        label="鏀舵璐︽埛锛�"
+        prop="receiveAccount"
+        :check-rules="[{ message: '璇疯緭鍏ユ敹娆捐处鎴�' }]"
+      >
+        <ProFormText placeholder="璇疯緭鍏ユ敹娆捐处鎴�" v-model.trim="form.receiveAccount"></ProFormText>
+      </ProFormItemV2>
+      <ProFormItemV2 label="澶囨敞锛�" prop="remark">
+        <ProFormTextArea placeholder="璇疯緭鍏ュ娉�" v-model="form.remark"></ProFormTextArea>
+      </ProFormItemV2>
+    </ProForm>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="emit('onCancel')">鍙栨秷</el-button>
+        <el-button type="primary" @click="handleConfirm">纭</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormInstance } from 'element-plus';
+import {
+  ProDialog,
+  ProForm,
+  ProFormItemV2,
+  ProFormText,
+  ProFormTextArea,
+} from '@bole-core/components';
+
+defineOptions({
+  name: 'ResettleEditDialog',
+});
+
+type Form = {
+  title?: string;
+  id?: string;
+  name: string;
+  bank: string;
+  bankBranch: string;
+  receiveAccount: string;
+  remark: string;
+};
+
+const visible = defineModel({ type: Boolean });
+
+const form = defineModel<Form>('form');
+
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+function onDialogClose() {
+  if (!dialogForm.value) return;
+  dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+  if (!dialogForm.value) return;
+  dialogForm.value.validate((valid) => {
+    if (valid) {
+      emit('onConfirm');
+    } else {
+      return;
+    }
+  });
+}
+</script>
diff --git a/src/views/ServiceChargeManage/constants/columns.ts b/src/views/ServiceChargeManage/constants/columns.ts
index 11720b4..65b69ca 100644
--- a/src/views/ServiceChargeManage/constants/columns.ts
+++ b/src/views/ServiceChargeManage/constants/columns.ts
@@ -22,15 +22,25 @@
   //   name: '缁撶畻鍗曠姸鎬�',
   // },
   {
-    id: '5',
-    enCode: 'settlementOrderName',
-    name: '缁撶畻鍗曞悕绉�',
+    id: '4',
+    enCode: 'settlementCode',
+    name: '缁撶畻鍗曞彿',
   },
   {
-    id: '6',
-    enCode: 'settlementOrderTime',
-    name: '涓婁紶鏃堕棿',
+    id: '5',
+    enCode: 'settlementAccess',
+    name: '缁撶畻鏂瑰紡',
   },
+  // {
+  //   id: '5',
+  //   enCode: 'settlementOrderName',
+  //   name: '缁撶畻鍗曞悕绉�',
+  // },
+  // {
+  //   id: '6',
+  //   enCode: 'settlementOrderTime',
+  //   name: '涓婁紶鏃堕棿',
+  // },
   {
     id: '7',
     enCode: 'actualSettlementAmount',
@@ -41,11 +51,11 @@
     enCode: 'settlementAmount',
     name: '缁撶畻閲戦',
   },
-  {
-    id: '9',
-    enCode: 'auditStatus',
-    name: '瀹℃牳鐘舵��',
-  },
+  // {
+  //   id: '9',
+  //   enCode: 'auditStatus',
+  //   name: '瀹℃牳鐘舵��',
+  // },
   {
     id: '10',
     enCode: 'settlementStatus',
@@ -63,6 +73,11 @@
   },
   {
     id: '13',
+    enCode: 'operator',
+    name: '鎿嶄綔浜�',
+  },
+  {
+    id: '14',
     enCode: 'settlementRemark',
     name: '澶囨敞',
   },
@@ -107,22 +122,22 @@
   {
     id: '7-1',
     enCode: 'serviceFee',
-    name: '鏈嶅姟璐�',
+    name: '鏈嶅姟璐�(鍏�)',
   },
   {
     id: '7-2',
     enCode: 'timeoutHours',
-    name: '瓒呮椂',
+    name: '瓒呮椂(灏忔椂)',
   },
   {
     id: '7-3',
     enCode: 'timeoutFee',
-    name: '瓒呮椂璐圭敤',
+    name: '瓒呮椂璐圭敤(鍏�)',
   },
   {
     id: '7-4',
     enCode: 'otherFee',
-    name: '鍏朵粬璐圭敤',
+    name: '鍏朵粬璐圭敤(鍏�)',
   },
   {
     id: '8',
diff --git a/src/views/UserManage/UserManageList.vue b/src/views/UserManage/UserManageList.vue
index 10d42bb..fd75ebc 100644
--- a/src/views/UserManage/UserManageList.vue
+++ b/src/views/UserManage/UserManageList.vue
@@ -90,18 +90,18 @@
       onClick: (role) => openResetPasswordDialog(role),
     },
   },
-  {
-    data: {
-      enCode: 'resetOperatorPasswordBtn',
-      name: '閲嶇疆鎿嶄綔瀵嗙爜',
-    },
-    props: {
-      type: 'danger',
-    },
-    emits: {
-      onClick: (role) => openResetOperatorPasswordDialog(role),
-    },
-  },
+  // {
+  //   data: {
+  //     enCode: 'resetOperatorPasswordBtn',
+  //     name: '閲嶇疆鎿嶄綔瀵嗙爜',
+  //   },
+  //   props: {
+  //     type: 'danger',
+  //   },
+  //   emits: {
+  //     onClick: (role) => openResetOperatorPasswordDialog(role),
+  //   },
+  // },
 ]);
 
 const router = useRouter();
diff --git a/src/views/UserManage/components/AddOrEditUserDialog.vue b/src/views/UserManage/components/AddOrEditUserDialog.vue
index 62fcf6a..7158159 100644
--- a/src/views/UserManage/components/AddOrEditUserDialog.vue
+++ b/src/views/UserManage/components/AddOrEditUserDialog.vue
@@ -28,7 +28,7 @@
       >
         <ProFormText placeholder="璇疯緭鍏ュ瘑鐮�" v-model.trim="innerForm.password"></ProFormText>
       </ProFormItemV2>
-      <ProFormItemV2
+      <!-- <ProFormItemV2
         v-if="!isEdit"
         label="鎿嶄綔瀵嗙爜"
         prop="operatorPassword"
@@ -44,7 +44,7 @@
           placeholder="璇疯緭鍏ユ搷浣滃瘑鐮�"
           v-model.trim="innerForm.operatorPassword"
         ></ProFormText>
-      </ProFormItemV2>
+      </ProFormItemV2> -->
       <ProFormItemV2 label="瑙掕壊" prop="roleIds" :check-rules="[{ message: '璇烽�夋嫨瑙掕壊' }]">
         <ProFormCheckbox
           v-model="innerForm.roleIds"

--
Gitblit v1.9.1