From d8ef10a07b7b32a05be40cb77f629a6f9b8a0966 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期日, 19 十月 2025 13:48:48 +0800
Subject: [PATCH] feat: 1.2.0.1

---
 src/services/api/task.ts                                          |   15 ++
 src/services/api/index.ts                                         |   24 ++--
 .eslintrc-auto-import.json                                        |    1 
 src/services/api/typings.d.ts                                     |   88 ++++++++++++++
 auto-imports.d.ts                                                 |    4 
 src/views/EmploymentManage/components/AddOrEditEmploymentView.vue |    4 
 src/constants/apiEnum.ts                                          |   10 +
 src/views/UserManage/components/ResetOperatorPasswordDialog.vue   |   75 ++++++++++++
 src/views/UserManage/UserManageList.vue                           |   51 ++++++++
 src/views/UserManage/components/AddOrEditUserDialog.vue           |   12 ++
 src/services/api/user.ts                                          |   45 +++++++
 11 files changed, 315 insertions(+), 14 deletions(-)

diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 3415596..c597520 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -80,6 +80,7 @@
     "EnumTaskReleaseStatus": true,
     "EnumTaskReleaseStatusText": true,
     "EnumTaskReleaseStatusTextForTip": true,
+    "EnumTaskSettlementAuditStatus": true,
     "EnumTaskSettlementOrderStatus": true,
     "EnumTaskSettlementOrderStatusText": true,
     "EnumTaskSettlementStatus": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index b01b0c1..1b7d547 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -85,6 +85,7 @@
   const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']
   const EnumTaskReleaseStatusText: typeof import('./src/constants/task')['EnumTaskReleaseStatusText']
   const EnumTaskReleaseStatusTextForTip: typeof import('./src/constants/task')['EnumTaskReleaseStatusTextForTip']
+  const EnumTaskSettlementAuditStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementAuditStatus']
   const EnumTaskSettlementOrderStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementOrderStatus']
   const EnumTaskSettlementOrderStatusText: typeof import('./src/constants/task')['EnumTaskSettlementOrderStatusText']
   const EnumTaskSettlementStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']
@@ -281,7 +282,7 @@
   export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
   import('vue')
   // @ts-ignore
-  export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, 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, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, 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, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
+  export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, 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, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus, EnumTaskPaymentMethod, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementAuditStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, 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, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
   import('./src/constants/apiEnum')
   // @ts-ignore
   export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic'
@@ -393,6 +394,7 @@
     readonly EnumTaskReleaseStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']>
     readonly EnumTaskReleaseStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskReleaseStatusText']>
     readonly EnumTaskReleaseStatusTextForTip: UnwrapRef<typeof import('./src/constants/task')['EnumTaskReleaseStatusTextForTip']>
+    readonly EnumTaskSettlementAuditStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskSettlementAuditStatus']>
     readonly EnumTaskSettlementOrderStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskSettlementOrderStatus']>
     readonly EnumTaskSettlementOrderStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskSettlementOrderStatusText']>
     readonly EnumTaskSettlementStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 330d7d5..3d11edb 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -485,6 +485,16 @@
   Stopped = 100,
 }
 
+/** 浠诲姟缁撶畻瀹℃牳鐘舵�� */
+export enum EnumTaskSettlementAuditStatus {
+  /**寰呭鏍� */
+  Wait = 10,
+  /**瀹℃牳閫氳繃 */
+  Pass = 20,
+  /**椹冲洖 */
+  Fail = 30,
+}
+
 /** 浠诲姟缁撶畻鍗曠姸鎬� */
 export enum EnumTaskSettlementOrderStatus {
   /**寰呬笂浼� */
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 15a6047..e99bcae 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -5,46 +5,46 @@
 import * as enterpriseEmployee from './enterpriseEmployee';
 import * as user from './user';
 import * as role from './role';
+import * as enterpriseWallet from './enterpriseWallet';
 import * as ocrUtils from './ocrUtils';
 import * as task from './task';
 import * as enterprise from './enterprise';
+import * as logRecords from './logRecords';
 import * as resource from './resource';
-import * as enterpriseWallet from './enterpriseWallet';
 import * as dictionary from './dictionary';
 import * as codeUrl from './codeUrl';
 import * as electronSign from './electronSign';
-import * as taskCheckReceive from './taskCheckReceive';
 import * as userResume from './userResume';
 import * as auth from './auth';
+import * as taskCheckReceive from './taskCheckReceive';
 import * as taskUser from './taskUser';
 import * as sms from './sms';
-import * as logRecords from './logRecords';
-import * as menu from './menu';
-import * as fileUtils from './fileUtils';
-import * as userWallet from './userWallet';
 import * as settings from './settings';
+import * as menu from './menu';
+import * as userWallet from './userWallet';
+import * as fileUtils from './fileUtils';
 import * as syncDatabase from './syncDatabase';
 export default {
   enterpriseEmployee,
   user,
   role,
+  enterpriseWallet,
   ocrUtils,
   task,
   enterprise,
+  logRecords,
   resource,
-  enterpriseWallet,
   dictionary,
   codeUrl,
   electronSign,
-  taskCheckReceive,
   userResume,
   auth,
+  taskCheckReceive,
   taskUser,
   sms,
-  logRecords,
-  menu,
-  fileUtils,
-  userWallet,
   settings,
+  menu,
+  userWallet,
+  fileUtils,
   syncDatabase,
 };
diff --git a/src/services/api/task.ts b/src/services/api/task.ts
index 0f797ab..84167b8 100644
--- a/src/services/api/task.ts
+++ b/src/services/api/task.ts
@@ -2,6 +2,21 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 瀹℃牳浠诲姟缁撶畻 POST /api/flexjob/task/auditTaskSettlement */
+export async function auditTaskSettlement(
+  body: API.AuditTaskSettlementCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/task/auditTaskSettlement', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鍒犻櫎浠诲姟 DELETE /api/flexjob/task/deleteTaskInfo */
 export async function deleteTaskInfo(body: API.DeleteTaskInfoCommand, options?: API.RequestConfig) {
   return request<number>('/api/flexjob/task/deleteTaskInfo', {
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index f0aec44..f63e3b7 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -344,6 +344,16 @@
     ids?: string[];
   }
 
+  interface AuditTaskSettlementCommand {
+    /** 缁撶畻璁㈠崟Id */
+    id?: string;
+    auditStatus?: EnumTaskSettlementAuditStatus;
+    /** 瀹℃牳澶囨敞 */
+    auditRemark?: string;
+    /** 鎿嶄綔浠ょ墝 */
+    operatorToken?: string;
+  }
+
   interface BaiduOcrBusinessLicenseResultModel {
     /** 浼佷笟鍏ㄧО */
     enterpriseName?: string;
@@ -397,6 +407,16 @@
     sessionKey: string;
   }
 
+  interface BuildOperatorTokenCommand {
+    /** 鎿嶄綔瀵嗙爜 */
+    password?: string;
+  }
+
+  interface BuildOperatorTokenCommandResult {
+    /** 鎿嶄綔浠ょ墝 */
+    operatorToken?: string;
+  }
+
   interface ChangePhoneNumberCommand {
     /** 鎵嬫満鍙风爜 */
     phoneNumber: string;
@@ -415,6 +435,11 @@
   }
 
   type CheckHealthQuery = Record<string, any>;
+
+  interface CheckOperatorTokenCommand {
+    /** 鎿嶄綔浠ょ墝 */
+    operatorToken?: string;
+  }
 
   interface CheckReceiveTaskCommand {
     /** 鎻愪氦Id */
@@ -498,6 +523,8 @@
   interface EditTaskSettlementOrderRosterCommand {
     /** 鍚嶅崟Id */
     id?: string;
+    /** 绱宸ユ椂 */
+    totalWorkHours?: number;
     /** 缁撶畻閲戦 */
     settlementAmount: number;
     /** 瀹炲彂閲戦 */
@@ -1019,6 +1046,15 @@
     Stopped = 100,
   }
 
+  enum EnumTaskSettlementAuditStatus {
+    /**寰呭鏍� */
+    Wait = 10,
+    /**瀹℃牳閫氳繃 */
+    Pass = 20,
+    /**椹冲洖 */
+    Fail = 30,
+  }
+
   enum EnumTaskSettlementOrderStatus {
     /**寰呬笂浼� */
     Wait = 10,
@@ -1318,6 +1354,24 @@
     errorCode?: string;
     /** 鏁版嵁 */
     data?: boolean;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultBuildOperatorTokenCommandResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: BuildOperatorTokenCommandResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -3406,6 +3460,12 @@
     /** 鏄惁瀹炲悕 */
     isReal?: boolean;
     realMethod?: EnumUserRealMethod;
+    /** 绛惧埌鏃堕棿 */
+    checkInTime?: string;
+    /** 绛惧嚭鏃堕棿 */
+    checkOutTime?: string;
+    /** 鎿嶄綔浜� */
+    operator?: string;
     /** 鏈�杩戞彁浜ゆ椂闂� */
     lastSubmitTime?: string;
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
@@ -5612,10 +5672,21 @@
   interface GetSettlementTaskUsersQueryResultDetail {
     /** 缁撶畻璁㈠崟Id */
     id?: string;
+    /** 鏍¢獙楠屾敹璧峰鏃ユ湡 */
+    checkReceiveBeginDate?: string;
+    /** 鏍¢獙楠屾敹鎴鏃ユ湡 */
+    checkReceiveEndDate?: string;
     /** 浠诲姟鍚嶇О */
     name?: string;
     /** 浠诲姟鍗曞彿 */
     code?: string;
+    billingMethod?: EnumBillingMethod;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    /** 鏍稿畾宸ユ椂 */
+    verifyWorkHours?: number;
+    /** 瓒呮椂鏈嶅姟璐� */
+    timeoutServiceFee?: number;
     settlementOrderStatus?: EnumTaskSettlementOrderStatus;
     /** 缁撶畻鍗曞悕绉� */
     settlementOrderName?: string;
@@ -5635,6 +5706,8 @@
   interface GetSettlementTaskUsersQueryResultItem {
     /** 缁撶畻鍚嶅崟Id */
     id?: string;
+    /** 浠诲姟浜哄憳Id */
+    taskInfoUserId?: string;
     /** 鐢ㄦ埛淇℃伅Id */
     userId?: string;
     /** 濮撳悕 */
@@ -5643,6 +5716,8 @@
     identity?: string;
     /** 鎵嬫満鍙� */
     contactPhoneNumber?: string;
+    /** 绱宸ユ椂 */
+    totalWorkHours?: number;
     /** 鎵�灞為摱琛� */
     bank?: string;
     /** 寮�鎴锋敮琛屽悕绉� */
@@ -6513,6 +6588,8 @@
     bankBranch?: string;
     /** 鏀舵璐︽埛 */
     receiveAccount?: string;
+    /** 绱宸ユ椂 */
+    totalWorkHours?: number;
     /** 缁撶畻閲戦 */
     settlementAmount?: number;
     /** 瀹炲彂閲戦 */
@@ -6783,6 +6860,13 @@
   interface ResendResourceCommand {
     /** 璧勬簮鏃ュ織Id */
     id?: string;
+  }
+
+  interface ResetUserOperatorPasswordsCommand {
+    /** Id */
+    ids?: string[];
+    /** 鎿嶄綔瀵嗙爜 */
+    operatorPassword?: string;
   }
 
   interface ResetUserPasswordsCommand {
@@ -7199,8 +7283,10 @@
     userName?: string;
     /** 鎵嬫満鍙� */
     phoneNumber?: string;
-    /** 瀵嗙爜 */
+    /** 瀵嗙爜锛堥�夊~ 濉簡灏辨敼涓嶅~灏变笉鏀癸級 */
     password?: string;
+    /** 鎿嶄綔瀵嗙爜锛堥�夊~ 濉簡灏辨敼涓嶅~灏变笉鏀癸級 */
+    operatorPassword?: string;
     /** 瑙掕壊Id */
     roleIds?: string[];
     status?: EnumUserStatus;
diff --git a/src/services/api/user.ts b/src/services/api/user.ts
index e62b980..00b2379 100644
--- a/src/services/api/user.ts
+++ b/src/services/api/user.ts
@@ -2,6 +2,36 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 鐢熸垚鎿嶄綔浠ょ墝 POST /api/user/user/buildOperatorToken */
+export async function buildOperatorToken(
+  body: API.BuildOperatorTokenCommand,
+  options?: API.RequestConfig
+) {
+  return request<API.BuildOperatorTokenCommandResult>('/api/user/user/buildOperatorToken', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鏍¢獙鎿嶄綔浠ょ墝 POST /api/user/user/checkOperatorToken */
+export async function checkOperatorToken(
+  body: API.CheckOperatorTokenCommand,
+  options?: API.RequestConfig
+) {
+  return request<boolean>('/api/user/user/checkOperatorToken', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鍒犻櫎鐢ㄦ埛閾惰鍗′俊鎭� DELETE /api/user/user/deletePersonalUserBankCard */
 export async function deletePersonalUserBankCard(
   body: API.DeletePersonalUserBankCardCommand,
@@ -161,6 +191,21 @@
   });
 }
 
+/** 閲嶇疆鐢ㄦ埛鎿嶄綔瀵嗙爜 POST /api/user/user/resetUserOperatorPasswords */
+export async function resetUserOperatorPasswords(
+  body: API.ResetUserOperatorPasswordsCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/user/resetUserOperatorPasswords', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 閲嶇疆鐢ㄦ埛瀵嗙爜 POST /api/user/user/resetUserPasswords */
 export async function resetUserPasswords(
   body: API.ResetUserPasswordsCommand,
diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
index a883928..eb8b548 100644
--- a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
+++ b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
@@ -455,6 +455,10 @@
     form.timeoutServiceFee = data.timeoutServiceFee;
     form.description = data.description;
     form.checkReceiveMethod = data.checkReceiveMethod;
+    form.applyTime = [
+      format(data.applyBeginTime, 'YYYY-MM-DD 00:00:00'),
+      format(data.applyEndTime, 'YYYY-MM-DD 23:59:59'),
+    ];
   },
   enabled: isEdit,
 });
diff --git a/src/views/UserManage/UserManageList.vue b/src/views/UserManage/UserManageList.vue
index 898903f..17fec99 100644
--- a/src/views/UserManage/UserManageList.vue
+++ b/src/views/UserManage/UserManageList.vue
@@ -26,6 +26,9 @@
     </AppContainer>
     <AddOrEditUserDialog v-bind="dialogProps" />
     <ResetPasswordDialog v-bind="resetPasswordDialogProps"></ResetPasswordDialog>
+    <ResetOperatorPasswordDialog
+      v-bind="resetOperatorPasswordDialogProps"
+    ></ResetOperatorPasswordDialog>
   </LoadingLayout>
 </template>
 
@@ -48,6 +51,7 @@
 import { Message } from '@bole-core/core';
 import AddOrEditUserDialog from './components/AddOrEditUserDialog.vue';
 import ResetPasswordDialog from './components/ResetPasswordDialog.vue';
+import ResetOperatorPasswordDialog from './components/ResetOperatorPasswordDialog.vue';
 
 defineOptions({
   name: 'UserManageList',
@@ -73,6 +77,18 @@
     },
     emits: {
       onClick: (role) => openResetPasswordDialog(role),
+    },
+  },
+  {
+    data: {
+      enCode: 'resetOperatorPasswordBtn',
+      name: '閲嶇疆鎿嶄綔瀵嗙爜',
+    },
+    props: {
+      type: 'danger',
+    },
+    emits: {
+      onClick: (role) => openResetOperatorPasswordDialog(role),
     },
   },
 ]);
@@ -141,6 +157,7 @@
     status: '' as any as EnumUserStatus,
     roleIds: [] as string[],
     password: '',
+    operatorPassword: '',
   },
 });
 
@@ -155,6 +172,7 @@
       roleIds: row.roles?.map((x) => x.id) ?? [],
       status: row.status,
       password: '',
+      operatorPassword: '',
     });
   } else {
     handleAdd();
@@ -174,6 +192,7 @@
     };
     if (!editForm.id) {
       params.password = editForm.password;
+      params.operatorPassword = editForm.operatorPassword;
     }
     if (editForm.id) {
       params.id = editForm.id;
@@ -188,6 +207,38 @@
 }
 
 const {
+  dialogProps: resetOperatorPasswordDialogProps,
+  handleAdd: handleResetOperatorPasswordAdd,
+  editForm: resetOperatorPasswordEditForm,
+} = useFormDialog({
+  onConfirm: resetOperatorPassword,
+  defaultFormParams: {
+    ids: '',
+    operatorPassword: '',
+  },
+});
+
+function openResetOperatorPasswordDialog(row: API.GetOperationUserInfosQueryResultItem) {
+  handleResetOperatorPasswordAdd({
+    ids: row.id,
+    operatorPassword: '',
+  });
+}
+
+async function resetOperatorPassword() {
+  try {
+    let params: API.ResetUserOperatorPasswordsCommand = {
+      ids: [resetOperatorPasswordEditForm.ids],
+      operatorPassword: resetOperatorPasswordEditForm.operatorPassword,
+    };
+    let res = await userServices.resetUserOperatorPasswords(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+const {
   dialogProps: resetPasswordDialogProps,
   handleAdd: handleResetPasswordAdd,
   editForm: resetPasswordEditForm,
diff --git a/src/views/UserManage/components/AddOrEditUserDialog.vue b/src/views/UserManage/components/AddOrEditUserDialog.vue
index 4282771..64d1da5 100644
--- a/src/views/UserManage/components/AddOrEditUserDialog.vue
+++ b/src/views/UserManage/components/AddOrEditUserDialog.vue
@@ -28,6 +28,17 @@
       >
         <ProFormText placeholder="璇疯緭鍏ヨ处鍙�" v-model.trim="innerForm.password"></ProFormText>
       </ProFormItemV2>
+      <ProFormItemV2
+        v-if="!isEdit"
+        label="鎿嶄綔瀵嗙爜"
+        prop="operatorPassword"
+        :check-rules="[{ message: '璇疯緭鍏ユ搷浣滃瘑鐮�' }]"
+      >
+        <ProFormText
+          placeholder="璇疯緭鍏ヨ处鍙�"
+          v-model.trim="innerForm.operatorPassword"
+        ></ProFormText>
+      </ProFormItemV2>
       <ProFormItemV2 label="瑙掕壊" prop="roleIds" :check-rules="[{ message: '璇烽�夋嫨瑙掕壊' }]">
         <ProFormCheckbox
           v-model="innerForm.roleIds"
@@ -83,6 +94,7 @@
     remark: string;
     roleIds: string[];
     password?: string;
+    operatorPassword?: string;
   };
 };
 
diff --git a/src/views/UserManage/components/ResetOperatorPasswordDialog.vue b/src/views/UserManage/components/ResetOperatorPasswordDialog.vue
new file mode 100644
index 0000000..855e9a3
--- /dev/null
+++ b/src/views/UserManage/components/ResetOperatorPasswordDialog.vue
@@ -0,0 +1,75 @@
+<template>
+  <ProDialog
+    :title="form.title"
+    v-model="visible"
+    @close="onDialogClose"
+    destroy-on-close
+    draggable
+    :width="800"
+  >
+    <ProForm :model="form" ref="dialogForm" label-width="120px">
+      <ProFormItemV2
+        label="鎿嶄綔瀵嗙爜:"
+        prop="operatorPassword"
+        :check-rules="[{ message: '璇疯緭鍏ユ搷浣滃瘑鐮�' }]"
+      >
+        <ProFormText
+          placeholder="璇疯緭鍏ユ搷浣滃瘑鐮�"
+          v-model.trim="form.operatorPassword"
+          :maxlength="30"
+        ></ProFormText>
+      </ProFormItemV2>
+    </ProForm>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="emit('onCancel')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button>
+      </span>
+    </template>
+  </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormInstance } from 'element-plus';
+import { ProDialog, ProForm, ProFormItemV2, ProFormText } from '@bole-core/components';
+
+defineOptions({
+  name: 'ResetOperatorPasswordDialog',
+});
+
+// type Props = {};
+
+// const props = withDefaults(defineProps<Props>(), {});
+
+const visible = defineModel({ type: Boolean });
+
+type Form = {
+  title?: string;
+  ids: string;
+  operatorPassword: string;
+};
+
+const form = defineModel<Form>('form');
+const emit = defineEmits<{
+  (e: 'onConfirm'): void;
+  (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+function onDialogClose() {
+  if (!dialogForm.value) return;
+  dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+  if (!dialogForm.value) return;
+  dialogForm.value.validate((valid) => {
+    if (valid) {
+      emit('onConfirm');
+    } else {
+      return;
+    }
+  });
+}
+</script>

--
Gitblit v1.9.1