From 84e27a26dcbee4d0706dfad6059454ea85fadacc Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 15 八月 2025 14:20:54 +0800
Subject: [PATCH] fix: 修改角色授权代码
---
src/views/Permission/RoleManage.vue | 3
src/services/api/resource.ts | 15 -
.eslintrc-auto-import.json | 5
src/services/api/typings.d.ts | 278 +++++++++++++++++++++++-
src/utils/common/tree.ts | 26 ++
src/services/api/taskUser.ts | 15 +
src/views/Permission/components/dialogAuthorizeV2.vue | 127 ++++------
src/services/api/index.ts | 4
src/services/api/userResume.ts | 15 +
src/services/api/fileUtils.ts | 52 ++++
auto-imports.d.ts | 12 +
src/constants/apiEnum.ts | 58 ++++
src/services/api/ocrUtils.ts | 18 +
src/services/api/user.ts | 15 +
14 files changed, 527 insertions(+), 116 deletions(-)
diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index 3725c7e..92ed0ec 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -25,11 +25,16 @@
"EnumBillingMethodUnitText": true,
"EnumClientType": true,
"EnumClientTypeText": true,
+ "EnumDataSource": true,
+ "EnumEnterpriseRealMethod": true,
"EnumMenuType": true,
"EnumMenuVisitLevel": true,
+ "EnumOcrAccess": true,
"EnumPagedListOrder": true,
+ "EnumPayAccess": true,
"EnumPersonalFreeTime": true,
"EnumPersonalJobSeekingStatus": true,
+ "EnumPersonalRealMethod": true,
"EnumRealAccess": true,
"EnumRealAccessText": true,
"EnumResourceController": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index f4b04b9..0bc8cee 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -33,11 +33,16 @@
const EnumBillingMethodUnitText: typeof import('./src/constants/task')['EnumBillingMethodUnitText']
const EnumClientType: typeof import('./src/constants/apiEnum')['EnumClientType']
const EnumClientTypeText: typeof import('./src/constants/apiEnumText')['EnumClientTypeText']
+ const EnumDataSource: typeof import('./src/constants/apiEnum')['EnumDataSource']
+ const EnumEnterpriseRealMethod: typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']
const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType']
const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
+ const EnumOcrAccess: typeof import('./src/constants/apiEnum')['EnumOcrAccess']
const EnumPagedListOrder: typeof import('./src/constants/apiEnum')['EnumPagedListOrder']
+ const EnumPayAccess: typeof import('./src/constants/apiEnum')['EnumPayAccess']
const EnumPersonalFreeTime: typeof import('./src/constants/apiEnum')['EnumPersonalFreeTime']
const EnumPersonalJobSeekingStatus: typeof import('./src/constants/apiEnum')['EnumPersonalJobSeekingStatus']
+ const EnumPersonalRealMethod: typeof import('./src/constants/apiEnum')['EnumPersonalRealMethod']
const EnumRealAccess: typeof import('./src/constants/apiEnum')['EnumRealAccess']
const EnumRealAccessText: typeof import('./src/constants/enterprise')['EnumRealAccessText']
const EnumResourceController: typeof import('./src/constants/apiEnum')['EnumResourceController']
@@ -253,7 +258,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, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
+ export type { EnumBillingMethod, EnumClientType, EnumDataSource, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumDataSource, EnumEnterpriseRealMethod, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum'
import('./src/constants/apiEnum')
// @ts-ignore
export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
@@ -316,11 +321,16 @@
readonly EnumBillingMethodUnitText: UnwrapRef<typeof import('./src/constants/task')['EnumBillingMethodUnitText']>
readonly EnumClientType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumClientType']>
readonly EnumClientTypeText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumClientTypeText']>
+ readonly EnumDataSource: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumDataSource']>
+ readonly EnumEnterpriseRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']>
readonly EnumMenuType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuType']>
readonly EnumMenuVisitLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']>
+ readonly EnumOcrAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumOcrAccess']>
readonly EnumPagedListOrder: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPagedListOrder']>
+ readonly EnumPayAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPayAccess']>
readonly EnumPersonalFreeTime: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPersonalFreeTime']>
readonly EnumPersonalJobSeekingStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPersonalJobSeekingStatus']>
+ readonly EnumPersonalRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumPersonalRealMethod']>
readonly EnumRealAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumRealAccess']>
readonly EnumRealAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumRealAccessText']>
readonly EnumResourceController: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumResourceController']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 01db867..15ec8af 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -21,6 +21,20 @@
Wxmp = 20,
}
+/** 鏁版嵁鏉ユ簮 */
+export enum EnumDataSource {
+ /**818 */
+ HumanResources = 10,
+}
+
+/** 浼佷笟瀹炲悕鏂瑰紡 */
+export enum EnumEnterpriseRealMethod {
+ /**浼佷笟涓夎绱� */
+ Identity3 = 10,
+ /**浼佷笟鍥涜绱� */
+ Identity4 = 20,
+}
+
/** 鑿滃崟绫诲瀷 */
export enum EnumMenuType {
/**鑿滃崟 */
@@ -45,12 +59,26 @@
NeedPower = 30,
}
+/** 鏂囧瓧璇嗗埆閫氶亾 */
+export enum EnumOcrAccess {
+ /**鐧惧害 */
+ Baidu = 10,
+}
+
/** 鍒嗛〉鍒楄〃鎺掑簭 */
export enum EnumPagedListOrder {
/**鍗囧簭 */
Asc = 0,
/**闄嶅簭 */
Desc = 1,
+}
+
+/** 鏀粯閫氶亾 */
+export enum EnumPayAccess {
+ /**骞冲畨閾惰 */
+ PingAnBank = 10,
+ /**鏀粯瀹� */
+ Alipay = 20,
}
/** 绌洪棽鏃堕棿 */
@@ -77,6 +105,16 @@
Not = 30,
}
+/** 涓汉瀹炲悕鏂瑰紡 */
+export enum EnumPersonalRealMethod {
+ /**涓汉鎵嬫満鍙蜂笁瑕佺礌 */
+ Identity3 = 10,
+ /**閾惰鍗″瑕佺礌 */
+ Identity4 = 20,
+ /**鍒疯劯璁よ瘉 */
+ Face = 30,
+}
+
/** 瀹炲悕閫氶亾 */
export enum EnumRealAccess {
/**涓婁笂绛� */
@@ -95,22 +133,26 @@
TaskUser = 2,
/**浠诲姟楠屾敹 */
TaskCheckReceive = 3,
+ /**鏂囧瓧璇嗗埆 */
+ FileUtils = 4,
+ /**鏂囧瓧璇嗗埆 */
+ OcrUtils = 5,
/**鐢ㄦ埛璁よ瘉 */
- Auth = 4,
+ Auth = 6,
/**鐢ㄦ埛鑿滃崟 */
- Menu = 5,
+ Menu = 7,
/**鐢ㄦ埛璧勬簮 */
- Resource = 6,
+ Resource = 8,
/**鐢ㄦ埛瑙掕壊 */
- Role = 7,
+ Role = 9,
/**鐢ㄦ埛淇℃伅 */
- User = 8,
+ User = 10,
/**鐢ㄦ埛绠�鍘� */
- UserResume = 9,
+ UserResume = 11,
/**浼佷笟淇℃伅 */
- Enterprise = 10,
+ Enterprise = 12,
/**鐏靛伐淇℃伅 */
- EnterpriseEmployee = 11,
+ EnterpriseEmployee = 13,
}
/** 璧勬簮璇锋眰鏂瑰紡 */
diff --git a/src/services/api/fileUtils.ts b/src/services/api/fileUtils.ts
new file mode 100644
index 0000000..425fac0
--- /dev/null
+++ b/src/services/api/fileUtils.ts
@@ -0,0 +1,52 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鑾峰彇鏂囦欢鍦板潃 GET /api/common/fileUtils/getFileUrl */
+export async function getFileUrl(
+ // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+ params: API.APIgetFileUrlParams,
+ options?: API.RequestConfig
+) {
+ return request<string>('/api/common/fileUtils/getFileUrl', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
+
+/** 涓婁紶鏂囦欢 POST /api/common/fileUtils/uploadFile */
+export async function uploadFile(
+ body: {
+ /** 鍦烘櫙 */
+ Scene?: string;
+ },
+ File?: File,
+ options?: API.RequestConfig
+) {
+ const formData = new FormData();
+
+ if (File) {
+ formData.append('File', File);
+ }
+
+ Object.keys(body).forEach((ele) => {
+ const item = (body as any)[ele];
+
+ if (item !== undefined && item !== null) {
+ formData.append(
+ ele,
+ typeof item === 'object' && !(item instanceof File) ? JSON.stringify(item) : item
+ );
+ }
+ });
+
+ return request<API.UploadFileCommandResult>('/api/common/fileUtils/uploadFile', {
+ method: 'POST',
+ data: formData,
+ requestType: 'form',
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 9cabf40..38f65d3 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -7,6 +7,7 @@
import * as role from './role';
import * as enterprise from './enterprise';
import * as task from './task';
+import * as ocrUtils from './ocrUtils';
import * as dictionary from './dictionary';
import * as userResume from './userResume';
import * as auth from './auth';
@@ -14,12 +15,14 @@
import * as resource from './resource';
import * as taskUser from './taskUser';
import * as menu from './menu';
+import * as fileUtils from './fileUtils';
export default {
enterpriseEmployee,
user,
role,
enterprise,
task,
+ ocrUtils,
dictionary,
userResume,
auth,
@@ -27,4 +30,5 @@
resource,
taskUser,
menu,
+ fileUtils,
};
diff --git a/src/services/api/ocrUtils.ts b/src/services/api/ocrUtils.ts
new file mode 100644
index 0000000..4601bae
--- /dev/null
+++ b/src/services/api/ocrUtils.ts
@@ -0,0 +1,18 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏂囧瓧璇嗗埆钀ヤ笟鎵х収 GET /api/common/ocrUtils/getLicenseOcr */
+export async function getLicenseOcr(
+ // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+ params: API.APIgetLicenseOcrParams,
+ options?: API.RequestConfig
+) {
+ return request<API.GetLicenseOcrCommandResult>('/api/common/ocrUtils/getLicenseOcr', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/resource.ts b/src/services/api/resource.ts
index 5e25fe0..dc3ef94 100644
--- a/src/services/api/resource.ts
+++ b/src/services/api/resource.ts
@@ -31,18 +31,3 @@
...(options || {}),
});
}
-
-/** 淇濆瓨浠诲姟璋冨害-浣滀笟 POST /api/user/resource/saveScheduleJobDetail */
-export async function saveScheduleJobDetail(
- body: API.SaveScheduleJobDetailCommand,
- options?: API.RequestConfig
-) {
- return request<boolean>('/api/user/resource/saveScheduleJobDetail', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json-patch+json',
- },
- data: body,
- ...(options || {}),
- });
-}
diff --git a/src/services/api/taskUser.ts b/src/services/api/taskUser.ts
index a23742d..0edd5de 100644
--- a/src/services/api/taskUser.ts
+++ b/src/services/api/taskUser.ts
@@ -14,6 +14,21 @@
});
}
+/** 娓呯┖宸插仠姝㈢殑浠诲姟鏀惰棌 DELETE /api/flexjob/taskUser/clearTaskCollect */
+export async function clearTaskCollect(
+ body: API.ClearTaskCollectCommand,
+ options?: API.RequestConfig
+) {
+ return request<number>('/api/flexjob/taskUser/clearTaskCollect', {
+ method: 'DELETE',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鏀惰棌浠诲姟 POST /api/flexjob/taskUser/collectTask */
export async function collectTask(body: API.CollectTaskCommand, options?: API.RequestConfig) {
return request<number>('/api/flexjob/taskUser/collectTask', {
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 9256ea7..5b7daa2 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -83,6 +83,22 @@
id?: string;
}
+ interface APIgetFileUrlParams {
+ /** 鍦板潃 */
+ url?: string;
+ }
+
+ interface APIgetLicenseOcrParams {
+ /** 閫氶亾 */
+ access?: EnumOcrAccess;
+ /** 鍦烘櫙 */
+ scene?: string;
+ /** 閾炬帴鍦板潃 */
+ url?: string;
+ /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */
+ isOssUrl?: boolean;
+ }
+
interface APIgetMenuParams {
/** Id */
id?: string;
@@ -189,6 +205,25 @@
ids?: string[];
}
+ interface BaiduOcrBusinessLicenseResultModel {
+ /** 浼佷笟鍏ㄧО */
+ enterpriseName?: string;
+ /** 缁熶竴绀句細淇$敤浠g爜 */
+ societyCreditCode?: string;
+ /** 娉曚汉濮撳悕 */
+ legalPerson?: string;
+ /** 浼佷笟绫诲瀷 */
+ enterpriseType?: string;
+ /** 娉ㄥ唽璧勬湰 */
+ registeredCapital?: string;
+ /** 鎴愮珛鏃ユ湡 */
+ establishmentDate?: string;
+ /** 浼佷笟鍦板潃 */
+ address?: string;
+ /** 缁忚惀鑼冨洿 */
+ mainBusiness?: string;
+ }
+
interface BindWxmpUserInfoCommand {
/** 璁块棶浠ょ墝 */
accessToken: string;
@@ -212,6 +247,8 @@
id?: string;
checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
}
+
+ type ClearTaskCollectCommand = Record<string, any>;
interface CollectTaskCommand {
/** 浠诲姟Id */
@@ -288,6 +325,18 @@
Wxmp = 20,
}
+ enum EnumDataSource {
+ /**818 */
+ HumanResources = 10,
+ }
+
+ enum EnumEnterpriseRealMethod {
+ /**浼佷笟涓夎绱� */
+ Identity3 = 10,
+ /**浼佷笟鍥涜绱� */
+ Identity4 = 20,
+ }
+
enum EnumMenuType {
/**鑿滃崟 */
Menu = 10,
@@ -310,11 +359,23 @@
NeedPower = 30,
}
+ enum EnumOcrAccess {
+ /**鐧惧害 */
+ Baidu = 10,
+ }
+
enum EnumPagedListOrder {
/**鍗囧簭 */
Asc = 0,
/**闄嶅簭 */
Desc = 1,
+ }
+
+ enum EnumPayAccess {
+ /**骞冲畨閾惰 */
+ PingAnBank = 10,
+ /**鏀粯瀹� */
+ Alipay = 20,
}
enum EnumPersonalFreeTime {
@@ -339,6 +400,15 @@
Not = 30,
}
+ enum EnumPersonalRealMethod {
+ /**涓汉鎵嬫満鍙蜂笁瑕佺礌 */
+ Identity3 = 10,
+ /**閾惰鍗″瑕佺礌 */
+ Identity4 = 20,
+ /**鍒疯劯璁よ瘉 */
+ Face = 30,
+ }
+
enum EnumRealAccess {
/**涓婁笂绛� */
BestSign = 10,
@@ -355,22 +425,26 @@
TaskUser = 2,
/**浠诲姟楠屾敹 */
TaskCheckReceive = 3,
+ /**鏂囧瓧璇嗗埆 */
+ FileUtils = 4,
+ /**鏂囧瓧璇嗗埆 */
+ OcrUtils = 5,
/**鐢ㄦ埛璁よ瘉 */
- Auth = 4,
+ Auth = 6,
/**鐢ㄦ埛鑿滃崟 */
- Menu = 5,
+ Menu = 7,
/**鐢ㄦ埛璧勬簮 */
- Resource = 6,
+ Resource = 8,
/**鐢ㄦ埛瑙掕壊 */
- Role = 7,
+ Role = 9,
/**鐢ㄦ埛淇℃伅 */
- User = 8,
+ User = 10,
/**鐢ㄦ埛绠�鍘� */
- UserResume = 9,
+ UserResume = 11,
/**浼佷笟淇℃伅 */
- Enterprise = 10,
+ Enterprise = 12,
/**鐏靛伐淇℃伅 */
- EnterpriseEmployee = 11,
+ EnterpriseEmployee = 13,
}
enum EnumResourceMethod {
@@ -748,6 +822,24 @@
/** 閿欒鐮� */
errorCode?: string;
data?: GetEnterpriseSmsSettingQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
+ interface FriendlyResultGetLicenseOcrCommandResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetLicenseOcrCommandResult;
/** 鎵ц鎴愬姛 */
success?: boolean;
/** 閿欒淇℃伅 */
@@ -1454,6 +1546,24 @@
timestamp?: number;
}
+ interface FriendlyResultUploadFileCommandResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: UploadFileCommandResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
type GetAliyunOSSAcsQuery = Record<string, any>;
interface GetAliyunOSSAcsQueryResult {
@@ -1936,6 +2046,7 @@
avatar?: string;
/** 濮撳悕 */
name?: string;
+ gender?: EnumUserGender;
/** 浼佷笟鍏ㄧО */
enterpriseName?: string;
/** 瑙掕壊 */
@@ -2024,6 +2135,12 @@
industryTypeContent?: string;
/** 鏄惁宸查厤缃� */
isConfigured?: boolean;
+ }
+
+ interface GetLicenseOcrCommandResult {
+ /** 鍦板潃 */
+ url?: string;
+ model?: BaiduOcrBusinessLicenseResultModel;
}
interface GetMenuQueryResult {
@@ -2161,6 +2278,27 @@
releaseStatus?: EnumTaskReleaseStatus;
recommendStatus?: EnumTaskRecommendStatus;
checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+ pageModel?: PagedListQueryPageModel;
+ }
+
+ interface GetOpenUserResumesQuery {
+ /** 浠诲姟Id */
+ taskInfoId?: string;
+ /** 鏈熸湜宀椾綅缂栧彿 */
+ userExpectJobs?: string[];
+ gender?: EnumUserGender;
+ /** 韬唤缂栧彿 */
+ personalIdentityCode?: string;
+ /** 骞撮緞鑼冨洿鏈�灏� */
+ ageMin?: number;
+ /** 骞撮緞鑼冨洿澶� */
+ ageMax?: number;
+ /** 璧勬牸璇佷功缂栧彿 */
+ userCredentials?: string[];
+ /** 鏄惁宸叉敹钘� */
+ isCollected?: boolean;
+ /** 鏄惁宸茶仈绯� */
+ isContacted?: boolean;
pageModel?: PagedListQueryPageModel;
}
@@ -2303,6 +2441,8 @@
interface GetPersonalLoginInfoQueryResult {
/** Id */
id?: string;
+ /** 澶村儚 */
+ avatar?: string;
/** 濮撳悕 */
name?: string;
/** 鏄惁瀹炲悕 */
@@ -2993,6 +3133,7 @@
workExperience?: string;
/** 鍒涘缓鏃堕棿 */
createdTime?: string;
+ hireStatus?: EnumTaskUserHireStatus;
}
type GetUserResumeWorkExperienceQuery = Record<string, any>;
@@ -3332,15 +3473,6 @@
resources?: GetRoleQueryResultResource[];
}
- interface SaveScheduleJobDetailCommand {
- /** 璧勬簮Id */
- resourceId?: string;
- /** 璇锋眰鏁版嵁 */
- body?: string;
- /** Cron琛ㄨ揪寮� */
- cron?: string;
- }
-
interface SaveTaskInfoCommand {
/** 浠诲姟鍚嶇О */
name: string;
@@ -3557,8 +3689,115 @@
interface SubmitCheckReceiveTaskCommand {
/** 浠诲姟Id */
taskInfoId?: string;
+ /** 鏃ユ湡 */
+ date?: string;
/** 闄勪欢 */
files?: string[];
+ }
+
+ interface SyncEnterpriseUserCommand {
+ dataSource?: EnumDataSource;
+ /** 鏁版嵁鏉ユ簮Id */
+ dataSourceId?: string;
+ /** 瀵嗙爜 */
+ password?: string;
+ /** 濮撳悕 */
+ name?: string;
+ /** 鐢ㄦ埛鍚� */
+ userName?: string;
+ /** 鎵嬫満鍙� */
+ phoneNumber?: string;
+ enterprise?: SyncEnterpriseUserCommandEnterprise;
+ }
+
+ interface SyncEnterpriseUserCommandEnterprise {
+ /** 浼佷笟鍏ㄧО */
+ enterpriseName: string;
+ /** 缁熶竴绀句細淇$敤浠g爜 */
+ societyCreditCode: string;
+ /** 钀ヤ笟鎵х収鐓х墖 */
+ licenseImage?: string;
+ /** 娉曚汉濮撳悕 */
+ legalPerson?: string;
+ /** 娉曚汉韬唤璇佸彿 */
+ legalIdentity?: string;
+ /** 鎵�鍦ㄧ渷浠界紪鍙� */
+ provinceCode?: string;
+ /** 鎵�鍦ㄥ煄甯傜紪鍙� */
+ cityCode?: string;
+ /** 鎵�灞炶涓氱紪鍙� */
+ industryTypeCode?: string;
+ /** 浼佷笟绫诲瀷 */
+ enterpriseType?: string;
+ /** 娉ㄥ唽璧勬湰 */
+ registeredCapital?: string;
+ /** 鎴愮珛鏃ユ湡 */
+ establishmentDate?: string;
+ /** 浼佷笟鍦板潃 */
+ address?: string;
+ /** 缁忚惀鑼冨洿 */
+ mainBusiness?: string;
+ /** 鑱旂郴浜� */
+ contacts?: string;
+ /** 鑱旂郴鐢佃瘽 */
+ contactPhoneNumber?: string;
+ /** 鑱旂郴閭 */
+ contactEmail?: string;
+ payAccess?: EnumPayAccess;
+ /** 寮�鎴锋�昏 */
+ bankName?: string;
+ /** 寮�鎴锋敮琛� */
+ bankBranchName?: string;
+ /** 閾惰璐︽埛 */
+ bankCard?: string;
+ /** 鏄惁宸叉牎楠岄摱琛岃处鎴� */
+ isCheckedBankCard?: boolean;
+ realAccess?: EnumRealAccess;
+ /** 瀹炲悕璐圭敤 */
+ realVerifyCost?: number;
+ /** 绛剧害璐圭敤 */
+ signCost?: number;
+ /** 涓�鍙d环 */
+ mergeSignCost?: number;
+ smsAccess?: EnumSmsAccess;
+ /** 鐭俊璐圭敤 */
+ smsCost?: number;
+ /** 鏄惁瀹炲悕 */
+ isReal?: boolean;
+ enterpriseAuth?: SyncEnterpriseUserCommandEnterpriseAuth;
+ }
+
+ interface SyncEnterpriseUserCommandEnterpriseAuth {
+ enterpriseRealMethod?: EnumEnterpriseRealMethod;
+ /** 浼佷笟鍏ㄧО */
+ enterpriseName: string;
+ /** 缁熶竴绀句細淇$敤浠g爜 */
+ societyCreditCode: string;
+ /** 钀ヤ笟鎵х収鐓х墖 */
+ licenseImage?: string;
+ /** 娉曚汉濮撳悕 */
+ legalPerson?: string;
+ /** 娉曚汉韬唤璇佸彿 */
+ legalIdentity?: string;
+ personalRealMethod?: EnumPersonalRealMethod;
+ /** 娉曚汉鎴栫粡鍔炰汉濮撳悕 */
+ name?: string;
+ /** 娉曚汉鎴栫粡鍔炰汉韬唤璇佸彿 */
+ identity?: string;
+ /** 娉曚汉鎴栫粡鍔炰汉韬唤璇佷汉鍍忛潰 */
+ identityImg?: string;
+ /** 娉曚汉鎴栫粡鍔炰汉韬唤璇佸浗寰介潰 */
+ identityBackImg?: string;
+ /** 娉曚汉鎴栫粡鍔炰汉閾惰鍗″彿 */
+ bankCard?: string;
+ /** 娉曚汉鎴栫粡鍔炰汉閾惰鍗$収鐗� */
+ bankCardImg?: string;
+ /** 娉曚汉鎴栫粡鍔炰汉鎵嬫満鍙� */
+ phoneNumber?: string;
+ /** 鏄惁濮旀墭缁忓姙浜� */
+ proxy?: boolean;
+ /** 浼佷笟鎺堟潈涔� */
+ proxyPowerAttorneyUrl?: string;
}
type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
@@ -3568,6 +3807,11 @@
phoneNumber: string;
}
+ interface UploadFileCommandResult {
+ /** 鍦板潃 */
+ url?: string;
+ }
+
interface WxmpLoginCommand {
/** 鐢ㄦ埛鐧诲綍鍑瘉 */
code: string;
diff --git a/src/services/api/user.ts b/src/services/api/user.ts
index 83fdcbf..44bca4f 100644
--- a/src/services/api/user.ts
+++ b/src/services/api/user.ts
@@ -97,3 +97,18 @@
...(options || {}),
});
}
+
+/** 鍚屾浼佷笟鐢ㄦ埛 POST /api/user/user/syncEnterpriseUser */
+export async function syncEnterpriseUser(
+ body: API.SyncEnterpriseUserCommand,
+ options?: API.RequestConfig
+) {
+ return request<string>('/api/user/user/syncEnterpriseUser', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/userResume.ts b/src/services/api/userResume.ts
index 8edd703..2557cb6 100644
--- a/src/services/api/userResume.ts
+++ b/src/services/api/userResume.ts
@@ -47,6 +47,21 @@
});
}
+/** 鏌ヨ寮�鏀剧畝鍘嗗垎椤靛垪琛ㄦ暟鎹� POST /api/user/userResume/getOpenUserResumes */
+export async function getOpenUserResumes(
+ body: API.GetOpenUserResumesQuery,
+ options?: API.RequestConfig
+) {
+ return request<API.GetUserResumesQueryResult>('/api/user/userResume/getOpenUserResumes', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鏌ヨ鐢ㄦ埛绠�鍘� GET /api/user/userResume/getUserResume */
export async function getUserResume(
// 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
diff --git a/src/utils/common/tree.ts b/src/utils/common/tree.ts
index c1f171c..8f5241f 100644
--- a/src/utils/common/tree.ts
+++ b/src/utils/common/tree.ts
@@ -1,3 +1,5 @@
+import { TreeNodeData } from 'element-plus/es/components/tree/src/tree.type';
+
export function getTree(
data: API.ModuleDto[],
root?: string,
@@ -44,3 +46,27 @@
return result;
}
+
+type TreeCallback<T extends TreeNodeData, R> = (
+ data: T,
+ index: number,
+ array: T[],
+ parent?: T
+) => R;
+
+export function treeEach<T extends TreeNodeData>(
+ treeData: T[],
+ callback: TreeCallback<T, void>,
+ getChildren: (data: T) => T[],
+ parent?: T
+) {
+ for (let i = 0; i < treeData.length; i++) {
+ const data = treeData[i];
+ callback(data, i, treeData, parent);
+
+ const children = getChildren(data);
+ if (Array.isArray(children)) {
+ treeEach(children, callback, getChildren, data);
+ }
+ }
+}
diff --git a/src/views/Permission/RoleManage.vue b/src/views/Permission/RoleManage.vue
index 976860e..efbe7b4 100644
--- a/src/views/Permission/RoleManage.vue
+++ b/src/views/Permission/RoleManage.vue
@@ -260,7 +260,8 @@
} catch (error) {}
}
-async function handleAuthorize(selectedMenuIds: string[], resourceIds: string[]) {
+async function handleAuthorize(selectedMenuIds: string[]) {
+ console.log('selectedMenuIds: ', selectedMenuIds);
try {
let params: API.SaveRoleCommand = {
...authorizeForm.detail,
diff --git a/src/views/Permission/components/dialogAuthorizeV2.vue b/src/views/Permission/components/dialogAuthorizeV2.vue
index 5573b5b..9a272f7 100644
--- a/src/views/Permission/components/dialogAuthorizeV2.vue
+++ b/src/views/Permission/components/dialogAuthorizeV2.vue
@@ -24,7 +24,8 @@
default-expand-all
show-checkbox
ref="moduleTree"
- :default-checked-keys="checkedModules"
+ :default-checked-keys="defaultCheckedKeys"
+ @check="handleModuleCheck"
>
<template #default="{ node }">
<div class="custom-tree-node">
@@ -62,7 +63,8 @@
default-expand-all
show-checkbox
ref="pageButtonTree"
- :default-checked-keys="checkedPageButton"
+ :default-checked-keys="defaultCheckedKeys"
+ @check="handlePageButtonCheck"
>
<template #default="{ node }">
<div class="custom-tree-node">
@@ -97,7 +99,8 @@
default-expand-all
show-checkbox
ref="dataButtonTree"
- :default-checked-keys="checkedDataButton"
+ :default-checked-keys="defaultCheckedKeys"
+ @check="handleDataButtonCheck"
>
<template #default="{ node }">
<div class="custom-tree-node">
@@ -132,7 +135,8 @@
default-expand-all
show-checkbox
ref="dataColumnTree"
- :default-checked-keys="checkedDataColumn"
+ :default-checked-keys="defaultCheckedKeys"
+ @check="handleDataColumnCheck"
>
<template #default="{ node }">
<div class="custom-tree-node">
@@ -155,10 +159,11 @@
<script setup lang="ts">
import { Message } from '@bole-core/core';
import { AuthorizeType, SubModuleType, SubModuleTitle, EnumMenuType } from '@/constants';
-import { getTree } from '@/utils';
+import { getTree, treeEach } from '@/utils';
import { TreeInstance } from 'element-plus';
import { ProDialog } from '@bole-core/components';
import { useMenus, useMenu } from '@/hooks';
+import data from '@iconify-icons/ep/tickets';
const TypeTip = defineComponent({
name: 'TypeTip',
@@ -195,7 +200,7 @@
const form = defineModel<Form>('form');
const emit = defineEmits<{
- (e: 'onConfirm', selectedMenuIds: string[], resourceIds: string[]): void;
+ (e: 'onConfirm', selectedMenuIds: string[]): void;
(e: 'onCancel'): void;
}>();
@@ -207,13 +212,17 @@
const state = reactive({
currentMenuId: '',
- checkedInfo: [] as CheckedResourceItem[],
+ selectedMenuIds: [] as string[],
});
+
+const defaultCheckedKeys = computed(() => Array.from(state.selectedMenuIds));
watch(visible, (newVal) => {
if (newVal) {
state.currentMenuId = '';
- state.checkedInfo = [];
+ const menuIds = form.value.detail?.menuIds ?? [];
+ // menuIds.forEach((id) => state.selectedMenuIds.add(id));
+ state.selectedMenuIds = [...menuIds];
}
});
@@ -225,6 +234,8 @@
const pageButtonTree = useTemplateRef<TreeInstance>('pageButtonTree');
const dataButtonTree = useTemplateRef<TreeInstance>('dataButtonTree');
const dataColumnTree = useTemplateRef<TreeInstance>('dataColumnTree');
+
+type TreeRef = ReturnType<typeof useTemplateRef<TreeInstance>>;
const { menusTree, getMenuById } = useMenus({
params: computed(() => ({
@@ -243,77 +254,45 @@
enabled: computed(() => !!state.currentMenuId),
});
-const checkedModules = computed(() => {
- if (form.value.detail) {
- return form.value.detail.menuIds;
- }
- return [];
-});
-
-const checkedPageButton = computed(() => initChecked(SubModuleType.PageButton));
-const checkedDataButton = computed(() => initChecked(SubModuleType.DataButton));
-const checkedDataColumn = computed(() => initChecked(SubModuleType.Column));
-
-function initChecked(type: SubModuleType) {
- return state.checkedInfo.filter((x) => x.resourceType === type).map((x) => x.resourceId);
-}
-
function handleSelectModule(menu: API.GetMenusQueryResultItem) {
- const modules1 =
- dataButtonTree &&
- dataButtonTree.value.getCheckedKeys(true).map((x) => {
- return {
- resourceType: SubModuleType.DataButton,
- resourceId: x,
- menuId: menu.id,
- } as CheckedResourceItem;
- });
-
- const modules2 =
- pageButtonTree &&
- pageButtonTree.value.getCheckedKeys(true).map((x) => {
- return {
- resourceType: SubModuleType.PageButton,
- resourceId: x,
- menuId: menu.id,
- } as CheckedResourceItem;
- });
-
- const modules3 =
- dataColumnTree &&
- dataColumnTree.value.getCheckedKeys(true).map((x) => {
- return {
- resourceType: SubModuleType.Column,
- resourceId: x,
- menuId: menu.id,
- } as CheckedResourceItem;
- });
-
- const checkExtends = state.checkedInfo.filter(
- (x) => x.menuId !== menu.id && x.menuId !== undefined
- );
-
- if (modules1 && modules1.length) {
- checkExtends.push(...modules1);
- }
- if (modules2 && modules2.length) {
- checkExtends.push(...modules2);
- }
- if (modules3 && modules3.length) {
- checkExtends.push(...modules3);
- }
-
- state.checkedInfo = checkExtends;
state.currentMenuId = menu.id;
}
+function handleModuleCheck(data, params) {
+ handleCheck(data, params, moduleTree);
+}
+
+function handlePageButtonCheck(data, params) {
+ handleCheck(data, params, pageButtonTree);
+}
+
+function handleDataButtonCheck(data, params) {
+ handleCheck(data, params, dataButtonTree);
+}
+
+function handleDataColumnCheck(data, params) {
+ handleCheck(data, params, dataColumnTree);
+}
+
+function handleCheck(data, params, treeRef: TreeRef) {
+ const dataMap = {};
+ treeEach(
+ [treeRef.value.store.root],
+ (node) => (dataMap[node.key] = node),
+ (node) => node.childNodes
+ );
+
+ const uncachedCheckedKeys = params.checkedKeys.filter(
+ (item) => !['pageButtonAll', 'dataButtonAll', 'dataColumnAll'].includes(item)
+ );
+ const cachedKeys = state.selectedMenuIds.filter(
+ (item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)
+ );
+ state.selectedMenuIds = cachedKeys.concat(uncachedCheckedKeys);
+}
+
function handleConfirm() {
- const selectedMenuIds = moduleTree.value.getCheckedNodes().map((x) => x.id);
- if (state.currentMenuId) {
- handleSelectModule(getMenuById(state.currentMenuId));
- }
- const resourceIds = state.checkedInfo.map((x) => x.resourceId);
- emit('onConfirm', selectedMenuIds, resourceIds);
+ emit('onConfirm', state.selectedMenuIds);
}
</script>
--
Gitblit v1.9.1