From ca8fc597599e8a85288b5d771957bb1bd712e8c7 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 21 三月 2025 09:58:10 +0800
Subject: [PATCH] feat: 接口对接
---
src/views/EnterpriseManage/EnterpriseDetail.vue | 11
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue | 115 ++++--
src/views/EnterpriseManage/components/ConfigureDialog.vue | 239 ++++++++++++++
src/services/api/typings.d.ts | 184 ++++++++++
src/views/EnterpriseManage/AddOrEditEnterprise.vue | 2
config/config.ts | 10
src/constants/enterprise.ts | 136 ++++++++
src/services/api/index.ts | 4
src/services/api/FlexEnterpriseWoker.ts | 54 +++
src/services/api/User.ts | 11
src/services/api/UserResume.ts | 46 +
src/constants/index.ts | 1
src/views/EnterpriseManage/EnterpriseManageList.vue | 203 +++++++----
13 files changed, 878 insertions(+), 138 deletions(-)
diff --git a/config/config.ts b/config/config.ts
index 01a16e0..c7364cf 100644
--- a/config/config.ts
+++ b/config/config.ts
@@ -4,20 +4,20 @@
/**
* @description 缃戦〉title
*/
- title: '涔愰亣淇濅簯鏈嶅姟',
+ title: '鐏靛伐骞冲彴',
errorLog: 'production',
- loginFormTitle: '涔愰亣淇濅簯鏈嶅姟鍚庡彴绠$悊绯荤粺',
+ loginFormTitle: '鐏靛伐骞冲彴鍚庡彴绠$悊绯荤粺',
});
type AppType = 'one' | 'rz' | 'jx';
const AppSettingMap = {
one: {
- title: '涔愰亣淇濅簯鏈嶅姟',
- loginFormTitle: '涔愰亣淇濅簯鏈嶅姟',
- MenuTitle: '涔愰亣淇濅簯鏈嶅姟',
+ title: '鐏靛伐骞冲彴',
+ loginFormTitle: '鐏靛伐骞冲彴',
+ MenuTitle: '鐏靛伐骞冲彴',
},
jx: {
title: '姹熻タ淇濋櫓鐞嗚禂鍚庡彴绠$悊绯荤粺',
diff --git a/src/constants/enterprise.ts b/src/constants/enterprise.ts
new file mode 100644
index 0000000..2baa33d
--- /dev/null
+++ b/src/constants/enterprise.ts
@@ -0,0 +1,136 @@
+export enum EnterpriseConfigureType {
+ /**
+ * 閾惰淇℃伅閰嶇疆
+ */
+ Bank = 1,
+ /**
+ * 鐢靛瓙绛鹃厤缃�
+ */
+ Electronic = 2,
+ /**
+ * 鐭俊閫氶亾閰嶇疆
+ */
+ ShortMessage = 3,
+}
+
+export const EnterpriseConfigureTypeText = {
+ [EnterpriseConfigureType.Bank]: '閾惰淇℃伅閰嶇疆',
+ [EnterpriseConfigureType.Electronic]: '鐢靛瓙绛鹃厤缃�',
+ [EnterpriseConfigureType.ShortMessage]: '鐭俊閫氶亾閰嶇疆',
+};
+
+export enum FlexEnterpriseSettingStatus {
+ /**
+ * 鏈厤缃�
+ */
+ NotSetting = -10,
+ /**
+ * 宸查厤缃�
+ */
+ IsSetting = 10,
+}
+
+export const FlexEnterpriseSettingStatusText = {
+ [FlexEnterpriseSettingStatus.NotSetting]: '鏈厤缃�',
+ [FlexEnterpriseSettingStatus.IsSetting]: '宸查厤缃�',
+};
+
+export enum FlexEnterpriseStatus {
+ /**
+ * 鍐荤粨
+ */
+ Frozen = -10,
+ /**
+ * 姝e父
+ */
+ Normal = 10,
+}
+
+export const FlexEnterpriseStatusText = {
+ [FlexEnterpriseStatus.Frozen]: '鍐荤粨',
+ [FlexEnterpriseStatus.Normal]: '姝e父',
+};
+
+export enum VerifyStatus {
+ /**
+ * 鏈獙璇�
+ */
+ NotVerify = -10,
+ /**
+ * 宸查獙璇�
+ */
+ Verify = 10,
+}
+
+export const VerifyStatusText = {
+ [VerifyStatus.NotVerify]: '鏈獙璇�',
+ [VerifyStatus.Verify]: '宸查獙璇�',
+};
+export const VerifyStatusColor = {
+ [VerifyStatus.NotVerify]: 'danger',
+ [VerifyStatus.Verify]: 'success',
+};
+
+export enum FlexEnterpriseCertificationStatus {
+ /**
+ * 鏈璇�
+ */
+ NotCertification = -10,
+ /**
+ * 宸茶璇�
+ */
+ HasCertification = 10,
+}
+
+export const FlexEnterpriseCertificationStatusText = {
+ [FlexEnterpriseCertificationStatus.NotCertification]: '鏈璇�',
+ [FlexEnterpriseCertificationStatus.HasCertification]: '宸茶璇�',
+};
+
+export enum MessageChannelEnum {
+ /**
+ * 闃块噷浜�
+ */
+ Alipay = 10,
+ /**
+ * 缃戞槗
+ */
+ NetEasy = 20,
+}
+
+export const MessageChannelEnumText = {
+ [MessageChannelEnum.Alipay]: '闃块噷浜�',
+ [MessageChannelEnum.NetEasy]: '缃戞槗',
+};
+
+export enum SignChannelEnum {
+ /**
+ * 涓婁笂绛�
+ */
+ BestSign = 10,
+ /**
+ * 鏀粯瀹濈數瀛愮
+ */
+ Alipay = 20,
+}
+
+export const SignChannelEnumText = {
+ [SignChannelEnum.BestSign]: '涓婁笂绛�',
+ [SignChannelEnum.Alipay]: '鏀粯瀹濈數瀛愮',
+};
+
+export enum ChargeTypeEnum {
+ /**
+ * 缁勫悎璁¤垂
+ */
+ Group = 1,
+ /**
+ * 涓�鍙d环
+ */
+ Merge,
+}
+
+export const ChargeTypeEnumText = {
+ [ChargeTypeEnum.Group]: '缁勫悎璁¤垂',
+ [ChargeTypeEnum.Merge]: '涓�鍙d环',
+};
diff --git a/src/constants/index.ts b/src/constants/index.ts
index 303e5a6..8f98d65 100644
--- a/src/constants/index.ts
+++ b/src/constants/index.ts
@@ -10,3 +10,4 @@
export * from './role';
export * from './app';
export * from './dic';
+export * from './enterprise';
diff --git a/src/services/api/FlexEnterpriseWoker.ts b/src/services/api/FlexEnterpriseWoker.ts
new file mode 100644
index 0000000..9bafeb5
--- /dev/null
+++ b/src/services/api/FlexEnterpriseWoker.ts
@@ -0,0 +1,54 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** C绔汉鍛樼鐞嗗垪琛� POST /api/FlexEnterpriseWoker/GetUserClientList */
+export async function getUserClientList(
+ body: API.GetUserClientForBackInput,
+ options?: API.RequestConfig
+) {
+ return request<API.GetUserClientForBackOutputPageOutput>(
+ '/api/FlexEnterpriseWoker/GetUserClientList',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
+}
+
+/** C绔汉鍛樼鐞�--绛剧害璇︽儏 POST /api/FlexEnterpriseWoker/GetUserClientSignList */
+export async function getUserClientSignList(
+ body: API.GetUserClientSignListInput,
+ options?: API.RequestConfig
+) {
+ return request<API.UserClientSignListOutputPageOutput>(
+ '/api/FlexEnterpriseWoker/GetUserClientSignList',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
+}
+
+/** C绔汉鍛樼鐞�--鑾峰彇浜哄憳璇︽儏 GET /api/FlexEnterpriseWoker/GetUserDetailForBack */
+export async function getUserDetailForBack(
+ // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+ params: API.APIgetUserDetailForBackParams,
+ options?: API.RequestConfig
+) {
+ return request<API.GetUserDetailForBackOutput>('/api/FlexEnterpriseWoker/GetUserDetailForBack', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/User.ts b/src/services/api/User.ts
new file mode 100644
index 0000000..603e2e7
--- /dev/null
+++ b/src/services/api/User.ts
@@ -0,0 +1,11 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鑾峰彇涓汉淇℃伅璇︽儏 GET /api/User/GetUserInfo */
+export async function getUserInfo(options?: API.RequestConfig) {
+ return request<API.UserDto>('/api/User/GetUserInfo', {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/UserResume.ts b/src/services/api/UserResume.ts
index b10d921..3ec42a4 100644
--- a/src/services/api/UserResume.ts
+++ b/src/services/api/UserResume.ts
@@ -2,7 +2,15 @@
// @ts-ignore
import { request } from '@/utils/request';
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResume */
+/** 鏍规嵁鐢ㄦ埛鑾峰彇鏈熷緟鐨勫伐浣� GET /api/UserResume/GetResumeExpectationJob */
+export async function getResumeExpectationJob(options?: API.RequestConfig) {
+ return request<API.UserResumeExpectationJobOutput>('/api/UserResume/GetResumeExpectationJob', {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
+
+/** 鏍规嵁鐢ㄦ埛鑾峰彇绠�鍘� GET /api/UserResume/GetUserResume */
export async function getUserResume(options?: API.RequestConfig) {
return request<API.MyResumeOutput>('/api/UserResume/GetUserResume', {
method: 'GET',
@@ -10,7 +18,15 @@
});
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeCertificateDetailById */
+/** 鏍规嵁鐢ㄦ埛鑾峰彇绠�鍘嗗熀纭�淇℃伅 GET /api/UserResume/GetUserResumeBaseInfo */
+export async function getUserResumeBaseInfo(options?: API.RequestConfig) {
+ return request<API.UserResumeBaseInfoOutput>('/api/UserResume/GetUserResumeBaseInfo', {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
+
+/** 鏍规嵁璁よ瘉id鑾峰彇璁よ瘉璇︽儏 GET /api/UserResume/GetUserResumeCertificateDetailById */
export async function getUserResumeCertificateDetailById(
// 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
params: API.APIgetUserResumeCertificateDetailByIdParams,
@@ -28,7 +44,7 @@
);
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeCertificateList */
+/** 鏍规嵁鐢ㄦ埛ID鑾峰彇鐢ㄦ埛璁よ瘉淇℃伅 GET /api/UserResume/GetUserResumeCertificateList */
export async function getUserResumeCertificateList(options?: API.RequestConfig) {
return request<API.UserResumeCertificateListOutput[]>(
'/api/UserResume/GetUserResumeCertificateList',
@@ -39,7 +55,7 @@
);
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeDetailInfo */
+/** 鑾峰彇鐢ㄦ埛绠�鍘嗚鎯� GET /api/UserResume/GetUserResumeDetailInfo */
export async function getUserResumeDetailInfo(options?: API.RequestConfig) {
return request<API.UserResumeDetailInfoOutput>('/api/UserResume/GetUserResumeDetailInfo', {
method: 'GET',
@@ -47,7 +63,7 @@
});
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/UserResume/GetUserResumeWorkExperience */
+/** 鏍规嵁鐢ㄦ埛id鑾峰彇鐢ㄦ埛宸ヤ綔缁忓巻 GET /api/UserResume/GetUserResumeWorkExperience */
export async function getUserResumeWorkExperience(options?: API.RequestConfig) {
return request<API.UserResumeWorkExperienceOutput>(
'/api/UserResume/GetUserResumeWorkExperience',
@@ -58,12 +74,12 @@
);
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeBaseInfo */
+/** 淇濆瓨绠�鍘嗙殑鍩虹淇℃伅 POST /api/UserResume/SaveUserResumeBaseInfo */
export async function saveUserResumeBaseInfo(
body: API.SaveUserResumeBaseInfoInput,
options?: API.RequestConfig
) {
- return request<any>('/api/UserResume/SaveUserResumeBaseInfo', {
+ return request<number>('/api/UserResume/SaveUserResumeBaseInfo', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -73,12 +89,12 @@
});
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeCertificate */
+/** 淇濆瓨鐢ㄦ埛鐨勭畝鍘嗚璇佷俊鎭� POST /api/UserResume/SaveUserResumeCertificate */
export async function saveUserResumeCertificate(
body: API.SaveUserResumeCertificateInput,
options?: API.RequestConfig
) {
- return request<any>('/api/UserResume/SaveUserResumeCertificate', {
+ return request<number>('/api/UserResume/SaveUserResumeCertificate', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -88,12 +104,12 @@
});
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeDetailInfo */
+/** 淇濆瓨绠�鍘嗚鎯� POST /api/UserResume/SaveUserResumeDetailInfo */
export async function saveUserResumeDetailInfo(
body: API.SaveUserResumeDetailInfoInput,
options?: API.RequestConfig
) {
- return request<any>('/api/UserResume/SaveUserResumeDetailInfo', {
+ return request<number>('/api/UserResume/SaveUserResumeDetailInfo', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -103,12 +119,12 @@
});
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeExpectationJob */
+/** 淇濆瓨鐢ㄦ埛鏈熸湜鐨勫矖浣嶄俊鎭� POST /api/UserResume/SaveUserResumeExpectationJob */
export async function saveUserResumeExpectationJob(
body: API.SaveUserResumeExpectationJobInput,
options?: API.RequestConfig
) {
- return request<any>('/api/UserResume/SaveUserResumeExpectationJob', {
+ return request<number>('/api/UserResume/SaveUserResumeExpectationJob', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -118,12 +134,12 @@
});
}
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 POST /api/UserResume/SaveUserResumeWorkExperience */
+/** 淇濆瓨鐢ㄦ埛宸ヤ綔缁忓巻 POST /api/UserResume/SaveUserResumeWorkExperience */
export async function saveUserResumeWorkExperience(
body: API.SaveUserResumeWorkExperienceInput,
options?: API.RequestConfig
) {
- return request<any>('/api/UserResume/SaveUserResumeWorkExperience', {
+ return request<number>('/api/UserResume/SaveUserResumeWorkExperience', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 2f434df..ffe8d03 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -9,6 +9,7 @@
import * as Common from './Common';
import * as Features from './Features';
import * as FlexEnterprise from './FlexEnterprise';
+import * as FlexEnterpriseWoker from './FlexEnterpriseWoker';
import * as FlexTask from './FlexTask';
import * as FlexWorker from './FlexWorker';
import * as IdentityRole from './IdentityRole';
@@ -19,6 +20,7 @@
import * as Profile from './Profile';
import * as SearchSetting from './SearchSetting';
import * as Tenant from './Tenant';
+import * as User from './User';
import * as UserResume from './UserResume';
import * as Version from './Version';
export default {
@@ -29,6 +31,7 @@
Common,
Features,
FlexEnterprise,
+ FlexEnterpriseWoker,
FlexTask,
FlexWorker,
IdentityRole,
@@ -39,6 +42,7 @@
Profile,
SearchSetting,
Tenant,
+ User,
UserResume,
Version,
};
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index ed47c06..b4ce2de 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -242,6 +242,10 @@
id: string;
}
+ interface APIgetUserDetailForBackParams {
+ userId?: string;
+ }
+
interface APIgetUserListByPhoneNumberParams {
phoneNumber?: string;
clientId?: string;
@@ -803,6 +807,7 @@
id?: string;
aideType?: FlexTaskAideEnum;
name?: string;
+ imageUrl?: string;
}
type FlexTaskAideEnum = 10 | 20;
@@ -847,7 +852,7 @@
type FlexTaskSettleTypeEnum = 10 | 20 | 30;
- type FlexTaskWorkerHireEnum = 10 | 20 | 30;
+ type FlexTaskWorkerHireEnum = 1 | 10 | 20 | 30 | 40;
type FlexWorkerEleSignEnum = 10 | 20 | 30;
@@ -1196,6 +1201,77 @@
belongType?: number;
}
+ interface GetUserClientForBackInput {
+ pageModel?: Pagination;
+ /** 濮撳悕/鎵嬫満/韬唤璇佸彿/瀹㈡埛 */
+ searchKeys?: string;
+ /** 鏈�杩戝綍鐢ㄦ椂闂�--寮�濮� */
+ nearlyHireDateTimeBegin?: string;
+ /** 鏈�杩戝綍鐢ㄦ椂闂�--缁撴潫 */
+ nearlyHireDateTimeEnd?: string;
+ /** 鏈�杩戠绾︽椂闂�--寮�濮� */
+ nearlySignDateTimeBegin?: string;
+ /** 鏈�杩戠绾︽椂闂�--缁撴潫 */
+ nearlySignDateTimeEnd?: string;
+ /** 瀹炲悕鐘舵�� */
+ realVerifyStatus?: boolean;
+ }
+
+ interface GetUserClientForBackOutput {
+ userId?: string;
+ userResumeId?: string;
+ /** 濮撳悕 */
+ name?: string;
+ /** 韬唤璇佸彿 */
+ idNumber?: string;
+ /** 鎵嬫満鍙� */
+ contactPhone?: string;
+ /** 骞撮緞 */
+ age?: number;
+ genderType?: GenderTypeEnum;
+ /** 甯搁┗鐪佷唤Code */
+ residentProvinceCode?: number;
+ /** 甯搁┗鍩庡競code */
+ residentCityCode?: number;
+ /** 甯搁┗鐪佷唤鍚嶇О */
+ residentProvinceName?: string;
+ /** 甯搁┗鍩庡競鍚嶇О */
+ residentCityName?: string;
+ /** 瀹炲悕鐘舵�� */
+ realVerifyStatus?: boolean;
+ /** 瀹炲悕鏃堕棿 */
+ realVerifyTime?: string;
+ nearlyWorkRecord?: NearlyFlexWorkerRecord;
+ }
+
+ interface GetUserClientForBackOutputPageOutput {
+ pageModel?: Pagination;
+ objectData?: any;
+ data?: GetUserClientForBackOutput[];
+ }
+
+ interface GetUserClientSignListInput {
+ pageModel?: Pagination;
+ userId?: string;
+ }
+
+ interface GetUserDetailForBackOutput {
+ userId?: string;
+ userResumeId?: string;
+ /** 濮撳悕 */
+ name?: string;
+ /** 韬唤璇佸彿 */
+ idNumber?: string;
+ /** 鎵嬫満鍙� */
+ contactPhone?: string;
+ /** 骞撮緞 */
+ age?: number;
+ /** 韬唤璇佹闈� */
+ certificateFrontImgUrl?: string;
+ /** 韬唤璇佸弽闈� */
+ certificateBackImgUrl?: string;
+ }
+
interface GetWorkerListForBackOutput {
userId?: string;
/** 濮撳悕 */
@@ -1506,6 +1582,7 @@
resumeCertifiDetail?: UserResumeCertificateDetailOutput;
resumeDetailInfo?: UserResumeDetailInfoOutput;
resumeWorkExperience?: UserResumeWorkExperienceOutput;
+ /** 宸ヤ綔璁板綍 */
resumeWorkRecordList?: UserResumeWorkerRecordOutput[];
}
@@ -1533,6 +1610,16 @@
interface NameValue {
name?: string;
value?: string;
+ }
+
+ interface NearlyFlexWorkerRecord {
+ taskId?: string;
+ /** 鏈�杩戝綍鐢ㄦ椂闂� */
+ nearlyHireDateTime?: string;
+ /** 鏈�杩戠绾︽椂闂� */
+ nearlySignDateTime?: string;
+ /** 鎵�灞炲晢鎴� */
+ enterpirseName?: string;
}
interface ObjectExtensionsDto {
@@ -1712,6 +1799,13 @@
typeSimple?: string;
}
+ interface RoleDto {
+ /** 瑙掕壊Id */
+ id?: string;
+ /** 瑙掕壊鍚� */
+ name?: string;
+ }
+
interface SaveUserResumeBaseInfoInput {
name?: string;
socialIdentity?: string;
@@ -1720,6 +1814,10 @@
residentCityCode?: number;
residentProvinceName?: string;
residentCityName?: string;
+ /** 鑱旂郴鐢佃瘽 */
+ phoneNumber?: string;
+ /** 澶村儚 */
+ avatarUrl?: string;
}
interface SaveUserResumeCertificateInput {
@@ -1929,6 +2027,30 @@
releaseStatus?: FlexTaskReleaseStatusEnum;
}
+ interface UserClientSignListOutput {
+ /** 鎵�灞炲晢鎴� */
+ enterpirseName?: string;
+ /** 鎶ュ悕鏃堕棿 */
+ applyTime?: string;
+ enterSignStatus?: FlexWorkerEleSignEnum;
+ /** 浼佷笟绛剧害鏃堕棿 */
+ enterSignTime?: string;
+ hireStatus?: FlexTaskWorkerHireEnum;
+ /** 褰曠敤鏃堕棿 */
+ hireDateTime?: string;
+ userSignStatus?: FlexWorkerEleSignEnum;
+ /** 鐏靛伐绛剧害鏃堕棿 */
+ userSignTime?: string;
+ /** 鐢靛瓙鍚堝悓 */
+ contractUrl?: string;
+ }
+
+ interface UserClientSignListOutputPageOutput {
+ pageModel?: Pagination;
+ objectData?: any;
+ data?: UserClientSignListOutput[];
+ }
+
interface UserData {
id?: string;
tenantId?: string;
@@ -1951,51 +2073,102 @@
items?: UserData[];
}
- interface UserResumeBaseInfoOutput {
+ interface UserDto {
+ /** 鐢ㄦ埛Id */
+ id?: string;
+ /** 鐧诲綍鐢ㄦ埛鍚嶏紙璐﹀彿锛� */
+ userName?: string;
+ /** 鍚嶇О */
name?: string;
+ /** 鐢ㄦ埛鎵嬫満鍙� */
phoneNumber?: string;
+ /** 璐︽埛鏄惁閿佷綇锛堟槸鍚︾鐢級 */
+ isLocked?: boolean;
+ /** 瑙掕壊淇℃伅 */
+ roles?: RoleDto[];
+ /** 澶囨敞 */
+ remark?: string;
+ /** 缁勭粐鏋舵瀯鍏徃id */
+ companyOrgId?: string;
+ /** 缁勭粐鏋舵瀯閮ㄩ棬id */
+ departmentOrgId?: string;
+ }
+
+ interface UserResumeBaseInfoOutput {
+ /** 濮撳悕 */
+ name?: string;
+ /** 鐢佃瘽鍙风爜 */
+ phoneNumber?: string;
+ /** 澶村儚 */
avatarUrl?: string;
genderType?: GenderTypeEnum;
+ /** 骞撮緞 */
age?: number;
+ /** 涓婂矖娆℃暟 */
arrangeCount?: number;
+ /** 韬唤璇佸彿鐮� */
idNumber?: string;
+ /** 韬唤 */
socialIdentity?: string;
+ /** 韬唤鍚嶇О */
socialIdentityName?: string;
+ /** 瀛﹀巻 */
educationalLevel?: string;
+ /** 瀛﹀巻鍚嶇О */
educationalLevelName?: string;
+ /** 甯搁┗鐪佷唤Code */
residentProvinceCode?: number;
+ /** 甯搁┗鍩庡競code */
residentCityCode?: number;
+ /** 甯搁┗鐪佷唤鍚嶇О */
residentProvinceName?: string;
+ /** 甯搁┗鍩庡競鍚嶇О */
residentCityName?: string;
}
interface UserResumeCertificateDetailOutput {
+ /** 绠�鍘嗚璇佽鎯匢d */
id?: string;
- userResumeId?: string;
+ /** 鐢ㄦ埛绠�鍘咺d */
+ userId?: string;
+ /** 璁よ瘉绫诲埆Id */
certificateTypeId?: string;
+ /** 璁よ瘉璇佷欢鍙烽粯璁よ韩浠借瘉 */
certificateNo?: string;
+ /** 璇佷欢寮�濮嬫椂闂� */
beginTime?: string;
+ /** 璇佷欢缁撴潫鏃堕棿 */
endTime?: string;
+ /** 鏄惁姘镐箙 */
isPermanent?: boolean;
certificateUnit?: string;
+ /** 韬唤璇佹闈� */
certificateFrontImgUrl?: string;
+ /** 韬唤璇佸弽闈� */
certificateBackImgUrl?: string;
}
interface UserResumeCertificateListOutput {
id?: string;
+ /** 璇佷功Id */
certificateTypeId?: string;
+ /** 璇佷功鍚嶇О */
certificateTypeName?: string;
+ /** 宸ヤ綔绠�鍘咺d */
userResumeId?: string;
}
interface UserResumeDetailInfoOutput {
+ /** 韬珮 */
height?: string;
+ /** 浣撻噸 */
weight?: string;
+ /** 涓汉鐢熸椿鐓� */
lifeCircleImgUrlList?: string[];
}
interface UserResumeExpectationJobOutput {
+ /** 鏈熸湜宀椾綅鍒楄〃 */
jobIdList?: IdNameOutput[];
freeTime?: UserResumeFreeTimeEnum;
jobSeekingStatus?: UserResumeJobSeekingStatusEnum;
@@ -2006,13 +2179,18 @@
type UserResumeJobSeekingStatusEnum = 1 | 2 | 3;
interface UserResumeWorkerRecordOutput {
+ /** 宸ヤ綔鏃堕棿 */
workTime?: string;
+ /** 宸ヤ綔鍦扮偣 */
workAddress?: string;
+ /** 宸ヤ綔鍚嶇О */
workName?: string;
}
interface UserResumeWorkExperienceOutput {
+ /** 宸ヤ綔骞撮檺 */
workingSeniority?: string;
+ /** 宸ヤ綔缁忛獙 */
workExperience?: string;
}
diff --git a/src/views/EnterpriseManage/AddOrEditEnterprise.vue b/src/views/EnterpriseManage/AddOrEditEnterprise.vue
index c506e3f..403484d 100644
--- a/src/views/EnterpriseManage/AddOrEditEnterprise.vue
+++ b/src/views/EnterpriseManage/AddOrEditEnterprise.vue
@@ -2,7 +2,7 @@
<AddOrEditEnterpriseView
emitAddEvent="enterprise:add"
emitEditEvent="enterprise:edit"
- backRouteName="MyPublishInformationList"
+ backRouteName="EnterpriseManageList"
:isDetail="false"
></AddOrEditEnterpriseView>
</template>
diff --git a/src/views/EnterpriseManage/EnterpriseDetail.vue b/src/views/EnterpriseManage/EnterpriseDetail.vue
new file mode 100644
index 0000000..b563b26
--- /dev/null
+++ b/src/views/EnterpriseManage/EnterpriseDetail.vue
@@ -0,0 +1,11 @@
+<template>
+ <AddOrEditEnterpriseView backRouteName="EnterpriseManageList" isDetail />
+</template>
+
+<script setup lang="ts">
+import AddOrEditEnterpriseView from './components/AddOrEditEnterpriseView.vue';
+
+defineOptions({
+ name: 'EnterpriseDetail',
+});
+</script>
diff --git a/src/views/EnterpriseManage/EnterpriseManageList.vue b/src/views/EnterpriseManage/EnterpriseManageList.vue
index d7a8dde..28e00da 100644
--- a/src/views/EnterpriseManage/EnterpriseManageList.vue
+++ b/src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -3,13 +3,10 @@
<AppContainer>
<ProTableQueryFilterBar @on-reset="reset">
<template #query>
- <QueryFilterItem tip-content="鐘舵��">
+ <QueryFilterItem tip-content="閰嶇疆鐘舵��">
<FieldRadio
- v-model="extraParamState.status"
- :value-enum="[
- { label: '宸查厤缃�', value: true },
- { label: '鏈厤缃�', value: false },
- ]"
+ v-model="extraParamState.flexEnterpriseSettingStatus"
+ :value-enum="FlexEnterpriseSettingStatusText"
buttonStyle
showAllBtn
@change="getList()"
@@ -17,7 +14,7 @@
</QueryFilterItem>
<QueryFilterItem>
<SearchInput
- v-model="extraParamState.name"
+ v-model="extraParamState.searchWord"
style="width: 200px"
placeholder="浼佷笟鍚嶇О/娉曚汉/鑱旂郴浜�"
@on-click-search="getList"
@@ -29,7 +26,7 @@
<template #btn>
<el-button
v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
- @click="openDialog()"
+ @click="addOrEditEnterprise()"
icon="Plus"
type="primary"
>鏂板</el-button
@@ -39,7 +36,7 @@
<ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
</ProTableV2>
</AppContainer>
- <!-- <AddOrEditSearchSetting v-bind="dialogProps" :typeList="typeList" /> -->
+ <ConfigureDialog v-bind="dialogProps" />
</LoadingLayout>
</template>
@@ -54,14 +51,24 @@
QueryFilterItem,
useTable,
useFormDialog,
- UploadUserFile,
FieldRadio,
} from '@bole-core/components';
import { useAccess, useGlobalEventContext } from '@/hooks';
-import * as searchSettingServices from '@/services/api/SearchSetting';
-import { SearchType, SearchTypeText } from '@/constants';
+import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
+import {
+ SearchType,
+ FlexEnterpriseSettingStatusText,
+ FlexEnterpriseSettingStatus,
+ FlexEnterpriseCertificationStatusText,
+ EnterpriseConfigureType,
+ MessageChannelEnum,
+ VerifyStatus,
+ SignChannelEnum,
+ ChargeTypeEnum,
+ FlexEnterpriseStatus,
+} from '@/constants';
+import ConfigureDialog from './components/ConfigureDialog.vue';
import { OrderInputType, Message } from '@bole-core/core';
-import { convertApi2FormUrl } from '@/utils';
import { useQueryClient } from '@tanstack/vue-query';
import { useSearchSettingType } from '@/hooks';
@@ -70,7 +77,10 @@
});
const operationBtnMap: Record<string, OperationBtnType> = {
- editBtn: { emits: { onClick: (role) => openDialog(role) } },
+ editBtn: { emits: { onClick: (role) => addOrEditEnterprise(role) } },
+ detailBtn: { emits: { onClick: (role) => handleDetail(role) } },
+ configBtn: { emits: { onClick: (role) => openDialog(role) } },
+ freezeBtn: { emits: { onClick: (role) => handleSetStatus(role) } },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
@@ -87,6 +97,8 @@
getList(paginationState.pageIndex);
});
+const router = useRouter();
+
const BaseState = {
loading: true,
};
@@ -94,6 +106,7 @@
const { searchSettingTypeList: typeList } = useSearchSettingType({
searchType: SearchType.IndustryCategory,
});
+
const state = reactive({ ...BaseState });
onMounted(async () => {
@@ -110,23 +123,17 @@
} = useTable(
async ({ pageIndex, pageSize }, extraParamState) => {
try {
- let params: API.GetSearchSettingListInput = {
+ let params: API.GetFlexEnterpriseInput = {
pageModel: {
rows: pageSize,
page: pageIndex,
orderInput: extraParamState.orderInput,
},
- name: extraParamState.name,
- // belongType: Number(extraParamState.belongType),
- searchType: Number(extraParamState.searchType),
- status: extraParamState.status,
+ flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
+ searchWord: extraParamState.searchWord,
};
- if (extraParamState.searchType === SearchType.Position) {
- params.isRecommend = extraParamState.isRecommend;
- params.parentId = extraParamState.parentId;
- }
- let res = await searchSettingServices.getSearchSettingList(params, {
+ let res = await flexEnterpriseServices.getFlexEnterpriseList(params, {
showLoading: !state.loading,
});
return res;
@@ -136,35 +143,37 @@
},
{
defaultExtraParams: {
- name: '',
- searchType: SearchType.Identity,
- orderInput: [{ property: 'sort', order: OrderInputType.Asc }],
- status: '' as any as boolean,
- isRecommend: '' as any as boolean,
- parentId: '',
+ searchWord: '',
+ orderInput: [{ property: 'id', order: OrderInputType.Asc }],
+ flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus,
},
- queryKey: ['searchSettingServices/getSearchSettingList'],
+ queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
columnsRenderProps: {
- searchType: { type: 'enum', valueEnum: SearchTypeText },
+ settingStatus: { type: 'enum', valueEnum: FlexEnterpriseSettingStatusText },
+ certificationStatus: { type: 'enum', valueEnum: FlexEnterpriseCertificationStatusText },
},
}
);
-function openDialog(row?: API.GetSearchSettingList) {
+function openDialog(row?: API.FlexEnterpriseDto) {
if (row) {
handleEdit({
id: row.id,
- searchType: extraParamState.searchType,
- name: row.name,
- sort: row.sort,
- status: row.status,
- src: row.src?.length ? [convertApi2FormUrl(row.src)] : [],
- parentId: row.parentId ?? '',
+ flexEnterpirseId: row.id,
+ openBank: row.cityName,
+ openBranchBank: row.cityName,
+ bankAccount: row.cityName,
+ verifyStatus: VerifyStatus.NotVerify,
+ signChannel: SignChannelEnum.Alipay,
+ chargeType: ChargeTypeEnum.Group,
+ realVerifyCost: 0,
+ signCost: 0,
+ mergeSignCost: 0,
+ messageCost: 0,
+ messageChannel: MessageChannelEnum.Alipay,
});
} else {
- handleAdd({
- searchType: extraParamState.searchType,
- });
+ handleAdd({});
}
}
@@ -172,57 +181,101 @@
onConfirm: handleAddOrEdit,
defaultFormParams: {
id: '',
- searchType: SearchType.Identity,
- name: '',
- sort: 0,
- status: true,
- src: [] as UploadUserFile[],
- parentId: '',
+ flexEnterpirseId: '',
+ openBank: '',
+ openBranchBank: '',
+ bankAccount: '',
+ verifyStatus: '' as any as VerifyStatus,
+ signChannel: '' as any as SignChannelEnum,
+ chargeType: '' as any as ChargeTypeEnum,
+ realVerifyCost: 0,
+ signCost: 0,
+ mergeSignCost: 0,
+ messageCost: 0,
+ messageChannel: '' as any as MessageChannelEnum,
},
});
-async function handleAddOrEdit() {
+async function handleAddOrEdit(type: EnterpriseConfigureType) {
try {
- let params: API.CreateOrEditSearchInput = {
- searchType: extraParamState.searchType,
- name: editForm.name,
- sort: editForm.sort,
- status: editForm.status,
- src: editForm.src?.[0]?.path ?? '',
- parentId: editForm.parentId ?? '',
- };
- if (editForm.id) {
- params.id = editForm.id;
+ let res;
+ if (type === EnterpriseConfigureType.Bank) {
+ res = await createOrEditFlexEnterpriseBankSetting();
}
- let res = await searchSettingServices.createOrEditSearchSetting(params);
+ if (type === EnterpriseConfigureType.Electronic) {
+ res = await createOrEditFlexEnterpriseSignSetting();
+ }
+ if (type === EnterpriseConfigureType.ShortMessage) {
+ res = await createOrEditFlexEnterpriseMessageSetting();
+ }
if (res) {
Message.successMessage('鎿嶄綔鎴愬姛');
getList(paginationState.pageIndex);
dialogState.dialogVisible = false;
- updateCategoryMenu();
}
} catch (error) {}
}
-function updateCategoryMenu() {
- queryClient.invalidateQueries({
- queryKey: [
- 'searchSettingServices/getTypeSearchSettingList',
- { searchType: extraParamState.searchType, belongType: null },
- ],
- });
+async function createOrEditFlexEnterpriseBankSetting() {
+ try {
+ let params: API.CreateOrEditFlexEnterpriseBankInput = {
+ id: editForm.id,
+ openBank: editForm.openBank,
+ openBranchBank: editForm.openBranchBank,
+ bankAccount: editForm.bankAccount,
+ verifyStatus: editForm.verifyStatus,
+ flexEnterpirseId: editForm.flexEnterpirseId,
+ };
+ return await flexEnterpriseServices.createOrEditFlexEnterpriseBankSetting(params);
+ } catch (error) {}
+}
+async function createOrEditFlexEnterpriseSignSetting() {
+ try {
+ let params: API.CreateOrEditFlexEnterpriseSignSettingInput = {
+ id: editForm.id,
+ flexEnterpirseId: editForm.flexEnterpirseId,
+ signChannel: editForm.signChannel,
+ chargeType: editForm.chargeType,
+ realVerifyCost: editForm.realVerifyCost,
+ signCost: editForm.signCost,
+ mergeSignCost: editForm.mergeSignCost,
+ };
+ return await flexEnterpriseServices.createOrEditFlexEnterpriseSignSetting(params);
+ } catch (error) {}
+}
+async function createOrEditFlexEnterpriseMessageSetting() {
+ try {
+ let params: API.CreateOrEditFlexEnterpriseMessageSettingInput = {
+ id: editForm.id,
+ flexEnterpirseId: editForm.flexEnterpirseId,
+ messageChannel: editForm.messageChannel,
+ messageCost: editForm.messageCost,
+ };
+ return await flexEnterpriseServices.createOrEditFlexEnterpriseMessageSetting(params);
+ } catch (error) {}
}
-async function setCategoryVis(row: API.GetSearchSettingList) {
+async function handleSetStatus(row: API.FlexEnterpriseDto) {
try {
- let params: API.EnableSearchSettingInput = {
+ let params: API.SetFlexEnterpriseStatusInput = {
id: row.id,
- status: !row.status,
+ status:
+ row.status === FlexEnterpriseStatus.Frozen
+ ? FlexEnterpriseStatus.Normal
+ : FlexEnterpriseStatus.Frozen,
};
- let res = await searchSettingServices.enableSearchSetting(params);
- updateCategoryMenu();
- getList(paginationState.pageIndex);
- return !!res;
+ let res = await flexEnterpriseServices.setFlexEnterpriseStatus(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ getList(paginationState.pageIndex);
+ }
} catch (error) {}
}
+
+function addOrEditEnterprise(row?: API.FlexEnterpriseDto) {
+ router.push({ name: 'AddOrEditEnterprise', params: { id: row?.id ?? '' } });
+}
+function handleDetail(row: API.FlexEnterpriseDto) {
+ router.push({ name: 'EnterpriseDetail', params: { id: row?.id ?? '' } });
+}
</script>
diff --git a/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
index 2d5ee59..bdc92b9 100644
--- a/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
+++ b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
@@ -5,9 +5,9 @@
<ProForm :model="form" :rules="rules" ref="formRef" label-width="120px" :is-read="isDetail">
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="浼佷笟鍚嶇О:" prop="name" required>
+ <ProFormItemV2 label="浼佷笟鍚嶇О:" prop="enterpriseName">
<ProFormText
- v-model.trim="form.name"
+ v-model.trim="form.enterpriseName"
:maxlength="30"
placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О"
/>
@@ -16,9 +16,9 @@
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="娉曚汉濮撳悕:" prop="name" required>
+ <ProFormItemV2 label="娉曚汉濮撳悕:" prop="legalPersonName">
<ProFormText
- v-model.trim="form.name"
+ v-model.trim="form.legalPersonName"
:maxlength="30"
placeholder="璇疯緭鍏ユ硶浜哄鍚�"
/>
@@ -27,9 +27,9 @@
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="娉曚汉韬唤璇佸彿:" prop="name" required>
+ <ProFormItemV2 label="娉曚汉韬唤璇佸彿:" prop="legalPersonIdNumber">
<ProFormText
- v-model.trim="form.name"
+ v-model.trim="form.legalPersonIdNumber"
:maxlength="30"
placeholder="璇疯緭鍏ユ硶浜鸿韩浠借瘉鍙�"
/>
@@ -48,9 +48,9 @@
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="鎵�鍦ㄧ渷浠�:" prop="name" required>
+ <ProFormItemV2 label="鎵�鍦ㄧ渷浠�:" prop="proviceName">
<ProFormText
- v-model.trim="form.name"
+ v-model.trim="form.proviceName"
:maxlength="30"
placeholder="璇疯緭鍏ユ墍鍦ㄧ渷浠�"
/>
@@ -59,21 +59,23 @@
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="鎵�灞炶涓�:" prop="name" required>
+ <ProFormItemV2 label="鎵�灞炶涓�:" prop="belongIndustryType">
<ProFormSelect
placeholder="璇烽�夋嫨鎵�灞炶涓�"
:value-enum="typeList"
+ enum-value-key="id"
+ enum-label-key="name"
clearable
- v-model="form.name"
+ v-model="form.belongIndustryType"
></ProFormSelect>
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="12">
- <ProFormItemV2 label="鎵�鍦ㄥ煄甯�:" prop="name" required>
+ <ProFormItemV2 label="鎵�鍦ㄥ煄甯�:" prop="cityName">
<ProFormText
- v-model.trim="form.name"
+ v-model.trim="form.cityName"
:maxlength="30"
placeholder="璇疯緭鍏ユ墍鍦ㄥ煄甯�"
/>
@@ -82,9 +84,9 @@
</ProFormCol>
<ProFormCol>
<ProFormColItem :span="24">
- <ProFormItemV2 label="涓昏惀涓氬姟:" prop="name">
+ <ProFormItemV2 label="涓昏惀涓氬姟:" prop="cityName">
<ProFormTextArea
- v-model="form.name"
+ v-model="form.cityName"
maxlength="200"
:rows="6"
show-word-limit
@@ -136,6 +138,28 @@
</ProFormCol>
</ProForm>
</ChunkCell>
+ <ChunkCell title="璐﹀彿淇℃伅">
+ <ProForm
+ :model="form"
+ :rules="rules"
+ ref="accountFormRef"
+ label-width="140px"
+ :scroll-to-error="false"
+ :is-read="isDetail"
+ >
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2 label="璐﹀彿:" prop="contact">
+ <ProFormText v-model.trim="form.contact" :maxlength="30" placeholder="璇疯緭鍏ヨ处鍙�" />
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ <div class="chuck-add-or-edit-actions">
+ <el-button @click="handleBack">杩斿洖</el-button>
+ <el-button v-if="!isDetail" type="primary" @click="handleSubmit">纭</el-button>
+ </div>
+ </ProForm>
+ </ChunkCell>
</AppScrollContainer>
</LoadingLayout>
</template>
@@ -154,7 +178,7 @@
} from '@bole-core/components';
import { FormRules, FormInstance } from 'element-plus';
import { SearchType } from '@/constants';
-import * as searchSettingServices from '@/services/api/SearchSetting';
+import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
import { useRouteView, useGlobalEventContext, GlobalEvent, useSearchSettingType } from '@/hooks';
import _ from 'lodash';
import { validateFormList, filterCN } from '@/utils';
@@ -175,7 +199,7 @@
id: '',
emitAddEvent: 'enterprise:add',
emitEditEvent: 'enterprise:edit',
- backRouteName: '',
+ backRouteName: 'EnterpriseManageList',
});
const route = useRoute();
@@ -189,8 +213,13 @@
const form = reactive({
id: '',
- name: '',
+ enterpriseName: '',
+ legalPersonName: '',
+ legalPersonIdNumber: '',
societyCreditCode: '',
+ proviceName: '',
+ cityName: '',
+ belongIndustryType: '',
contact: '',
contactPhone: '',
email: '',
@@ -214,16 +243,11 @@
const formRef = ref<FormInstance>();
const settingFormRef = ref<FormInstance>();
+const accountFormRef = ref<FormInstance>();
const rules = reactive<FormRules>({
- name: [{ required: true, message: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О', trigger: 'blur' }],
- societyCreditCode: [{ required: true, message: '璇疯緭鍏ョ粺涓�淇$敤浠g爜', trigger: 'blur' }],
- categoryType: [{ required: true, message: '璇烽�夋嫨琛屼笟閰嶅', trigger: 'change' }],
- areaList: [{ required: true, message: '璇烽�夋嫨鎵�鍦ㄥ湴鍖�', trigger: 'change', type: 'array' }],
- companyAddress: [{ required: true, message: '璇疯緭鍏ュ叕鍙稿湴鍧�', trigger: 'blur' }],
+ enterpriseName: [{ required: true, message: '璇疯緭鍏ヤ紒涓氬悕绉�', trigger: 'blur' }],
contact: [{ required: true, message: '璇疯緭鍏ヨ仈绯讳汉', trigger: 'blur' }],
- suppierLevel: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟嗙瓑绾�', trigger: 'change' }],
- // suppierType: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟嗙被鍨�', trigger: 'change' }],
contactPhone: [
{ required: true, message: '璇疯緭鍏ヨ仈绯荤數璇�', trigger: 'blur' },
{ message: '璇疯緭鍏ユ纭殑鑱旂郴鐢佃瘽', trigger: 'blur', pattern: BoleRegExp.RegPhoneNumber },
@@ -232,27 +256,40 @@
async function handleSubmit() {
try {
- const valid = await validateFormList([formRef.value, settingFormRef.value]);
+ const valid = await validateFormList([
+ formRef.value,
+ settingFormRef.value,
+ accountFormRef.value,
+ ]);
if (valid) {
- handleCreateOrEditInsureSupplier();
+ handleCreateOrEditFlexEnterprise();
}
} catch (error) {}
}
-async function handleCreateOrEditInsureSupplier() {
+async function handleCreateOrEditFlexEnterprise() {
try {
- // let params: API.CreateOrEditSearchInput = {
- // name: form.name,
- // };
- // if (isEdit.value) {
- // params.id = props.id;
- // }
- // let res = await searchSettingServices.createOrEditSearchSetting(params);
- // if (res) {
- // Message.successMessage(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛');
- // eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add');
- // handleBack();
- // }
+ let params: API.CreateOrEditFlexEnterpriseInput = {
+ enterpriseName: form.enterpriseName,
+ legalPersonName: form.legalPersonName,
+ legalPersonIdNumber: form.legalPersonIdNumber,
+ societyCreditCode: form.societyCreditCode,
+ proviceName: form.proviceName,
+ cityName: form.cityName,
+ belongIndustryType: form.belongIndustryType,
+ contact: form.contact,
+ contactPhone: form.contactPhone,
+ // email: form.email,
+ };
+ if (isEdit.value) {
+ params.id = props.id;
+ }
+ let res = await flexEnterpriseServices.createOrEditFlexEnterprise(params);
+ if (res) {
+ Message.successMessage(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛');
+ eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add');
+ handleBack();
+ }
} catch (error) {}
}
diff --git a/src/views/EnterpriseManage/components/ConfigureDialog.vue b/src/views/EnterpriseManage/components/ConfigureDialog.vue
new file mode 100644
index 0000000..c91035b
--- /dev/null
+++ b/src/views/EnterpriseManage/components/ConfigureDialog.vue
@@ -0,0 +1,239 @@
+<template>
+ <ProDialog title="閰嶇疆" v-model="innerVisible" @close="onDialogClose" destroy-on-close draggable>
+ <ProForm :model="innerForm" ref="dialogForm" label-width="100px">
+ <ProFormItemV2 label="" prop="enterpriseConfigureType" label-width="0">
+ <ProFormRadio
+ v-model="enterpriseConfigureType"
+ :value-enum="EnterpriseConfigureTypeText"
+ buttonStyle
+ />
+ </ProFormItemV2>
+ <template v-if="enterpriseConfigureType === EnterpriseConfigureType.Bank">
+ <ProFormItemV2 label="寮�鎴锋�昏:" prop="openBank">
+ <ProFormText
+ v-model.trim="innerForm.openBank"
+ placeholder="璇疯緭鍏ュ紑鎴锋�昏"
+ :maxlength="40"
+ />
+ </ProFormItemV2>
+ <ProFormItemV2 label="寮�鎴锋敮琛�:" prop="openBranchBank">
+ <ProFormText
+ v-model.trim="innerForm.openBranchBank"
+ placeholder="璇疯緭鍏ュ紑鎴锋敮琛�"
+ :maxlength="40"
+ />
+ </ProFormItemV2>
+ <ProFormItemV2
+ label="閾惰璐︽埛:"
+ prop="bankAccount"
+ :check-rules="[
+ { message: '璇疯緭鍏ラ摱琛岃处鎴�' },
+ { message: '閾惰璐︽埛浠呮敮鎸佹暟瀛�', pattern: BoleRegExp.RegNumber },
+ ]"
+ >
+ <ProFormText v-model.trim="innerForm.bankAccount" placeholder="璇疯緭鍏ラ摱琛岃处鎴�" />
+ </ProFormItemV2>
+ <ProFormItemV2 label="閾惰璐︽埛:" prop="verifyStatus">
+ {{ VerifyStatusText[innerForm.verifyStatus] }}
+ <el-button style="margin-left: 40px" type="primary" link @click="handleCheckBankAccount"
+ >鏍¢獙</el-button
+ >
+ </ProFormItemV2>
+ </template>
+ <template v-if="enterpriseConfigureType === EnterpriseConfigureType.Electronic">
+ <div class="configure-dialog-form-title">閫氶亾閰嶇疆</div>
+ <ProFormItemV2
+ label="鍚嶇О:"
+ prop="signChannel"
+ :checkRules="[{ message: '璇烽�夋嫨鐢靛瓙绛鹃�氶亾' }]"
+ >
+ <ProFormSelect
+ v-model="form.signChannel"
+ :valueEnum="SignChannelEnumText"
+ placeholder="璇烽�夋嫨鐢靛瓙绛鹃�氶亾"
+ >
+ </ProFormSelect>
+ </ProFormItemV2>
+ <div class="configure-dialog-form-title">璐圭敤閰嶇疆</div>
+ <ProFormItemV2
+ label="璁¤垂鏂瑰紡:"
+ prop="chargeType"
+ :checkRules="[{ message: '璇烽�夋嫨璁¤垂鏂瑰紡' }]"
+ >
+ <ProFormRadio
+ :button-style="false"
+ v-model="innerForm.chargeType"
+ :value-enum="ChargeTypeEnumText"
+ />
+ </ProFormItemV2>
+ <template v-if="innerForm.chargeType === ChargeTypeEnum.Group">
+ <ProFormItemV2 label="瀹炲悕璐圭敤:" prop="realVerifyCost">
+ <ProFormInputNumber
+ :controls="false"
+ v-model="innerForm.realVerifyCost"
+ placeholder="璇疯緭鍏�"
+ unit="鍏�/鏉�"
+ />
+ </ProFormItemV2>
+ <ProFormItemV2 label="绛剧害璐圭敤:" prop="signCost">
+ <ProFormInputNumber
+ :controls="false"
+ v-model="innerForm.signCost"
+ placeholder="璇疯緭鍏�"
+ unit="鍏�/浠�"
+ />
+ </ProFormItemV2>
+ </template>
+ <template v-if="innerForm.chargeType === ChargeTypeEnum.Merge">
+ <ProFormItemV2 label="缁熶竴鐢靛瓙绛�:" prop="mergeSignCost">
+ <ProFormInputNumber
+ :controls="false"
+ v-model="innerForm.mergeSignCost"
+ placeholder="璇疯緭鍏�"
+ unit="鍏�/浠�"
+ />
+ </ProFormItemV2>
+ </template>
+ </template>
+ <template v-if="enterpriseConfigureType === EnterpriseConfigureType.ShortMessage">
+ <div class="configure-dialog-form-title">閫氶亾閰嶇疆</div>
+ <ProFormItemV2
+ label="鍚嶇О:"
+ prop="messageChannel"
+ :checkRules="[{ message: '璇烽�夋嫨鐭俊閫氶亾' }]"
+ >
+ <ProFormSelect
+ v-model="form.messageChannel"
+ :valueEnum="MessageChannelEnumText"
+ placeholder="璇烽�夋嫨鐭俊閫氶亾"
+ >
+ </ProFormSelect>
+ </ProFormItemV2>
+ <div class="configure-dialog-form-title">璐圭敤閰嶇疆</div>
+ <ProFormItemV2 label="鐭俊璐圭敤:" prop="messageCost">
+ <ProFormInputNumber
+ :controls="false"
+ v-model="innerForm.messageCost"
+ placeholder="璇疯緭鍏�"
+ unit="鍏�/鏉�"
+ />
+ </ProFormItemV2>
+ </template>
+ </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,
+ ProFormRadio,
+ ProFormInputNumber,
+ ProFormSelect,
+} from '@bole-core/components';
+import { BoleRegExp } from '@bole-core/core';
+import {
+ EnterpriseConfigureType,
+ EnterpriseConfigureTypeText,
+ ChargeTypeEnum,
+ ChargeTypeEnumText,
+ SignChannelEnum,
+ SignChannelEnumText,
+ VerifyStatusText,
+ VerifyStatusColor,
+ VerifyStatus,
+ MessageChannelEnum,
+ MessageChannelEnumText,
+} from '@/constants';
+
+defineOptions({
+ name: 'ConfigureDialog',
+});
+
+type Props = {
+ modelValue: boolean;
+ form?: {
+ openBank: string;
+ openBranchBank: string;
+ bankAccount: string;
+ verifyStatus: VerifyStatus;
+ signChannel: SignChannelEnum;
+ chargeType: ChargeTypeEnum;
+ realVerifyCost: number;
+ signCost: number;
+ mergeSignCost: number;
+ messageCost: number;
+ messageChannel: MessageChannelEnum;
+ };
+};
+
+const props = withDefaults(defineProps<Props>(), {
+ modelValue: false,
+});
+
+const enterpriseConfigureType = ref<EnterpriseConfigureType>(EnterpriseConfigureType.Bank);
+
+const emit = defineEmits<{
+ (e: 'update:modelValue', value: boolean): void;
+ (e: 'update:form', value: Props['form']): void;
+ (e: 'onConfirm', value: EnterpriseConfigureType): void;
+ (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+const innerVisible = computed({
+ get() {
+ return props.modelValue;
+ },
+ set(val) {
+ emit('update:modelValue', val);
+ },
+});
+
+const innerForm = computed({
+ get() {
+ return props.form;
+ },
+ set(val) {
+ emit('update:form', val);
+ },
+});
+
+function handleCheckBankAccount() {}
+
+function onDialogClose() {
+ if (!dialogForm.value) return;
+ dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+ if (!dialogForm.value) return;
+ dialogForm.value.validate((valid) => {
+ if (valid) {
+ emit('onConfirm', enterpriseConfigureType.value);
+ } else {
+ return;
+ }
+ });
+}
+</script>
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+
+.configure-dialog-form-title {
+ margin-bottom: 10px;
+ font-size: 15px;
+ font-weight: bold;
+ line-height: 36px;
+}
+</style>
--
Gitblit v1.9.1