3548801c77665058c5eb8e055763cf2c3ecc18dd..336441bd3d811427f957654f12936c4cab9b4c1a
2025-11-28 zhengyiming
fix: bug
336441 对比 | 目录
2025-11-28 zhengyiming
fix: bug
8f41c1 对比 | 目录
2025-11-28 zhengyiming
fix: s
4b6054 对比 | 目录
2025-11-28 zhengyiming
fix: s
07af1d 对比 | 目录
2025-11-28 zhengyiming
fix: s
a2e10d 对比 | 目录
2025-11-28 zhengyiming
fix: s
094afe 对比 | 目录
2025-11-28 zhengyiming
fix: s
e74287 对比 | 目录
28个文件已修改
445 ■■■■ 已修改文件
.eslintrc-auto-import.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
auto-imports.d.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pnpm-lock.yaml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/customer.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/electronSign.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/enum.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/task.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/syncDatabase.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/common/common.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AgreementManage/AgreementManageList.vue 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/AgreementManage/components/TemplateAddDialog.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CustomerManage/CustomerManage.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CustomerManage/components/AddOrEditCustomerView.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/CheckManage.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/CheckReceiveTaskDetail.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/EmploymentManageArrange.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EmploymentManage/EmploymentSignList.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FinanceManage/components/DistributionDetailView.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/FlexJobManage.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/components/AddInternalStaffDialog.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/components/StaffDetailInfoView.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/components/StaffInfoDialog.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/FlexJobManage/hooks/index.ts 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ServiceChargeManage/BalanceManage.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/ServiceChargeManage/ServiceChargeDetail.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.eslintrc-auto-import.json
@@ -3,6 +3,8 @@
    "AppLocalConfig": true,
    "AppType": true,
    "AreaType": true,
    "AutoSignPowerAttorneyTempUrl": true,
    "BooleanOptions": true,
    "CategoryCode": true,
    "CertificateTypeCodeEnum": true,
    "CommonAnnexTableColumns": true,
@@ -30,6 +32,8 @@
    "EnumDbAuditOperate": true,
    "EnumElectronSignAccess": true,
    "EnumElectronSignVerifyType": true,
    "EnumEnterpriseCooperationServiceFeeCollectType": true,
    "EnumEnterpriseCooperationServiceFeeCollectTypeText": true,
    "EnumEnterpriseCooperationSignStatus": true,
    "EnumEnterpriseCooperationSignStatusText": true,
    "EnumEnterpriseCooperationStatus": true,
@@ -141,6 +145,7 @@
    "EnumWeChatPayApplymentSubjectType": true,
    "EnumWeChatPaySettlementModifyVerifyResult": true,
    "EnumWeChatPaySettlementVerifyResult": true,
    "EnumWxmpSubscribMessageTemplate": true,
    "ExtractDefaultPropTypes": true,
    "ExtractPropTypes": true,
    "ExtractPublicPropTypes": true,
auto-imports.d.ts
@@ -9,6 +9,8 @@
  const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig']
  const AppType: typeof import('./src/constants/app')['AppType']
  const AreaType: typeof import('./src/constants/enum')['AreaType']
  const AutoSignPowerAttorneyTempUrl: typeof import('./src/constants/electronSign')['AutoSignPowerAttorneyTempUrl']
  const BooleanOptions: typeof import('./src/constants/enum')['BooleanOptions']
  const CategoryCode: typeof import('./src/constants/dic')['CategoryCode']
  const CertificateTypeCodeEnum: typeof import('./src/constants/dic')['CertificateTypeCodeEnum']
  const CommonAnnexTableColumns: typeof import('./src/constants/common')['CommonAnnexTableColumns']
@@ -33,6 +35,8 @@
  const EnumDbAuditOperate: typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']
  const EnumElectronSignAccess: typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']
  const EnumElectronSignVerifyType: typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']
  const EnumEnterpriseCooperationServiceFeeCollectType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationServiceFeeCollectType']
  const EnumEnterpriseCooperationServiceFeeCollectTypeText: typeof import('./src/constants/customer')['EnumEnterpriseCooperationServiceFeeCollectTypeText']
  const EnumEnterpriseCooperationSignStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationSignStatus']
  const EnumEnterpriseCooperationSignStatusText: typeof import('./src/constants/customer')['EnumEnterpriseCooperationSignStatusText']
  const EnumEnterpriseCooperationStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationStatus']
@@ -148,6 +152,7 @@
  const EnumWeChatPayApplymentSubjectType: typeof import('./src/constants/apiEnum')['EnumWeChatPayApplymentSubjectType']
  const EnumWeChatPaySettlementModifyVerifyResult: typeof import('./src/constants/apiEnum')['EnumWeChatPaySettlementModifyVerifyResult']
  const EnumWeChatPaySettlementVerifyResult: typeof import('./src/constants/apiEnum')['EnumWeChatPaySettlementVerifyResult']
  const EnumWxmpSubscribMessageTemplate: typeof import('./src/constants/apiEnum')['EnumWxmpSubscribMessageTemplate']
  const FastButtonMap: typeof import('./src/constants/module')['FastButtonMap']
  const FastColumnList: typeof import('./src/constants/module')['FastColumnList']
  const FastDataButtonList: typeof import('./src/constants/module')['FastDataButtonList']
@@ -304,7 +309,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, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCooperationWalletTransactionStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseEmployeeSource, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskApplyStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetSettlementTasksQuerySupplierPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCooperationSignStatus, EnumEnterpriseCooperationStatus, EnumEnterpriseCooperationWalletTransactionStatus, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseEmployeeSource, EnumEnterpriseRealMethod, EnumEnterpriseType, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetArrangeTaskUsersQueryApplyStatus, EnumGetCheckReceiveTaskCheckInUsersQueryStatus, EnumGetCheckReceiveTasksQueryResultItemCheckStatus, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskApplyStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetSettlementTasksQuerySupplierPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
  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, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskApplyStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, 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, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskApplyStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserApplyStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckHistoryType, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, EnumWeChatPayApplymentBankAccountType, EnumWeChatPayApplymentCertType, EnumWeChatPayApplymentContactType, EnumWeChatPayApplymentFinanceType, EnumWeChatPayApplymentIdDocType, EnumWeChatPayApplymentIdHolderType, EnumWeChatPayApplymentSalesScenesType, EnumWeChatPayApplymentState, EnumWeChatPayApplymentSubjectType, EnumWeChatPaySettlementModifyVerifyResult, EnumWeChatPaySettlementVerifyResult, EnumWxmpSubscribMessageTemplate, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetSettlementTasksQueryPaymentStatus, GetSettlementTasksQuerySupplierPaymentStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
  import('./src/constants/apiEnum')
  // @ts-ignore
  export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
@@ -343,6 +348,8 @@
    readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']>
    readonly AppType: UnwrapRef<typeof import('./src/constants/app')['AppType']>
    readonly AreaType: UnwrapRef<typeof import('./src/constants/enum')['AreaType']>
    readonly AutoSignPowerAttorneyTempUrl: UnwrapRef<typeof import('./src/constants/electronSign')['AutoSignPowerAttorneyTempUrl']>
    readonly BooleanOptions: UnwrapRef<typeof import('./src/constants/enum')['BooleanOptions']>
    readonly CategoryCode: UnwrapRef<typeof import('./src/constants/dic')['CategoryCode']>
    readonly CertificateTypeCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['CertificateTypeCodeEnum']>
    readonly CommonAnnexTableColumns: UnwrapRef<typeof import('./src/constants/common')['CommonAnnexTableColumns']>
@@ -366,6 +373,8 @@
    readonly EnumDbAuditOperate: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDbAuditOperate']>
    readonly EnumElectronSignAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']>
    readonly EnumElectronSignVerifyType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']>
    readonly EnumEnterpriseCooperationServiceFeeCollectType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationServiceFeeCollectType']>
    readonly EnumEnterpriseCooperationServiceFeeCollectTypeText: UnwrapRef<typeof import('./src/constants/customer')['EnumEnterpriseCooperationServiceFeeCollectTypeText']>
    readonly EnumEnterpriseCooperationSignStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationSignStatus']>
    readonly EnumEnterpriseCooperationSignStatusText: UnwrapRef<typeof import('./src/constants/customer')['EnumEnterpriseCooperationSignStatusText']>
    readonly EnumEnterpriseCooperationStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCooperationStatus']>
@@ -477,6 +486,7 @@
    readonly EnumWeChatPayApplymentSubjectType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumWeChatPayApplymentSubjectType']>
    readonly EnumWeChatPaySettlementModifyVerifyResult: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumWeChatPaySettlementModifyVerifyResult']>
    readonly EnumWeChatPaySettlementVerifyResult: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumWeChatPaySettlementVerifyResult']>
    readonly EnumWxmpSubscribMessageTemplate: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumWxmpSubscribMessageTemplate']>
    readonly FastButtonMap: UnwrapRef<typeof import('./src/constants/module')['FastButtonMap']>
    readonly FastColumnList: UnwrapRef<typeof import('./src/constants/module')['FastColumnList']>
    readonly FastDataButtonList: UnwrapRef<typeof import('./src/constants/module')['FastDataButtonList']>
package.json
@@ -19,7 +19,7 @@
  "dependencies": {
    "@bole-12333/chat-kit": "latest",
    "@bole-12333/customer-chat": "latest",
    "@bole-core/components": "^1.3.17",
    "@bole-core/components": "^1.3.26",
    "@bole-core/core": "^1.0.8",
    "@bole-core/pretty-layout": "latest",
    "@bole-core/sass-utils": "latest",
pnpm-lock.yaml
@@ -20,8 +20,8 @@
    specifier: latest
    version: 1.0.3(@bole-12333/chat-kit@1.0.1)(@tiptap/core@2.1.13)(@tiptap/extension-document@2.1.13)(@tiptap/extension-image@2.1.13)(@tiptap/extension-mention@2.1.13)(@tiptap/extension-paragraph@2.1.13)(@tiptap/extension-placeholder@2.1.13)(@tiptap/extension-text@2.1.13)(@tiptap/pm@2.1.13)(@tiptap/suggestion@2.1.13)(dayjs@1.11.6)(vue@3.5.11)
  '@bole-core/components':
    specifier: ^1.3.17
    version: 1.3.17(@bole-core/core@1.0.8)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.11.2)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11)
    specifier: ^1.3.26
    version: 1.3.26(@bole-core/core@1.0.8)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.11.2)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11)
  '@bole-core/core':
    specifier: ^1.0.8
    version: 1.0.8(@ywwlmm/openapi@0.0.3)(ali-oss@6.21.0)(axios@1.7.7)(dayjs@1.11.6)(element-plus@2.11.2)(file-saver@2.0.5)(jszip@3.10.1)(lodash@4.17.21)(senior-request@1.0.10)(vue-router@4.4.5)(vue@3.5.11)(xlsx-style@0.8.13)(xlsx@0.18.5)
@@ -1892,8 +1892,8 @@
      vue: 3.5.11(typescript@4.8.4)
    dev: false
  /@bole-core/components@1.3.17(@bole-core/core@1.0.8)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.11.2)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11):
    resolution: {integrity: sha512-LNA8MDqa0hE6y4GG2YEn/F9Aj6kG2NfbE33/QJKrD+KhJULtt6v5bdsSTu10nUQFCqFwZtngYkMAcmDvU98bqw==}
  /@bole-core/components@1.3.26(@bole-core/core@1.0.8)(@bole-core/sass-utils@0.0.1)(@element-plus/icons-vue@2.3.1)(@tanstack/vue-query@4.37.1)(@videojs-player/vue@1.0.0)(@vueuse/core@11.1.0)(@vueuse/shared@11.1.0)(dayjs@1.11.6)(element-plus@2.11.2)(lodash@4.17.21)(mitt@3.0.0)(senin-help@1.0.5)(senin-vue@1.0.4)(video.js@7.20.3)(vue-component-type-helpers@2.1.6)(vue@3.5.11):
    resolution: {integrity: sha512-R9W/0i7QujnJwsqegigM3fqVghiviEHhH9EYmKdeir5OUQWoUHpEOZ5X81QRWS/TrtZonnPWHGG17q+S9gmkKA==}
    peerDependencies:
      '@bole-core/core': '*'
      '@bole-core/sass-utils': '*'
@@ -3698,7 +3698,7 @@
  /@tencentcloud/call-engine-js@3.3.0:
    resolution: {integrity: sha512-li4i97RSMM0ZlkK+1x1veRp1sy1YLV/rUNQ1iG8TodHZ4kwA97NnLNBTfvXro3rpJtPVuKIZV6Gp4N+kXy4rOg==}
    dependencies:
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      core-js: 3.38.1
      eventemitter3: 4.0.7
      rtc-detect: 0.0.5
@@ -3710,7 +3710,7 @@
    resolution: {integrity: sha512-2f7raW37qG762pS8PQ+bobAjDy0dh6dIMCuyXcVIGJMAEpw9JkYdYYN/1J+I/hHqXboELhYTYBvxU4XvD0H7kw==}
    dependencies:
      '@tencentcloud/call-engine-js': 3.3.0
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      '@tencentcloud/tui-core': 2.5.1
      '@vue/composition-api': 1.7.2(vue@3.5.11)
    transitivePeerDependencies:
@@ -3721,7 +3721,7 @@
    resolution: {integrity: sha512-AlYdkzKDk5QMEAhZUR4MBnkD91Xou82KO/EZfO0fr5c2jrUKI9N0D8VpvMWWtPCGWO2hNrbeLAhdUxwcax++1g==}
    dependencies:
      '@tencentcloud/call-engine-js': 3.3.0
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      '@tencentcloud/tui-core': 2.5.1
    dev: false
@@ -3736,14 +3736,14 @@
    resolution: {integrity: sha512-SeUPs5Ow/Y+spAlhzu7HeQY9Zjg4BWMl64JbLGrFv6M389hLOhL5ZFmHb9eqkUIggIQoY5Rrkn2A23CxMWUT/w==}
    dependencies:
      '@tencentcloud/call-engine-js': 3.3.0
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      '@tencentcloud/tui-core': 2.5.1
    dev: false
  /@tencentcloud/chat-uikit-engine@2.5.7:
    resolution: {integrity: sha512-2C2x84k7D2cCvSQQlxo4Erw1EYrYf0BTz7IJuqkA99ac91ZwO8vNZEtQbd7wF1h7adNMXoxESCjaR24iDBTDhg==}
    dependencies:
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      tim-profanity-filter-plugin: 1.1.0
      tim-upload-plugin: 1.4.3
    dev: false
@@ -3785,14 +3785,14 @@
      - vue
    dev: false
  /@tencentcloud/chat@3.5.9:
    resolution: {integrity: sha512-DRCF5o1cZez1xjIFC8UmXE3NpWYfYWQ4+yjKtuOXk09N28dJSfdwYw2jyfJ2N0DWPB6icVCCxh2MDP+sp4HLpw==}
  /@tencentcloud/chat@3.6.1:
    resolution: {integrity: sha512-YKftPfO2Mzo/RhSmUq2806FrB2ZB9AiuVmhHupxXtG6g8RMHTJICQulp6z+3bBzU7qko9BancR8rtvfdpDTpmQ==}
    dev: false
  /@tencentcloud/tui-core@2.0.0:
    resolution: {integrity: sha512-KBwDFWFV+IGtAZ82uCjRi891nMQcAen0wZHdPUUTSNHaWGjYiwOAHD7yw4gC1c5DYqVYMa3tVA7bSBd/hKVZKg==}
    dependencies:
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      tim-profanity-filter-plugin: 0.9.0
      tim-upload-plugin: 1.3.0
    dev: false
@@ -3800,7 +3800,7 @@
  /@tencentcloud/tui-core@2.5.1:
    resolution: {integrity: sha512-aXZG0INkV9WvFUHgmVQRibCs10r2u/oVb8qAEjW3maytBiLWOJQiK7dzshK9fnfadJAWQ027cpR8lCKz5r5Tlw==}
    dependencies:
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      tim-profanity-filter-plugin: 1.1.0
      tim-upload-plugin: 1.4.3
    dev: false
@@ -15031,7 +15031,7 @@
  /tuicall-engine-webrtc@3.1.7:
    resolution: {integrity: sha512-MRye9/x/8Gy5aRAfEACLtGhK5RcBLAev7cgCGi7OLNt0Uj28mEJkt1tHs4p7xTQiQj6vcB+7OVTdsxuSq7EmOA==}
    dependencies:
      '@tencentcloud/chat': 3.5.9
      '@tencentcloud/chat': 3.6.1
      rtc-ai-denoiser: 1.1.7
      trtc-cloud-js-sdk: 2.9.3
    dev: false
src/constants/apiEnum.ts
@@ -101,6 +101,14 @@
  Face = 20,
}
/** 服务费收取方式 */
export enum EnumEnterpriseCooperationServiceFeeCollectType {
  /**按比例 */
  Rate = 10,
  /**单人单次 */
  SingleTime = 20,
}
/** 签约状态 */
export enum EnumEnterpriseCooperationSignStatus {
  /**未签约 */
@@ -447,8 +455,10 @@
  UserServerEnterpriseEmployee = 23,
  /**电子签 */
  ElectronSignServerElectronSign = 24,
  /**电子签 */
  /**短信 */
  ToolServerSms = 25,
  /**小程序 */
  ToolServerWxmp = 26,
}
/** 资源请求方式 */
@@ -887,6 +897,22 @@
  VERIFYING = 2,
}
/** 微信小程序订阅消息模板 */
export enum EnumWxmpSubscribMessageTemplate {
  /**支付成功提醒  结算完成后向承揽端管理员推送 */
  SettlementCompletedToSupplier = 0,
  /**报酬结算审核结果通知  甲方结算确认后向承揽端管理员推送 */
  SettlementAuditCompletedToSupplier = 1,
  /**工资发放通知  结算完成后向C端人员通知 */
  SettlementReceiveCompletedToUser = 2,
  /**报名录用结果通知  被录用后向C端人员通知 */
  HireCompletedToUser = 3,
  /**排班成功通知  排班后向C端人员通知 */
  ArrangeCompletedToUser = 4,
  /**测试 */
  Test = 5,
}
/** 我的报名分页列表-状态 */
export enum GetPersonalApplyTaskInfosQueryStatus {
  /**待确认 */
src/constants/customer.ts
@@ -7,3 +7,8 @@
  [EnumEnterpriseCooperationSignStatus.None]: '未签约',
  [EnumEnterpriseCooperationSignStatus.Completed]: '已签约',
};
export const EnumEnterpriseCooperationServiceFeeCollectTypeText = {
  [EnumEnterpriseCooperationServiceFeeCollectType.Rate]: '按比例',
  [EnumEnterpriseCooperationServiceFeeCollectType.SingleTime]: '单人单次',
};
src/constants/electronSign.ts
@@ -8,3 +8,5 @@
  width: number;
  height: number;
};
export const AutoSignPowerAttorneyTempUrl = `https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/FlexJob/temp/%E3%80%90%E5%85%AC%E5%AF%B9%E5%85%AC%E3%80%91%E7%94%B5%E5%AD%90%E7%AD%BE%E5%90%8D%E6%8E%88%E6%9D%83%E4%B9%A6%EF%BC%88%E4%BB%A3%E4%B8%BA%E7%AD%BE%E7%BD%B2%26%E8%87%AA%E5%8A%A8%E7%AD%BE%EF%BC%89-V4-20220315.docx`;
src/constants/enum.ts
@@ -19,3 +19,8 @@
   */
  Town,
}
export const BooleanOptions = [
  { label: '是', value: true },
  { label: '否', value: false },
];
src/constants/task.ts
@@ -174,7 +174,7 @@
export const EnumTaskCheckReceiveMethodText = {
  [EnumTaskCheckReceiveMethod.CheckIn]: '发单签到',
  [EnumTaskCheckReceiveMethod.Submit]: '自主提交',
  [EnumTaskCheckReceiveMethod.Submit]: '灵工提交',
};
export const EnumTaskSettlementAuditStatusText = {
src/services/api/syncDatabase.ts
@@ -2,6 +2,21 @@
// @ts-ignore
import { request } from '@/utils/request';
/** 同步数据库 POST /api/common/syncDatabase/sendWxmpSubscribMessage */
export async function sendWxmpSubscribMessage(
  body: API.SendWxmpSubscribMessageCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/common/syncDatabase/sendWxmpSubscribMessage', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 同步数据库 POST /api/common/syncDatabase/syncDatabase */
export async function syncDatabase(body: API.SyncDatabaseCommand, options?: API.RequestConfig) {
  return request<number>('/api/common/syncDatabase/syncDatabase', {
src/services/api/typings.d.ts
@@ -875,6 +875,13 @@
    Face = 20,
  }
  enum EnumEnterpriseCooperationServiceFeeCollectType {
    /**按比例 */
    Rate = 10,
    /**单人单次 */
    SingleTime = 20,
  }
  enum EnumEnterpriseCooperationSignStatus {
    /**未签约 */
    None = 10,
@@ -1191,8 +1198,10 @@
    UserServerEnterpriseEmployee = 23,
    /**电子签 */
    ElectronSignServerElectronSign = 24,
    /**电子签 */
    /**短信 */
    ToolServerSms = 25,
    /**小程序 */
    ToolServerWxmp = 26,
  }
  enum EnumResourceMethod {
@@ -1590,6 +1599,21 @@
    VERIFY_FAIL = 1,
    /**验证中,商户可发起提现尝试 */
    VERIFYING = 2,
  }
  enum EnumWxmpSubscribMessageTemplate {
    /**支付成功提醒  结算完成后向承揽端管理员推送 */
    SettlementCompletedToSupplier = 0,
    /**报酬结算审核结果通知  甲方结算确认后向承揽端管理员推送 */
    SettlementAuditCompletedToSupplier = 1,
    /**工资发放通知  结算完成后向C端人员通知 */
    SettlementReceiveCompletedToUser = 2,
    /**报名录用结果通知  被录用后向C端人员通知 */
    HireCompletedToUser = 3,
    /**排班成功通知  排班后向C端人员通知 */
    ArrangeCompletedToUser = 4,
    /**测试 */
    Test = 5,
  }
  interface ExportEnterpriseBalanceDetailsCommand {
@@ -5761,6 +5785,11 @@
    signStatus?: EnumEnterpriseCooperationSignStatus;
    /** 合作协议 */
    cooperationAgreementUrl?: string;
    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
    /** 服务费 */
    serviceFeeRate?: number;
    /** 发票税点 */
    invoiceTaxPointRate?: number;
    /** 用户Id */
    userId?: string;
    /** 账号 */
@@ -5796,6 +5825,11 @@
    cityContent?: string;
    cooperationStatus?: EnumEnterpriseCooperationStatus;
    signStatus?: EnumEnterpriseCooperationSignStatus;
    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
    /** 服务费 */
    serviceFeeRate?: number;
    /** 发票税点 */
    invoiceTaxPointRate?: number;
  }
  interface GetPersonalApplyTaskInfosQuery {
@@ -6650,6 +6684,8 @@
    auditStatus?: EnumTaskSettlementAuditStatus;
    /** 操作人 */
    operator?: string;
    /** 创建人 */
    createdUser?: string;
  }
  interface GetSettlementTasksQueryResultObjectData {
@@ -7661,6 +7697,10 @@
  }
  interface ImportEnterpriseEmployeesCommandResultError {
    /** 协议起始 */
    contractBegin?: string;
    /** 协议终止 */
    contractEnd?: string;
    /** 错误信息 */
    errorMessage?: string;
    /** 姓名 */
@@ -7669,10 +7709,6 @@
    contactPhoneNumber?: string;
    /** 身份证号 */
    identity?: string;
    /** 协议起始 */
    contractBegin?: string;
    /** 协议终止 */
    contractEnd?: string;
  }
  interface ImportTaskSettlementOrderRostersCommand {
@@ -8397,6 +8433,11 @@
    signStatus?: EnumEnterpriseCooperationSignStatus;
    /** 合作协议 */
    cooperationAgreementUrl?: string;
    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
    /** 服务费 */
    serviceFeeRate?: number;
    /** 发票税点 */
    invoiceTaxPointRate?: number;
    /** 账号 */
    userName?: string;
    /** 密码(选填 填了就改不填就不改) */
@@ -8702,6 +8743,18 @@
    phoneNumber: string;
  }
  interface SendWxmpSubscribMessageCommand {
    /** 小程序编号 */
    wxmpCode: string;
    template: EnumWxmpSubscribMessageTemplate;
    /** 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转 */
    page?: string;
    /** 接收者(用户)的 openid */
    touser: string;
    /** 模板内容,格式形如{ "phrase3": { "value": "审核通过" }, "name1": { "value": "订阅" }, "date2": { "value": "2019-12-25 09:42" } } */
    data: any;
  }
  interface SetDictionaryDataIsDisabledCommand {
    ids?: string[];
    /** 是否已禁用 */
src/utils/common/common.ts
@@ -162,7 +162,7 @@
  return result;
}
export const hiddenIDNumberForEnd6 = (realIDNumber: string) => {
export const hiddenIDNumberForEnd4 = (realIDNumber: string) => {
  if (!realIDNumber) return '';
  return realIDNumber.replace(/^(\d+)(.{6})$/, '$1******');
  return realIDNumber.replace(/^(\d+)(.{4})$/, '$1****');
};
src/views/AgreementManage/AgreementManageList.vue
@@ -39,7 +39,7 @@
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
            type="primary"
            @click="handleAdd()"
            @click="openDialog()"
            >新增模板</el-button
          >
        </template>
@@ -78,7 +78,13 @@
  bolePreview,
} from '@bole-core/components';
import { EnumContractTemplateStatus, EnumContractTemplateStatusText } from '@/constants';
import { convertPdfToImage, downloadFileByUrl, format, setOSSLink } from '@/utils';
import {
  convertApi2FormUrlOnlyOne,
  convertPdfToImage,
  downloadFileByUrl,
  format,
  setOSSLink,
} from '@/utils';
import { ModelValueType } from 'element-plus';
import * as electronSignServices from '@/services/api/electronSign';
import TemplateAddDialog from './components/TemplateAddDialog.vue';
@@ -93,6 +99,14 @@
  checkBtn: {
    emits: {
      onClick: (role) => handleCheck(role),
    },
    extraProps: {
      hide: (row) => row.status !== EnumContractTemplateStatus.Completed,
    },
  },
  editBtn: {
    emits: {
      onClick: (role) => openDialog(role),
    },
    extraProps: {
      hide: (row) => row.status !== EnumContractTemplateStatus.Completed,
@@ -183,20 +197,67 @@
  }
);
const { dialogProps, handleAdd, editForm } = useFormDialog({
async function openDialog(row?: API.GetEnterpriseContractTemplatesQueryResultItem) {
  try {
    if (row) {
      let detail = await electronSignServices.getContractTemplate({ id: row.id });
      handleTemplateEdit({
        id: row.id,
        templateId: row.templateId,
        name: row.name,
        code: row.code,
        url: convertApi2FormUrlOnlyOne(row.file),
        access: row.access,
        isEnterpriseUserCreated: detail.isEnterpriseUserCreated,
        templateEditData: detail.templateEditData,
        isAutoSign: detail.isAutoSign ?? false,
        autoSignPowerAttorneyUrl: convertApi2FormUrlOnlyOne(detail.autoSignPowerAttorneyUrl),
        enterpriseId: detail.enterpriseId,
        customContents: detail.customContents.map((x) => x.name),
      });
    } else {
      handleTemplateAdd();
    }
  } catch (error) {}
}
const {
  dialogProps,
  handleAdd: handleTemplateAdd,
  handleEdit: handleTemplateEdit,
  editForm,
} = useFormDialog({
  onConfirm: handleAddOrEdit,
  defaultFormParams: {
    id: '',
    templateId: '',
    name: '',
    code: '',
    url: [] as UploadUserFile[],
    access: '' as any as EnumElectronSignAccess,
    isEnterpriseUserCreated: false,
    templateEditData: '',
    enterpriseId: '',
    isAutoSign: false,
    autoSignPowerAttorneyUrl: [] as UploadUserFile[],
    customContents: [] as string[],
  },
});
async function handleAddOrEdit() {
  try {
    let isEdit = !!editForm.id;
    let pdfToImage = await convertPdfToImage(editForm.url?.[0].url);
    let params: API.SaveContractTemplateCommand = {
      name: editForm.name,
      file: editForm.url[0]?.path ?? '',
      enterpriseId: editForm.enterpriseId,
      code: editForm.code,
      access: editForm.access,
      templateId: editForm.templateId,
      autoSignPowerAttorneyUrl: editForm.autoSignPowerAttorneyUrl?.[0]?.path ?? '',
      templateEditData: JSON.stringify(
        pdfToImage.map(
          (x) =>
@@ -207,7 +268,16 @@
            } as TemplateEditDataItem)
        )
      ),
      customContents: editForm.customContents,
    };
    if (editForm.access === EnumElectronSignAccess.BestSign) {
      params.isAutoSign = editForm.isAutoSign;
    } else {
      params.isAutoSign = false;
    }
    if (isEdit) {
      params.id = editForm.id;
    }
    let res = await electronSignServices.saveContractTemplate(params);
    if (res) {
      Message.successMessage('保存成功');
src/views/AgreementManage/components/TemplateAddDialog.vue
@@ -2,7 +2,8 @@
  <ProDialog title="新增模板" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="form" ref="dialogForm" label-width="100px">
      <ProFormItemV2 label="模板名称:" prop="name" :check-rules="[{ message: '请输入模板名称' }]">
        <ProFormText v-model.trim="form.name" placeholder="请输入模板名称" :maxlength="32" > </ProFormText>
        <ProFormText v-model.trim="form.name" placeholder="请输入模板名称" :maxlength="32">
        </ProFormText>
      </ProFormItemV2>
      <ProFormItemV2
        label="上传模板:"
@@ -15,6 +16,27 @@
          :limitFileSize="10"
          accept="pdf"
        ></ProFormUpload>
      </ProFormItemV2>
      <ProFormItemV2 label="自动签:" prop="isAutoSign" required>
        <ProFormRadio v-model="form.isAutoSign" :value-enum="BooleanOptions"></ProFormRadio>
      </ProFormItemV2>
      <ProFormItemV2
        label="上传授权书:"
        prop="autoSignPowerAttorneyUrl"
        :check-rules="[{ message: '请上传授权书', type: 'upload' }]"
        v-if="form.isAutoSign"
      >
        <ProFormUpload
          v-model:file-url="form.autoSignPowerAttorneyUrl"
          :limit="1"
          :limitFileSize="10"
          accept="pdf,doc,docx,png,jpg,jpeg"
        >
          <div>
            <el-button icon="Upload">上传文件</el-button>
            <el-button type="primary" link @click.stop="handleDownload">下载授权书模板</el-button>
          </div>
        </ProFormUpload>
      </ProFormItemV2>
    </ProForm>
    <template #footer>
@@ -34,9 +56,11 @@
  ProFormUpload,
  ProFormText,
  UploadUserFile,
  ProFormRadio,
} from '@bole-core/components';
import { FormInstance } from 'element-plus';
import { max } from 'lodash';
import { BooleanOptions } from '@/constants';
import { downloadFileByUrl } from '@/utils';
defineOptions({
  name: 'TemplateAddDialog',
@@ -44,8 +68,11 @@
type Form = {
  title?: string;
  id: string;
  name: string;
  url: UploadUserFile[];
  isAutoSign: boolean;
  autoSignPowerAttorneyUrl: UploadUserFile[];
};
const visible = defineModel({ type: Boolean });
@@ -73,4 +100,8 @@
    }
  });
}
function handleDownload() {
  downloadFileByUrl(AutoSignPowerAttorneyTempUrl, '自动签授权书模板');
}
</script>
src/views/CustomerManage/CustomerManage.vue
@@ -146,6 +146,18 @@
    columnsRenderProps: {
      cooperationStatus: { type: 'enum', valueEnum: EnumEnterpriseCooperationStatusText },
      signStatus: { type: 'enum', valueEnum: EnumEnterpriseCooperationSignStatusText },
      serviceFeeCollectType: {
        type: 'enum',
        valueEnum: EnumEnterpriseCooperationServiceFeeCollectTypeText,
      },
      invoiceTaxPointRate: {
        formatter: (row: API.GetPartyAEnterprisesQueryResultItem) => {
          if (row.invoiceTaxPointRate) {
            return `${row.invoiceTaxPointRate}%`;
          }
          return '';
        },
      },
    },
  }
);
src/views/CustomerManage/components/AddOrEditCustomerView.vue
@@ -169,6 +169,53 @@
              </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>
        </ProForm>
      </ChunkCell>
      <ChunkCell title="账号信息">
@@ -272,6 +319,8 @@
  ProFormRadio,
  UploadUserFile,
  useFormDialog,
  ProFormSelect,
  ProFormInputNumber,
} from '@bole-core/components';
import { FormInstance } from 'element-plus';
import * as enterpriseServices from '@/services/api/enterprise';
@@ -281,6 +330,8 @@
import {
  EnumEnterpriseCooperationStatusText,
  EnumEnterpriseCooperationSignStatusText,
  EnumEnterpriseCooperationServiceFeeCollectTypeText,
  EnumEnterpriseCooperationServiceFeeCollectType,
} from '@/constants';
import {
  validateFormList,
@@ -335,6 +386,10 @@
  operatorPassword: '',
  userId: '',
  serviceFeeCollectType: '' as any as EnumEnterpriseCooperationServiceFeeCollectType,
  serviceFeeRate: null as any as number,
  invoiceTaxPointRate: null as any as number,
});
const { isLoading, refetch } = useQuery({
@@ -368,8 +423,21 @@
    form.userName = data.userName;
    form.userId = data.userId;
    form.serviceFeeCollectType = data.serviceFeeCollectType;
    form.serviceFeeRate = data.serviceFeeRate;
    form.invoiceTaxPointRate = data.invoiceTaxPointRate;
  },
  enabled: computed(() => !!id),
});
const serviceFeeCollectTypeUnit = computed(() => {
  if (!form.serviceFeeCollectType) {
    return '';
  } else {
    return form.serviceFeeCollectType === EnumEnterpriseCooperationServiceFeeCollectType.Rate
      ? '%'
      : '元/人';
  }
});
const {
@@ -478,6 +546,9 @@
      userName: form.userName,
      password: form.password,
      operatorPassword: form.operatorPassword,
      serviceFeeCollectType: form.serviceFeeCollectType,
      invoiceTaxPointRate: form.invoiceTaxPointRate,
      serviceFeeRate: form.serviceFeeRate,
    };
    if (isEdit) {
      params.id = id;
src/views/EmploymentManage/CheckManage.vue
@@ -57,7 +57,7 @@
} from '@bole-core/components';
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import { ModelValueType } from 'element-plus';
import { downloadFileByUrl, format, OrderUtils, setOSSLink } from '@/utils';
import { downloadFileByUrl, format, OrderUtils, setOSSLink, hiddenIDNumberForEnd4 } from '@/utils';
import { EnumTaskCheckReceiveStatusText } from '@/constants';
defineOptions({
src/views/EmploymentManage/CheckReceiveTaskDetail.vue
@@ -63,7 +63,7 @@
import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive';
import * as taskServices from '@/services/api/task';
import { useQuery } from '@tanstack/vue-query';
import { OrderUtils } from '@/utils';
import { hiddenIDNumberForEnd4, OrderUtils } from '@/utils';
import dayjs from 'dayjs';
import CheckManageDialog from './components/CheckManageDialog.vue';
import ManualCheckManageDialog from './components/ManualCheckManageDialog.vue';
@@ -167,6 +167,11 @@
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      lastSubmitTime: { type: 'date' },
      checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText },
      identity: {
        formatter: (row: API.GetCheckReceiveTaskQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);
src/views/EmploymentManage/EmploymentManageArrange.vue
@@ -57,6 +57,7 @@
  EnumTaskUserArrangeStatusText,
  EnumGetArrangeTaskUsersQueryApplyStatusText,
} from '@/constants';
import { hiddenIDNumberForEnd4 } from '@/utils';
defineOptions({
  name: 'EmploymentManageArrange',
@@ -137,6 +138,11 @@
    columnsRenderProps: {
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      arrangeStatus: { type: 'enum', valueEnum: EnumTaskUserArrangeStatusText },
      identity: {
        formatter: (row: API.GetArrangeTaskUsersQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);
src/views/EmploymentManage/EmploymentSignList.vue
@@ -47,7 +47,7 @@
import { Message } from '@bole-core/core';
import { EnumUserGender, EnumTaskUserHireStatusText } from '@/constants';
import StaffInfoDialog from '@/views/FlexJobManage/components/StaffInfoDialog.vue';
import { convertApi2FormUrlOnlyOne } from '@/utils';
import { convertApi2FormUrlOnlyOne, hiddenIDNumberForEnd4 } from '@/utils';
import * as taskUserServices from '@/services/api/taskUser';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
@@ -142,6 +142,11 @@
    columnsRenderProps: {
      gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
      hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText },
      identity: {
        formatter: (row: API.GetTaskUsersQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);
src/views/FinanceManage/components/DistributionDetailView.vue
@@ -81,6 +81,7 @@
      settlementTime: { type: 'date' },
      transDate: { type: 'date' },
      createdTime: { type: 'date' },
      settlementAuditTime: { type: 'date' },
    },
  }
);
src/views/FlexJobManage/FlexJobManage.vue
@@ -201,7 +201,12 @@
  EnumEnterpriseEmployeeSourceText,
} from '@/constants';
import { Message } from '@bole-core/core';
import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
import {
  convertApi2FormUrlOnlyOne,
  downloadFileByUrl,
  format,
  hiddenIDNumberForEnd4,
} from '@/utils';
import StaffInfoDialog from './components/StaffInfoDialog.vue';
import BatchImportDialog from './components/BatchImportDialog.vue';
import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
src/views/FlexJobManage/components/AddInternalStaffDialog.vue
@@ -34,7 +34,6 @@
              placeholder="请输入身份证号"
              v-model.trim="form.identity"
              @blur="handleCalculateAge"
              :formatter="formatterIdentity"
            ></ProFormText>
          </ProFormItemV2>
        </ProFormColItem>
@@ -103,6 +102,7 @@
          v-model:file-url="form.identityImg"
          :limitFileSize="10"
          :showTip="false"
          imgBlur
        >
        </ProFormImageUpload>
      </ProFormItemV2>
@@ -115,6 +115,7 @@
          v-model:file-url="form.identityBackImg"
          :limitFileSize="10"
          :showTip="false"
          imgBlur
        >
        </ProFormImageUpload>
      </ProFormItemV2>
@@ -144,7 +145,7 @@
  ProFormInputNumber,
  ProFormDatePicker,
} from '@bole-core/components';
import { calculateAge, deepClone, format, hiddenIDNumberForEnd6 } from '@/utils';
import { calculateAge, deepClone, format, hiddenIDNumberForEnd4 } from '@/utils';
import { EnumUserGender, EnumUserGenderTextForPerson } from '@/constants';
import { BoleRegExp } from '@bole-core/core';
@@ -219,6 +220,6 @@
}
function formatterIdentity(value: string) {
  return hiddenIDNumberForEnd6(value);
  return hiddenIDNumberForEnd4(value);
}
</script>
src/views/FlexJobManage/components/StaffDetailInfoView.vue
@@ -44,10 +44,10 @@
      </ProFormColItem>
    </ProFormCol>
    <ProFormItemV2 label="身份证正面:" prop="identityImg">
      <ProFormImageUpload v-model:file-url="detail.identityImg"> </ProFormImageUpload>
      <ProFormImageUpload v-model:file-url="detail.identityImg" imgBlur> </ProFormImageUpload>
    </ProFormItemV2>
    <ProFormItemV2 label="身份证反面:" prop="identityBackImg">
      <ProFormImageUpload v-model:file-url="detail.identityBackImg"> </ProFormImageUpload>
      <ProFormImageUpload v-model:file-url="detail.identityBackImg" imgBlur> </ProFormImageUpload>
    </ProFormItemV2>
  </ProForm>
</template>
@@ -64,7 +64,7 @@
  ProFormRadio,
  UploadUserFile,
} from '@bole-core/components';
import { convertApi2FormUrlOnlyOne, format, hiddenIDNumberForEnd6 } from '@/utils';
import { convertApi2FormUrlOnlyOne, format, hiddenIDNumberForEnd4 } from '@/utils';
import { useQuery } from '@tanstack/vue-query';
import { EnumUserGender, EnumUserGenderTextForPerson } from '@/constants';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
@@ -97,7 +97,7 @@
  },
  onSuccess(data) {
    detail.name = data.name;
    detail.identity = hiddenIDNumberForEnd6(data.identity);
    detail.identity = hiddenIDNumberForEnd4(data.identity);
    detail.contactPhoneNumber = data.contactPhoneNumber;
    detail.gender = data.gender;
    detail.age = data.age ?? 0;
src/views/FlexJobManage/components/StaffInfoDialog.vue
@@ -27,7 +27,7 @@
          >
            <ProFormText
              placeholder="请输入身份证号"
              v-model.trim="form.identity"
              v-model.trim="_identity"
              @blur="handleCalculateAge"
            ></ProFormText>
          </ProFormItemV2>
@@ -108,6 +108,7 @@
          v-model:file-url="form.identityImg"
          :limitFileSize="10"
          :showTip="false"
          imgBlur
        >
        </ProFormImageUpload>
      </ProFormItemV2>
@@ -120,6 +121,7 @@
          v-model:file-url="form.identityBackImg"
          :limitFileSize="10"
          :showTip="false"
          imgBlur
        >
        </ProFormImageUpload>
      </ProFormItemV2>
@@ -152,7 +154,7 @@
  ProFormUpload,
  ProFormInputNumber,
} from '@bole-core/components';
import { calculateAge, deepClone, format } from '@/utils';
import { calculateAge, deepClone, format, hiddenIDNumberForEnd4 } from '@/utils';
import { EnumUserGender, EnumUserGenderTextForPerson } from '@/constants';
import { BoleRegExp } from '@bole-core/core';
@@ -182,6 +184,14 @@
const form = defineModel<Form>('form');
let defaultForm: Form = null;
const _identity = computed({
  get: () =>
    form.value.isDetail ? hiddenIDNumberForEnd4(form.value.identity) : form.value.identity,
  set(val) {
    form.value.identity = val;
  },
});
watch(
  visible,
  (visible) => {
src/views/FlexJobManage/hooks/index.ts
@@ -1,4 +1,4 @@
import { format } from '@/utils';
import { format, hiddenIDNumberForEnd4 } from '@/utils';
import { useTable } from '@bole-core/components';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
import { ModelValueType } from 'element-plus';
@@ -89,6 +89,11 @@
        contractBegin: { type: 'date' },
        contractEnd: { type: 'date' },
        source: { type: 'enum', valueEnum: EnumEnterpriseEmployeeSourceText },
        identity: {
          formatter: (row: API.GetPersonalUserInfosQueryResultItem) => {
            return hiddenIDNumberForEnd4(row.identity);
          },
        },
      },
    }
  );
src/views/ServiceChargeManage/BalanceManage.vue
@@ -51,9 +51,10 @@
} from '@bole-core/components';
import * as userServices from '@/services/api/user';
import BalanceDetailDialog from './components/BalanceDetailDialog.vue';
import { hiddenIDNumberForEnd4 } from '@/utils';
defineOptions({
  name: 'WithdrawManageList',
  name: 'BalanceManage',
});
const operationBtnMap: Record<string, OperationBtnType> = {
@@ -114,6 +115,11 @@
    },
    columnsRenderProps: {
      balance: { type: 'money' },
      identity: {
        formatter: (row: API.GetPersonalUserWalletBalancesQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);
src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -156,6 +156,7 @@
import {
  downloadFile,
  downloadFileByUrl,
  hiddenIDNumberForEnd4,
  paginateList,
  setOssFileName,
  setOSSLink,
@@ -336,6 +337,11 @@
      },
      timeoutFee: { type: 'money' },
      otherFee: { type: 'money' },
      identity: {
        formatter: (row: API.GetSettlementTaskUsersQueryResultItem) => {
          return hiddenIDNumberForEnd4(row.identity);
        },
      },
    },
  }
);