From f35680f356168af8d4a3d5f34456e561af40fbba Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 24 十二月 2025 13:15:10 +0800
Subject: [PATCH] feat: 接口

---
 src/services/api/standardOrder.ts                                        |  198 ++
 src/services/api/advertisement.ts                                        |   96 +
 src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue        |  129 +
 src/hooks/enterprise.ts                                                  |   62 
 src/hooks/useEvent.ts                                                    |    2 
 src/views/StandardOrderManage/OrderManage.vue                            |  165 ++
 src/constants/standardOrder.ts                                           |    4 
 src/hooks/advertisement.ts                                               |   60 
 src/views/FinanceManage/OrderSettlementManage.vue                        |  124 +
 src/views/StandardOrderManage/components/AddSupplierDialog.vue           |  226 ++
 src/hooks/index.ts                                                       |    2 
 src/views/OperationManage/OperationManageList.vue                        |  178 +
 src/views/StandardOrderManage/OrderManageDetail.vue                      |  182 ++
 src/views/StandardOrderManage/components/AddOrEditServicesManageView.vue |  467 +++++
 src/views/TaskManage/components/TaskDetailView.vue                       |   16 
 auto-imports.d.ts                                                        |   35 
 src/views/StandardOrderManage/AddOrEditServicesManage.vue                |   24 
 src/constants/apiEnum.ts                                                 |  136 +
 src/constants/index.ts                                                   |    2 
 src/views/FinanceManage/components/OrderSettlementDetailDialog.vue       |  143 +
 src/views/EnterpriseManage/EnterpriseManageList.vue                      |   45 
 src/views/CPersonManage/components/StaffDetailInfoView.vue               |    4 
 src/views/CPersonManage/components/CPersonDetailDialog.vue               |    4 
 src/hooks/dic.ts                                                         |    6 
 src/views/EnterpriseManage/components/ConfigureDialog.vue                |    9 
 src/views/OperationManage/components/AddOrEditAdvertisementDialog.vue    |  127 
 .eslintrc-auto-import.json                                               |   16 
 src/services/api/typings.d.ts                                            | 1406 +++++++++++++++++
 src/views/OperationManage/components/LogDialog.vue                       |  112 +
 src/constants/enterprise.ts                                              |   25 
 src/views/UserManage/UserManageList.vue                                  |  153 +
 src/constants/operation.ts                                               |    8 
 src/services/api/enterprise.ts                                           |   93 +
 src/services/api/standardService.ts                                      |  117 +
 src/views/StandardOrderManage/ServicesManage.vue                         |  183 ++
 src/components/Log/CommonLogDialog.vue                                   |   44 
 src/services/api/index.ts                                                |    6 
 src/services/api/enterpriseInsuranceProduct.ts                           |    2 
 src/services/api/auth.ts                                                 |   15 
 src/views/TaskManage/TaskManageList.vue                                  |    2 
 40 files changed, 4,341 insertions(+), 287 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index e272736..fec16f1 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -23,6 +23,10 @@
     "EnterpriseConfigureType": true,
     "EnterpriseConfigureTypeTextPartA": true,
     "EnterpriseConfigureTypeTextSupplier": true,
+    "EnumAdvertisementPage": true,
+    "EnumAdvertisementPageText": true,
+    "EnumAdvertisementStatus": true,
+    "EnumAdvertisementStatusText": true,
     "EnumBillingMethod": true,
     "EnumBillingMethodText": true,
     "EnumBillingMethodUnitText": true,
@@ -45,8 +49,11 @@
     "EnumElectronSignAccessText": true,
     "EnumElectronSignVerifyType": true,
     "EnumEnterpriseCooperationServiceFeeCollectType": true,
+    "EnumEnterpriseCooperationServiceFeeCollectTypeText": true,
     "EnumEnterpriseCooperationSignStatus": true,
+    "EnumEnterpriseCooperationSignStatusText": true,
     "EnumEnterpriseCooperationStatus": true,
+    "EnumEnterpriseCooperationStatusText": true,
     "EnumEnterpriseCooperationWalletTransactionStatus": true,
     "EnumEnterpriseCostStatus": true,
     "EnumEnterpriseCostType": true,
@@ -104,6 +111,12 @@
     "EnumSmsAccessTextUseInSms": true,
     "EnumSmsStatus": true,
     "EnumSmsStatusText": true,
+    "EnumStandardOrderAppointmentStatus": true,
+    "EnumStandardOrderPayStatus": true,
+    "EnumStandardOrderSettlementStatus": true,
+    "EnumStandardServiceRecommendStatus": true,
+    "EnumStandardServiceReleaseStatus": true,
+    "EnumStandardServiceReleaseStatusText": true,
     "EnumTaskApplyStatus": true,
     "EnumTaskApplyStatusText": true,
     "EnumTaskCheckReceiveMethod": true,
@@ -314,7 +327,10 @@
     "useCssVars": true,
     "useDictionaryDataSelect": true,
     "useEnabledElectronSignSettings": true,
+    "useGetAdvertisement": true,
     "useGetDictionaryCategorySelect": true,
+    "useGetEnterprises": true,
+    "useGetShowAdvertisements": true,
     "useGlobalEventContext": true,
     "useGlobalEventProvide": true,
     "useGroupColumns": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index bd2dc1b..f792e38 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -26,6 +26,10 @@
   const EnterpriseConfigureTypeText: typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeText']
   const EnterpriseConfigureTypeTextPartA: typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeTextPartA']
   const EnterpriseConfigureTypeTextSupplier: typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeTextSupplier']
+  const EnumAdvertisementPage: typeof import('./src/constants/apiEnum')['EnumAdvertisementPage']
+  const EnumAdvertisementPageText: typeof import('./src/constants/operation')['EnumAdvertisementPageText']
+  const EnumAdvertisementStatus: typeof import('./src/constants/apiEnum')['EnumAdvertisementStatus']
+  const EnumAdvertisementStatusText: typeof import('./src/constants/operation')['EnumAdvertisementStatusText']
   const EnumBillingMethod: typeof import('./src/constants/apiEnum')['EnumBillingMethod']
   const EnumBillingMethodText: typeof import('./src/constants/task')['EnumBillingMethodText']
   const EnumBillingMethodUnitText: typeof import('./src/constants/task')['EnumBillingMethodUnitText']
@@ -48,8 +52,11 @@
   const EnumElectronSignAccessText: typeof import('./src/constants/electronSign')['EnumElectronSignAccessText']
   const EnumElectronSignVerifyType: typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']
   const EnumEnterpriseCooperationServiceFeeCollectType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationServiceFeeCollectType']
+  const EnumEnterpriseCooperationServiceFeeCollectTypeText: typeof import('./src/constants/enterprise')['EnumEnterpriseCooperationServiceFeeCollectTypeText']
   const EnumEnterpriseCooperationSignStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationSignStatus']
+  const EnumEnterpriseCooperationSignStatusText: typeof import('./src/constants/enterprise')['EnumEnterpriseCooperationSignStatusText']
   const EnumEnterpriseCooperationStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationStatus']
+  const EnumEnterpriseCooperationStatusText: typeof import('./src/constants/enterprise')['EnumEnterpriseCooperationStatusText']
   const EnumEnterpriseCooperationWalletTransactionStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationWalletTransactionStatus']
   const EnumEnterpriseCostStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']
   const EnumEnterpriseCostType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']
@@ -109,6 +116,12 @@
   const EnumSmsAccessTextUseInSms: typeof import('./src/constants/enterprise')['EnumSmsAccessTextUseInSms']
   const EnumSmsStatus: typeof import('./src/constants/apiEnum')['EnumSmsStatus']
   const EnumSmsStatusText: typeof import('./src/constants/logs')['EnumSmsStatusText']
+  const EnumStandardOrderAppointmentStatus: typeof import('./src/constants/apiEnum')['EnumStandardOrderAppointmentStatus']
+  const EnumStandardOrderPayStatus: typeof import('./src/constants/apiEnum')['EnumStandardOrderPayStatus']
+  const EnumStandardOrderSettlementStatus: typeof import('./src/constants/apiEnum')['EnumStandardOrderSettlementStatus']
+  const EnumStandardServiceRecommendStatus: typeof import('./src/constants/apiEnum')['EnumStandardServiceRecommendStatus']
+  const EnumStandardServiceReleaseStatus: typeof import('./src/constants/apiEnum')['EnumStandardServiceReleaseStatus']
+  const EnumStandardServiceReleaseStatusText: typeof import('./src/constants/standardOrder')['EnumStandardServiceReleaseStatusText']
   const EnumTaskApplyStatus: typeof import('./src/constants/apiEnum')['EnumTaskApplyStatus']
   const EnumTaskApplyStatusText: typeof import('./src/constants/task')['EnumTaskApplyStatusText']
   const EnumTaskCheckReceiveMethod: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveMethod']
@@ -286,6 +299,7 @@
   const toValue: typeof import('vue')['toValue']
   const triggerRef: typeof import('vue')['triggerRef']
   const unref: typeof import('vue')['unref']
+  const use: typeof import('./src/hooks/enterprise')['use']
   const useAccess: typeof import('./src/hooks/useAccess')['useAccess']
   const useAllAreaList: typeof import('./src/hooks/dic')['useAllAreaList']
   const useAllRoleList: typeof import('./src/hooks/useUser')['useAllRoleList']
@@ -298,7 +312,10 @@
   const useCssVars: typeof import('vue')['useCssVars']
   const useDictionaryDataSelect: typeof import('./src/hooks/dic')['useDictionaryDataSelect']
   const useEnabledElectronSignSettings: typeof import('./src/hooks/electronSign')['useEnabledElectronSignSettings']
+  const useGetAdvertisement: typeof import('./src/hooks/advertisement')['useGetAdvertisement']
   const useGetDictionaryCategorySelect: typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']
+  const useGetEnterprises: typeof import('./src/hooks/enterprise')['useGetEnterprises']
+  const useGetShowAdvertisements: typeof import('./src/hooks/advertisement')['useGetShowAdvertisements']
   const useGlobalEventContext: typeof import('./src/hooks/useEvent')['useGlobalEventContext']
   const useGlobalEventProvide: typeof import('./src/hooks/useEvent')['useGlobalEventProvide']
   const useGroupColumns: typeof import('./src/hooks/useAccess')['useGroupColumns']
@@ -338,7 +355,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, EnumEnterpriseCooperationServiceFeeCollectType, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCooperationWalletTransactionStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseEmployeeSource, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumInsuranceSupplierAccess, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumReadScene, 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, EnumWxmpSubscribMessageTemplate, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetSettlementTasksQuerySupplierPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCooperationServiceFeeCollectType, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCooperationWalletTransactionStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseEmployeeSource, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumInsuranceSupplierAccess, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumReadScene, 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, EnumWxmpSubscribMessageTemplate, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetSettlementTasksQuerySupplierPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
+  export type { EnumAdvertisementPage, EnumAdvertisementStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCooperationServiceFeeCollectType, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCooperationWalletTransactionStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseEmployeeSource, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumInsuranceSupplierAccess, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumReadScene, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumStandardOrderAppointmentStatus, EnumStandardOrderPayStatus, EnumStandardOrderSettlementStatus, EnumStandardServiceRecommendStatus, EnumStandardServiceReleaseStatus, 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, EnumWxmpSubscribMessageTemplate, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetSettlementTasksQuerySupplierPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumAdvertisementPage, EnumAdvertisementStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCooperationServiceFeeCollectType, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCooperationWalletTransactionStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseEmployeeSource, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumInsuranceSupplierAccess, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumReadScene, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumStandardOrderAppointmentStatus, EnumStandardOrderPayStatus, EnumStandardOrderSettlementStatus, EnumStandardServiceRecommendStatus, EnumStandardServiceReleaseStatus, 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, EnumWxmpSubscribMessageTemplate, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetSettlementTasksQuerySupplierPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
   import('./src/constants/apiEnum')
   // @ts-ignore
   export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
@@ -402,6 +419,10 @@
     readonly EnterpriseConfigureType: UnwrapRef<typeof import('./src/constants/enterprise')['EnterpriseConfigureType']>
     readonly EnterpriseConfigureTypeTextPartA: UnwrapRef<typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeTextPartA']>
     readonly EnterpriseConfigureTypeTextSupplier: UnwrapRef<typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeTextSupplier']>
+    readonly EnumAdvertisementPage: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumAdvertisementPage']>
+    readonly EnumAdvertisementPageText: UnwrapRef<typeof import('./src/constants/operation')['EnumAdvertisementPageText']>
+    readonly EnumAdvertisementStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumAdvertisementStatus']>
+    readonly EnumAdvertisementStatusText: UnwrapRef<typeof import('./src/constants/operation')['EnumAdvertisementStatusText']>
     readonly EnumBillingMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumBillingMethod']>
     readonly EnumBillingMethodText: UnwrapRef<typeof import('./src/constants/task')['EnumBillingMethodText']>
     readonly EnumBillingMethodUnitText: UnwrapRef<typeof import('./src/constants/task')['EnumBillingMethodUnitText']>
@@ -424,8 +445,11 @@
     readonly EnumElectronSignAccessText: UnwrapRef<typeof import('./src/constants/electronSign')['EnumElectronSignAccessText']>
     readonly EnumElectronSignVerifyType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']>
     readonly EnumEnterpriseCooperationServiceFeeCollectType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationServiceFeeCollectType']>
+    readonly EnumEnterpriseCooperationServiceFeeCollectTypeText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumEnterpriseCooperationServiceFeeCollectTypeText']>
     readonly EnumEnterpriseCooperationSignStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationSignStatus']>
+    readonly EnumEnterpriseCooperationSignStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumEnterpriseCooperationSignStatusText']>
     readonly EnumEnterpriseCooperationStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationStatus']>
+    readonly EnumEnterpriseCooperationStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumEnterpriseCooperationStatusText']>
     readonly EnumEnterpriseCooperationWalletTransactionStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationWalletTransactionStatus']>
     readonly EnumEnterpriseCostStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']>
     readonly EnumEnterpriseCostType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']>
@@ -483,6 +507,12 @@
     readonly EnumSmsAccessTextUseInSms: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessTextUseInSms']>
     readonly EnumSmsStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsStatus']>
     readonly EnumSmsStatusText: UnwrapRef<typeof import('./src/constants/logs')['EnumSmsStatusText']>
+    readonly EnumStandardOrderAppointmentStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumStandardOrderAppointmentStatus']>
+    readonly EnumStandardOrderPayStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumStandardOrderPayStatus']>
+    readonly EnumStandardOrderSettlementStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumStandardOrderSettlementStatus']>
+    readonly EnumStandardServiceRecommendStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumStandardServiceRecommendStatus']>
+    readonly EnumStandardServiceReleaseStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumStandardServiceReleaseStatus']>
+    readonly EnumStandardServiceReleaseStatusText: UnwrapRef<typeof import('./src/constants/standardOrder')['EnumStandardServiceReleaseStatusText']>
     readonly EnumTaskApplyStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskApplyStatus']>
     readonly EnumTaskApplyStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskApplyStatusText']>
     readonly EnumTaskCheckReceiveMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveMethod']>
@@ -671,7 +701,10 @@
     readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
     readonly useDictionaryDataSelect: UnwrapRef<typeof import('./src/hooks/dic')['useDictionaryDataSelect']>
     readonly useEnabledElectronSignSettings: UnwrapRef<typeof import('./src/hooks/electronSign')['useEnabledElectronSignSettings']>
+    readonly useGetAdvertisement: UnwrapRef<typeof import('./src/hooks/advertisement')['useGetAdvertisement']>
     readonly useGetDictionaryCategorySelect: UnwrapRef<typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']>
+    readonly useGetEnterprises: UnwrapRef<typeof import('./src/hooks/enterprise')['useGetEnterprises']>
+    readonly useGetShowAdvertisements: UnwrapRef<typeof import('./src/hooks/advertisement')['useGetShowAdvertisements']>
     readonly useGlobalEventContext: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventContext']>
     readonly useGlobalEventProvide: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventProvide']>
     readonly useGroupColumns: UnwrapRef<typeof import('./src/hooks/useAccess')['useGroupColumns']>
diff --git a/src/components/Log/CommonLogDialog.vue b/src/components/Log/CommonLogDialog.vue
new file mode 100644
index 0000000..b83e22e
--- /dev/null
+++ b/src/components/Log/CommonLogDialog.vue
@@ -0,0 +1,44 @@
+<template>
+  <ProDialog :title="form.title" v-model="visible" destroy-on-close draggable bodyNoPaddingBottom>
+    <ProDialogTableWrapper :height="400">
+      <ProTableV2
+        v-bind="form.proTableProps"
+        :columns="form.column"
+        :operationBtns="form.operationBtns"
+      >
+      </ProTableV2>
+    </ProDialogTableWrapper>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="emit('onConfirm')" type="primary">纭� 瀹�</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { ProDialog, ProTableV2, ProDialogTableWrapper } from '@bole-core/components';
+
+defineOptions({
+  name: 'CommonLogDialog',
+});
+
+type Form = {
+  title: string;
+  proTableProps: any;
+  column: any;
+  operationBtns: any;
+};
+
+const form = defineModel<Form>('form');
+const visible = defineModel<boolean>('modelValue');
+
+const emit = defineEmits<{
+  (e: 'onCancel'): void;
+  (e: 'onConfirm'): void;
+}>();
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index c98f0a4..a8c9942 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -1,6 +1,20 @@
 /* eslint-disable */
 // @ts-ignore
 
+/** 骞垮憡椤甸潰 */
+export enum EnumAdvertisementPage {
+  /**鐢叉柟灏忕▼搴忛椤� */
+  PartAWxmpHome = 10,
+}
+
+/** 骞垮憡鐘舵�� */
+export enum EnumAdvertisementStatus {
+  /**灞曠ず涓� */
+  InProcess = 20,
+  /**宸蹭笅鏋� */
+  Stopped = 100,
+}
+
 /** 璁¤垂鏂瑰紡 */
 export enum EnumBillingMethod {
   /**鎸夋湀 */
@@ -165,6 +179,8 @@
   Identity3 = 10,
   /**浼佷笟鍥涜绱� */
   Identity4 = 20,
+  /**瀹㈡埛鑷璇� */
+  Customer = 30,
 }
 
 /** 浼佷笟绫诲瀷 */
@@ -173,6 +189,8 @@
   Supplier = 0,
   /**鐢叉柟浼佷笟 */
   PartyA = 1,
+  /**骞冲彴 */
+  Platform = 999,
 }
 
 /** 浼佷笟閽卞寘閫氶亾 */
@@ -417,74 +435,82 @@
   BestSign = 10,
   /**鏀粯瀹濅俊浠荤 */
   AlipaySign = 20,
+  /**瀹㈡埛鑷璇� */
+  Customer = 30,
 }
 
 /** 璧勬簮鎺у埗鍣� */
 export enum EnumResourceController {
   /**鏁版嵁瀛楀吀 */
   FlexJobServerDictionary = 0,
+  /**鏍囧噯璁㈠崟鏈嶅姟 */
+  FlexJobServerStandardService = 1,
+  /**鏍囧噯璁㈠崟 */
+  FlexJobServerStandardOrder = 2,
   /**浠诲姟 */
-  FlexJobServerTask = 1,
+  FlexJobServerTask = 3,
   /**浠诲姟浜哄憳 */
-  FlexJobServerTaskUser = 2,
+  FlexJobServerTaskUser = 4,
   /**浠诲姟楠屾敹 */
-  FlexJobServerTaskCheckReceive = 3,
+  FlexJobServerTaskCheckReceive = 5,
   /**鎶曚繚浜у搧 */
-  FlexJobServerInsuranceProduct = 4,
+  FlexJobServerInsuranceProduct = 6,
   /**浼佷笟鎶曚繚浜у搧 */
-  FlexJobServerEnterpriseInsuranceProduct = 5,
+  FlexJobServerEnterpriseInsuranceProduct = 7,
+  /**骞垮憡 */
+  CommonServerAdvertisement = 8,
   /**缂栧彿鍦板潃 */
-  CommonServerCodeUrls = 6,
+  CommonServerCodeUrls = 9,
   /**鏂囦欢 */
-  CommonServerFileUtils = 7,
+  CommonServerFileUtils = 10,
   /**浜嬩欢 */
-  CommonServerEventUtils = 8,
+  CommonServerEventUtils = 11,
   /**鏂囧瓧璇嗗埆 */
-  CommonServerOcrUtils = 9,
+  CommonServerOcrUtils = 12,
   /**鏃ュ織璁板綍 */
-  CommonServerLogRecords = 10,
+  CommonServerLogRecords = 13,
   /**鍚屾鏁版嵁搴� */
-  CommonServerSyncDatabase = 11,
+  CommonServerSyncDatabase = 14,
   /**鐭俊宸ュ叿 */
-  CommonServerSmsUtils = 12,
+  CommonServerSmsUtils = 15,
   /**閰嶇疆 */
-  CommonServerSettings = 13,
+  CommonServerSettings = 16,
   /**宸茶 */
-  CommonServerReadRecord = 14,
+  CommonServerReadRecord = 17,
   /**寰俊灏忕▼搴� */
-  CommonServerWxmp = 15,
+  CommonServerWxmp = 18,
   /**鐢ㄦ埛璁よ瘉 */
-  UserServerAuth = 16,
+  UserServerAuth = 19,
   /**鐢ㄦ埛鑿滃崟 */
-  UserServerMenu = 17,
+  UserServerMenu = 20,
   /**鐢ㄦ埛璧勬簮 */
-  UserServerResource = 18,
+  UserServerResource = 21,
   /**鐢ㄦ埛瑙掕壊 */
-  UserServerRole = 19,
+  UserServerRole = 22,
   /**鐢ㄦ埛淇℃伅 */
-  UserServerUser = 20,
+  UserServerUser = 23,
   /**鐢ㄦ埛閽卞寘 */
-  UserServerUserWallet = 21,
+  UserServerUserWallet = 24,
   /**鐢靛瓙绛� */
-  UserServerElectronSign = 22,
+  UserServerElectronSign = 25,
   /**鐢ㄦ埛绠�鍘� */
-  UserServerUserResume = 23,
+  UserServerUserResume = 26,
   /**浼佷笟淇℃伅 */
-  UserServerEnterprise = 24,
+  UserServerEnterprise = 27,
   /**浼佷笟閽卞寘 */
-  UserServerEnterpriseWallet = 25,
+  UserServerEnterpriseWallet = 28,
   /**浼佷笟鍚堜綔閽卞寘 */
-  UserServerEnterpriseCooperationWallet = 26,
+  UserServerEnterpriseCooperationWallet = 29,
   /**鐏靛伐淇℃伅 */
-  UserServerEnterpriseEmployee = 27,
+  UserServerEnterpriseEmployee = 30,
   /**鐢靛瓙绛� */
-  ElectronSignServerElectronSign = 28,
+  ElectronSignServerElectronSign = 31,
   /**鐭俊 */
-  ToolServerSms = 29,
+  ToolServerSms = 32,
   /**灏忕▼搴� */
-  ToolServerWxmp = 30,
+  ToolServerWxmp = 33,
   /**淇濋櫓 */
-  WaterDropCloudServerInsurance = 31,
+  WaterDropCloudServerInsurance = 34,
 }
 
 /** 璧勬簮璇锋眰鏂瑰紡 */
@@ -549,6 +575,52 @@
   Fail = 30,
 }
 
+/** 鏍囧噯璁㈠崟棰勭害鐘舵�� */
+export enum EnumStandardOrderAppointmentStatus {
+  /**寰呯‘璁� */
+  WaitSure = 10,
+  /**寰呮湇鍔� */
+  WaitServe = 20,
+  /**宸插畬鎴� */
+  Completed = 30,
+  /**宸插彇娑� */
+  Cancelled = 40,
+}
+
+/** 鏍囧噯璁㈠崟鏀粯鐘舵�� */
+export enum EnumStandardOrderPayStatus {
+  /**寰呮敮浠� */
+  Wait = 10,
+  /**宸叉敮浠� */
+  Completed = 20,
+  /**宸插彇娑� */
+  Cancelled = 30,
+}
+
+/** 鏍囧噯璁㈠崟缁撶畻鐘舵�� */
+export enum EnumStandardOrderSettlementStatus {
+  /**寰呯粨绠� */
+  Wait = 10,
+  /**宸插畬鎴� */
+  Completed = 20,
+}
+
+/** 鏍囧噯璁㈠崟鏈嶅姟鎺ㄨ崘鐘舵�� */
+export enum EnumStandardServiceRecommendStatus {
+  /**鏈帹鑽� */
+  No = 10,
+  /**宸叉帹鑽� */
+  Yes = 20,
+}
+
+/** 鏍囧噯璁㈠崟鏈嶅姟-鍙戝竷鐘舵�� */
+export enum EnumStandardServiceReleaseStatus {
+  /**鍙戝竷涓� */
+  InProcess = 20,
+  /**宸插仠姝� */
+  Stopped = 100,
+}
+
 /** 浠诲姟鎶ュ悕鐘舵�� */
 export enum EnumTaskApplyStatus {
   /**寰呭紑濮� */
@@ -751,6 +823,8 @@
 
 /** 鐢ㄦ埛閽卞寘鏀舵敮绫诲瀷 */
 export enum EnumUserWalletTransactionType {
+  /**鏀粯 */
+  Payment = 1,
   /**鏀跺叆 */
   Income = 10,
   /**鎻愮幇 */
diff --git a/src/constants/enterprise.ts b/src/constants/enterprise.ts
index d031394..a29d83b 100644
--- a/src/constants/enterprise.ts
+++ b/src/constants/enterprise.ts
@@ -24,10 +24,10 @@
    * 寰俊鏀粯閰嶇疆
    */
   Wechat = 5,
-  /**
-   * 淇濋櫓浜у搧閰嶇疆
-   */
-  InsureProduct = 6,
+  // /**
+  //  * 淇濋櫓浜у搧閰嶇疆
+  //  */
+  // InsureProduct = 6,
 }
 
 export const EnterpriseConfigureTypeTextSupplier = {
@@ -36,7 +36,7 @@
   [EnterpriseConfigureType.Electronic]: '鐢靛瓙绛鹃厤缃�',
   [EnterpriseConfigureType.ShortMessage]: '鐭俊閫氶亾閰嶇疆',
   [EnterpriseConfigureType.Wechat]: '寰俊鏀粯閰嶇疆',
-  [EnterpriseConfigureType.InsureProduct]: '淇濋櫓浜у搧閰嶇疆',
+  // [EnterpriseConfigureType.InsureProduct]: '淇濋櫓浜у搧閰嶇疆',
 };
 
 export const EnterpriseConfigureTypeTextPartA = {
@@ -141,3 +141,18 @@
   [EnumEnterpriseWalletExpandindirectOrderStatus.DISUSE]: '宸插簾寮�',
   [EnumEnterpriseWalletExpandindirectOrderStatus.REVOKED]: '宸叉挙閿�',
 };
+
+export const EnumEnterpriseCooperationStatusText = {
+  [EnumEnterpriseCooperationStatus.None]: '鏈悎浣�',
+  [EnumEnterpriseCooperationStatus.Completed]: '宸插悎浣�',
+};
+
+export const EnumEnterpriseCooperationSignStatusText = {
+  [EnumEnterpriseCooperationSignStatus.None]: '鏈绾�',
+  [EnumEnterpriseCooperationSignStatus.Completed]: '宸茬绾�',
+};
+
+export const EnumEnterpriseCooperationServiceFeeCollectTypeText = {
+  [EnumEnterpriseCooperationServiceFeeCollectType.Rate]: '鎸夋瘮渚�',
+  [EnumEnterpriseCooperationServiceFeeCollectType.SingleTime]: '鍗曚汉鍗曟',
+};
diff --git a/src/constants/index.ts b/src/constants/index.ts
index 564c7e7..06a967c 100644
--- a/src/constants/index.ts
+++ b/src/constants/index.ts
@@ -22,3 +22,5 @@
 export * from './enterpriseWallet';
 export * from './finance';
 export * from './logs';
+export * from './operation';
+export * from './standardOrder';
diff --git a/src/constants/operation.ts b/src/constants/operation.ts
new file mode 100644
index 0000000..f2c1f67
--- /dev/null
+++ b/src/constants/operation.ts
@@ -0,0 +1,8 @@
+export const EnumAdvertisementPageText = {
+  [EnumAdvertisementPage.PartAWxmpHome]: '鐢叉柟灏忕▼搴忛椤�',
+};
+
+export const EnumAdvertisementStatusText = {
+  [EnumAdvertisementStatus.InProcess]: '灞曠ず涓�',
+  [EnumAdvertisementStatus.Stopped]: '宸蹭笅鏋�',
+};
diff --git a/src/constants/standardOrder.ts b/src/constants/standardOrder.ts
new file mode 100644
index 0000000..dc6ae04
--- /dev/null
+++ b/src/constants/standardOrder.ts
@@ -0,0 +1,4 @@
+export const EnumStandardServiceReleaseStatusText = {
+  [EnumStandardServiceReleaseStatus.InProcess]: '鍙戝竷涓�',
+  [EnumStandardServiceReleaseStatus.Stopped]: '宸插仠姝�',
+};
diff --git a/src/hooks/advertisement.ts b/src/hooks/advertisement.ts
new file mode 100644
index 0000000..5dece37
--- /dev/null
+++ b/src/hooks/advertisement.ts
@@ -0,0 +1,60 @@
+import { useQuery } from '@tanstack/vue-query';
+import * as advertisementServices from '@/services/api/advertisement';
+
+type UseGetAdvertisementOptions = {
+  id: MaybeRef<string>;
+};
+
+export function useGetAdvertisement(options: UseGetAdvertisementOptions) {
+  const { id } = options;
+
+  const { data, refetch } = useQuery({
+    queryKey: ['advertisementServices/getAdvertisement', id],
+    queryFn: async () => {
+      return await advertisementServices.getAdvertisement(
+        {
+          id: unref(id),
+        },
+        {
+          showLoading: false,
+        }
+      );
+    },
+    placeholderData: () => ({} as API.GetAdvertisementQueryResult),
+    enabled: computed(() => !!unref(id)),
+  });
+
+  return {
+    data: data,
+    refetch,
+  };
+}
+
+type UseGetShowAdvertisementsOptions = {
+  page: EnumAdvertisementPage;
+};
+
+export function useGetShowAdvertisements(options: UseGetShowAdvertisementsOptions) {
+  const { page } = options;
+
+  const { data, refetch } = useQuery({
+    queryKey: ['advertisementServices/getShowAdvertisements', page],
+    queryFn: async () => {
+      return await advertisementServices.getShowAdvertisements(
+        {
+          page: page,
+        },
+        {
+          showLoading: false,
+        }
+      );
+    },
+    placeholderData: () => [] as API.GetShowAdvertisementsQueryResultItem[],
+    enabled: computed(() => !!page),
+  });
+
+  return {
+    data: data,
+    refetch,
+  };
+}
diff --git a/src/hooks/dic.ts b/src/hooks/dic.ts
index 06171e5..dc95df6 100644
--- a/src/hooks/dic.ts
+++ b/src/hooks/dic.ts
@@ -64,6 +64,7 @@
   /** 鏌ヨ鎵�鏈� */
   all?: MaybeRef<boolean>;
   maxDeep?: number;
+  field1?: MaybeRef<string>;
 };
 
 export function useDictionaryDataSelect({
@@ -74,6 +75,7 @@
   keywords,
   all,
   maxDeep,
+  field1,
 }: UseDictionaryDataSelectOptions) {
   const params = computed(() => ({
     categoryId: unref(categoryId),
@@ -82,10 +84,14 @@
     keywords: unref(keywords),
     all: unref(all),
     maxDeep: maxDeep,
+    field1: unref(field1),
   }));
   const { data: dictionaryDataList, refetch } = useQuery({
     queryKey: ['dictionaryServices/getDictionaryDataSelect', params],
     queryFn: async () => {
+      // if (unref(field1)) {
+      //   params.value.field1 = unref(field1);
+      // }
       let res = await dictionaryServices.getDictionaryDataSelect(params.value, {
         showLoading: false,
       });
diff --git a/src/hooks/enterprise.ts b/src/hooks/enterprise.ts
new file mode 100644
index 0000000..dae6c1f
--- /dev/null
+++ b/src/hooks/enterprise.ts
@@ -0,0 +1,62 @@
+import { useTableV2 } from '@bole-core/components';
+import * as enterpriseServices from '@/services/api/enterprise';
+
+type UseGetEnterprisesOptions = {};
+
+export function useGetEnterprises() {
+  const {
+    getDataSource: getList,
+    proTableProps,
+    paginationState,
+    extraParamState,
+    reset,
+    isInitialLoading,
+  } = useTableV2(
+    async ({ pageIndex, pageSize, isInitialLoading }, extraParamState) => {
+      try {
+        let params: API.GetEnterprisesQuery = {
+          pageModel: {
+            rows: pageSize,
+            page: pageIndex,
+            orderInput: extraParamState.orderInput,
+          },
+          isConfigured: extraParamState.isConfigured,
+          keywords: extraParamState.keywords,
+        };
+
+        let res = await enterpriseServices.getEnterprises(params, {
+          showLoading: !isInitialLoading,
+        });
+        return res;
+      } catch (error) {
+        console.log('error: ', error);
+      }
+    },
+    {
+      defaultExtraParams: {
+        keywords: '',
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+        isConfigured: '' as any as boolean,
+      },
+      queryKey: ['enterpriseServices/getEnterprises'],
+      columnsRenderProps: {
+        isReal: { type: 'enum', valueEnum: IsRealText },
+        isConfigured: { type: 'enum', valueEnum: IsConfiguredText },
+        type: { type: 'enum', valueEnum: EnumEnterpriseTypeText },
+        serviceFeeRate: {
+          formatter: (row: API.GetEnterprisesQueryResultItem) =>
+            row.serviceFeeRate ? `${row.serviceFeeRate}%` : '',
+        },
+      },
+    }
+  );
+
+  return {
+    getList,
+    proTableProps,
+    paginationState,
+    extraParamState,
+    reset,
+    isInitialLoading,
+  };
+}
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index 105e91f..33068a6 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -11,3 +11,5 @@
 export * from './portraitTable';
 export * from './electronSign';
 export * from './identify';
+export * from './advertisement';
+export * from './enterprise';
diff --git a/src/hooks/useEvent.ts b/src/hooks/useEvent.ts
index e5a7944..34827bc 100644
--- a/src/hooks/useEvent.ts
+++ b/src/hooks/useEvent.ts
@@ -5,6 +5,8 @@
   updateInsuranceClaim: any;
   'enterprise:add': any;
   'enterprise:edit': any;
+  'servicesManage:add': any;
+  'servicesManage:edit': any;
 };
 
 export type GlobalEventListener<T extends keyof GlobalEvent> = (payload: GlobalEvent[T]) => any;
diff --git a/src/services/api/advertisement.ts b/src/services/api/advertisement.ts
new file mode 100644
index 0000000..d75f8f0
--- /dev/null
+++ b/src/services/api/advertisement.ts
@@ -0,0 +1,96 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏌ヨ骞垮憡璇︽儏 GET /api/common/advertisement/getAdvertisement */
+export async function getAdvertisement(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetAdvertisementParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetAdvertisementQueryResult>('/api/common/advertisement/getAdvertisement', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ骞垮憡鏃ュ織鍒嗛〉鍒楄〃 POST /api/common/advertisement/getAdvertisementLogs */
+export async function getAdvertisementLogs(
+  body: API.GetAdvertisementLogsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.HistoryQueryResult>('/api/common/advertisement/getAdvertisementLogs', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ骞垮憡鍒嗛〉鍒楄〃 POST /api/common/advertisement/getAdvertisements */
+export async function getAdvertisements(
+  body: API.GetAdvertisementsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetAdvertisementsQueryResult>('/api/common/advertisement/getAdvertisements', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ灞曠ず骞垮憡鍒楄〃 GET /api/common/advertisement/getShowAdvertisements */
+export async function getShowAdvertisements(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetShowAdvertisementsParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetShowAdvertisementsQueryResultItem[]>(
+    '/api/common/advertisement/getShowAdvertisements',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
+      ...(options || {}),
+    }
+  );
+}
+
+/** 淇濆瓨骞垮憡 POST /api/common/advertisement/saveAdvertisement */
+export async function saveAdvertisement(
+  body: API.SaveAdvertisementCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/common/advertisement/saveAdvertisement', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆骞垮憡鐘舵�� PUT /api/common/advertisement/setAdvertisementStatus */
+export async function setAdvertisementStatus(
+  body: API.SetAdvertisementStatusCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/common/advertisement/setAdvertisementStatus', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/auth.ts b/src/services/api/auth.ts
index 87bd6be..2cb1c46 100644
--- a/src/services/api/auth.ts
+++ b/src/services/api/auth.ts
@@ -32,6 +32,21 @@
   });
 }
 
+/** 閫夋嫨寰俊鎵嬫満鍙� POST /api/user/auth/chooseWxmpPhoneNumber */
+export async function chooseWxmpPhoneNumber(
+  body: API.ChooseWxmpPhoneNumberCommand,
+  options?: API.RequestConfig
+) {
+  return request<boolean>('/api/user/auth/chooseWxmpPhoneNumber', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 GET /api/user/auth/getAliyunOSSAcs */
 export async function getAliyunOSSAcs(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
diff --git a/src/services/api/enterprise.ts b/src/services/api/enterprise.ts
index 346e2eb..90c4a39 100644
--- a/src/services/api/enterprise.ts
+++ b/src/services/api/enterprise.ts
@@ -2,6 +2,36 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 鍒犻櫎浼佷笟鍦板潃 DELETE /api/user/enterprise/deleteEnterpriseAddress */
+export async function deleteEnterpriseAddress(
+  body: API.DeleteEnterpriseAddressCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/enterprise/deleteEnterpriseAddress', {
+    method: 'DELETE',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 绂佺敤浼佷笟 POST /api/user/enterprise/disabledEnterprise */
+export async function disabledEnterprise(
+  body: API.DisabledEnterpriseCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/enterprise/disabledEnterprise', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鏌ヨ浼佷笟璇︽儏 GET /api/user/enterprise/getEnterprise */
 export async function getEnterprise(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
@@ -17,6 +47,39 @@
   });
 }
 
+/** 鏌ヨ浼佷笟鍦板潃璇︽儏 GET /api/user/enterprise/getEnterpriseAddress */
+export async function getEnterpriseAddress(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetEnterpriseAddressParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseAddressQueryResult>('/api/user/enterprise/getEnterpriseAddress', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ浼佷笟鍦板潃鍒嗛〉鍒楄〃 POST /api/user/enterprise/getEnterpriseAddresses */
+export async function getEnterpriseAddresses(
+  body: API.GetEnterpriseAddressesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetEnterpriseAddressesQueryResult>(
+    '/api/user/enterprise/getEnterpriseAddresses',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 鏌ヨ浼佷笟鐢靛瓙绛鹃厤缃� GET /api/user/enterprise/getEnterpriseElectronSignSetting */
 export async function getEnterpriseElectronSignSetting(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
@@ -169,6 +232,21 @@
   });
 }
 
+/** 淇濆瓨浼佷笟鍦板潃 POST /api/user/enterprise/saveEnterpriseAddress */
+export async function saveEnterpriseAddress(
+  body: API.SaveEnterpriseAddressCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/enterprise/saveEnterpriseAddress', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 淇濆瓨浼佷笟璐圭敤 POST /api/user/enterprise/saveEnterpriseCost */
 export async function saveEnterpriseCost(
   body: API.SaveEnterpriseCostCommand,
@@ -229,6 +307,21 @@
   });
 }
 
+/** 璁剧疆浼佷笟鐧诲綍鐢ㄦ埛淇℃伅 PUT /api/user/enterprise/setEnterpriseLoginInfo */
+export async function setEnterpriseLoginInfo(
+  body: API.SetEnterpriseLoginInfoCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/enterprise/setEnterpriseLoginInfo', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 璁剧疆浼佷笟鐭俊閰嶇疆 PUT /api/user/enterprise/setEnterpriseSmsSetting */
 export async function setEnterpriseSmsSetting(
   body: API.SetEnterpriseSmsSettingCommand,
diff --git a/src/services/api/enterpriseInsuranceProduct.ts b/src/services/api/enterpriseInsuranceProduct.ts
index d5f1c98..5ed0e55 100644
--- a/src/services/api/enterpriseInsuranceProduct.ts
+++ b/src/services/api/enterpriseInsuranceProduct.ts
@@ -26,7 +26,7 @@
   params: API.APIgetEnterpriseInsuranceProductSelectParams,
   options?: API.RequestConfig
 ) {
-  return request<API.SelectOptionGuidGetEnterpriseInsuranceProductSelectQueryOption[]>(
+  return request<API.SelectOptionNullableGuidGetEnterpriseInsuranceProductSelectQueryOption[]>(
     '/api/flexjob/enterpriseInsuranceProduct/getEnterpriseInsuranceProductSelect',
     {
       method: 'GET',
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 2dd6b34..c4b5954 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -14,10 +14,12 @@
 import * as logRecords from './logRecords';
 import * as dictionary from './dictionary';
 import * as taskCheckReceive from './taskCheckReceive';
+import * as standardService from './standardService';
 import * as userResume from './userResume';
 import * as auth from './auth';
 import * as taskUser from './taskUser';
 import * as enterpriseInsuranceProduct from './enterpriseInsuranceProduct';
+import * as standardOrder from './standardOrder';
 import * as eventUtils from './eventUtils';
 import * as enterpriseCooperationWallet from './enterpriseCooperationWallet';
 import * as insuranceProduct from './insuranceProduct';
@@ -26,6 +28,7 @@
 import * as menu from './menu';
 import * as sms from './sms';
 import * as userWallet from './userWallet';
+import * as advertisement from './advertisement';
 import * as fileUtils from './fileUtils';
 import * as settings from './settings';
 import * as wxmpUtils from './wxmpUtils';
@@ -42,10 +45,12 @@
   logRecords,
   dictionary,
   taskCheckReceive,
+  standardService,
   userResume,
   auth,
   taskUser,
   enterpriseInsuranceProduct,
+  standardOrder,
   eventUtils,
   enterpriseCooperationWallet,
   insuranceProduct,
@@ -54,6 +59,7 @@
   menu,
   sms,
   userWallet,
+  advertisement,
   fileUtils,
   settings,
   wxmpUtils,
diff --git a/src/services/api/standardOrder.ts b/src/services/api/standardOrder.ts
new file mode 100644
index 0000000..04b9b57
--- /dev/null
+++ b/src/services/api/standardOrder.ts
@@ -0,0 +1,198 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 棰勭害涓嬪崟锛堟爣鍑嗚鍗曪級 POST /api/flexjob/standardOrder/addStandardOrder */
+export async function addStandardOrder(
+  body: API.AddStandardOrderCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/standardOrder/addStandardOrder', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏍囧噯璁㈠崟鍙栨秷 POST /api/flexjob/standardOrder/cancelStandardOrderAppointment */
+export async function cancelStandardOrderAppointment(
+  body: API.CancelStandardOrderAppointmentCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/standardOrder/cancelStandardOrderAppointment', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟璇︽儏 GET /api/flexjob/standardOrder/getStandardOrder */
+export async function getStandardOrder(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetStandardOrderParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardOrderQueryResult>('/api/flexjob/standardOrder/getStandardOrder', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟棰勭害鍒嗛〉鍒楄〃 POST /api/flexjob/standardOrder/getStandardOrderAppointments */
+export async function getStandardOrderAppointments(
+  body: API.GetStandardOrderAppointmentsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardOrderAppointmentsQueryResult>(
+    '/api/flexjob/standardOrder/getStandardOrderAppointments',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟鏀粯鍒嗛〉鍒楄〃 POST /api/flexjob/standardOrder/getStandardOrderPays */
+export async function getStandardOrderPays(
+  body: API.GetStandardOrderPaysQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardOrderPaysQueryResult>(
+    '/api/flexjob/standardOrder/getStandardOrderPays',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟鍒嗛〉鍒楄〃 POST /api/flexjob/standardOrder/getStandardOrders */
+export async function getStandardOrders(
+  body: API.GetStandardOrdersQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardOrdersQueryResult>('/api/flexjob/standardOrder/getStandardOrders', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟鏈嶅姟浜哄憳鍒嗛〉鍒楄〃 POST /api/flexjob/standardOrder/getStandardOrderServers */
+export async function getStandardOrderServers(
+  body: API.GetStandardOrderServersQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardOrderServersQueryResult>(
+    '/api/flexjob/standardOrder/getStandardOrderServers',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟缁撶畻鍒嗛〉鍒楄〃 POST /api/flexjob/standardOrder/getStandardOrderSettlements */
+export async function getStandardOrderSettlements(
+  body: API.GetStandardOrderSettlementsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardOrderSettlementsQueryResult>(
+    '/api/flexjob/standardOrder/getStandardOrderSettlements',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟渚涘簲鍟嗗垎椤靛垪琛� POST /api/flexjob/standardOrder/getStandardOrderSupplierEnterprises */
+export async function getStandardOrderSupplierEnterprises(
+  body: API.GetStandardOrderSupplierEnterprisesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardOrderSupplierEnterprisesQueryResult>(
+    '/api/flexjob/standardOrder/getStandardOrderSupplierEnterprises',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏍囧噯璁㈠崟鏀粯 POST /api/flexjob/standardOrder/payStandardOrder */
+export async function payStandardOrder(
+  body: API.PayStandardOrderCommand,
+  options?: API.RequestConfig
+) {
+  return request<API.PayStandardOrderCommandResult>('/api/flexjob/standardOrder/payStandardOrder', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏍囧噯璁㈠崟鏈嶅姟纭 POST /api/flexjob/standardOrder/sureStandardOrder */
+export async function sureStandardOrder(
+  body: API.SureStandardOrderCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/standardOrder/sureStandardOrder', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏍囧噯璁㈠崟纭棰勭害 POST /api/flexjob/standardOrder/sureStandardOrderAppointment */
+export async function sureStandardOrderAppointment(
+  body: API.SureStandardOrderAppointmentCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/standardOrder/sureStandardOrderAppointment', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/standardService.ts b/src/services/api/standardService.ts
new file mode 100644
index 0000000..337c5f4
--- /dev/null
+++ b/src/services/api/standardService.ts
@@ -0,0 +1,117 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏀惰棌鏍囧噯璁㈠崟鏈嶅姟 POST /api/flexjob/standardService/collectionStandardService */
+export async function collectionStandardService(
+  body: API.CollectionStandardServiceCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/flexjob/standardService/collectionStandardService', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟鏈嶅姟璇︽儏 GET /api/flexjob/standardService/getStandardService */
+export async function getStandardService(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetStandardServiceParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardServiceQueryResult>(
+    '/api/flexjob/standardService/getStandardService',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟鏈嶅姟璇勮鍒嗛〉鍒楄〃 POST /api/flexjob/standardService/getStandardServiceComments */
+export async function getStandardServiceComments(
+  body: API.GetStandardServiceCommentsQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardServiceCommentsQueryResult>(
+    '/api/flexjob/standardService/getStandardServiceComments',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ鏍囧噯璁㈠崟鏈嶅姟鍒嗛〉鍒楄〃 POST /api/flexjob/standardService/getStandardServices */
+export async function getStandardServices(
+  body: API.GetStandardServicesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetStandardServicesQueryResult>(
+    '/api/flexjob/standardService/getStandardServices',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 淇濆瓨鏍囧噯璁㈠崟鏈嶅姟 POST /api/flexjob/standardService/saveStandardService */
+export async function saveStandardService(
+  body: API.SaveStandardServiceCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/standardService/saveStandardService', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆鏍囧噯璁㈠崟鏈嶅姟鏄惁鎺ㄨ崘 PUT /api/flexjob/standardService/setStandardServiceRecommendStatus */
+export async function setStandardServiceRecommendStatus(
+  body: API.SetStandardServiceRecommendStatusCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/flexjob/standardService/setStandardServiceRecommendStatus', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 璁剧疆鏍囧噯璁㈠崟鏈嶅姟鍙戝竷鐘舵�� PUT /api/flexjob/standardService/setStandardServiceReleaseStatus */
+export async function setStandardServiceReleaseStatus(
+  body: API.SetStandardServiceReleaseStatusCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/flexjob/standardService/setStandardServiceReleaseStatus', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index cf687af..8815df5 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -25,6 +25,60 @@
     contractEnd?: string;
   }
 
+  interface AddStandardOrderCommand {
+    /** 鏈嶅姟Id */
+    serviceId?: string;
+    /** 鏈嶅姟鍚� */
+    serviceName?: string;
+    /** 鏈嶅姟鍗曞彿 */
+    serviceCode?: string;
+    /** 瑙勬牸 */
+    specId?: string;
+    /** 瑙勬牸鍚嶇О */
+    specName?: string;
+    /** 瑙勬牸浠锋牸 */
+    specPrice?: number;
+    /** 瑙勬牸鏁伴噺 */
+    specNumber?: number;
+    /** 鍦板潃Id */
+    addressId?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鐪佷唤缂栧彿 */
+    provinceCode?: string;
+    /** 鐪佷唤 */
+    provinceContent?: string;
+    /** 鍩庡競缂栧彿 */
+    cityCode?: string;
+    /** 鍩庡競 */
+    cityContent?: string;
+    /** 鍖虹紪鍙� */
+    areaCode?: string;
+    /** 鍖� */
+    areaContent?: string;
+    /** 璇︾粏鍦板潃 */
+    addressName?: string;
+    /** 闂ㄧ墝鍙� */
+    addressDetail?: string;
+    /** 缁忓害 */
+    longitude?: number;
+    /** 绾害 */
+    latitude?: number;
+    /** 鏈嶅姟璧峰鏃堕棿 */
+    beginTime?: string;
+    /** 鏈嶅姟鎴鏃堕棿 */
+    endTime?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 鏈嶅姟浜哄憳Id */
+    enterpriseEmployeeIds?: string[];
+    /** 澶囨敞 */
+    remark?: string;
+    payAccess?: EnumUserBankCardAccess;
+  }
+
   interface AgainSureTaskSettlementOrderRosterCommand {
     /** 鍚嶅崟Id */
     id?: string;
@@ -35,6 +89,11 @@
     request?: CheckHealthQuery;
   }
 
+  interface APIgetAdvertisementParams {
+    /** Id */
+    id?: string;
+  }
+
   interface APIgetAliyunOSSAcsParams {
     /** 鑾峰彇闃块噷浜慜SS鎺堟潈淇℃伅 */
     request?: GetAliyunOSSAcsQuery;
@@ -114,6 +173,16 @@
     maxDeep?: number;
     /** 鎼哄甫涓嬬骇 */
     withChildren?: boolean;
+    /** 瀛楁1 */
+    field1?: string;
+    /** 瀛楁2 */
+    field2?: string;
+    /** 瀛楁3 */
+    field3?: string;
+    /** 瀛楁4 */
+    field4?: string;
+    /** 瀛楁5 */
+    field5?: string;
   }
 
   interface APIgetEnabledElectronSignSettingsParams {
@@ -123,6 +192,11 @@
     all?: boolean;
   }
 
+  interface APIgetEnterpriseAddressParams {
+    /** Id */
+    id?: string;
+  }
+
   interface APIgetEnterpriseContractTemplateSelectParams {
     /** 浼佷笟Id */
     enterpriseId?: string;
@@ -312,6 +386,21 @@
     operatorToken?: string;
   }
 
+  interface APIgetShowAdvertisementsParams {
+    /** 椤甸潰 */
+    page?: EnumAdvertisementPage;
+  }
+
+  interface APIgetStandardOrderParams {
+    /** 璁㈠崟Id */
+    id?: string;
+  }
+
+  interface APIgetStandardServiceParams {
+    /** Id */
+    id?: string;
+  }
+
   interface APIgetSupplierEnterpriseSelectParams {
     /** 鏌ヨ渚涘簲鍟嗛�夋嫨鍣ㄦ暟鎹� */
     request?: GetSupplierEnterpriseSelectQuery;
@@ -591,6 +680,13 @@
     insuranceSupplierId?: string;
   }
 
+  interface CancelStandardOrderAppointmentCommand {
+    /** 璁㈠崟Id */
+    id?: string;
+    /** 鍙栨秷鍘熷洜 */
+    appointmentCancelReason?: string;
+  }
+
   interface ChangePhoneNumberCommand {
     /** 鎵嬫満鍙风爜 */
     phoneNumber: string;
@@ -645,6 +741,8 @@
     checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
   }
 
+  type ChooseWxmpPhoneNumberCommand = Record<string, any>;
+
   type ClearTaskCollectCommand = Record<string, any>;
 
   interface CloseEnterpriseWalletCommand {
@@ -653,6 +751,13 @@
     access?: EnumEnterpriseWalletAccess;
   }
 
+  interface CollectionStandardServiceCommand {
+    /** Id */
+    ids?: string[];
+    /** 鏄惁鏀惰棌 */
+    isCollect?: boolean;
+  }
+
   interface CollectTaskCommand {
     /** 浠诲姟Id */
     ids?: string[];
@@ -676,6 +781,10 @@
     ids: string[];
   }
 
+  interface DeleteEnterpriseAddressCommand {
+    ids: string[];
+  }
+
   interface DeleteMenuCommand {
     ids: string[];
   }
@@ -696,6 +805,12 @@
     ids: string[];
   }
 
+  interface DisabledEnterpriseCommand {
+    ids?: string[];
+    /** 鏄惁宸茬鐢� */
+    isDisabled?: boolean;
+  }
+
   interface EditEnterpriseEmployeeCommand {
     /** Id */
     id?: string;
@@ -813,6 +928,18 @@
     enterpriseId?: string;
   }
 
+  enum EnumAdvertisementPage {
+    /**鐢叉柟灏忕▼搴忛椤� */
+    PartAWxmpHome = 10,
+  }
+
+  enum EnumAdvertisementStatus {
+    /**灞曠ず涓� */
+    InProcess = 20,
+    /**宸蹭笅鏋� */
+    Stopped = 100,
+  }
+
   enum EnumBillingMethod {
     /**鎸夋湀 */
     Month = 10,
@@ -958,6 +1085,8 @@
     Identity3 = 10,
     /**浼佷笟鍥涜绱� */
     Identity4 = 20,
+    /**瀹㈡埛鑷璇� */
+    Customer = 30,
   }
 
   enum EnumEnterpriseType {
@@ -965,6 +1094,8 @@
     Supplier = 0,
     /**鐢叉柟浼佷笟 */
     PartyA = 1,
+    /**骞冲彴 */
+    Platform = 999,
   }
 
   enum EnumEnterpriseWalletAccess {
@@ -1186,73 +1317,81 @@
     BestSign = 10,
     /**鏀粯瀹濅俊浠荤 */
     AlipaySign = 20,
+    /**瀹㈡埛鑷璇� */
+    Customer = 30,
   }
 
   enum EnumResourceController {
     /**鏁版嵁瀛楀吀 */
     FlexJobServerDictionary = 0,
+    /**鏍囧噯璁㈠崟鏈嶅姟 */
+    FlexJobServerStandardService = 1,
+    /**鏍囧噯璁㈠崟 */
+    FlexJobServerStandardOrder = 2,
     /**浠诲姟 */
-    FlexJobServerTask = 1,
+    FlexJobServerTask = 3,
     /**浠诲姟浜哄憳 */
-    FlexJobServerTaskUser = 2,
+    FlexJobServerTaskUser = 4,
     /**浠诲姟楠屾敹 */
-    FlexJobServerTaskCheckReceive = 3,
+    FlexJobServerTaskCheckReceive = 5,
     /**鎶曚繚浜у搧 */
-    FlexJobServerInsuranceProduct = 4,
+    FlexJobServerInsuranceProduct = 6,
     /**浼佷笟鎶曚繚浜у搧 */
-    FlexJobServerEnterpriseInsuranceProduct = 5,
+    FlexJobServerEnterpriseInsuranceProduct = 7,
+    /**骞垮憡 */
+    CommonServerAdvertisement = 8,
     /**缂栧彿鍦板潃 */
-    CommonServerCodeUrls = 6,
+    CommonServerCodeUrls = 9,
     /**鏂囦欢 */
-    CommonServerFileUtils = 7,
+    CommonServerFileUtils = 10,
     /**浜嬩欢 */
-    CommonServerEventUtils = 8,
+    CommonServerEventUtils = 11,
     /**鏂囧瓧璇嗗埆 */
-    CommonServerOcrUtils = 9,
+    CommonServerOcrUtils = 12,
     /**鏃ュ織璁板綍 */
-    CommonServerLogRecords = 10,
+    CommonServerLogRecords = 13,
     /**鍚屾鏁版嵁搴� */
-    CommonServerSyncDatabase = 11,
+    CommonServerSyncDatabase = 14,
     /**鐭俊宸ュ叿 */
-    CommonServerSmsUtils = 12,
+    CommonServerSmsUtils = 15,
     /**閰嶇疆 */
-    CommonServerSettings = 13,
+    CommonServerSettings = 16,
     /**宸茶 */
-    CommonServerReadRecord = 14,
+    CommonServerReadRecord = 17,
     /**寰俊灏忕▼搴� */
-    CommonServerWxmp = 15,
+    CommonServerWxmp = 18,
     /**鐢ㄦ埛璁よ瘉 */
-    UserServerAuth = 16,
+    UserServerAuth = 19,
     /**鐢ㄦ埛鑿滃崟 */
-    UserServerMenu = 17,
+    UserServerMenu = 20,
     /**鐢ㄦ埛璧勬簮 */
-    UserServerResource = 18,
+    UserServerResource = 21,
     /**鐢ㄦ埛瑙掕壊 */
-    UserServerRole = 19,
+    UserServerRole = 22,
     /**鐢ㄦ埛淇℃伅 */
-    UserServerUser = 20,
+    UserServerUser = 23,
     /**鐢ㄦ埛閽卞寘 */
-    UserServerUserWallet = 21,
+    UserServerUserWallet = 24,
     /**鐢靛瓙绛� */
-    UserServerElectronSign = 22,
+    UserServerElectronSign = 25,
     /**鐢ㄦ埛绠�鍘� */
-    UserServerUserResume = 23,
+    UserServerUserResume = 26,
     /**浼佷笟淇℃伅 */
-    UserServerEnterprise = 24,
+    UserServerEnterprise = 27,
     /**浼佷笟閽卞寘 */
-    UserServerEnterpriseWallet = 25,
+    UserServerEnterpriseWallet = 28,
     /**浼佷笟鍚堜綔閽卞寘 */
-    UserServerEnterpriseCooperationWallet = 26,
+    UserServerEnterpriseCooperationWallet = 29,
     /**鐏靛伐淇℃伅 */
-    UserServerEnterpriseEmployee = 27,
+    UserServerEnterpriseEmployee = 30,
     /**鐢靛瓙绛� */
-    ElectronSignServerElectronSign = 28,
+    ElectronSignServerElectronSign = 31,
     /**鐭俊 */
-    ToolServerSms = 29,
+    ToolServerSms = 32,
     /**灏忕▼搴� */
-    ToolServerWxmp = 30,
+    ToolServerWxmp = 33,
     /**淇濋櫓 */
-    WaterDropCloudServerInsurance = 31,
+    WaterDropCloudServerInsurance = 34,
   }
 
   enum EnumResourceMethod {
@@ -1312,6 +1451,47 @@
     Fail = 30,
   }
 
+  enum EnumStandardOrderAppointmentStatus {
+    /**寰呯‘璁� */
+    WaitSure = 10,
+    /**寰呮湇鍔� */
+    WaitServe = 20,
+    /**宸插畬鎴� */
+    Completed = 30,
+    /**宸插彇娑� */
+    Cancelled = 40,
+  }
+
+  enum EnumStandardOrderPayStatus {
+    /**寰呮敮浠� */
+    Wait = 10,
+    /**宸叉敮浠� */
+    Completed = 20,
+    /**宸插彇娑� */
+    Cancelled = 30,
+  }
+
+  enum EnumStandardOrderSettlementStatus {
+    /**寰呯粨绠� */
+    Wait = 10,
+    /**宸插畬鎴� */
+    Completed = 20,
+  }
+
+  enum EnumStandardServiceRecommendStatus {
+    /**鏈帹鑽� */
+    No = 10,
+    /**宸叉帹鑽� */
+    Yes = 20,
+  }
+
+  enum EnumStandardServiceReleaseStatus {
+    /**鍙戝竷涓� */
+    InProcess = 20,
+    /**宸插仠姝� */
+    Stopped = 100,
+  }
+
   enum EnumTaskApplyStatus {
     /**寰呭紑濮� */
     Wait = 10,
@@ -1492,6 +1672,8 @@
   }
 
   enum EnumUserWalletTransactionType {
+    /**鏀粯 */
+    Payment = 1,
     /**鏀跺叆 */
     Income = 10,
     /**鎻愮幇 */
@@ -1859,6 +2041,42 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetAdvertisementQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetAdvertisementQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetAdvertisementsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetAdvertisementsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetAliyunOSSAcsQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -2165,6 +2383,42 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetEnterpriseAddressesQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetEnterpriseAddressesQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetEnterpriseAddressQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetEnterpriseAddressQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetEnterpriseContractTemplateLogsQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3011,6 +3265,186 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetStandardOrderAppointmentsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardOrderAppointmentsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardOrderPaysQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardOrderPaysQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardOrderQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardOrderQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardOrderServersQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardOrderServersQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardOrderSettlementsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardOrderSettlementsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardOrdersQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardOrdersQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardOrderSupplierEnterprisesQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardOrderSupplierEnterprisesQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardServiceCommentsQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardServiceCommentsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardServiceQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardServiceQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetStandardServicesQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetStandardServicesQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetTaskEnterpriseQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3336,6 +3770,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultHistoryQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: HistoryQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultImportEnterpriseEmployeesCommandResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3562,6 +4014,25 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultListGetShowAdvertisementsQueryResultItem {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: GetShowAdvertisementsQueryResultItem[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultListGetUserInfoRolesQueryResultItem {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3638,25 +4109,6 @@
     timestamp?: number;
   }
 
-  interface FriendlyResultListSelectOptionGuidGetEnterpriseInsuranceProductSelectQueryOption {
-    /** 璺熻釜Id */
-    traceId?: string;
-    /** 鐘舵�佺爜 */
-    code?: number;
-    /** 閿欒鐮� */
-    errorCode?: string;
-    /** 鏁版嵁 */
-    data?: SelectOptionGuidGetEnterpriseInsuranceProductSelectQueryOption[];
-    /** 鎵ц鎴愬姛 */
-    success?: boolean;
-    /** 閿欒淇℃伅 */
-    msg?: any;
-    /** 闄勫姞鏁版嵁 */
-    extras?: any;
-    /** 鏃堕棿鎴� */
-    timestamp?: number;
-  }
-
   interface FriendlyResultListSelectOptionGuidGetEnterpriseWalletAccessSelectQueryOption {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3714,6 +4166,25 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultListSelectOptionNullableGuidGetEnterpriseInsuranceProductSelectQueryOption {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    /** 鏁版嵁 */
+    data?: SelectOptionNullableGuidGetEnterpriseInsuranceProductSelectQueryOption[];
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultListSelectOptionStringGetDictionaryDataSelectQueryResultOption {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3914,6 +4385,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultPayStandardOrderCommandResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: PayStandardOrderCommandResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultPersonalUserElectronSignCommandResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -4041,6 +4530,68 @@
     timestamp?: number;
   }
 
+  interface GetAdvertisementLogsQuery {
+    /** Id */
+    id?: string;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetAdvertisementQueryResult {
+    /** Id */
+    id?: string;
+    page?: EnumAdvertisementPage;
+    /** 骞垮憡鍚嶇О */
+    name?: string;
+    /** 寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 缁撴潫鏃堕棿 */
+    endTime?: string;
+    /** 骞垮憡鍥剧墖 */
+    file?: string;
+    /** 骞垮憡閾炬帴 */
+    url?: string;
+    status?: EnumAdvertisementStatus;
+    /** 鎺掑簭 */
+    sort?: number;
+  }
+
+  interface GetAdvertisementsQuery {
+    /** 鍏抽敭瀛楋紙骞垮憡鍚嶇О锛� */
+    keywords?: string;
+    /** 骞垮憡寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 骞垮憡缁撴潫鏃堕棿 */
+    endTime?: string;
+    page?: EnumAdvertisementPage;
+    status?: EnumAdvertisementStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetAdvertisementsQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetAdvertisementsQueryResultItem[];
+  }
+
+  interface GetAdvertisementsQueryResultItem {
+    /** Id */
+    id?: string;
+    page?: EnumAdvertisementPage;
+    /** 骞垮憡鍚嶇О */
+    name?: string;
+    /** 寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 缁撴潫鏃堕棿 */
+    endTime?: string;
+    /** 骞垮憡鍥剧墖 */
+    file?: string;
+    /** 骞垮憡閾炬帴 */
+    url?: string;
+    status?: EnumAdvertisementStatus;
+    /** 鎺掑簭 */
+    sort?: number;
+  }
+
   type GetAlipayNotifyCommand = Record<string, any>;
 
   type GetAliyunOSSAcsQuery = Record<string, any>;
@@ -4524,6 +5075,10 @@
     checkReceiveMethods?: EnumTaskCheckReceiveMethod[];
     /** 鏄惁鍐呴儴浠诲姟 */
     isInternal?: boolean;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
   }
 
   interface GetCodeUrlQueryResult {
@@ -4953,6 +5508,60 @@
     mergeSignCost?: number;
   }
 
+  interface GetEnterpriseAddressesQuery {
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetEnterpriseAddressesQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetEnterpriseAddressesQueryResultItem[];
+  }
+
+  interface GetEnterpriseAddressesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鐪佸競鍖�+璇︾粏鍦板潃+闂ㄧ墝鍙� */
+    addressDetail?: string;
+    /** 鏄惁榛樿 */
+    isDefault?: boolean;
+  }
+
+  interface GetEnterpriseAddressQueryResult {
+    /** Id */
+    id?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鐪佷唤缂栧彿 */
+    provinceCode?: string;
+    /** 鐪佷唤 */
+    provinceContent?: string;
+    /** 鍩庡競缂栧彿 */
+    cityCode?: string;
+    /** 鍩庡競 */
+    cityContent?: string;
+    /** 鍖虹紪鍙� */
+    areaCode?: string;
+    /** 鍖� */
+    areaContent?: string;
+    /** 璇︾粏鍦板潃 */
+    addressName?: string;
+    /** 闂ㄧ墝鍙� */
+    addressDetail?: string;
+    /** 缁忓害 */
+    longitude?: number;
+    /** 绾害 */
+    latitude?: number;
+    /** 鏄惁榛樿 */
+    isDefault?: boolean;
+  }
+
   interface GetEnterpriseContractTemplateLogsQuery {
     /** 妯℃澘Id */
     id?: string;
@@ -5245,13 +5854,22 @@
   interface GetEnterpriseLoginInfoQueryResult {
     /** Id */
     id?: string;
+    type?: EnumUserType;
     /** 澶村儚 */
     avatar?: string;
     /** 濮撳悕 */
     name?: string;
+    /** 鎵嬫満鍙� */
+    contactPhoneNumber?: string;
     gender?: EnumUserGender;
+    /** 钀ヤ笟鎵х収鐓х墖 */
+    licenseImage?: string;
+    /** 浼佷笟Id */
+    enterpriseId?: string;
     /** 浼佷笟鍏ㄧО */
     enterpriseName?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode?: string;
     /** 浼佷笟鏄惁瀹炲悕 */
     enterpriseIsReal?: boolean;
     /** 瑙掕壊 */
@@ -5269,6 +5887,7 @@
   interface GetEnterpriseQueryResult {
     /** Id */
     id?: string;
+    type?: EnumEnterpriseType;
     /** 浼佷笟鍏ㄧО */
     enterpriseName?: string;
     /** 缁熶竴绀句細淇$敤浠g爜 */
@@ -5301,6 +5920,15 @@
     userName?: string;
     /** 鍦ㄦ嫑宀椾綅鏁伴噺 */
     taskCount?: number;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+    /** 鍚堜綔鍗忚 */
+    cooperationAgreementUrl?: string;
+    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
+    /** 鏈嶅姟璐� */
+    serviceFeeRate?: number;
+    /** 鍙戠エ绋庣偣 */
+    invoiceTaxPointRate?: number;
   }
 
   type GetEnterpriseReceiveAccountQuery = Record<string, any>;
@@ -5329,6 +5957,11 @@
     keywords?: string;
     /** 鏄惁宸查厤缃� */
     isConfigured?: boolean;
+    type?: EnumEnterpriseType;
+    /** 鍒涘缓鏃堕棿-璧峰 */
+    createdTimeBegin?: string;
+    /** 鍒涘缓鏃堕棿-鎴 */
+    createdTimeEnd?: string;
     pageModel?: PagedListQueryPageModel;
   }
 
@@ -5344,10 +5977,18 @@
     societyCreditCode?: string;
     /** 鏄惁瀹炲悕 */
     isReal?: boolean;
+    /** 鏄惁绂佺敤 */
+    isDisabled?: boolean;
     /** 鑱旂郴浜� */
     contacts?: string;
     /** 鑱旂郴鐢佃瘽 */
     contactPhoneNumber?: string;
+    /** 鐢ㄦ埛Id */
+    userId?: string;
+    /** 鐢ㄦ埛鍚� */
+    userName?: string;
+    /** 鎵嬫満鍙� */
+    userPhoneNumber?: string;
     /** 鎵�鍦ㄧ渷浠� */
     provinceContent?: string;
     /** 鎵�鍦ㄥ煄甯� */
@@ -5356,6 +5997,13 @@
     industryTypeContent?: string;
     /** 鏄惁宸查厤缃� */
     isConfigured?: boolean;
+    /** 鍏宠仈鏈嶅姟 */
+    standardServiceCount?: number;
+    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
+    /** 鏈嶅姟璐� */
+    serviceFeeRate?: number;
+    /** 鍒涘缓鏃堕棿 */
+    createdTime?: string;
   }
 
   interface GetEnterpriseWalletAccessSelectQueryOption {
@@ -6541,6 +7189,8 @@
     code?: string;
     /** 浠诲姟鍚嶇О */
     taskName?: string;
+    /** 浠诲姟鍗曞彿 */
+    taskCode?: string;
     /** 浼佷笟鍚嶇О */
     enterpriseName?: string;
     /** 缁撶畻鏃ユ湡 */
@@ -7114,6 +7764,17 @@
     ereceiptDownloadOssUrl?: string;
   }
 
+  interface GetShowAdvertisementsQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 骞垮憡鍚嶇О */
+    name?: string;
+    /** 骞垮憡鍥剧墖 */
+    file?: string;
+    /** 骞垮憡閾炬帴 */
+    url?: string;
+  }
+
   interface GetSmsLogsQuery {
     /** 鍒涘缓鏃堕棿-璧峰 */
     createdTimeBegin?: string;
@@ -7199,12 +7860,462 @@
     signName?: string;
   }
 
+  interface GetStandardOrderAppointmentsQuery {
+    appointmentStatus?: EnumStandardOrderAppointmentStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardOrderAppointmentsQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardOrderAppointmentsQueryResultItem[];
+  }
+
+  interface GetStandardOrderAppointmentsQueryResultItem {
+    /** 璁㈠崟Id */
+    id?: string;
+    /** 鏈嶅姟鍚嶇О */
+    serviceName?: string;
+    /** 瀹炰粯閲戦 */
+    payAmount?: number;
+    /** 鏈嶅姟璧峰鏃堕棿 */
+    beginTime?: string;
+    /** 鏈嶅姟鎴鏃堕棿 */
+    endTime?: string;
+    /** 鏈嶅姟鍦板潃锛堢渷甯傚尯+璇︾粏鍦板潃+闂ㄧ墝鍙凤級 */
+    addressDetail?: string;
+    /** 鏈嶅姟鏈烘瀯 */
+    supplierEnterpriseName?: string;
+    /** 鏈嶅姟浜哄憳 */
+    serverNames?: string[];
+    appointmentStatus?: EnumStandardOrderAppointmentStatus;
+  }
+
+  interface GetStandardOrderPaysQuery {
+    payStatus?: EnumStandardOrderPayStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardOrderPaysQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardOrderPaysQueryResultItem[];
+  }
+
+  interface GetStandardOrderPaysQueryResultItem {
+    /** 璁㈠崟Id */
+    id?: string;
+    /** 鏈嶅姟鍚嶇О */
+    serviceName?: string;
+    /** 瀹炰粯閲戦 */
+    payAmount?: number;
+    /** 鏈嶅姟璧峰鏃堕棿 */
+    beginTime?: string;
+    /** 鏈嶅姟鎴鏃堕棿 */
+    endTime?: string;
+    /** 鏈嶅姟鍦板潃锛堢渷甯傚尯+璇︾粏鍦板潃+闂ㄧ墝鍙凤級 */
+    addressDetail?: string;
+    /** 鏈嶅姟鏈烘瀯 */
+    supplierEnterpriseName?: string;
+    /** 鏈嶅姟浜哄憳 */
+    serverNames?: string[];
+    payStatus?: EnumStandardOrderPayStatus;
+  }
+
+  interface GetStandardOrderQueryResult {
+    /** 璁㈠崟Id */
+    id?: string;
+    /** 鏈嶅姟Id */
+    serviceId?: string;
+    /** 鏈嶅姟鍚� */
+    serviceName?: string;
+    /** 鐢叉柟浼佷笟Id */
+    partyAEnterpriseId?: string;
+    /** 鐢叉柟浼佷笟 */
+    partyAEnterpriseName?: string;
+    /** 瑙勬牸Id */
+    specId?: string;
+    /** 瑙勬牸鍚嶇О */
+    specName?: string;
+    /** 瑙勬牸浠锋牸 */
+    specPrice?: number;
+    /** 瑙勬牸鏁伴噺 */
+    specNumber?: number;
+    /** 鍦板潃Id */
+    addressId?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鐪佷唤缂栧彿 */
+    provinceCode?: string;
+    /** 鐪佷唤 */
+    provinceContent?: string;
+    /** 鍩庡競缂栧彿 */
+    cityCode?: string;
+    /** 鍩庡競 */
+    cityContent?: string;
+    /** 鍖虹紪鍙� */
+    areaCode?: string;
+    /** 鍖� */
+    areaContent?: string;
+    /** 璇︾粏鍦板潃 */
+    addressName?: string;
+    /** 闂ㄧ墝鍙� */
+    addressDetail?: string;
+    /** 缁忓害 */
+    longitude?: number;
+    /** 绾害 */
+    latitude?: number;
+    /** 鏈嶅姟璧峰鏃堕棿 */
+    beginTime?: string;
+    /** 鏈嶅姟鎴鏃堕棿 */
+    endTime?: string;
+    /** 渚涘簲鍟咺d */
+    supplierEnterpriseId?: string;
+    /** 渚涘簲鍟� */
+    supplierEnterpriseName?: string;
+    /** 鏈嶅姟浜哄憳Id */
+    serverId?: string;
+    /** 鏈嶅姟浜哄憳濮撳悕 */
+    serverName?: string;
+    /** 鏈嶅姟浜哄憳鑱旂郴鐢佃瘽 */
+    serverContactPhoneNumber?: string;
+    /** 澶囨敞 */
+    remark?: string;
+    payAccess?: EnumUserBankCardAccess;
+    appointmentStatus?: EnumStandardOrderAppointmentStatus;
+    /** 棰勭害瀹屾垚/鍙栨秷鏃堕棿 */
+    appointmentCompletedTime?: string;
+    /** 鍙栨秷鍘熷洜 */
+    appointmentCancelReason?: string;
+    payStatus?: EnumStandardOrderPayStatus;
+    /** 瀹炰粯閲戦 */
+    payAmount?: number;
+    /** 鏀粯鏃堕棿 */
+    payTime?: string;
+    settlementStatus?: EnumStandardOrderSettlementStatus;
+    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    /** 瀹炴敹閲戦 */
+    receiveAmount?: number;
+    /** 缁撶畻閲戦 */
+    settlementAmount?: number;
+  }
+
+  interface GetStandardOrderServersQuery {
+    /** 璁㈠崟Id */
+    orderId?: string;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardOrderServersQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardOrderServersQueryResultItem[];
+  }
+
+  interface GetStandardOrderServersQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 澶村儚 */
+    avatar?: string;
+    /** 濮撳悕 */
+    name?: string;
+    gender?: EnumUserGender;
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    realMethod?: EnumUserRealMethod;
+    /** 骞撮緞 */
+    age?: number;
+    /** 韬唤缂栧彿 */
+    personalIdentityCode?: string;
+    /** 韬唤 */
+    personalIdentityContent?: string;
+    /** 瀛﹀巻缂栧彿 */
+    educationalBackgroundCode?: string;
+    /** 瀛﹀巻 */
+    educationalBackgroundContent?: string;
+    /** 涓婂矖娆℃暟 */
+    taskCount?: number;
+    /** 宸ヤ綔璧勫巻 */
+    workSeniority?: string;
+    /** 宸ヤ綔缁忛獙 */
+    workExperience?: string;
+  }
+
+  interface GetStandardOrderSettlementsQuery {
+    /** 鍏抽敭瀛楋紙璁㈠崟鍙�/鏈嶅姟鍚�/渚涘簲鍟嗭級 */
+    keywords?: string;
+    settlementStatus?: EnumStandardOrderSettlementStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardOrderSettlementsQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardOrderSettlementsQueryResultItem[];
+  }
+
+  interface GetStandardOrderSettlementsQueryResultItem {
+    /** 璁㈠崟Id */
+    id?: string;
+    /** 璁㈠崟鍙� */
+    code?: string;
+    /** 鏈嶅姟鍚嶇О */
+    serviceName?: string;
+    /** 鏈嶅姟鍗曞彿 */
+    serviceCode?: string;
+    /** 鐢叉柟浼佷笟Id */
+    partyAEnterpriseId?: string;
+    /** 鐢叉柟浼佷笟 */
+    partyAEnterpriseName?: string;
+    /** 鏈嶅姟鍦板潃锛堢渷甯傚尯+璇︾粏鍦板潃+闂ㄧ墝鍙凤級 */
+    addressDetail?: string;
+    /** 鏈嶅姟鏈烘瀯 */
+    supplierEnterpriseName?: string;
+    /** 鏈嶅姟浜哄憳 */
+    serverNames?: string[];
+    /** 瀹炰粯閲戦 */
+    payAmount?: number;
+    /** 瀹炴敹閲戦 */
+    receiveAmount?: number;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    /** 缁撶畻閲戦 */
+    settlementAmount?: number;
+    /** 缁撶畻鍗曞彿 */
+    settlementCode?: string;
+    settlementStatus?: EnumStandardOrderSettlementStatus;
+    /** 缁撶畻鏃堕棿 */
+    settlementTime?: string;
+    /** 鏈嶅姟璧峰鏃堕棿 */
+    beginTime?: string;
+    /** 鏈嶅姟鎴鏃堕棿 */
+    endTime?: string;
+  }
+
+  interface GetStandardOrdersQuery {
+    /** 鍏抽敭瀛楋紙璁㈠崟鍙�/鏈嶅姟鍚嶏級 */
+    keywords?: string;
+    /** 涓嬪崟鏃堕棿-璧峰 */
+    createdTimeBegin?: string;
+    /** 涓嬪崟鏃堕棿-鎴 */
+    createdTimeEnd?: string;
+    /** 鏀粯鏃堕棿-璧峰 */
+    payTimeBegin?: string;
+    /** 鏀粯鏃堕棿-鎴 */
+    payTimeEnd?: string;
+    appointmentStatus?: EnumStandardOrderAppointmentStatus;
+    payStatus?: EnumStandardOrderPayStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardOrdersQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardOrdersQueryResultItem[];
+  }
+
+  interface GetStandardOrdersQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 璁㈠崟鍙� */
+    code?: string;
+    /** 鏈嶅姟鍚� */
+    serviceName?: string;
+    /** 鏈嶅姟鍗曞彿 */
+    serviceCode?: string;
+    /** 涓嬪崟鏃堕棿 */
+    createdTime?: string;
+    /** 鏀粯鏃堕棿 */
+    payTime?: string;
+    appointmentStatus?: EnumStandardOrderAppointmentStatus;
+    payStatus?: EnumStandardOrderPayStatus;
+    settlementStatus?: EnumStandardOrderSettlementStatus;
+    /** 鐢叉柟浼佷笟Id */
+    partyAEnterpriseId?: string;
+    /** 鐢叉柟浼佷笟 */
+    partyAEnterpriseName?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 瀹炰粯閲戦 */
+    payAmount?: number;
+    /** 瀹炴敹閲戦 */
+    receiveAmount?: number;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    /** 缁撶畻閲戦 */
+    settlementAmount?: number;
+  }
+
+  interface GetStandardOrderSupplierEnterprisesQuery {
+    /** 璁㈠崟Id */
+    orderId?: string;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardOrderSupplierEnterprisesQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardOrderSupplierEnterprisesQueryResultItem[];
+  }
+
+  interface GetStandardOrderSupplierEnterprisesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 澶村儚 */
+    avatar?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 鏈嶅姟浜哄憳 */
+    serverCount?: number;
+    /** 鏈嶅姟浜烘 */
+    serviceCount?: number;
+    /** 缁忚惀鑼冨洿 */
+    mainBusiness?: string;
+  }
+
+  interface GetStandardServiceCommentsQuery {
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardServiceCommentsQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardServiceCommentsQueryResultItem[];
+  }
+
+  interface GetStandardServiceCommentsQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 鐢ㄦ埛鍚� */
+    userName?: string;
+    /** 璇勫垎 */
+    star?: number;
+    /** 鍐呭 */
+    content?: string;
+    /** 鍒涘缓鏃堕棿 */
+    createdTime?: string;
+  }
+
+  interface GetStandardServiceQueryResult {
+    /** Id */
+    id?: string;
+    /** 琛屼笟绫诲埆缂栧彿 */
+    industryCategoryCode?: string;
+    /** 琛屼笟绫诲埆 */
+    industryCategoryContent?: string;
+    /** 宀椾綅缂栧彿 */
+    jobCode?: string;
+    /** 宀椾綅 */
+    jobContent?: string;
+    /** 鏈嶅姟鍚� */
+    name?: string;
+    /** 鏈嶅姟鍗曞彿 */
+    code?: string;
+    /** 瑙勬牸 */
+    specs?: GetStandardServiceQueryResultSpec[];
+    /** 鏈�浣庤鏍间环鏍� */
+    minSpecPrice?: number;
+    /** 鍥剧墖 */
+    files?: string[];
+    /** 鏈嶅姟鎻忚堪 */
+    description?: string;
+    /** 渚涘簲鍟� */
+    suppliers?: GetStandardServiceQueryResultSupplier[];
+    releaseStatus?: EnumStandardServiceReleaseStatus;
+    recommendStatus?: EnumStandardServiceRecommendStatus;
+    /** 鏄惁鏀惰棌 */
+    isCollection?: boolean;
+  }
+
+  interface GetStandardServiceQueryResultSpec {
+    /** Id */
+    id?: string;
+    /** 瑙勬牸鍚嶇О */
+    name?: string;
+    /** 浠锋牸 */
+    price?: number;
+  }
+
+  interface GetStandardServiceQueryResultSupplier {
+    /** Id */
+    id?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 娉曚汉濮撳悕 */
+    legalPerson?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode?: string;
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    /** 鑱旂郴浜� */
+    contacts?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鎵�鍦ㄧ渷浠� */
+    provinceContent?: string;
+    /** 鎵�鍦ㄥ煄甯� */
+    cityContent?: string;
+  }
+
+  interface GetStandardServicesQuery {
+    /** 鍏抽敭瀛楋紙鏈嶅姟鍚�/Id锛� */
+    keywords?: string;
+    /** 宀椾綅缂栧彿 */
+    jobCode?: string;
+    /** 鍒涘缓鏃堕棿-璧峰 */
+    createdTimeBegin?: string;
+    /** 鍒涘缓鏃堕棿-鎴 */
+    createdTimeEnd?: string;
+    releaseStatus?: EnumStandardServiceReleaseStatus;
+    recommendStatus?: EnumStandardServiceRecommendStatus;
+    /** 鏄惁鏀惰棌 */
+    isCollected?: boolean;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetStandardServicesQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetStandardServicesQueryResultItem[];
+  }
+
+  interface GetStandardServicesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 棣栦釜鍥剧墖 */
+    file?: string;
+    /** 琛屼笟绫诲埆 */
+    industryCategoryContent?: string;
+    /** 宀椾綅 */
+    jobContent?: string;
+    /** 鏈嶅姟鍚� */
+    name?: string;
+    /** 鏈�浣庤鏍间环鏍� */
+    minSpecPrice?: number;
+    /** 鏈嶅姟鍗曞彿 */
+    code?: string;
+    releaseStatus?: EnumStandardServiceReleaseStatus;
+    recommendStatus?: EnumStandardServiceRecommendStatus;
+    /** 鏄惁鏀惰棌 */
+    isCollection?: boolean;
+    /** 鍒涘缓鏃堕棿 */
+    createdTime?: string;
+    /** 渚涘簲鍟嗘暟閲� */
+    supplierCount?: number;
+  }
+
   type GetSupplierEnterpriseSelectQuery = Record<string, any>;
 
   interface GetSupplierEnterpriseSelectQueryOption {
     /** 渚涘簲鍟咺d */
     supplierEnterpriseId?: string;
     supplierEnterprise?: GetSupplierEnterpriseSelectQueryOptionEnterprise;
+    /** 鏄惁宸查厤缃繚闄� */
+    isConfiguredInsurance?: boolean;
   }
 
   interface GetSupplierEnterpriseSelectQueryOptionEnterprise {
@@ -7283,6 +8394,8 @@
     enterpriseId?: string;
     /** 浼佷笟鍏ㄧО */
     enterpriseName?: string;
+    /** 鑱旂郴浜� */
+    contacts?: string;
     /** 鑱旂郴鐢佃瘽 */
     contactPhoneNumber?: string;
     /** 鏄惁璁よ瘉 */
@@ -7306,6 +8419,10 @@
     timeoutServiceFee?: number;
     /** 鎬讳欢鏁� */
     totalPieceQuantity?: number;
+    /** 淇濋櫓浜у搧Id */
+    insuranceProductId?: string;
+    /** 淇濋櫓浜у搧鍚嶇О */
+    insuranceProductName?: string;
     settlementCycle?: EnumSettlementCycle;
     /** 缁撶畻鏃ユ湡 */
     settlementDate?: number;
@@ -8008,6 +9125,26 @@
     hiddenAlipay?: boolean;
   }
 
+  interface HistoryQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: HistoryQueryResultItem[];
+  }
+
+  interface HistoryQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鎿嶄綔浜� */
+    createdUser?: string;
+    /** 鎿嶄綔鏃堕棿 */
+    createdTime?: string;
+    operate?: EnumDbAuditOperate;
+    /** 鎿嶄綔鍐呭 */
+    content?: string[];
+  }
+
   interface ImportEnterpriseEmployeesCommand {
     /** Excel鍦板潃 */
     excelUrl?: string;
@@ -8290,6 +9427,32 @@
     enterpriseType?: EnumEnterpriseType;
   }
 
+  interface PayStandardOrderCommand {
+    /** 璁㈠崟Id */
+    id?: string;
+  }
+
+  interface PayStandardOrderCommandResult {
+    /** 鏃堕棿鎴�
+浠� 1970 骞� 1 鏈� 1 鏃� 00:00:00 鑷充粖鐨勭鏁帮紝鍗冲綋鍓嶇殑鏃堕棿 */
+    timestamp?: string;
+    /** 闅忔満瀛楃涓�
+闀垮害涓�32涓瓧绗︿互涓� */
+    nonceStr?: string;
+    /** 缁熶竴涓嬪崟鎺ュ彛杩斿洖鐨� prepay_id 鍙傛暟鍊�
+鎻愪氦鏍煎紡濡傦細prepay_id=*** */
+    package?: string;
+    /** 绛惧悕绠楁硶锛屽簲涓庡悗鍙颁笅鍗曟椂鐨勫�间竴鑷�
+MD5	浠呭湪 v2 鐗堟湰鎺ュ彛閫傜敤
+HMAC-SHA256	浠呭湪 v2 鐗堟湰鎺ュ彛閫傜敤
+RSA	浠呭湪 v3 鐗堟湰鎺ュ彛閫傜敤 */
+    signType?: string;
+    /** 绛惧悕锛屽叿浣撹寰俊鏀粯鏂囨。 */
+    paySign?: string;
+    /** 鏀粯缁撴潫鏃堕棿 */
+    timeExpire?: string;
+  }
+
   interface PersonalUserElectronSignCommand {
     /** 鐏靛伐Id锛堜簩閫変竴锛� */
     id?: string;
@@ -8422,6 +9585,24 @@
     taskInfoId?: string;
   }
 
+  interface SaveAdvertisementCommand {
+    page?: EnumAdvertisementPage;
+    /** 骞垮憡鍚嶇О */
+    name?: string;
+    /** 寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 缁撴潫鏃堕棿 */
+    endTime?: string;
+    /** 骞垮憡鍥剧墖 */
+    file?: string;
+    /** 骞垮憡閾炬帴 */
+    url?: string;
+    /** 鎺掑簭 */
+    sort?: number;
+    /** Id */
+    id?: string;
+  }
+
   interface SaveCodeUrlCommand {
     scene?: EnumCodeUrlScene;
     /** 鍦板潃 */
@@ -8537,6 +9718,31 @@
     id?: string;
   }
 
+  interface SaveEnterpriseAddressCommand {
+    /** 濮撳悕 */
+    name?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+    /** 鐪佷唤缂栧彿 */
+    provinceCode?: string;
+    /** 鍩庡競缂栧彿 */
+    cityCode?: string;
+    /** 鍖虹紪鍙� */
+    areaCode?: string;
+    /** 璇︾粏鍦板潃 */
+    addressName?: string;
+    /** 闂ㄧ墝鍙� */
+    addressDetail?: string;
+    /** 缁忓害 */
+    longitude?: number;
+    /** 绾害 */
+    latitude?: number;
+    /** 鏄惁榛樿 */
+    isDefault?: boolean;
+    /** Id */
+    id?: string;
+  }
+
   interface SaveEnterpriseCommand {
     /** 浼佷笟鍏ㄧО */
     enterpriseName: string;
@@ -8564,6 +9770,15 @@
     userName?: string;
     /** 瀵嗙爜 */
     password?: string;
+    cooperationStatus?: EnumEnterpriseCooperationStatus;
+    signStatus?: EnumEnterpriseCooperationSignStatus;
+    /** 鍚堜綔鍗忚 */
+    cooperationAgreementUrl?: string;
+    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
+    /** 鏈嶅姟璐� */
+    serviceFeeRate?: number;
+    /** 鍙戠エ绋庣偣 */
+    invoiceTaxPointRate?: number;
     /** Id */
     id?: string;
   }
@@ -8859,6 +10074,34 @@
     signName?: string;
   }
 
+  interface SaveStandardServiceCommand {
+    /** 琛屼笟绫诲埆缂栧彿 */
+    industryCategoryCode?: string;
+    /** 宀椾綅缂栧彿 */
+    jobCode?: string;
+    /** 鏈嶅姟鍚� */
+    name?: string;
+    /** 瑙勬牸 */
+    specs?: SaveStandardServiceCommandSpec[];
+    /** 鍥剧墖 */
+    files?: string[];
+    /** 鏈嶅姟鎻忚堪 */
+    description?: string;
+    /** 渚涘簲鍟� */
+    supplierIds?: string[];
+    /** Id */
+    id?: string;
+  }
+
+  interface SaveStandardServiceCommandSpec {
+    /** Id */
+    id?: string;
+    /** 瑙勬牸鍚嶇О */
+    name?: string;
+    /** 浠锋牸 */
+    price?: number;
+  }
+
   interface SaveTaskInfoCommand {
     /** 渚涘簲鍟咺d */
     supplierEnterpriseId?: string;
@@ -9038,14 +10281,6 @@
     data?: GetEnterpriseContractTemplateSelectQueryOption;
   }
 
-  interface SelectOptionGuidGetEnterpriseInsuranceProductSelectQueryOption {
-    /** 鍊� */
-    value?: string;
-    /** 鏍囩 */
-    label?: string;
-    data?: GetEnterpriseInsuranceProductSelectQueryOption;
-  }
-
   interface SelectOptionGuidGetEnterpriseWalletAccessSelectQueryOption {
     /** 鍊� */
     value?: string;
@@ -9070,6 +10305,14 @@
     data?: GetTaskSelectQueryOption;
   }
 
+  interface SelectOptionNullableGuidGetEnterpriseInsuranceProductSelectQueryOption {
+    /** 鍊� */
+    value?: string;
+    /** 鏍囩 */
+    label?: string;
+    data?: GetEnterpriseInsuranceProductSelectQueryOption;
+  }
+
   interface SelectOptionStringGetDictionaryDataSelectQueryResultOption {
     /** 鍊� */
     value?: string;
@@ -9116,6 +10359,12 @@
     relationId?: string;
   }
 
+  interface SetAdvertisementStatusCommand {
+    /** Id */
+    ids?: string[];
+    status?: EnumAdvertisementStatus;
+  }
+
   interface SetDictionaryDataIsDisabledCommand {
     ids?: string[];
     /** 鏄惁宸茬鐢� */
@@ -9145,6 +10394,21 @@
     insuranceSupplierAccount?: string;
   }
 
+  interface SetEnterpriseLoginInfoCommand {
+    /** 澶村儚 */
+    avatar?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 钀ヤ笟鎵х収鐓х墖 */
+    licenseImage?: string;
+    /** 浼佷笟鍏ㄧО */
+    enterpriseName?: string;
+    /** 缁熶竴绀句細淇$敤浠g爜 */
+    societyCreditCode?: string;
+    /** 鎵嬫満鍙� */
+    contactPhoneNumber?: string;
+  }
+
   interface SetEnterpriseSmsSettingCommand {
     /** Id */
     id?: string;
@@ -9188,6 +10452,18 @@
     userInfoIds?: string[];
   }
 
+  interface SetStandardServiceRecommendStatusCommand {
+    /** Id */
+    ids?: string[];
+    recommendStatus?: EnumStandardServiceRecommendStatus;
+  }
+
+  interface SetStandardServiceReleaseStatusCommand {
+    /** Id */
+    ids?: string[];
+    releaseStatus?: EnumStandardServiceReleaseStatus;
+  }
+
   interface SetTaskInfoRecommendStatusCommand {
     /** Id */
     ids?: string[];
@@ -9325,6 +10601,20 @@
     remark?: string;
   }
 
+  interface SureStandardOrderAppointmentCommand {
+    /** 璁㈠崟Id */
+    id?: string;
+  }
+
+  interface SureStandardOrderCommand {
+    /** 璁㈠崟Id */
+    id?: string;
+    /** 璇勫垎 */
+    commentStar?: number;
+    /** 璇勪环 */
+    commentContent?: string;
+  }
+
   interface SureTaskSettlementCommand {
     /** 浠诲姟Id */
     taskInfoId?: string;
diff --git a/src/views/CPersonManage/components/CPersonDetailDialog.vue b/src/views/CPersonManage/components/CPersonDetailDialog.vue
index 415b8c4..851af22 100644
--- a/src/views/CPersonManage/components/CPersonDetailDialog.vue
+++ b/src/views/CPersonManage/components/CPersonDetailDialog.vue
@@ -4,9 +4,9 @@
       <ProTabPane lazy label="浜哄憳璇︽儏" name="user">
         <StaffDetailInfoView :form="form" />
       </ProTabPane>
-      <ProTabPane lazy label="浜哄憳绠�鍘�" name="resume">
+      <!-- <ProTabPane lazy label="浜哄憳绠�鍘�" name="resume">
         <StaffResumeView :form="form" />
-      </ProTabPane>
+      </ProTabPane> -->
       <ProTabPane lazy label="绛剧害璇︽儏" name="sign">
         <SignDetailView :form="form" />
       </ProTabPane>
diff --git a/src/views/CPersonManage/components/StaffDetailInfoView.vue b/src/views/CPersonManage/components/StaffDetailInfoView.vue
index 0a961be..93b3d8e 100644
--- a/src/views/CPersonManage/components/StaffDetailInfoView.vue
+++ b/src/views/CPersonManage/components/StaffDetailInfoView.vue
@@ -6,11 +6,11 @@
           <ProFormText v-model.trim="form.name"></ProFormText>
         </ProFormItemV2>
       </ProFormColItem>
-      <ProFormColItem :span="12">
+      <!-- <ProFormColItem :span="12">
         <ProFormItemV2 label="瀹炲悕鏃堕棿锛�" prop="userRealTime">
           <div>{{ format(form.userRealTime, 'YYYY-MM-DD HH:mm') }}</div>
         </ProFormItemV2>
-      </ProFormColItem>
+      </ProFormColItem> -->
     </ProFormCol>
     <ProFormCol>
       <ProFormColItem :span="12">
diff --git a/src/views/EnterpriseManage/EnterpriseManageList.vue b/src/views/EnterpriseManage/EnterpriseManageList.vue
index 2a3bbb5..1de4e4c 100644
--- a/src/views/EnterpriseManage/EnterpriseManageList.vue
+++ b/src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -84,49 +84,8 @@
 });
 
 const router = useRouter();
-
-const {
-  getDataSource: getList,
-  proTableProps,
-  paginationState,
-  extraParamState,
-  reset,
-  isInitialLoading,
-} = useTableV2(
-  async ({ pageIndex, pageSize, isInitialLoading }, extraParamState) => {
-    try {
-      let params: API.GetEnterprisesQuery = {
-        pageModel: {
-          rows: pageSize,
-          page: pageIndex,
-          orderInput: extraParamState.orderInput,
-        },
-        isConfigured: extraParamState.isConfigured,
-        keywords: extraParamState.keywords,
-      };
-
-      let res = await enterpriseServices.getEnterprises(params, {
-        showLoading: !isInitialLoading,
-      });
-      return res;
-    } catch (error) {
-      console.log('error: ', error);
-    }
-  },
-  {
-    defaultExtraParams: {
-      keywords: '',
-      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
-      isConfigured: '' as any as boolean,
-    },
-    queryKey: ['enterpriseServices/getEnterprises'],
-    columnsRenderProps: {
-      isReal: { type: 'enum', valueEnum: IsRealText },
-      isConfigured: { type: 'enum', valueEnum: IsConfiguredText },
-      type: { type: 'enum', valueEnum: EnumEnterpriseTypeText },
-    },
-  }
-);
+const { getList, proTableProps, paginationState, extraParamState, reset, isInitialLoading } =
+  useGetEnterprises();
 
 function openDialog(row?: API.GetEnterprisesQueryResultItem) {
   handleEdit({
diff --git a/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
index ddab4f7..dab3c92 100644
--- a/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
+++ b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
@@ -177,6 +177,91 @@
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
+        </ProForm>
+      </ChunkCell>
+      <ChunkCell title="鍚堜綔淇℃伅">
+        <ProForm
+          :model="form"
+          ref="cooperationFormRef"
+          label-width="140px"
+          :scroll-to-error="false"
+          :is-read="isDetail"
+        >
+          <ProFormCol>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鍚堜綔鐘舵��:" prop="cooperationStatus">
+                <ProFormRadio
+                  v-model="form.cooperationStatus"
+                  :value-enum="EnumEnterpriseCooperationStatusText"
+                />
+              </ProFormItemV2>
+            </ProFormColItem>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="绛剧害鐘舵��:" prop="signStatus">
+                <ProFormRadio
+                  v-model="form.signStatus"
+                  :value-enum="EnumEnterpriseCooperationSignStatusText"
+                />
+              </ProFormItemV2>
+            </ProFormColItem>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鍚堜綔鍗忚:" prop="cooperationAgreementUrl">
+                <ProFormUpload
+                  v-model:file-url="form.cooperationAgreementUrl"
+                  :limit="1"
+                  :limitFileSize="10"
+                  accept="jpg/jpeg,png,pdf"
+                ></ProFormUpload>
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+          <ProFormCol>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鏈嶅姟璐规敹鍙栨柟寮�:" prop="serviceFeeCollectType">
+                <ProFormSelect
+                  v-model="form.serviceFeeCollectType"
+                  :valueEnum="EnumEnterpriseCooperationServiceFeeCollectTypeText"
+                  placeholder="璇烽�夋嫨鏈嶅姟璐规敹鍙栨柟寮�"
+                >
+                </ProFormSelect>
+              </ProFormItemV2>
+            </ProFormColItem>
+            <ProFormColItem :span="8">
+              <ProFormItemV2
+                label="鏈嶅姟璐�:"
+                prop="serviceFeeRate"
+                :check-rules="
+                  form.serviceFeeCollectType ? [{ message: '璇疯緭鍏ユ湇鍔¤垂' }] : undefined
+                "
+                :required="!!form.serviceFeeCollectType"
+              >
+                <ProFormInputNumber
+                  v-model="form.serviceFeeRate"
+                  :controls="false"
+                  :min="0"
+                  :precision="2"
+                  placeholder="璇疯緭鍏�"
+                  :unit="serviceFeeCollectTypeUnit"
+                  :showReadContent="!!form.serviceFeeRate"
+                />
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+          <ProFormCol>
+            <ProFormColItem :span="8">
+              <ProFormItemV2 label="鍙戠エ绋庣偣:" prop="invoiceTaxPointRate">
+                <ProFormInputNumber
+                  v-model="form.invoiceTaxPointRate"
+                  :controls="false"
+                  :min="0"
+                  :precision="2"
+                  placeholder="璇疯緭鍏�"
+                  unit="%"
+                  :showReadContent="!!form.invoiceTaxPointRate"
+                />
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
           <div class="chuck-add-or-edit-actions">
             <el-button @click="handleBack">杩斿洖</el-button>
             <el-button v-if="!isDetail" type="primary" @click="handleSubmit">纭</el-button>
@@ -198,15 +283,24 @@
   ProFormTextArea,
   ProFormCol,
   ProFormColItem,
+  UploadUserFile,
+  ProFormRadio,
+  ProFormInputNumber,
+  ProFormUpload,
 } from '@bole-core/components';
 import { FormRules, FormInstance } from 'element-plus';
 import * as enterpriseServices from '@/services/api/enterprise';
 import { useRouteView, useGlobalEventContext, GlobalEvent } from '@/hooks';
 import _ from 'lodash';
-import { validateFormList, filterCN, removeEmptyKeys } from '@/utils';
+import { validateFormList, filterCN, removeEmptyKeys, convertApi2FormUrlOnlyOne } from '@/utils';
 import { Message, BoleRegExp } from '@bole-core/core';
 import { useQuery } from '@tanstack/vue-query';
-import { AreaType } from '@/constants';
+import {
+  AreaType,
+  EnumEnterpriseCooperationSignStatusText,
+  EnumEnterpriseCooperationStatusText,
+  EnumEnterpriseCooperationServiceFeeCollectTypeText,
+} from '@/constants';
 
 defineOptions({ name: 'AddOrEditEnterpriseView' });
 
@@ -246,6 +340,23 @@
   contactEmail: '',
   userName: '',
   password: '',
+
+  cooperationStatus: EnumEnterpriseCooperationStatus.None,
+  signStatus: EnumEnterpriseCooperationSignStatus.None,
+  cooperationAgreementUrl: [] as UploadUserFile[],
+  serviceFeeCollectType: '' as any as EnumEnterpriseCooperationServiceFeeCollectType,
+  serviceFeeRate: null as any as number,
+  invoiceTaxPointRate: null as any as number,
+});
+
+const serviceFeeCollectTypeUnit = computed(() => {
+  if (!form.serviceFeeCollectType) {
+    return '';
+  } else {
+    return form.serviceFeeCollectType === EnumEnterpriseCooperationServiceFeeCollectType.Rate
+      ? '%'
+      : '鍏�/浜�';
+  }
 });
 
 const { isLoading } = useQuery({
@@ -271,6 +382,13 @@
     form.contactEmail = data.contactEmail;
     form.userName = data.userName;
     form.areaList = [data.provinceCode, data.cityCode].filter(Boolean);
+
+    form.cooperationStatus = data.cooperationStatus;
+    form.signStatus = data.signStatus;
+    form.cooperationAgreementUrl = convertApi2FormUrlOnlyOne(data.cooperationAgreementUrl);
+    form.serviceFeeCollectType = data.serviceFeeCollectType;
+    form.serviceFeeRate = data.serviceFeeRate;
+    form.invoiceTaxPointRate = data.invoiceTaxPointRate;
   },
   enabled: computed(() => !!id),
 });
@@ -308,6 +426,13 @@
       contactEmail: form.contactEmail,
       userName: form.userName,
       password: form.password,
+
+      cooperationStatus: form.cooperationStatus,
+      signStatus: form.signStatus,
+      cooperationAgreementUrl: form.cooperationAgreementUrl[0]?.path,
+      serviceFeeCollectType: form.serviceFeeCollectType,
+      serviceFeeRate: form.serviceFeeRate,
+      invoiceTaxPointRate: form.invoiceTaxPointRate,
     };
     if (isEdit.value) {
       params.id = id;
diff --git a/src/views/EnterpriseManage/components/ConfigureDialog.vue b/src/views/EnterpriseManage/components/ConfigureDialog.vue
index 1ad44fb..b2e4d5e 100644
--- a/src/views/EnterpriseManage/components/ConfigureDialog.vue
+++ b/src/views/EnterpriseManage/components/ConfigureDialog.vue
@@ -22,9 +22,9 @@
       <el-tab-pane lazy :name="EnterpriseConfigureType.ShortMessage">
         <ShortMessageConfigureView :id="form.id" ref="shortMessageConfigureViewRef" />
       </el-tab-pane>
-      <el-tab-pane lazy :name="EnterpriseConfigureType.InsureProduct">
+      <!-- <el-tab-pane lazy :name="EnterpriseConfigureType.InsureProduct">
         <InsureProductConfigureView :id="form.id" ref="insureProductConfigureViewRef" />
-      </el-tab-pane>
+      </el-tab-pane> -->
     </el-tabs>
     <template #footer>
       <span class="dialog-footer">
@@ -107,9 +107,10 @@
     res = await shortMessageConfigureViewRef.value?.onConfirm?.();
   } else if (form.value.enterpriseConfigureType === EnterpriseConfigureType.Wechat) {
     res = await wechatConfigureViewRef.value?.onConfirm?.();
-  } else if (form.value.enterpriseConfigureType === EnterpriseConfigureType.InsureProduct) {
-    res = await insureProductConfigureViewRef.value?.onConfirm?.();
   }
+  // else if (form.value.enterpriseConfigureType === EnterpriseConfigureType.InsureProduct) {
+  //   res = await insureProductConfigureViewRef.value?.onConfirm?.();
+  // }
   if (res) {
     emit('onConfirm', res);
   }
diff --git a/src/views/FinanceManage/OrderSettlementManage.vue b/src/views/FinanceManage/OrderSettlementManage.vue
new file mode 100644
index 0000000..66a67a4
--- /dev/null
+++ b/src/views/FinanceManage/OrderSettlementManage.vue
@@ -0,0 +1,124 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <ProTableQueryFilterBar @on-reset="reset">
+        <template #query>
+          <QueryFilterItem tip-content="缁撶畻鐘舵��">
+            <FieldRadio
+              v-model="extraParamState.status"
+              :value-enum="[]"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem>
+            <SearchInput
+              v-model="extraParamState.keywords"
+              style="width: 260px"
+              placeholder="璁㈠崟鍙�/鏈嶅姟鍚�/渚涘簲鍟�"
+              @on-click-search="getList"
+            >
+            </SearchInput>
+          </QueryFilterItem>
+        </template>
+      </ProTableQueryFilterBar>
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+      </ProTableV2>
+    </AppContainer>
+    <OrderSettlementDetailDialog v-bind="dialogProps" />
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  OperationBtnType,
+  ProTableV2,
+  LoadingLayout,
+  AppContainer,
+  useTable,
+  useFormDialog,
+  ProTableQueryFilterBar,
+  QueryFilterItem,
+  FieldRadio,
+  SearchInput,
+} from '@bole-core/components';
+import { useAccess } from '@/hooks';
+import { ModelValueType } from 'element-plus';
+import * as userServices from '@/services/api/user';
+import OrderSettlementDetailDialog from './components/OrderSettlementDetailDialog.vue';
+
+defineOptions({
+  name: 'OrderSettlementManage',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+  settlementBtn: { emits: { onClick: (role) => handleSettlement(role) } },
+  detailBtn: { emits: { onClick: (role) => openDialog(role) } },
+};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
+
+const router = useRouter();
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetPersonalUserTransactionsQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        type: EnumUserWalletTransactionType.Income,
+      };
+      let res = await userServices.getPersonalUserTransactions(params, {
+        showLoading: !state.loading,
+      });
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      status: '',
+      keywords: '',
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    columnsRenderProps: {
+      transDate: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+    },
+  }
+);
+
+async function handleSettlement(row) {}
+
+const { dialogProps, handleEdit, editForm } = useFormDialog({
+  defaultFormParams: {
+    id: '',
+  },
+});
+
+function openDialog(row) {
+  handleEdit({
+    id: row.id,
+  });
+}
+</script>
diff --git a/src/views/FinanceManage/components/OrderSettlementDetailDialog.vue b/src/views/FinanceManage/components/OrderSettlementDetailDialog.vue
new file mode 100644
index 0000000..1ee399e
--- /dev/null
+++ b/src/views/FinanceManage/components/OrderSettlementDetailDialog.vue
@@ -0,0 +1,143 @@
+<template>
+  <ProDialog
+    :title="form.title"
+    v-model="visible"
+    @close="onDialogClose"
+    destroy-on-close
+    draggable
+  >
+    <PortraitTableWithAttachment v-bind="portraitTableWithAttachmentProps" />
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormInstance } from 'element-plus';
+import { ProDialog } from '@bole-core/components';
+import { usePortraitTableWithAttachment } from '@/hooks';
+import { convertApi2FormUrl } from '@/utils';
+import { useQuery } from '@tanstack/vue-query';
+import * as enterpriseCooperationWalletServices from '@/services/api/enterpriseCooperationWallet';
+
+defineOptions({
+  name: 'OrderSettlementDetailDialog',
+});
+
+const visible = defineModel({ type: Boolean });
+
+type Form = {
+  title?: string;
+  id: string;
+};
+
+const form = defineModel<Form>('form');
+
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+watch(
+  () => visible.value,
+  (val) => {
+    if (val) {
+      refetch();
+    }
+  }
+);
+
+const { data: detail, refetch } = useQuery({
+  queryKey: [
+    'enterpriseCooperationWalletServices/getCooperationWalletRechargeTransaction',
+    form.value.id,
+  ],
+  queryFn: async () => {
+    return await enterpriseCooperationWalletServices.getCooperationWalletRechargeTransaction({
+      id: form.value.id,
+    });
+  },
+  placeholderData: () => ({} as API.GetCooperationWalletRechargeTransactionQueryResult),
+  enabled: computed(() => !!form.value.id),
+});
+
+const { portraitTableWithAttachmentProps } = usePortraitTableWithAttachment({
+  data: detail,
+  annexList: computed(() =>
+    detail.value?.files ? detail.value?.files.map((item) => convertApi2FormUrl(item)) : []
+  ),
+  columns: [
+    {
+      label: '浠樻浜鸿处鎴�',
+      key: 'receiveUnit',
+    },
+    {
+      label: '鏀舵浜鸿处鎴�',
+      key: 'receiveName',
+    },
+    {
+      label: '浠樻浜哄悕绉�',
+      key: 'receiveBank',
+    },
+    {
+      label: '鏀舵浜哄悕绉�',
+      key: 'receiveAccount',
+    },
+    {
+      label: '浠樻浜哄紑鎴疯',
+      key: 'receiveAccount',
+    },
+    {
+      label: '鏀舵浜哄紑鎴疯',
+      key: 'receiveAccount',
+    },
+    {
+      label: '甯佺',
+      key: 'receiveAccount',
+    },
+    {
+      label: '缁撶畻閲戦',
+      key: 'amount',
+      type: 'money',
+    },
+    {
+      label: '缁撶畻鏃堕棿',
+      key: 'createdTime',
+      type: 'date',
+    },
+    {
+      label: '缁撶畻鐘舵��',
+      key: 'transactionStatus',
+      type: 'enum',
+    },
+  ],
+});
+
+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>
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+
+.portrait-table-with-attachment-title {
+  justify-content: space-between;
+}
+</style>
diff --git a/src/views/OperationManage/OperationManageList.vue b/src/views/OperationManage/OperationManageList.vue
index 9ff904a..c7be21d 100644
--- a/src/views/OperationManage/OperationManageList.vue
+++ b/src/views/OperationManage/OperationManageList.vue
@@ -5,45 +5,31 @@
         <template #query>
           <QueryFilterItem>
             <FieldSelect
-              v-model="extraParamState.pageType"
+              v-model="extraParamState.page"
               placeholder="骞垮憡椤甸潰"
-              :value-enum="[]"
+              :value-enum="EnumAdvertisementPageText"
               clearable
-              @change="getAdvertiseOnShowList()"
+              @change="getList()"
             />
           </QueryFilterItem>
           <QueryFilterItem tip-content="鐘舵��">
             <FieldRadio
               v-model="extraParamState.status"
-              :value-enum="[
-                { value: true, label: '灞曠ず涓�' },
-                { value: false, label: '宸蹭笅鏋�' },
-              ]"
+              :value-enum="EnumAdvertisementStatusText"
               buttonStyle
               showAllBtn
-              @change="getAdvertiseOnShowList()"
+              @change="getList()"
             />
           </QueryFilterItem>
-          <QueryFilterItem tip-content="骞垮憡寮�濮嬫椂闂�">
+          <QueryFilterItem tip-content="骞垮憡鏃堕棿">
             <FieldDatePicker
-              v-model="extraParamState.beginDate"
+              v-model="extraParamState.time"
               type="daterange"
               range-separator="~"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
+              start-placeholder="寮�濮嬫椂闂�"
+              end-placeholder="缁撴潫鏃堕棿"
               clearable
-              @change="getAdvertiseOnShowList()"
-            ></FieldDatePicker>
-          </QueryFilterItem>
-          <QueryFilterItem tip-content="骞垮憡缁撴潫鏃堕棿">
-            <FieldDatePicker
-              v-model="extraParamState.endDate"
-              type="daterange"
-              range-separator="~"
-              start-placeholder="寮�濮嬫棩鏈�"
-              end-placeholder="缁撴潫鏃ユ湡"
-              clearable
-              @change="getAdvertiseOnShowList()"
+              @change="getList()"
             ></FieldDatePicker>
           </QueryFilterItem>
           <QueryFilterItem>
@@ -51,7 +37,7 @@
               v-model="extraParamState.keyword"
               style="width: 260px"
               placeholder="骞垮憡鍚嶇О"
-              @on-click-search="getAdvertiseOnShowList"
+              @on-click-search="getList"
             >
             </SearchInput>
           </QueryFilterItem>
@@ -69,6 +55,8 @@
       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
+    <AddOrEditAdvertisementDialog v-bind="dialogProps"></AddOrEditAdvertisementDialog>
+    <LogDialog v-bind="dialogLogProps"></LogDialog>
   </LoadingLayout>
 </template>
 
@@ -89,10 +77,13 @@
   UploadUserFile,
 } from '@bole-core/components';
 import { useAccess } from '@/hooks';
-import { FlexWorkerEleSignEnumText } from '@/constants';
+import { EnumAdvertisementPageText, EnumAdvertisementStatusText } from '@/constants';
 import { ModelValueType } from 'element-plus';
-import { format, setOSSLink, convertApi2FormUrl, convertFormUrl2Api } from '@/utils';
+import { format, convertApi2FormUrlOnlyOne } from '@/utils';
 import { Message } from '@bole-core/core';
+import * as advertisementServices from '@/services/api/advertisement';
+import AddOrEditAdvertisementDialog from './components/AddOrEditAdvertisementDialog.vue';
+import LogDialog from './components/LogDialog.vue';
 
 defineOptions({
   name: 'OperationManageList',
@@ -103,17 +94,19 @@
   takeOnBtn: {
     emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
     extraProps: {
-      hide: (row) => row.status,
+      hide: (row: API.GetAdvertisementsQueryResultItem) =>
+        row.status === EnumAdvertisementStatus.InProcess,
     },
   },
   takeDownBtn: {
     emits: { onClick: (role) => setAdvertiseOnShowStatus(role) },
     props: { type: 'danger' },
     extraProps: {
-      hide: (row) => !row.status,
+      hide: (row: API.GetAdvertisementsQueryResultItem) =>
+        row.status === EnumAdvertisementStatus.Stopped,
     },
   },
-  logBtn: { emits: { onClick: (role) => openDialog(role) } },
+  logBtn: { emits: { onClick: (role) => openLogDialog(role) } },
 };
 
 const { checkSubModuleItemShow, column, operationBtns } = useAccess({
@@ -127,12 +120,12 @@
 const state = reactive({ ...BaseState });
 
 onMounted(async () => {
-  await getAdvertiseOnShowList();
+  await getList();
   state.loading = false;
 });
 
 const {
-  getDataSource: getAdvertiseOnShowList,
+  getDataSource: getList,
   proTableProps,
   paginationState,
   extraParamState,
@@ -140,15 +133,19 @@
 } = useTable(
   async ({ pageIndex, pageSize }, extraParamState) => {
     try {
-      let params: API.GetUserClientForBackInput = {
+      let params: API.GetAdvertisementsQuery = {
         pageModel: {
           rows: pageSize,
           page: pageIndex,
           orderInput: extraParamState.orderInput,
         },
-        searchKeys: extraParamState.keyword,
+        keywords: extraParamState.keyword,
+        beginTime: format(extraParamState.time[0], 'YYYY-MM-DD 00:00:00'),
+        endTime: format(extraParamState.time[1], 'YYYY-MM-DD 23:59:59'),
+        page: extraParamState.page,
+        status: extraParamState.status,
       };
-      let res = await flexEnterpriseWokerServices.getUserClientList(params, {
+      let res = await advertisementServices.getAdvertisements(params, {
         showLoading: !state.loading,
       });
       return res;
@@ -157,27 +154,40 @@
   {
     defaultExtraParams: {
       keyword: '',
-      pageType: '' as any as number,
-      status: '' as any as boolean,
-      beginDate: [] as unknown as ModelValueType,
+      page: '' as any as EnumAdvertisementPage,
+      status: '' as any as EnumAdvertisementStatus,
+      time: [] as unknown as ModelValueType,
       endDate: [] as unknown as ModelValueType,
-      orderInput: [{ property: 'sort', order: EnumPagedListOrder.Desc }],
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
     },
-    columnsRenderProps: {},
+    columnsRenderProps: {
+      page: { type: 'enum', valueEnum: EnumAdvertisementPageText },
+      status: { type: 'enum', valueEnum: EnumAdvertisementStatusText },
+      url: {
+        type: 'link',
+        text: (row: API.GetAdvertisementsQueryResultItem) => (row.url ? '鏌ョ湅' : ''),
+      },
+      file: { type: 'url' },
+      beginTime: { type: 'date', format: 'YYYY-MM-DD' },
+      endTime: { type: 'date', format: 'YYYY-MM-DD' },
+    },
   }
 );
 
-function openDialog(row?) {
+async function openDialog(row?: API.GetAdvertisementsQueryResultItem) {
   if (row) {
-    handleEdit({
-      id: row.id,
-      pageType: row.pageType,
-      advertiseName: row.advertiseName,
-      advertiseLink: row.advertiseLink,
-      imgInfo: row.imgInfo.map((x) => convertApi2FormUrl(x.imgUrl)),
-      date: [format(row.advertiseBeginDate), format(row.advertiseEndDate)],
-      sort: row.sort,
-    });
+    const res = await getAdvertisement(row.id);
+    if (res) {
+      handleEdit({
+        id: res.id,
+        page: res.page,
+        name: res.name,
+        url: res.url,
+        file: res.file ? convertApi2FormUrlOnlyOne(res.file) : [],
+        time: [format(res.beginTime), format(res.endTime)],
+        sort: res.sort,
+      });
+    }
   } else {
     handleAdd();
   }
@@ -188,23 +198,79 @@
   defaultFormParams: {
     title: '鏂板骞垮憡',
     id: '',
-    pageType: '' as any as number,
-    advertiseName: '',
-    advertiseLink: '',
-    imgInfo: [] as UploadUserFile[],
-    date: [] as unknown as ModelValueType,
+    page: '' as any as EnumAdvertisementPage,
+    name: '',
+    url: '',
+    file: [] as UploadUserFile[],
+    time: [] as unknown as ModelValueType,
     sort: 0,
   },
   editTitle: '缂栬緫骞垮憡',
+  closeAfterConfirm: false,
 });
 
 async function handleAddOrEdit() {
   try {
+    let params: API.SaveAdvertisementCommand = {
+      page: editForm.page,
+      name: editForm.name,
+      url: editForm.url,
+      file: editForm.file?.[0]?.url,
+      beginTime: format(editForm.time[0], 'YYYY-MM-DD 00:00:00'),
+      endTime: format(editForm.time[1], 'YYYY-MM-DD 23:59:59'),
+      sort: editForm.sort,
+    };
+    if (editForm.id) {
+      params.id = editForm.id;
+    }
+    let res = await advertisementServices.saveAdvertisement(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+      dialogState.dialogVisible = false;
+    }
   } catch (error) {}
 }
 
-async function setAdvertiseOnShowStatus(row) {
+const {
+  dialogProps: dialogLogProps,
+  handleAdd: handleLogAdd,
+  editForm: editLogForm,
+} = useFormDialog({
+  defaultFormParams: {
+    id: '',
+  },
+});
+
+function openLogDialog(row: API.GetAdvertisementsQueryResultItem) {
+  handleLogAdd({
+    id: row.id,
+  });
+}
+
+async function getAdvertisement(id: string) {
   try {
+    return await advertisementServices.getAdvertisement({ id: id });
+  } catch (error) {}
+}
+
+async function setAdvertiseOnShowStatus(row: API.GetAdvertisementsQueryResultItem) {
+  try {
+    await Message.tipMessage(
+      `纭瑕�${row.status === EnumAdvertisementStatus.InProcess ? '涓嬫灦' : '涓婃灦'}璇ュ箍鍛婂悧锛焋
+    );
+    let params: API.SetAdvertisementStatusCommand = {
+      ids: [row.id],
+      status:
+        row.status === EnumAdvertisementStatus.InProcess
+          ? EnumAdvertisementStatus.Stopped
+          : EnumAdvertisementStatus.InProcess,
+    };
+    let res = await advertisementServices.setAdvertisementStatus(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
   } catch (error) {}
 }
 </script>
diff --git a/src/views/OperationManage/components/AddOrEditAdvertisementDialog.vue b/src/views/OperationManage/components/AddOrEditAdvertisementDialog.vue
index 8983528..cac2bcb 100644
--- a/src/views/OperationManage/components/AddOrEditAdvertisementDialog.vue
+++ b/src/views/OperationManage/components/AddOrEditAdvertisementDialog.vue
@@ -1,66 +1,46 @@
 <template>
-  <ProDialog
-    :title="innerForm.title"
-    v-model="innerVisible"
-    @close="onDialogClose"
-    destroy-on-close
-  >
-    <ProForm :rules="rules" :model="innerForm" ref="dialogForm" label-width="120px">
-      <ProFormItemV2
-        label="骞垮憡椤甸潰:"
-        prop="pageType"
-        :check-rules="[{ message: '璇烽�夋嫨骞垮憡椤甸潰' }]"
-      >
+  <ProDialog :title="form.title" v-model="visible" @close="onDialogClose" destroy-on-close>
+    <ProForm :model="form" ref="dialogForm" label-width="120px">
+      <ProFormItemV2 label="骞垮憡椤甸潰:" prop="page" :check-rules="[{ message: '璇烽�夋嫨骞垮憡椤甸潰' }]">
         <ProFormSelect
           placeholder="璇烽�夋嫨骞垮憡椤甸潰"
-          :value-enum="FlexWorkerEleSignEnumText"
+          :value-enum="EnumAdvertisementPageText"
           clearable
-          v-model="innerForm.pageType"
+          v-model="form.page"
         ></ProFormSelect>
       </ProFormItemV2>
       <ProFormItemV2
         label="骞垮憡鍚嶇О:"
-        prop="advertiseName"
+        prop="name"
         :check-rules="[{ message: '璇疯緭鍏ュ箍鍛婂悕绉�' }, { max: 20, message: '涓嶈兘瓒呰繃20涓瓧绗�' }]"
       >
         <ProFormText
           placeholder="璇疯緭鍏ュ箍鍛婂悕绉�"
-          v-model.trim="innerForm.advertiseName"
+          v-model.trim="form.name"
           :maxlength="20"
         ></ProFormText>
       </ProFormItemV2>
-      <ProFormItemV2
-        label="骞垮憡浜у搧閾炬帴:"
-        prop="advertiseLink"
-        :check-rules="[
-          { type: 'urlWithParams', message: '璇疯緭鍏ュ箍鍛婁骇鍝侀摼鎺�' },
-          { message: '璇疯緭鍏ユ纭殑骞垮憡浜у搧閾炬帴' },
-        ]"
-      >
+      <ProFormItemV2 label="骞垮憡浜у搧閾炬帴:" prop="url">
         <ProFormText
           placeholder="璇疯緭鍏ュ箍鍛婁骇鍝侀摼鎺�"
-          v-model.trim="innerForm.advertiseLink"
+          v-model.trim="form.url"
           :maxlength="150"
         ></ProFormText>
       </ProFormItemV2>
       <ProFormItemV2
         label="骞垮憡鍥剧墖:"
-        prop="imgInfo"
+        prop="file"
         :check-rules="[{ type: 'array', message: '璇烽�夋嫨骞垮憡鍥剧墖' }]"
       >
-        <ProFormImageUpload
-          :fileDirectory="OssAdvertise"
-          v-model:file-url="innerForm.imgInfo"
-          :limitFileCount="1"
-        ></ProFormImageUpload>
+        <ProFormImageUpload v-model:file-url="form.file" :limitFileCount="1"></ProFormImageUpload>
       </ProFormItemV2>
       <ProFormItemV2
         label="骞垮憡鏃ユ湡:"
-        prop="date"
+        prop="time"
         :check-rules="[{ type: 'array', message: '璇烽�夋嫨骞垮憡鏃ユ湡' }]"
       >
         <ProFormDatePicker
-          v-model="innerForm.date"
+          v-model="form.time"
           type="daterange"
           range-separator="~"
           start-placeholder="骞垮憡璧峰鏃ユ湡"
@@ -75,7 +55,7 @@
         :check-rules="[{ message: '璇疯緭鍏ユ帓搴�' }]"
       >
         <ProFormInputNumber
-          v-model="innerForm.sort"
+          v-model="form.sort"
           :controls="false"
           :min="0"
           :max="99"
@@ -92,7 +72,7 @@
 </template>
 
 <script setup lang="ts">
-import { FormRules, FormInstance } from 'element-plus';
+import { FormInstance } from 'element-plus';
 import {
   ProDialog,
   ProForm,
@@ -105,64 +85,65 @@
   ProFormImageUpload,
 } from '@bole-core/components';
 import { ModelValueType } from 'element-plus';
-import { OssAdvertise, FlexWorkerEleSignEnumText } from '@/constants';
-import { BoleRegExp } from '@bole-core/core';
+import { EnumAdvertisementPageText } from '@/constants';
+import { useQuery } from '@tanstack/vue-query';
+import * as advertisementServices from '@/services/api/advertisement';
+import { convertApi2FormUrlOnlyOne, format } from '@/utils';
 
 defineOptions({
   name: 'AddOrEditAdvertisementDialog',
 });
 
-type Props = {
-  modelValue: boolean;
-  form?: {
-    title?: string;
-    id: string;
-    pageType: number;
-    advertiseName: string;
-    advertiseLink: string;
-    imgInfo: UploadUserFile[];
-    date: ModelValueType;
-    sort: number;
-  };
+type Form = {
+  title?: string;
+  id: string;
+  page?: number;
+  name?: string;
+  url?: string;
+  file?: UploadUserFile[];
+  time?: ModelValueType;
+  sort?: number;
 };
 
-const props = withDefaults(defineProps<Props>(), {
-  modelValue: false,
-});
+const form = defineModel<Form>('form');
+const visible = defineModel<boolean>('modelValue');
 
 const emit = defineEmits<{
-  (e: 'update:modelValue', value: boolean): void;
-  (e: 'update:form', value: Props['form']): void;
   (e: 'onConfirm'): void;
   (e: 'onCancel'): void;
 }>();
 
 const dialogForm = ref<FormInstance>();
 
-const innerVisible = computed({
-  get() {
-    return props.modelValue;
-  },
-  set(val) {
-    emit('update:modelValue', val);
-  },
-});
+watch(
+  () => visible.value,
+  (val) => {
+    if (val && form.value?.id) {
+      refetch();
+    }
+  }
+);
 
-const innerForm = computed({
-  get() {
-    return props.form;
+const { data: detail, refetch } = useQuery({
+  queryKey: ['advertisementServices/getAdvertisement', form.value.id],
+  queryFn: async () => {
+    return await advertisementServices.getAdvertisement({ id: form.value.id });
   },
-  set(val) {
-    emit('update:form', val);
+  placeholderData: () => ({} as API.GetAdvertisementQueryResult),
+  enabled: computed(() => !!form.value.id),
+  onSuccess(data) {
+    form.value.page = data.page;
+    form.value.name = data.name;
+    form.value.url = data.url;
+    form.value.file = data.file ? convertApi2FormUrlOnlyOne(data.file) : [];
+    form.value.time = [
+      format(data.beginTime, 'YYYY-MM-DD 00:00:00'),
+      format(data.endTime, 'YYYY-MM-DD 23:59:59'),
+    ];
+    form.value.sort = data.sort;
   },
 });
 
-const rules = reactive<FormRules>({
-  contacterPhone: [
-    { message: '璇疯緭鍏ユ纭殑鑱旂郴鐢佃瘽', trigger: 'blur', pattern: BoleRegExp.RegTelNumber },
-  ],
-});
-
 function onDialogClose() {
   if (!dialogForm.value) return;
   dialogForm.value.resetFields();
diff --git a/src/views/OperationManage/components/LogDialog.vue b/src/views/OperationManage/components/LogDialog.vue
new file mode 100644
index 0000000..80f34ac
--- /dev/null
+++ b/src/views/OperationManage/components/LogDialog.vue
@@ -0,0 +1,112 @@
+<template>
+  <ProDialog :title="form.title" v-model="visible" destroy-on-close draggable bodyNoPaddingBottom>
+    <ProDialogTableWrapper :height="400">
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+      </ProTableV2>
+    </ProDialogTableWrapper>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="emit('onConfirm')" type="primary">纭� 瀹�</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import {
+  ProDialog,
+  ProTableV2,
+  ProDialogTableWrapper,
+  useTable,
+  defineColumns,
+  defineOperationBtns,
+} from '@bole-core/components';
+import * as advertisementServices from '@/services/api/advertisement';
+import { EnumDbAuditOperateText } from '@/constants';
+
+defineOptions({
+  name: 'LogDialog',
+});
+
+type Form = {
+  title?: string;
+  id: string;
+};
+
+const form = defineModel<Form>('form');
+const visible = defineModel<boolean>('modelValue');
+
+const emit = defineEmits<{
+  (e: 'onCancel'): void;
+  (e: 'onConfirm'): void;
+}>();
+
+const column = defineColumns([
+  {
+    id: '1',
+    enCode: 'createdUser',
+    name: '鎿嶄綔浜�',
+  },
+  {
+    id: '2',
+    enCode: 'createdTime',
+    name: '鎿嶄綔鏃堕棿',
+  },
+  {
+    id: '3',
+    enCode: 'operate',
+    name: '鎿嶄綔',
+  },
+  {
+    id: '4',
+    enCode: 'content',
+    name: '鎿嶄綔鍐呭',
+  },
+]);
+
+const operationBtns = defineOperationBtns([]);
+
+watch(
+  () => visible.value,
+  (val) => {
+    if (val) {
+      getList();
+    }
+  }
+);
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetAdvertisementLogsQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        id: form.value?.id,
+      };
+      let res = await advertisementServices.getAdvertisementLogs(params);
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    columnsRenderProps: {
+      createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+      operate: { type: 'enum', valueEnum: EnumDbAuditOperateText },
+    },
+  }
+);
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/StandardOrderManage/AddOrEditServicesManage.vue b/src/views/StandardOrderManage/AddOrEditServicesManage.vue
new file mode 100644
index 0000000..6f7f90e
--- /dev/null
+++ b/src/views/StandardOrderManage/AddOrEditServicesManage.vue
@@ -0,0 +1,24 @@
+<template>
+  <AddOrEditServicesManageView
+    emitAddEvent="servicesManage:add"
+    emitEditEvent="servicesManage:edit"
+    backRouteName="ServicesManage"
+    :isDetail="false"
+  ></AddOrEditServicesManageView>
+</template>
+
+<script lang="ts">
+import { setPageTitle } from '@/utils';
+
+export default defineComponent({
+  name: 'AddOrEditServicesManage',
+  beforeRouteEnter(to) {
+    to.meta.title = to.params.id ? '缂栬緫鏈嶅姟' : '鏂板鏈嶅姟';
+    setPageTitle(to.meta.title as string);
+  },
+});
+</script>
+
+<script setup lang="ts">
+import AddOrEditServicesManageView from './components/AddOrEditServicesManageView.vue';
+</script>
diff --git a/src/views/StandardOrderManage/OrderManage.vue b/src/views/StandardOrderManage/OrderManage.vue
new file mode 100644
index 0000000..fdd770d
--- /dev/null
+++ b/src/views/StandardOrderManage/OrderManage.vue
@@ -0,0 +1,165 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <ProTableQueryFilterBar @on-reset="reset">
+        <template #query>
+          <QueryFilterItem tip-content="棰勭害鐘舵��">
+            <FieldSelect
+              v-model="extraParamState.releaseStatus"
+              :value-enum="EnumTaskReleaseStatusText"
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem tip-content="璁㈠崟鐘舵��">
+            <FieldSelect
+              v-model="extraParamState.releaseStatus"
+              :value-enum="EnumTaskReleaseStatusText"
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem tip-content="涓嬪崟鏃堕棿">
+            <FieldDatePicker
+              v-model="extraParamState.time"
+              type="daterange"
+              range-separator="~"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              clearable
+              @change="getList()"
+            ></FieldDatePicker>
+          </QueryFilterItem>
+          <QueryFilterItem tip-content="鏀粯鏃堕棿">
+            <FieldDatePicker
+              v-model="extraParamState.time"
+              type="daterange"
+              range-separator="~"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              clearable
+              @change="getList()"
+            ></FieldDatePicker>
+          </QueryFilterItem>
+          <QueryFilterItem>
+            <SearchInput
+              v-model="extraParamState.keywords"
+              style="width: 260px"
+              placeholder="璁㈠崟鍙�/鏈嶅姟鍚�"
+              @on-click-search="getList"
+            >
+            </SearchInput>
+          </QueryFilterItem>
+        </template>
+      </ProTableQueryFilterBar>
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+      </ProTableV2>
+    </AppContainer>
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  ProTableQueryFilterBar,
+  OperationBtnType,
+  ProTableV2,
+  SearchInput,
+  LoadingLayout,
+  AppContainer,
+  QueryFilterItem,
+  useTable,
+  FieldDatePicker,
+  FieldSelect,
+} from '@bole-core/components';
+import { useAccess } from '@/hooks';
+import { ModelValueType } from 'element-plus';
+import * as taskServices from '@/services/api/task';
+import { EnumTaskReleaseStatusText } from '@/constants';
+import { format } from '@/utils';
+import { Message } from '@bole-core/core';
+
+defineOptions({
+  name: 'OrderManage',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+  detailBtn: { emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row) } },
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
+
+const router = useRouter();
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetTaskInfosQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        keywords: extraParamState.keywords,
+        releaseStatus: extraParamState.releaseStatus,
+        recommendStatus: extraParamState.recommendStatus,
+        beginTime: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+        endTime: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+      };
+      let res = await taskServices.getTaskInfos(params, {
+        showLoading: !state.loading,
+      });
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      keywords: '',
+      releaseStatus: '' as any as EnumTaskReleaseStatus,
+      recommendStatus: '' as any as EnumTaskRecommendStatus,
+      time: [] as unknown as ModelValueType,
+      orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
+    },
+    columnsRenderProps: {},
+  }
+);
+
+async function setTaskInfoRecommendStatus(row: API.GetTaskInfosQueryResultItem) {
+  try {
+    await Message.tipMessage(
+      `纭瑕�${row.recommendStatus === EnumTaskRecommendStatus.Yes ? '鍙栨秷' : '鎺ㄨ崘'}鍚楋紵`
+    );
+    let params: API.SetTaskInfoRecommendStatusCommand = {
+      ids: [row.id],
+      recommendStatus:
+        row.recommendStatus === EnumTaskRecommendStatus.Yes
+          ? EnumTaskRecommendStatus.No
+          : EnumTaskRecommendStatus.Yes,
+    };
+    let res = await taskServices.setTaskInfoRecommendStatus(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+
+function goDetail(row?: API.GetEnterprisesQueryResultItem) {
+  router.push({ name: 'OrderManageDetail', params: { id: row?.id ?? '' } });
+}
+</script>
diff --git a/src/views/StandardOrderManage/OrderManageDetail.vue b/src/views/StandardOrderManage/OrderManageDetail.vue
new file mode 100644
index 0000000..4bf37c1
--- /dev/null
+++ b/src/views/StandardOrderManage/OrderManageDetail.vue
@@ -0,0 +1,182 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppScrollContainer>
+      <ChunkCell title="鐘舵��">
+        <ProForm :model="form" ref="formRef" label-width="120px" :is-read="true">
+          <ProFormItemV2 label="棰勭害鐘舵��:" prop="cooperationStatus">
+            <ProFormRadio v-model="form.access" :value-enum="EnumWalletTransactionStatusText" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="璁㈠崟鐘舵��:" prop="cooperationStatus">
+            <ProFormRadio v-model="form.access" :value-enum="EnumWalletTransactionStatusText" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="缁撶畻鐘舵��:" prop="cooperationStatus">
+            <ProFormRadio v-model="form.access" :value-enum="EnumWalletTransactionStatusText" />
+          </ProFormItemV2>
+        </ProForm>
+      </ChunkCell>
+      <ChunkCell title="璁㈠崟淇℃伅">
+        <ProForm :model="form" ref="formRef" label-width="120px" :is-read="true">
+          <ProFormItemV2 label="鏈嶅姟鍗曞彿:" prop="cooperationStatus">
+            <ProFormText v-model.trim="form.access" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="涓嬪崟鐢ㄦ埛:" prop="cooperationStatus">
+            <ProFormText v-model.trim="form.access" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="鏈嶅姟鏃堕棿:" prop="cooperationStatus">
+            <ProFormDatePicker
+              v-model="form.access"
+              type="date"
+              value-format="YYYY-MM-DD"
+              placeholder="璇烽�夋嫨鏃ユ湡"
+            ></ProFormDatePicker>
+          </ProFormItemV2>
+          <ProFormItemV2 label="鏈嶅姟鍦板潃:" prop="cooperationStatus">
+            <ProFormText v-model.trim="form.access" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="鏈嶅姟鏈烘瀯:" prop="cooperationStatus">
+            <ProFormText v-model.trim="form.access" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="鏈嶅姟浜哄憳:" prop="cooperationStatus">
+            <ProFormText v-model.trim="form.access" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="澶囨敞:" prop="cooperationStatus">
+            <ProFormText v-model.trim="form.access" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="瀹炰粯娆�:" prop="invoiceTaxPointRate">
+            <ProFormInputNumber v-model="form.balance" :controls="false" :min="0" :precision="2" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="瀹炴敹娆�:" prop="cooperationStatus">
+            <ProFormInputNumber v-model="form.balance" :controls="false" :min="0" :precision="2" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="鏈嶅姟璐�:" prop="cooperationStatus">
+            <ProFormInputNumber v-model="form.balance" :controls="false" :min="0" :precision="2" />
+          </ProFormItemV2>
+          <ProFormItemV2 label="缁撶畻娆�:" prop="cooperationStatus">
+            <ProFormInputNumber v-model="form.balance" :controls="false" :min="0" :precision="2" />
+          </ProFormItemV2>
+        </ProForm>
+        <ProTableV2
+          v-bind="proTableProps"
+          :columns="column"
+          :show-operation-column="false"
+          :auto-height="false"
+          :table-props="{
+            height: '400px',
+          }"
+        >
+        </ProTableV2>
+      </ChunkCell>
+    </AppScrollContainer>
+  </LoadingLayout>
+</template>
+<script setup lang="ts">
+import {
+  LoadingLayout,
+  AppScrollContainer,
+  ChunkCell,
+  ProForm,
+  ProFormItemV2,
+  ProFormText,
+  ProFormRadio,
+  ProFormDatePicker,
+  ProFormInputNumber,
+  useTable,
+  ProTableV2,
+} from '@bole-core/components';
+import { EnumWalletTransactionStatusText } from '@/constants';
+import * as userServices from '@/services/api/user';
+import { format, setOSSLink } from '@/utils';
+
+defineOptions({
+  name: 'OrderManageDetail',
+});
+
+const { column, operationBtns } = useAccess({});
+
+const route = useRoute();
+const id = (route.params.id as string) ?? '';
+
+const form = reactive({
+  identity: '',
+  access: '' as any as EnumEnterpriseWalletAccess,
+  balance: 0,
+});
+
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetPersonalUserTransactionsQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        enterpriseWalletId: id,
+      };
+      let res = await userServices.getPersonalUserTransactions(params);
+      if (res.objectData?.enterpriseWallet) {
+        form.identity = res.objectData.enterpriseWallet.identity;
+        form.access = res.objectData.enterpriseWallet.access;
+        form.balance = res.objectData.enterpriseWallet.balance;
+      }
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    columnsRenderProps: {
+      transDate: { type: 'date' },
+      sendTime: { type: 'date' },
+      amount: { type: 'money' },
+      transactionStatus: { type: 'enum', valueEnum: EnumWalletTransactionStatusText },
+      ereceiptDownloadOssUrl: {
+        type: 'url',
+        formatter: (row: API.GetPersonalUserTransactionsQueryResultItem) =>
+          row.ereceiptDownloadOssUrl ? setOSSLink(row.ereceiptDownloadOssUrl) : '',
+      },
+    },
+  }
+);
+
+onMounted(() => {
+  state.loading = false;
+  getList();
+});
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+
+.step-wrapper {
+  margin: 0 auto;
+  padding: 24px 0;
+}
+
+.settlement-user-list-chunk {
+  :deep() {
+    .no-data img {
+      width: 280px;
+    }
+  }
+}
+</style>
+<style lang="scss">
+.text-over-tooltip-content {
+  max-width: 600px;
+  word-break: break-all;
+}
+</style>
diff --git a/src/views/StandardOrderManage/ServicesManage.vue b/src/views/StandardOrderManage/ServicesManage.vue
new file mode 100644
index 0000000..3361b33
--- /dev/null
+++ b/src/views/StandardOrderManage/ServicesManage.vue
@@ -0,0 +1,183 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <ProTableQueryFilterBar @on-reset="reset">
+        <template #query>
+          <QueryFilterItem tip-content="鍙戝竷鐘舵��">
+            <FieldRadio
+              v-model="extraParamState.releaseStatus"
+              :value-enum="EnumStandardServiceReleaseStatusText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem tip-content="鍒涘缓鏃堕棿">
+            <FieldDatePicker
+              v-model="extraParamState.createdTime"
+              type="daterange"
+              range-separator="~"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              clearable
+              @change="getList()"
+            ></FieldDatePicker>
+          </QueryFilterItem>
+          <QueryFilterItem>
+            <SearchInput
+              v-model="extraParamState.keywords"
+              style="width: 260px"
+              placeholder="鏈嶅姟鍚�/ID"
+              @on-click-search="getList"
+            >
+            </SearchInput>
+          </QueryFilterItem>
+        </template>
+        <template #btn>
+          <el-button
+            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
+            @click="goAddOrEdit()"
+            icon="Plus"
+            type="primary"
+            >鏂板</el-button
+          >
+        </template>
+      </ProTableQueryFilterBar>
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+      </ProTableV2>
+    </AppContainer>
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  ProTableQueryFilterBar,
+  OperationBtnType,
+  ProTableV2,
+  SearchInput,
+  LoadingLayout,
+  AppContainer,
+  QueryFilterItem,
+  useTable,
+  FieldDatePicker,
+  FieldRadio,
+} from '@bole-core/components';
+import { useAccess } from '@/hooks';
+import { ModelValueType } from 'element-plus';
+import * as standardService from '@/services/api/standardService';
+import { EnumStandardServiceReleaseStatusText } from '@/constants';
+import { format, OrderUtils } from '@/utils';
+import { Message } from '@bole-core/core';
+
+defineOptions({
+  name: 'ServicesManage',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+  editBtn: {
+    emits: { onClick: (row: API.GetStandardServicesQueryResultItem) => goAddOrEdit(row) },
+  },
+  publishBtn: {
+    emits: {
+      onClick: (row: API.GetStandardServicesQueryResultItem) =>
+        setStandardServiceReleaseStatus(row),
+    },
+    extraProps: {
+      hide: (row: API.GetStandardServicesQueryResultItem) =>
+        row.releaseStatus === EnumStandardServiceReleaseStatus.InProcess,
+    },
+  },
+  stopPublishBtn: {
+    emits: {
+      onClick: (row: API.GetStandardServicesQueryResultItem) =>
+        setStandardServiceReleaseStatus(row),
+    },
+    extraProps: {
+      hide: (row: API.GetStandardServicesQueryResultItem) =>
+        row.releaseStatus === EnumStandardServiceReleaseStatus.Stopped,
+    },
+  },
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
+
+const router = useRouter();
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetStandardServicesQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        keywords: extraParamState.keywords,
+        releaseStatus: extraParamState.releaseStatus,
+        createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+        createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+      };
+      let res = await standardService.getStandardServices(params, {
+        showLoading: !state.loading,
+      });
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      keywords: '',
+      releaseStatus: '' as any as EnumStandardServiceReleaseStatus,
+      createdTime: [] as unknown as ModelValueType,
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    columnsRenderProps: {
+      releaseStatus: { type: 'enum', valueEnum: EnumStandardServiceReleaseStatusText },
+      createdTime: { type: 'date' },
+    },
+  }
+);
+
+async function setStandardServiceReleaseStatus(row: API.GetStandardServicesQueryResultItem) {
+  try {
+    await Message.tipMessage(
+      `纭瑕�${
+        row.releaseStatus === EnumStandardServiceReleaseStatus.InProcess ? '鍋滄鍙戝竷' : '鍙戝竷'
+      }鍚楋紵`
+    );
+    let params: API.SetStandardServiceReleaseStatusCommand = {
+      ids: [row.id],
+      releaseStatus:
+        row.releaseStatus === EnumStandardServiceReleaseStatus.InProcess
+          ? EnumStandardServiceReleaseStatus.Stopped
+          : EnumStandardServiceReleaseStatus.InProcess,
+    };
+    let res = await standardService.setStandardServiceReleaseStatus(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+
+function goAddOrEdit(row?: API.GetEnterprisesQueryResultItem) {
+  router.push({ name: 'AddOrEditServicesManage', params: { id: row?.id ?? '' } });
+}
+</script>
diff --git a/src/views/StandardOrderManage/components/AddOrEditServicesManageView.vue b/src/views/StandardOrderManage/components/AddOrEditServicesManageView.vue
new file mode 100644
index 0000000..38800a0
--- /dev/null
+++ b/src/views/StandardOrderManage/components/AddOrEditServicesManageView.vue
@@ -0,0 +1,467 @@
+<template>
+  <LoadingLayout :loading="isEdit && isLoading">
+    <AppScrollContainer>
+      <ChunkCell title="鍩烘湰淇℃伅">
+        <ProForm :model="form" ref="formRef" label-width="140px" :is-read="isDetail">
+          <ProFormCol>
+            <ProFormColItem :span="12">
+              <ProFormItemV2
+                label="琛屼笟绫诲埆:"
+                prop="industryCategoryCode"
+                :check-rules="[{ message: '璇烽�夋嫨琛屼笟绫诲埆' }]"
+              >
+                <ProFormSelect
+                  v-model="form.industryCategoryCode"
+                  placeholder="璇烽�夋嫨琛屼笟绫诲埆"
+                  :value-enum="dictionaryDataList"
+                  clearable
+                  @change="industryCategoryCodeChange"
+                ></ProFormSelect>
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+          <ProFormCol>
+            <ProFormColItem :span="12">
+              <ProFormItemV2
+                label="宀椾綅:"
+                prop="jobCode"
+                :check-rules="[{ message: '璇烽�夋嫨宀椾綅' }]"
+              >
+                <ProFormSelect
+                  v-model="form.jobCode"
+                  placeholder="璇烽�夋嫨宀椾綅"
+                  :value-enum="positionList"
+                  clearable
+                ></ProFormSelect>
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+          <ProFormCol>
+            <ProFormColItem :span="12">
+              <ProFormItemV2
+                label="鏈嶅姟鍚�:"
+                prop="name"
+                :check-rules="[{ message: '璇疯緭鍏ユ湇鍔″悕' }]"
+              >
+                <ProFormText v-model.trim="form.name" :maxlength="30" placeholder="璇疯緭鍏ユ湇鍔″悕" />
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+          <ProFormCol>
+            <ProFormColItem :span="12">
+              <ProFormItemV2
+                label="瑙勬牸:"
+                prop="specs"
+                :check-rules="[{ message: '璇疯緭鍏ユ湇鍔″悕' }]"
+                class="form-item-specs"
+              >
+                <ProTableV2
+                  v-bind="specProTableProps"
+                  :columns="specificationsColumn"
+                  :operationBtns="specificationsOperationBtns"
+                  :show-pagination="false"
+                  :auto-height="false"
+                  ref="proTable"
+                  :tableProps="{
+                    maxHeight: '200px',
+                  }"
+                >
+                  <template #name="{ row }">
+                    <el-input v-model="row.name" placeholder="璇疯緭鍏ヨ鏍煎悕绉�" />
+                  </template>
+                  <template #price="{ row }">
+                    <el-input-number
+                      v-model="row.price"
+                      :controls="false"
+                      :precision="2"
+                      placeholder="璇疯緭鍏ヤ环鏍�"
+                    />
+                  </template>
+                </ProTableV2>
+                <el-button class="add-spec-btn" type="primary" link @click="handleSpecAdd()"
+                  >娣诲姞</el-button
+                >
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+
+          <ProFormCol>
+            <ProFormColItem :span="12">
+              <ProFormItemV2
+                label="鍥剧墖:"
+                prop="files"
+                :check-rules="[{ type: 'array', message: '璇蜂笂浼犲浘鐗�' }]"
+              >
+                <ProFormUpload
+                  v-model:file-url="form.files"
+                  :limit="10"
+                  :limitFileSize="10"
+                  accept="jpg/jpeg,png,pdf"
+                ></ProFormUpload>
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+
+          <ProFormCol>
+            <ProFormColItem :span="24">
+              <ProFormItemV2
+                label="鏈嶅姟鎻忚堪:"
+                prop="description"
+                required
+                :check-rules="[{ message: '璇疯緭鍏ユ湇鍔℃弿杩�' }]"
+              >
+                <RichEditor v-model="form.description" :editorConfig="{ readOnly: isDetail }" />
+              </ProFormItemV2>
+            </ProFormColItem>
+          </ProFormCol>
+        </ProForm>
+      </ChunkCell>
+      <ChunkCell title="渚涘簲鍟�">
+        <ProTableQueryFilterBar :show-reset-btn="false">
+          <template #btn>
+            <el-button type="primary" link @click="openSupplierDialog()">娣诲姞</el-button>
+          </template>
+        </ProTableQueryFilterBar>
+        <ProTableV2
+          v-bind="proTableProps"
+          :columns="column"
+          :operationBtns="operationBtns"
+          :auto-height="false"
+          ref="proTable"
+          :tableProps="{
+            maxHeight: '400px',
+          }"
+        >
+        </ProTableV2>
+        <div class="chuck-add-or-edit-actions">
+          <el-button class="chuck-add-or-edit-actions" @click="handleBack">鍙栨秷</el-button>
+          <el-button type="primary" class="chuck-add-or-edit-actions" @click="handleSubmit"
+            >淇濆瓨</el-button
+          >
+        </div>
+      </ChunkCell>
+    </AppScrollContainer>
+    <AddSupplierDialog v-bind="dialogProps"></AddSupplierDialog>
+  </LoadingLayout>
+</template>
+<script setup lang="ts">
+import {
+  LoadingLayout,
+  AppScrollContainer,
+  ProForm,
+  ProFormItemV2,
+  ChunkCell,
+  ProFormText,
+  ProFormSelect,
+  ProFormCol,
+  ProFormColItem,
+  UploadUserFile,
+  ProTableQueryFilterBar,
+  ProFormUpload,
+  useFormDialog,
+  useTable,
+  ProTableV2,
+  defineColumns,
+  defineOperationBtns,
+} from '@bole-core/components';
+import { FormInstance } from 'element-plus';
+import * as standardService from '@/services/api/standardService';
+import { useRouteView, useGlobalEventContext, GlobalEvent } from '@/hooks';
+import _ from 'lodash';
+import { convertApi2FormUrl, Message, paginateList } from '@/utils';
+import { useQuery } from '@tanstack/vue-query';
+import AddSupplierDialog from './AddSupplierDialog.vue';
+
+defineOptions({ name: 'AddOrEditServicesManageView' });
+
+type Props = {
+  isDetail: boolean;
+  emitAddEvent?: keyof GlobalEvent;
+  emitEditEvent?: keyof GlobalEvent;
+  backRouteName?: string;
+};
+
+const props = withDefaults(defineProps<Props>(), {
+  emitAddEvent: 'servicesManage:add',
+  emitEditEvent: 'servicesManage:edit',
+  backRouteName: 'ServicesManage',
+});
+
+const eventContext = useGlobalEventContext();
+
+const route = useRoute();
+const id = route.params.id as string;
+const isEdit = computed(() => !!id);
+const { dictionaryDataList } = useDictionaryDataSelect({
+  categoryCode: computed(() => CategoryCode.IndustryCategory),
+});
+
+const { closeViewPush } = useRouteView();
+
+const specificationsColumn = defineColumns([
+  {
+    id: '1',
+    enCode: 'name',
+    name: '瑙勬牸鍚嶇О',
+  },
+  {
+    id: '2',
+    enCode: 'price',
+    name: '浠锋牸',
+  },
+]);
+
+const specificationsOperationBtns = defineOperationBtns([
+  {
+    data: {
+      enCode: 'deleteBtn',
+      name: '鍒犻櫎',
+    },
+    emits: {
+      onClick: (role) => handleSpecificationsDelete(role),
+    },
+  },
+]);
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+  deleteBtn: {
+    emits: {
+      onClick: (role) => handleDelete(role),
+    },
+  },
+};
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+  operationBtnMap,
+});
+
+const { proTableProps: enterpriseProTableProps } = useGetEnterprises();
+
+const form = reactive({
+  id: '',
+  industryCategoryCode: '',
+  jobCode: '',
+  name: '',
+  specs: [] as API.GetStandardServiceQueryResultSpec[],
+  files: [] as UploadUserFile[],
+  description: '',
+  field1: '',
+
+  suppliers: [] as API.GetStandardServiceQueryResultSupplier[],
+});
+
+const { dictionaryDataList: positionList, refetch } = useDictionaryDataSelect({
+  categoryCode: computed(() => CategoryCode.Position),
+  field1: computed(() => form.field1),
+});
+
+const { isLoading } = useQuery({
+  queryKey: ['standardService/getStandardService', id],
+  queryFn: async () => {
+    return await standardService.getStandardService(
+      { id: id },
+      {
+        showLoading: false,
+      }
+    );
+  },
+  onSuccess(data) {
+    form.industryCategoryCode = data.industryCategoryCode;
+    form.jobCode = data.jobCode;
+    form.name = data.name;
+    form.specs = data.specs;
+    form.files = data.files?.length ? data.files.map(convertApi2FormUrl) : [];
+    form.description = data.description;
+    form.suppliers = data.suppliers;
+
+    getSpecList();
+    getList();
+  },
+  enabled: computed(() => !!id),
+});
+
+const {
+  getDataSource: getSpecList,
+  proTableProps: specProTableProps,
+  paginationState: specPaginationState,
+  extraParamState: specExtraParamState,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let list = [...form.specs];
+      return Promise.resolve({
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          totalCount: list.length,
+        },
+        data: paginateList(list, pageIndex, pageSize),
+      });
+    } catch (error) {
+      console.log('error: ', error);
+    }
+  },
+  {
+    defaultExtraParams: {
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    queryKey: ['standardService/getStandardService'],
+  }
+);
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let list = [...form.suppliers];
+      return Promise.resolve({
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          totalCount: list.length,
+        },
+        data: paginateList(list, pageIndex, pageSize),
+      });
+    } catch (error) {
+      console.log('error: ', error);
+    }
+  },
+  {
+    defaultExtraParams: {
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    queryKey: ['standardService/getStandardService'],
+    columnsRenderProps: {
+      isReal: {
+        formatter: (row: API.GetPersonalUserInfosQueryResultItem) => {
+          return row.isReal ? '宸插疄鍚�' : '鏈疄鍚�';
+        },
+      },
+    },
+  }
+);
+
+function industryCategoryCodeChange() {
+  form.jobCode = '';
+  form.field1 = dictionaryDataList.value.find(
+    (item) => item.code === form.industryCategoryCode
+  )?.data?.code;
+
+  refetch({
+    type: 'inactive',
+  });
+}
+
+function handleSpecAdd() {
+  form.specs.push({
+    name: '',
+    price: null,
+  });
+  getSpecList();
+}
+
+function handleSpecificationsDelete(row: API.GetStandardServiceQueryResultSpec) {
+  if (form.specs.length <= 1) {
+    Message.errorMessage('鑷冲皯淇濈暀涓�涓鏍�');
+    return;
+  }
+  form.specs.splice(form.specs.indexOf(row), 1);
+  getSpecList();
+}
+
+const { dialogProps, handleAdd, dialogState, editForm } = useFormDialog({
+  onConfirm: handleAddSupplier,
+  defaultFormParams: {
+    ids: [] as string[],
+  },
+});
+
+function openSupplierDialog() {
+  handleAdd({
+    ids: form.suppliers?.map((item) => item.id),
+  });
+}
+
+async function handleAddSupplier() {
+  console.log(editForm.ids, 'editForm.ids');
+  form.suppliers = enterpriseProTableProps.value?.tableData.filter((item) =>
+    editForm.ids.includes(item.id)
+  );
+  getList();
+}
+
+function handleDelete(row: any) {
+  form.suppliers.splice(form.suppliers.indexOf(row), 1);
+  getList();
+}
+
+const formRef = ref<FormInstance>();
+
+function handleSubmit() {
+  if (!formRef.value) return;
+  formRef.value.validate((valid) => {
+    if (valid) {
+      saveStandardService();
+    } else {
+      return;
+    }
+  });
+}
+
+async function saveStandardService() {
+  try {
+    if (form.suppliers?.length <= 0) {
+      Message.errorMessage('鑷冲皯閫夋嫨涓�涓緵搴斿晢');
+      return;
+    }
+    let params: API.SaveStandardServiceCommand = {
+      industryCategoryCode: form.industryCategoryCode,
+      jobCode: form.jobCode,
+      name: form.name,
+      specs: form.specs,
+      files: form.files?.length > 0 ? form.files.map((item) => item.path) : [],
+      description: form.description,
+      supplierIds: form.suppliers?.length > 0 ? form.suppliers.map((item) => item.id) : [],
+    };
+    if (isEdit.value) {
+      params.id = id;
+    }
+    let res = await standardService.saveStandardService(params);
+    if (res) {
+      Message.successMessage(isEdit.value ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛');
+      eventContext.emit(isEdit.value ? 'servicesManage:edit' : 'servicesManage:add');
+      handleBack();
+    }
+  } catch (error) {}
+}
+
+function handleBack() {
+  closeViewPush(route, {
+    name: 'ServicesManage',
+  });
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+
+.form-item-specs {
+  :deep() {
+    .el-form-item__content {
+      flex-direction: column;
+
+      .pro-table-wrapper {
+        width: 100%;
+      }
+    }
+  }
+
+  .add-spec-btn {
+    place-self: flex-end;
+  }
+}
+</style>
diff --git a/src/views/StandardOrderManage/components/AddSupplierDialog.vue b/src/views/StandardOrderManage/components/AddSupplierDialog.vue
new file mode 100644
index 0000000..b4a0f57
--- /dev/null
+++ b/src/views/StandardOrderManage/components/AddSupplierDialog.vue
@@ -0,0 +1,226 @@
+<template>
+  <ProDialog title="娣诲姞渚涘簲鍟�" v-model="visible" width="1200px" destroy-on-close>
+    <ProTableQueryFilterBar @on-reset="reset">
+      <template #query>
+        <QueryFilterItem>
+          <SearchInput
+            v-model="extraParamState.keywords"
+            style="width: 260px"
+            placeholder="浼佷笟鍚嶇О/娉曚汉/鑱旂郴浜�"
+            @on-click-search="getList"
+          >
+          </SearchInput>
+        </QueryFilterItem>
+      </template>
+    </ProTableQueryFilterBar>
+    <ProTableV2
+      v-bind="proTableProps"
+      :columns="column"
+      :operation-btns="operationBtns"
+      :auto-height="false"
+      :table-props="{
+        height: '400px',
+      }"
+    >
+    </ProTableV2>
+    <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 {
+  ProDialog,
+  useTable,
+  defineColumns,
+  ProTableV2,
+  defineOperationBtns,
+  ProTableQueryFilterBar,
+  QueryFilterItem,
+  SearchInput,
+} from '@bole-core/components';
+import { paginateList } from '@/utils';
+
+defineOptions({
+  name: 'AddSupplierDialog',
+});
+
+type Form = {
+  ids: string[];
+};
+
+const form = defineModel<Form>('form');
+const visible = defineModel<boolean>('modelValue');
+const tableList = ref<API.GetEnterprisesQueryResultItem[]>([]);
+
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+const operationBtns = defineOperationBtns([
+  {
+    data: {
+      enCode: 'chooseBtn',
+      name: '閫夋嫨',
+    },
+    emits: {
+      onClick: (role) => handleChoose(role),
+    },
+    extraProps: {
+      hide: (row) => row.choose,
+    },
+  },
+  {
+    data: {
+      enCode: 'cancelChooseBtn',
+      name: '鍙栨秷閫夋嫨',
+    },
+    emits: {
+      onClick: (role) => handleCancelChoose(role),
+    },
+    extraProps: {
+      hide: (row) => !row.choose,
+    },
+  },
+]);
+
+const column = defineColumns([
+  {
+    id: '1',
+    enCode: 'enterpriseName',
+    name: '浼佷笟鍚嶇О',
+  },
+  {
+    id: '2',
+    enCode: 'legalPerson',
+    name: '娉曚汉鍚嶇О',
+  },
+  {
+    id: '3',
+    enCode: 'societyCreditCode',
+    name: '淇$敤浠g爜',
+  },
+  {
+    id: '4',
+    enCode: 'contacts',
+    name: '鑱旂郴浜�',
+  },
+  {
+    id: '5',
+    enCode: 'contactPhoneNumber',
+    name: '鑱旂郴鐢佃瘽',
+  },
+  {
+    id: '6',
+    enCode: 'provinceContent',
+    name: '鐪佷唤',
+  },
+  {
+    id: '7',
+    enCode: 'cityContent',
+    name: '鍩庡競',
+  },
+  {
+    id: '8',
+    enCode: 'isReal',
+    name: '瀹炲悕鐘舵��',
+  },
+]);
+
+watch(
+  () => visible.value,
+  async (value) => {
+    if (value) {
+      tableList.value = enterpriseProTableProps.value?.tableData.map((x) => ({
+        ...x,
+        choose: form.value?.ids.includes(x.id),
+      }));
+      getList();
+    }
+  }
+);
+
+const { proTableProps: enterpriseProTableProps } = useGetEnterprises();
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let list = [...tableList.value];
+      if (extraParamState.keywords) {
+        list = list?.filter((item) => {
+          return (
+            item.enterpriseName?.includes(extraParamState.keywords) ||
+            item.contacts?.includes(extraParamState.keywords) ||
+            item.legalPerson?.includes(extraParamState.keywords)
+          );
+        });
+      }
+      return Promise.resolve({
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          totalCount: list.length,
+        },
+        data: paginateList(list, pageIndex, pageSize),
+      });
+    } catch (error) {
+      console.log('error: ', error);
+    }
+  },
+  {
+    defaultExtraParams: {
+      keywords: '',
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    queryKey: ['standardService/getStandardService'],
+    columnsRenderProps: {
+      isReal: {
+        formatter: (row: API.GetPersonalUserInfosQueryResultItem) => {
+          return row.isReal ? '宸插疄鍚�' : '鏈疄鍚�';
+        },
+      },
+    },
+  }
+);
+
+function handleChoose(row) {
+  tableList.value = tableList.value.map((x) => {
+    if (x.id === row.id) {
+      x['choose'] = true;
+    }
+    return x;
+  });
+  getList();
+  form.value.ids.push(row.id);
+}
+
+function handleCancelChoose(row) {
+  tableList.value = tableList.value.map((x) => {
+    if (x.id === row.id) {
+      x['choose'] = false;
+    }
+    return x;
+  });
+  getList();
+  form.value.ids = form.value.ids.splice(form.value.ids.indexOf(row.id), 1);
+}
+
+function handleConfirm() {
+  emit('onConfirm');
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/TaskManage/TaskManageList.vue b/src/views/TaskManage/TaskManageList.vue
index e3524d9..92e36dc 100644
--- a/src/views/TaskManage/TaskManageList.vue
+++ b/src/views/TaskManage/TaskManageList.vue
@@ -74,7 +74,7 @@
 import { Message } from '@bole-core/core';
 
 defineOptions({
-  name: 'OperationManageList',
+  name: 'TaskManageList',
 });
 
 const operationBtnMap: Record<string, OperationBtnType> = {
diff --git a/src/views/TaskManage/components/TaskDetailView.vue b/src/views/TaskManage/components/TaskDetailView.vue
index ae79be2..95537bd 100644
--- a/src/views/TaskManage/components/TaskDetailView.vue
+++ b/src/views/TaskManage/components/TaskDetailView.vue
@@ -10,7 +10,7 @@
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
-          <ProFormCol>
+          <!-- <ProFormCol>
             <ProFormColItem :span="12">
               <ProFormItemV2 label="闇�姹備汉鏁�:" prop="needPeopleNumber">
                 <ProFormInputNumber
@@ -24,7 +24,7 @@
                 ></ProFormInputNumber>
               </ProFormItemV2>
             </ProFormColItem>
-          </ProFormCol>
+          </ProFormCol> -->
           <ProFormCol>
             <ProFormColItem :span="12">
               <ProFormItemV2 label="鏈嶅姟璐�:" prop="billingMethod">
@@ -197,7 +197,7 @@
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
-          <ProFormCol>
+          <!-- <ProFormCol>
             <ProFormColItem :span="12">
               <ProFormItemV2 label="浠诲姟鎻忚堪:" prop="description">
                 <ProFormTextArea
@@ -207,7 +207,7 @@
                 />
               </ProFormItemV2>
             </ProFormColItem>
-          </ProFormCol>
+          </ProFormCol> -->
           <ProFormCol>
             <ProFormColItem :span="12">
               <ProFormItemV2 label="浠诲姟鏃堕棿:" prop="time">
@@ -221,7 +221,7 @@
               </ProFormItemV2>
             </ProFormColItem>
           </ProFormCol>
-          <ProFormCol>
+          <!-- <ProFormCol>
             <ProFormColItem :span="12">
               <ProFormItemV2
                 label="鎶ュ悕鏃堕棿:"
@@ -237,8 +237,8 @@
                 ></ProFormDatePicker>
               </ProFormItemV2>
             </ProFormColItem>
-          </ProFormCol>
-          <ProFormCol>
+          </ProFormCol> -->
+          <!-- <ProFormCol>
             <ProFormColItem :span="12">
               <ProFormItemV2
                 label="楠屾敹鏂瑰紡:"
@@ -262,7 +262,7 @@
               :value-enum="EnumEnterpriseWalletAccessTextForSettle"
               placeholder="璇烽�夋嫨缁撶畻鏂瑰紡"
             ></ProFormSelect>
-          </ProFormItemV2>
+          </ProFormItemV2> -->
         </ProForm>
         <template #footer>
           <el-button @click="handleBack">鍏抽棴</el-button>
diff --git a/src/views/UserManage/UserManageList.vue b/src/views/UserManage/UserManageList.vue
new file mode 100644
index 0000000..68f07f2
--- /dev/null
+++ b/src/views/UserManage/UserManageList.vue
@@ -0,0 +1,153 @@
+<template>
+  <LoadingLayout :loading="state.loading">
+    <AppContainer>
+      <ProTableQueryFilterBar @on-reset="reset">
+        <template #query>
+          <QueryFilterItem tip-content="娉ㄥ唽鏃堕棿">
+            <FieldDatePicker
+              v-model="extraParamState.time"
+              type="daterange"
+              range-separator="~"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+              clearable
+              @change="getList()"
+            ></FieldDatePicker>
+          </QueryFilterItem>
+          <QueryFilterItem>
+            <SearchInput
+              v-model="extraParamState.keywords"
+              style="width: 260px"
+              placeholder="ID/鐢ㄦ埛鍚�/鎵嬫満鍙�"
+              @on-click-search="getList"
+            >
+            </SearchInput>
+          </QueryFilterItem>
+        </template>
+      </ProTableQueryFilterBar>
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+      </ProTableV2>
+    </AppContainer>
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+  ProTableQueryFilterBar,
+  OperationBtnType,
+  ProTableV2,
+  SearchInput,
+  LoadingLayout,
+  AppContainer,
+  QueryFilterItem,
+  useTable,
+  FieldDatePicker,
+} from '@bole-core/components';
+import { useAccess } from '@/hooks';
+import { ModelValueType } from 'element-plus';
+import * as taskServices from '@/services/api/task';
+import { EnumTaskRecommendStatusText } from '@/constants';
+import { format } from '@/utils';
+import { Message } from '@bole-core/core';
+
+defineOptions({
+  name: 'UserManageList',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+  enableBtn: {
+    emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => setTaskInfoRecommendStatus(row) },
+    extraProps: {
+      hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.Yes,
+    },
+  },
+  disableBtn: {
+    emits: { onClick: (row: API.GetTaskInfosQueryResultItem) => setTaskInfoRecommendStatus(row) },
+    extraProps: {
+      hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.No,
+    },
+  },
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+  operationBtnMap,
+});
+
+const router = useRouter();
+const BaseState = {
+  loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+  await getList();
+  state.loading = false;
+});
+
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetTaskInfosQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        keywords: extraParamState.keywords,
+        releaseStatus: extraParamState.releaseStatus,
+        recommendStatus: extraParamState.recommendStatus,
+        beginTime: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+        endTime: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+      };
+      let res = await taskServices.getTaskInfos(params, {
+        showLoading: !state.loading,
+      });
+      return res;
+    } catch (error) {}
+  },
+  {
+    defaultExtraParams: {
+      keywords: '',
+      releaseStatus: '' as any as EnumTaskReleaseStatus,
+      recommendStatus: '' as any as EnumTaskRecommendStatus,
+      time: [] as unknown as ModelValueType,
+      orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
+    },
+    columnsRenderProps: {
+      endTime: { type: 'date', format: 'YYYY-MM-DD' },
+      recommendStatus: { type: 'enum', valueEnum: EnumTaskRecommendStatusText },
+    },
+  }
+);
+
+async function setTaskInfoRecommendStatus(row: API.GetTaskInfosQueryResultItem) {
+  try {
+    await Message.tipMessage(
+      `纭瑕�${row.recommendStatus === EnumTaskRecommendStatus.Yes ? '鍙栨秷' : '鎺ㄨ崘'}鍚楋紵`
+    );
+    let params: API.SetTaskInfoRecommendStatusCommand = {
+      ids: [row.id],
+      recommendStatus:
+        row.recommendStatus === EnumTaskRecommendStatus.Yes
+          ? EnumTaskRecommendStatus.No
+          : EnumTaskRecommendStatus.Yes,
+    };
+    let res = await taskServices.setTaskInfoRecommendStatus(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+
+function goDetail(row) {
+  router.push({ name: 'TaskManageDetail', params: { id: row?.id ?? '' } });
+}
+</script>

--
Gitblit v1.10.0