From fea063f5c7fdf79d56ada2dd2b8045a44ca2db44 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 08 八月 2025 15:17:55 +0800 Subject: [PATCH] feat: 任务 --- src/views/EmploymentManage/EmploymentSignList.vue | 4 src/views/EmploymentManage/constants/columns.ts | 20 src/views/ServiceChargeManage/ServiceChargeDetail.vue | 4 src/views/EmploymentManage/EmploymentManage.vue | 121 ++- src/views/FinanceManage/components/DistributionDetailView.vue | 3 src/hooks/index.ts | 2 src/services/api/task.ts | 75 ++ src/views/FinanceManage/components/UsageDetailView.vue | 3 auto-imports.d.ts | 65 ++ src/views/EmploymentManage/components/AddOrEditEmploymentView.vue | 213 +++++- src/views/EmploymentManage/CheckManage.vue | 3 src/constants/apiEnum.ts | 100 +++ src/constants/index.ts | 1 types/global.d.ts | 9 src/constants/dic.ts | 60 ++ src/hooks/dic.ts | 252 ++++++++ src/constants/task.ts | 49 + .eslintrc-auto-import.json | 30 + src/services/api/typings.d.ts | 397 ++++++++++++ src/components/WeMap/WeMap.vue | 1 src/services/api/dictionary.ts | 51 + src/views/ServiceChargeManage/ServiceChargeManage.vue | 3 src/views/EmploymentManage/EmploymentManageArrange.vue | 4 types/api.d.ts | 15 src/views/FlexJobManage/FlexJobManage.vue | 4 /dev/null | 66 -- src/services/api/index.ts | 22 src/views/EmploymentManage/components/CheckManageDialog.vue | 3 src/utils/common/area.ts | 11 src/services/api/auth.ts | 12 src/services/api/user.ts | 81 ++ 31 files changed, 1,416 insertions(+), 268 deletions(-) diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index e898675..564f90a 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -3,14 +3,20 @@ "AppLocalConfig": true, "AppType": true, "AreaType": true, + "CategoryCode": true, + "CertificateTypeCodeEnum": true, "Component": true, "ComponentPublicInstance": true, "ComputedRef": true, "DirectiveBinding": true, "EditorType": true, "EditorTypeText": true, + "EducationCodeEnum": true, "EffectScope": true, "EmptyTextEditorItem": true, + "EnumBillingMethod": true, + "EnumBillingMethodText": true, + "EnumBillingMethodUnitText": true, "EnumClientType": true, "EnumClientTypeText": true, "EnumMenuType": true, @@ -22,8 +28,23 @@ "EnumRoleWebApiDataPower": true, "EnumRoleWebApiDataPowerText": true, "EnumRoleWebApiDataPowerTextForFilter": true, + "EnumSettlementCycle": true, + "EnumSettlementCycleText": true, "EnumSmsAccess": true, - "EnumUserInfoStatus": true, + "EnumSmsTemplateType": true, + "EnumTaskCheckReceiveStatus": true, + "EnumTaskRecommendStatus": true, + "EnumTaskRecommendStatusText": true, + "EnumTaskReleaseStatus": true, + "EnumTaskReleaseStatusText": true, + "EnumTaskReleaseStatusTextForTip": true, + "EnumTaskSettlementStatus": true, + "EnumTaskStatus": true, + "EnumTaskStatusText": true, + "EnumUserGender": true, + "EnumUserGenderText": true, + "EnumUserGenderTextForEdit": true, + "EnumUserStatus": true, "EnumUserType": true, "EnumUserTypeText": true, "ExtractDefaultPropTypes": true, @@ -40,6 +61,7 @@ "GlobalEvent": true, "GlobalEventContext": true, "GlobalEventListener": true, + "IdentityCodeEnum": true, "InjectionKey": true, "MaybeRef": true, "MaybeRefOrGetter": true, @@ -72,6 +94,7 @@ "ThemeColors": true, "ThemeColorsType": true, "VNode": true, + "WelfareCodeEnum": true, "WritableComputedRef": true, "acceptHMRUpdate": true, "computed": true, @@ -136,11 +159,16 @@ "triggerRef": true, "unref": true, "useAccess": true, + "useAllAreaList": true, + "useArea": true, + "useAreaByCascader": true, "useAttrs": true, "useClearSubModule": true, "useCopyToClipboard": true, "useCssModule": true, "useCssVars": true, + "useDictionaryDataSelect": true, + "useGetDictionaryCategorySelect": true, "useGlobalEventContext": true, "useGlobalEventProvide": true, "useGroupColumns": true, diff --git a/auto-imports.d.ts b/auto-imports.d.ts index eb2b04b..89fcfda 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -9,12 +9,18 @@ const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig'] const AppType: typeof import('./src/constants/app')['AppType'] const AreaType: typeof import('./src/constants/enum')['AreaType'] + const CategoryCode: typeof import('./src/constants/dic')['CategoryCode'] + const CertificateTypeCodeEnum: typeof import('./src/constants/dic')['CertificateTypeCodeEnum'] const CommonAnnexTableColumns: typeof import('@/constants')['CommonAnnexTableColumns'] const EditorType: typeof import('./src/constants/editor')['EditorType'] const EditorTypeText: typeof import('./src/constants/editor')['EditorTypeText'] + const EducationCodeEnum: typeof import('./src/constants/dic')['EducationCodeEnum'] const EffectScope: typeof import('vue')['EffectScope'] const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] const EmptyTextEditorItem: typeof import('./src/constants/editor')['EmptyTextEditorItem'] + const EnumBillingMethod: typeof import('./src/constants/apiEnum')['EnumBillingMethod'] + const EnumBillingMethodText: typeof import('./src/constants/task')['EnumBillingMethodText'] + 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 EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType'] @@ -26,8 +32,25 @@ const EnumRoleWebApiDataPower: typeof import('./src/constants/apiEnum')['EnumRoleWebApiDataPower'] const EnumRoleWebApiDataPowerText: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText'] const EnumRoleWebApiDataPowerTextForFilter: typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter'] + const EnumSettlementCycle: typeof import('./src/constants/apiEnum')['EnumSettlementCycle'] + const EnumSettlementCycleText: typeof import('./src/constants/task')['EnumSettlementCycleText'] const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess'] + const EnumSmsTemplateType: typeof import('./src/constants/apiEnum')['EnumSmsTemplateType'] + const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus'] + const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus'] + const EnumTaskRecommendStatusText: typeof import('./src/constants/task')['EnumTaskRecommendStatusText'] + 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 EnumTaskSettlementStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus'] + const EnumTaskStatus: typeof import('./src/constants/apiEnum')['EnumTaskStatus'] + const EnumTaskStatusText: typeof import('./src/constants/task')['EnumTaskStatusText'] + const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender'] + const EnumUserGenderText: typeof import('./src/constants/task')['EnumUserGenderText'] + const EnumUserGenderTextForEdit: typeof import('./src/constants/task')['EnumUserGenderTextForEdit'] + const EnumUserGenderWithAllText: typeof import('./src/constants/task')['EnumUserGenderWithAllText'] const EnumUserInfoStatus: typeof import('./src/constants/apiEnum')['EnumUserInfoStatus'] + const EnumUserStatus: typeof import('./src/constants/apiEnum')['EnumUserStatus'] const EnumUserType: typeof import('./src/constants/apiEnum')['EnumUserType'] const EnumUserTypeText: typeof import('./src/constants/apiEnumText')['EnumUserTypeText'] const FastButtonMap: typeof import('./src/constants/module')['FastButtonMap'] @@ -37,6 +60,7 @@ const FlexEnterpriseSettingStatus: typeof import('./src/constants/enum')['FlexEnterpriseSettingStatus'] const Gender: typeof import('./src/constants/enum')['Gender'] const GenderText: typeof import('./src/constants/enum')['GenderText'] + const IdentityCodeEnum: typeof import('./src/constants/dic')['IdentityCodeEnum'] const MenuSvgIconMap: typeof import('./src/constants/menu')['MenuSvgIconMap'] const ModuleColumns: typeof import('./src/constants/module')['ModuleColumns'] const MyRegExp: typeof import('./src/constants/regExp')['MyRegExp'] @@ -58,6 +82,7 @@ const SubModuleType: typeof import('./src/constants/module')['SubModuleType'] const TempFolderPath: typeof import('./src/constants/enum')['TempFolderPath'] const ThemeColors: typeof import('./src/constants/theme')['ThemeColors'] + const WelfareCodeEnum: typeof import('./src/constants/dic')['WelfareCodeEnum'] const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] const computed: typeof import('vue')['computed'] const copyTextToClipboard: typeof import('./src/hooks/useCopyToClipboard')['copyTextToClipboard'] @@ -121,11 +146,16 @@ const triggerRef: typeof import('vue')['triggerRef'] const unref: typeof import('vue')['unref'] const useAccess: typeof import('./src/hooks/useAccess')['useAccess'] + const useAllAreaList: typeof import('./src/hooks/dic')['useAllAreaList'] + const useArea: typeof import('./src/hooks/dic')['useArea'] + const useAreaByCascader: typeof import('./src/hooks/dic')['useAreaByCascader'] const useAttrs: typeof import('vue')['useAttrs'] const useClearSubModule: typeof import('./src/hooks/useAccess')['useClearSubModule'] const useCopyToClipboard: typeof import('./src/hooks/useCopyToClipboard')['useCopyToClipboard'] const useCssModule: typeof import('vue')['useCssModule'] const useCssVars: typeof import('vue')['useCssVars'] + const useDictionaryDataSelect: typeof import('./src/hooks/dic')['useDictionaryDataSelect'] + const useGetDictionaryCategorySelect: typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect'] const useGlobalEventContext: typeof import('./src/hooks/useEvent')['useGlobalEventContext'] const useGlobalEventProvide: typeof import('./src/hooks/useEvent')['useGlobalEventProvide'] const useGroupColumns: typeof import('./src/hooks/useAccess')['useGroupColumns'] @@ -161,8 +191,11 @@ 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 { EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSmsAccess, EnumUserInfoStatus, EnumUserType, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSmsAccess, EnumUserInfoStatus, EnumUserType } from './src/constants/apiEnum' + export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType } from './src/constants/apiEnum' import('./src/constants/apiEnum') + // @ts-ignore + export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic' + import('./src/constants/dic') // @ts-ignore export type { EditorType, EditorType } from './src/constants/editor' import('./src/constants/editor') @@ -191,10 +224,16 @@ readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']> readonly AppType: UnwrapRef<typeof import('./src/constants/app')['AppType']> readonly AreaType: UnwrapRef<typeof import('./src/constants/enum')['AreaType']> + readonly CategoryCode: UnwrapRef<typeof import('./src/constants/dic')['CategoryCode']> + readonly CertificateTypeCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['CertificateTypeCodeEnum']> readonly EditorType: UnwrapRef<typeof import('./src/constants/editor')['EditorType']> readonly EditorTypeText: UnwrapRef<typeof import('./src/constants/editor')['EditorTypeText']> + readonly EducationCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['EducationCodeEnum']> readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']> readonly EmptyTextEditorItem: UnwrapRef<typeof import('./src/constants/editor')['EmptyTextEditorItem']> + readonly EnumBillingMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumBillingMethod']> + readonly EnumBillingMethodText: UnwrapRef<typeof import('./src/constants/task')['EnumBillingMethodText']> + readonly EnumBillingMethodUnitText: UnwrapRef<typeof import('./src/constants/task')['EnumBillingMethodUnitText']> readonly EnumClientType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumClientType']> readonly EnumClientTypeText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumClientTypeText']> readonly EnumMenuType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuType']> @@ -206,8 +245,23 @@ readonly EnumRoleWebApiDataPower: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumRoleWebApiDataPower']> readonly EnumRoleWebApiDataPowerText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerText']> readonly EnumRoleWebApiDataPowerTextForFilter: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumRoleWebApiDataPowerTextForFilter']> + readonly EnumSettlementCycle: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSettlementCycle']> + readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']> readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']> - readonly EnumUserInfoStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserInfoStatus']> + readonly EnumSmsTemplateType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']> + readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']> + readonly EnumTaskRecommendStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']> + readonly EnumTaskRecommendStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskRecommendStatusText']> + 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 EnumTaskSettlementStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']> + readonly EnumTaskStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskStatus']> + readonly EnumTaskStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskStatusText']> + readonly EnumUserGender: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserGender']> + readonly EnumUserGenderText: UnwrapRef<typeof import('./src/constants/task')['EnumUserGenderText']> + readonly EnumUserGenderTextForEdit: UnwrapRef<typeof import('./src/constants/task')['EnumUserGenderTextForEdit']> + readonly EnumUserStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserStatus']> readonly EnumUserType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserType']> readonly EnumUserTypeText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumUserTypeText']> readonly FastButtonMap: UnwrapRef<typeof import('./src/constants/module')['FastButtonMap']> @@ -217,6 +271,7 @@ readonly FlexEnterpriseSettingStatus: UnwrapRef<typeof import('./src/constants/enum')['FlexEnterpriseSettingStatus']> readonly Gender: UnwrapRef<typeof import('./src/constants/enum')['Gender']> readonly GenderText: UnwrapRef<typeof import('./src/constants/enum')['GenderText']> + readonly IdentityCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['IdentityCodeEnum']> readonly MenuSvgIconMap: UnwrapRef<typeof import('./src/constants/menu')['MenuSvgIconMap']> readonly ModuleColumns: UnwrapRef<typeof import('./src/constants/module')['ModuleColumns']> readonly MyRegExp: UnwrapRef<typeof import('./src/constants/regExp')['MyRegExp']> @@ -238,6 +293,7 @@ readonly SubModuleType: UnwrapRef<typeof import('./src/constants/module')['SubModuleType']> readonly TempFolderPath: UnwrapRef<typeof import('./src/constants/enum')['TempFolderPath']> readonly ThemeColors: UnwrapRef<typeof import('./src/constants/theme')['ThemeColors']> + readonly WelfareCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['WelfareCodeEnum']> readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']> readonly computed: UnwrapRef<typeof import('vue')['computed']> readonly copyTextToClipboard: UnwrapRef<typeof import('./src/hooks/useCopyToClipboard')['copyTextToClipboard']> @@ -301,11 +357,16 @@ readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']> readonly unref: UnwrapRef<typeof import('vue')['unref']> readonly useAccess: UnwrapRef<typeof import('./src/hooks/useAccess')['useAccess']> + readonly useAllAreaList: UnwrapRef<typeof import('./src/hooks/dic')['useAllAreaList']> + readonly useArea: UnwrapRef<typeof import('./src/hooks/dic')['useArea']> + readonly useAreaByCascader: UnwrapRef<typeof import('./src/hooks/dic')['useAreaByCascader']> readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']> readonly useClearSubModule: UnwrapRef<typeof import('./src/hooks/useAccess')['useClearSubModule']> readonly useCopyToClipboard: UnwrapRef<typeof import('./src/hooks/useCopyToClipboard')['useCopyToClipboard']> readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']> readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']> + readonly useDictionaryDataSelect: UnwrapRef<typeof import('./src/hooks/dic')['useDictionaryDataSelect']> + readonly useGetDictionaryCategorySelect: UnwrapRef<typeof import('./src/hooks/dic')['useGetDictionaryCategorySelect']> readonly useGlobalEventContext: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventContext']> readonly useGlobalEventProvide: UnwrapRef<typeof import('./src/hooks/useEvent')['useGlobalEventProvide']> readonly useGroupColumns: UnwrapRef<typeof import('./src/hooks/useAccess')['useGroupColumns']> diff --git a/src/components/WeMap/WeMap.vue b/src/components/WeMap/WeMap.vue index 8706d7c..631ed7a 100644 --- a/src/components/WeMap/WeMap.vue +++ b/src/components/WeMap/WeMap.vue @@ -87,6 +87,7 @@ cityCode: findAreaCodeFromName(cityName), countyCode: findAreaCodeFromName(countyName), address: loc.poiaddress, + addressName: loc.poiname, }); if (props.validateEvent) { formItem?.validate?.('change'); diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts index f1a06ac..d4ebf8b 100644 --- a/src/constants/apiEnum.ts +++ b/src/constants/apiEnum.ts @@ -1,6 +1,18 @@ /* eslint-disable */ // @ts-ignore +/** 璁¤垂鏂瑰紡 */ +export enum EnumBillingMethod { + /**鎸夋湀 */ + Month = 10, + /**鎸夊ぉ */ + Day = 20, + /**鎸夋椂 */ + Hour = 30, + /**璁′欢 */ + Piece = 40, +} + /** 瀹㈡埛绔被鍨� */ export enum EnumClientType { /**鐢佃剳缃戦〉 */ @@ -53,18 +65,20 @@ export enum EnumResourceController { /**鏁版嵁瀛楀吀 */ Dictionary = 0, + /**浠诲姟 */ + Task = 1, /**鐢ㄦ埛璁よ瘉 */ - Auth = 1, + Auth = 2, /**鐢ㄦ埛鑿滃崟 */ - Menu = 2, + Menu = 3, /**鐢ㄦ埛璧勬簮 */ - Resource = 3, + Resource = 4, /**鐢ㄦ埛瑙掕壊 */ - Role = 4, + Role = 5, /**鐢ㄦ埛淇℃伅 */ - UserInfo = 5, + User = 6, /**浼佷笟淇℃伅 */ - Enterprise = 6, + Enterprise = 7, } /** 璧勬簮璇锋眰鏂瑰紡 */ @@ -95,14 +109,86 @@ All = 999, } +/** 缁撶畻鍛ㄦ湡 */ +export enum EnumSettlementCycle { + /**鏈堢粨 */ + Month = 10, + /**鍛ㄧ粨 */ + Week = 20, + /**鏃ョ粨 */ + Day = 30, +} + /** 鐭俊閫氶亾 */ export enum EnumSmsAccess { /**闃块噷浜戠煭淇� */ AliyunSms = 10, } +/** 鐭俊妯℃澘绫诲瀷 */ +export enum EnumSmsTemplateType { + /**鐧诲綍 */ + Login = 0, + /**娉ㄥ唽 */ + Register = 1, + /**淇敼瀵嗙爜 */ + UpdatePassword = 2, + /**缁戝畾鎵嬫満鍙风爜 */ + BindPhoneNumber = 3, + /**淇敼鎵嬫満鍙风爜 */ + UpdatePhoneNumber = 4, +} + +/** 浠诲姟缁撶畻鐘舵�� */ +export enum EnumTaskCheckReceiveStatus { + /**寰呴獙鏀� */ + Wait = 10, + /**宸查獙鏀� */ + Completed = 30, +} + +/** 浠诲姟鎺ㄨ崘鐘舵�� */ +export enum EnumTaskRecommendStatus { + /**鏈帹鑽� */ + No = 10, + /**宸叉帹鑽� */ + Yes = 20, +} + +/** 浠诲姟鍙戝竷鐘舵�� */ +export enum EnumTaskReleaseStatus { + /**鍙戝竷涓� */ + InProcess = 20, + /**宸插仠姝� */ + Stopped = 100, +} + +/** 浠诲姟缁撶畻鐘舵�� */ +export enum EnumTaskSettlementStatus { + /**寰呯粨绠� */ + Wait = 10, + /**宸茬粨绠� */ + Completed = 30, +} + +/** 浠诲姟瀹夋帓鐘舵�� */ +export enum EnumTaskStatus { + /**寰呭畨鎺� */ + Wait = 10, + /**宸插畨鎺� */ + Complete = 20, +} + +/** 鐢ㄦ埛鎬у埆 */ +export enum EnumUserGender { + /**鐢� */ + Male = 10, + /**濂� */ + Female = 20, +} + /** 鐢ㄦ埛淇℃伅鐘舵�� */ -export enum EnumUserInfoStatus { +export enum EnumUserStatus { /**姝e父 */ Normal = 10, /**绂佺敤 */ diff --git a/src/constants/dic.ts b/src/constants/dic.ts new file mode 100644 index 0000000..41e3e90 --- /dev/null +++ b/src/constants/dic.ts @@ -0,0 +1,60 @@ +export enum CategoryCode { + /**韬唤 */ + Identity = '10', + /**瀛﹀巻 */ + Education = '20', + /**宀椾綅 */ + Position = '30', + /**璇佷功绫诲瀷 */ + CertificateType = '40', + /**绂忓埄 */ + Welfare = '50', + /**琛屼笟绫诲瀷 */ + IndustryCategory = '60', + /**琛屾斂鍦板尯 */ + Area = '70', +} + +export enum IdentityCodeEnum { + /**瀛︾敓 */ + Student = '10-10', + /**闈炲鐢� */ + NotStudent = '10-20', +} + +export enum EducationCodeEnum { + /**鍒濅腑浠ヤ笅 */ + UnderPrimarySchool = '20-10', + /**鍒濅腑 */ + PrimarySchool = '20-20', + /**楂樹腑 */ + HighSchool = '20-30', + /**涓笓 */ + JuniorCollege = '20-40', + /**鎶�鏍� */ + TechnicalSchool = '20-50', + /**涓亴 */ + JuniorHighSchool = '20-60', + /**楂樿亴 */ + SeniorHighSchool = '20-70', + /**鏈 */ + Undergraduate = '20-80', + /**鏈浠ヤ笂 */ + UndergraduateAndAbove = '20-90', +} + +export enum CertificateTypeCodeEnum { + /**鍋ュ悍璇� */ + HealthCertificate = '40-10', +} + +export enum WelfareCodeEnum { + /**鍖呴 */ + Meal = '50-10', + /**鍖呬綇瀹� */ + Accommodation = '50-20', + /**浜ら�氳ˉ璐� */ + TransportationSubsidies = '50-30', + /**楂樻俯琛ヨ创 */ + HighTemperatureSubsidies = '50-40', +} diff --git a/src/constants/index.ts b/src/constants/index.ts index f3951d7..b580961 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -10,3 +10,4 @@ export * from './app'; export * from './apiEnum'; export * from './apiEnumText'; +export * from './task'; diff --git a/src/constants/task.ts b/src/constants/task.ts new file mode 100644 index 0000000..63a20ac --- /dev/null +++ b/src/constants/task.ts @@ -0,0 +1,49 @@ +export const EnumTaskStatusText = { + [EnumTaskStatus.Wait]: '寰呭畨鎺�', + [EnumTaskStatus.Complete]: '宸插畨鎺�', +}; + +export const EnumSettlementCycleText = { + [EnumSettlementCycle.Month]: '鏈堢粨', + [EnumSettlementCycle.Week]: '鍛ㄧ粨', + [EnumSettlementCycle.Day]: '鏃ョ粨', +}; + +export const EnumTaskReleaseStatusText = { + [EnumTaskReleaseStatus.InProcess]: '鍙戝竷涓�', + [EnumTaskReleaseStatus.Stopped]: '宸插仠姝�', +}; +export const EnumTaskReleaseStatusTextForTip = { + [EnumTaskReleaseStatus.InProcess]: '鍙戝竷', + [EnumTaskReleaseStatus.Stopped]: '鍋滄鍙戝竷', +}; + +export const EnumTaskRecommendStatusText = { + [EnumTaskRecommendStatus.No]: '鏈帹鑽�', + [EnumTaskRecommendStatus.Yes]: '宸叉帹鑽�', +}; + +export const EnumBillingMethodText = { + [EnumBillingMethod.Month]: '鎸夋湀', + [EnumBillingMethod.Day]: '鎸夋棩', + [EnumBillingMethod.Hour]: '鎸夋椂', + [EnumBillingMethod.Piece]: '璁′欢', +}; + +export const EnumBillingMethodUnitText = { + [EnumBillingMethod.Month]: '鍏�/鏈�', + [EnumBillingMethod.Day]: '鍏�/鏃�', + [EnumBillingMethod.Hour]: '鍏�/灏忔椂', + [EnumBillingMethod.Piece]: '鍏�/浠�', +}; + +export const EnumUserGenderText = { + [0]: '涓嶉檺', + [EnumUserGender.Male]: '鐢锋��', + [EnumUserGender.Female]: '濂虫��', +}; + +export const EnumUserGenderTextForEdit = { + [EnumUserGender.Male]: '浠呴檺鐢锋��', + [EnumUserGender.Female]: '浠呴檺濂虫��', +}; diff --git a/src/hooks/area.ts b/src/hooks/area.ts deleted file mode 100644 index f965742..0000000 --- a/src/hooks/area.ts +++ /dev/null @@ -1,192 +0,0 @@ -// import { useAreaStore } from '@/store/modules/area'; -// import { AreaType } from '@/constants'; -// import { CascaderProps } from 'element-plus'; -// import { splitAreaTree } from '@/utils'; - -// /** -// * 鑾峰彇瀹屾暣鐨勫湴鍖烘暟鎹爲 -// */ -// export function useCompleteArea() { -// const useArea = useAreaStore(); -// const { completeAreaTree } = storeToRefs(useArea); - -// onMounted(() => { -// useArea.getCompleteAreaTree(); -// }); - -// const areaTreeProps = { -// children: 'children', -// label: 'areaName', -// value: 'areaCode', -// }; - -// return { -// areaTree: completeAreaTree, -// areaTreeProps, -// getAreaTree: useArea.getCompleteAreaTree, -// getAreaNameByAreaCodeWithParentName: useArea.getAreaNameByAreaCodeWithParentName, -// }; -// } - -// type UseAreaByCascaderOptions = { -// layer?: AreaType; -// }; - -// /** -// * @description 鑱旂骇閫夋嫨涓娇鐢� -// */ -// export function useAreaByCascader(options: UseAreaByCascaderOptions = {}) { -// const { layer = AreaType.Area } = options; - -// const areaStore = useAreaStore(); - -// // const { completeAreaList } = storeToRefs(areaStore); - -// // onMounted(() => { -// // areaStore.getCompleteAreaTree(); -// // }); - -// return computed(() => ({ -// // options: layer -// // ? (formatAreaListToTree(completeAreaList.value, 0, layer) as any[]) -// // : completeAreaTree.value, -// // props: { -// // label: 'areaName', -// // value: 'areaCode', -// // }, -// props: { -// label: 'areaName', -// value: 'areaCode', -// lazy: true, -// async lazyLoad(node, resolve) { -// const { level, data } = node; -// const completeAreaList = await areaStore.getCompleteAreaTree(); -// let areas = completeAreaList.filter((x) => -// level ? x.parentCode === data.areaCode : !x.parentCode -// ); -// return resolve( -// areas.map((x) => ({ -// ...x, -// leaf: x.layer >= layer, -// })) -// ); -// }, -// } as CascaderProps, -// })); -// } - -// export type UseAllAreaListOptions = { -// immediate?: boolean; -// }; - -// export function useAllAreaList(options: UseAllAreaListOptions = {}) { -// const { immediate = true } = options; -// const areaStore = useAreaStore(); - -// onMounted(() => { -// if (immediate) { -// areaStore.getCompleteAreaTree(); -// } -// }); - -// const findAreaCodeFromName = (areaName: string) => { -// const areaItem = areaStore.completeAreaList.find((x) => x.areaName === areaName); -// return areaItem?.areaCode ?? 0; -// }; - -// const findAreaNameFromCode = (areaCode: number) => { -// const areaItem = areaStore.completeAreaList.find((x) => x.areaCode === areaCode); -// return areaItem?.areaName ?? ''; -// }; - -// const findAreaItemFromCode = (areaCode: number) => { -// const areaItem = areaStore.completeAreaList.find((x) => x.areaCode === areaCode); -// return areaItem; -// }; - -// return { -// findAreaCodeFromName, -// findAreaNameFromCode, -// findAreaItemFromCode, -// }; -// } - -// export function useProvinceList() { -// const areaStore = useAreaStore(); - -// const { provinceList } = storeToRefs(areaStore); - -// onMounted(() => { -// areaStore.getCompleteAreaTree(); -// }); - -// return { -// provinceList, -// }; -// } - -// type UseAreaByTreeSelectOptions = { -// maxLevel?: number; -// }; - -// export function useAreaByTreeSelect(options: UseAreaByTreeSelectOptions = {}) { -// const { maxLevel = 2 } = options; -// const useArea = useAreaStore(); -// const { completeAreaTree } = storeToRefs(useArea); - -// onMounted(() => { -// useArea.getCompleteAreaTree(); -// }); - -// const areaTree = computed(() => splitAreaTree(completeAreaTree.value, maxLevel)); - -// const treeSelectProps = computed(() => ({ -// data: areaTree.value, -// props: { -// label: 'areaName', -// children: 'children', -// isLeaf: 'leaf', -// }, -// renderAfterExpand: false, -// valueKey: 'areaCode', -// })); - -// return { -// treeSelectProps: treeSelectProps, -// areaTree, -// }; -// } - -// export function useAreaSelect(provinceId: Ref<number>, cityId: Ref<number>, countyId: Ref<number>) { -// const useArea = useAreaStore(); -// const { completeAreaList } = storeToRefs(useArea); - -// const { provinceList } = useProvinceList(); - -// watch(provinceId, async () => { -// await nextTick(); -// if (cityList.value.every((city) => city.areaCode !== cityId.value)) { -// cityId.value = '' as any as number; -// } -// }); - -// watch(cityId, async () => { -// await nextTick(); -// if (countyList.value.every((area) => area.areaCode !== countyId.value)) { -// countyId.value = '' as any as number; -// } -// }); - -// const cityList = computed(() => -// completeAreaList.value.filter((x) => x.parentCode === provinceId.value) -// ); -// const countyList = computed(() => -// completeAreaList.value.filter((x) => x.parentCode === cityId.value) -// ); - -// return { -// provinceList: provinceList, -// cityList: cityList, -// countyList: countyList, -// }; -// } diff --git a/src/hooks/dic.ts b/src/hooks/dic.ts index e69de29..bd004f1 100644 --- a/src/hooks/dic.ts +++ b/src/hooks/dic.ts @@ -0,0 +1,252 @@ +import { useQuery, useQueryClient } from '@tanstack/vue-query'; +import * as dictionaryServices from '@/services/api/dictionary'; +import { formatAreaListToTree } from '@/utils'; +import { CascaderProps } from 'element-plus'; + +export function useGetDictionaryCategorySelect() { + const { data: dictionaryCategoryList, refetch } = useQuery({ + queryKey: ['dictionaryServices/getDictionaryCategorySelect'], + queryFn: async () => { + let res = await dictionaryServices.getDictionaryCategorySelect({}, { showLoading: false }); + return res.map((x) => ({ + ...x, + fieldNamesMap: x.data.fieldNames ? JSON.parse(x.data.fieldNames) : {}, + })); + }, + placeholderData: () => [] as API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[], + }); + + const queryClient = useQueryClient(); + + function ensureQueryData() { + return queryClient.ensureQueryData< + API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[] + >({ + queryKey: ['dictionaryServices/getDictionaryCategorySelect'], + }); + } + + function updateDictionaryCategorySelect() { + queryClient.invalidateQueries({ + queryKey: ['dictionaryServices/getDictionaryCategorySelect'], + }); + } + + function getDictionaryCategoryById(id: string) { + return dictionaryCategoryList.value.find((x) => x.data?.id === id); + } + + function getDictionaryCategoryByCode(code: string) { + return dictionaryCategoryList.value.find((x) => x.data?.code === code); + } + + function getDictionaryCategoryNameByCode(code: string) { + return getDictionaryCategoryByCode(code)?.label ?? ''; + } + + return { + dictionaryCategoryList, + ensureQueryData, + getDictionaryCategoryById, + getDictionaryCategoryNameByCode, + getDictionaryCategoryByCode, + updateDictionaryCategorySelect, + }; +} + +type UseDictionaryDataSelectOptions = { + categoryId?: MaybeRef<string>; + categoryCode?: MaybeRef<CategoryCode>; + parentId?: MaybeRef<string>; + staleTime?: number; + /** 鍏抽敭瀛� */ + keywords?: MaybeRef<string>; + /** 鏌ヨ鎵�鏈� */ + all?: MaybeRef<boolean>; + maxDeep?: number; +}; + +export function useDictionaryDataSelect({ + categoryId, + categoryCode, + parentId, + staleTime, + keywords, + all, + maxDeep, +}: UseDictionaryDataSelectOptions) { + const params = computed(() => ({ + categoryId: unref(categoryId), + categoryCode: unref(categoryCode), + parentId: unref(parentId), + keywords: unref(keywords), + all: unref(all), + maxDeep: maxDeep, + })); + const { data: dictionaryDataList, refetch } = useQuery({ + queryKey: ['dictionaryServices/getDictionaryDataSelect', params], + queryFn: async () => { + let res = await dictionaryServices.getDictionaryDataSelect(params.value, { + showLoading: false, + }); + return res.map((x) => ({ + ...x, + code: x.data?.code ?? '', + })); + }, + placeholderData: () => [] as API.SelectOptionStringGetDictionaryDataSelectQueryResultOption[], + staleTime, + }); + + function getDictionaryDataNameById(id: string) { + return dictionaryDataList.value?.find((x) => x.data?.id === id)?.label; + } + + function getDictionaryDataByCode(code: string) { + return dictionaryDataList.value?.find((x) => x.data?.code === code); + } + + function getDictionaryDataNameByCode(code: string) { + return getDictionaryDataByCode(code)?.label ?? ''; + } + + const queryClient = useQueryClient(); + + function ensureQueryData() { + return queryClient.ensureQueryData< + API.SelectOptionStringGetDictionaryDataSelectQueryResultOption[] + >({ + queryKey: ['dictionaryServices/getDictionaryDataSelect'], + }); + } + + function updateDictionaryDataSelect(categoryId?: string) { + queryClient.invalidateQueries({ + queryKey: ['dictionaryServices/getDictionaryDataSelect'], + }); + } + + return { + dictionaryDataList, + ensureQueryData, + refetch, + getDictionaryDataNameById, + getDictionaryDataNameByCode, + getDictionaryDataByCode, + updateDictionaryDataSelect, + }; +} + +export function useArea() { + const queryClient = useQueryClient(); + + function getAreaList(parentId = '') { + const params = { + categoryCode: CategoryCode.Area, + parentId: parentId, + }; + return queryClient.fetchQuery({ + queryKey: ['dictionaryServices/getDictionaryDataSelect', params], + queryFn: async () => { + let res = await dictionaryServices.getDictionaryDataSelect(params, { showLoading: false }); + return res.map(convertDictionaryToAreaTreeNode); + }, + staleTime: Infinity, + }); + } + + return { getAreaList }; +} + +function convertDictionaryToAreaTreeNode( + item: API.SelectOptionStringGetDictionaryDataSelectQueryResultOption +) { + return { + children: [], + areaCode: item.data?.code, + parentCode: '', + areaName: item.label, + layer: Number(item.data?.field4), + sort: item.data?.sort, + id: item.data?.id, + } as API.AreaTreeNode; +} + +/** + * + * @description 鏆傛椂鏃犳硶浣跨敤 + */ +export function useAllAreaList() { + const { dictionaryDataList } = useDictionaryDataSelect({ + categoryCode: CategoryCode.Area, + staleTime: Infinity, + all: true, + maxDeep: AreaType.Area, + }); + + const areaList = computed(() => dictionaryDataList.value.map(convertDictionaryToAreaTreeNode)); + + const areaTreeProps = { + children: 'children', + label: 'areaName', + value: 'areaCode', + }; + + const areaTree = computed(() => formatAreaListToTree(areaList.value)); + + const findAreaCodeFromName = (areaName: string) => { + const areaItem = areaList.value.find((x) => x.areaName === areaName); + return areaItem?.areaCode ?? ''; + }; + + const findAreaNameFromCode = (areaCode: string) => { + const areaItem = areaList.value.find((x) => x.areaCode === areaCode); + return areaItem?.areaName ?? ''; + }; + + const findAreaItemFromCode = (areaCode: string) => { + const areaItem = areaList.value.find((x) => x.areaCode === areaCode); + return areaItem; + }; + + return { + areaList, + areaTree, + areaTreeProps, + findAreaCodeFromName, + findAreaNameFromCode, + findAreaItemFromCode, + }; +} + +type UseAreaByCascaderOptions = { + layer?: AreaType; +}; + +/** + * @description 鑱旂骇閫夋嫨涓娇鐢� + */ +export function useAreaByCascader(options: UseAreaByCascaderOptions = {}) { + const { layer = AreaType.Area } = options; + + const { getAreaList } = useArea(); + + return computed(() => ({ + props: { + label: 'areaName', + value: 'areaCode', + lazy: true, + async lazyLoad(node, resolve) { + const { level, data } = node; + const areas = (await getAreaList((data as API.AreaTreeNode).id)) as any[]; + + return resolve( + areas.map((x) => ({ + ...x, + leaf: x.layer >= layer, + })) + ); + }, + } as CascaderProps, + })); +} diff --git a/src/hooks/index.ts b/src/hooks/index.ts index 57acf39..a069d7c 100644 --- a/src/hooks/index.ts +++ b/src/hooks/index.ts @@ -7,4 +7,4 @@ export * from './useUser'; export * from './help'; export * from './menu'; -// export * from './dic'; +export * from './dic'; diff --git a/src/services/api/auth.ts b/src/services/api/auth.ts index 543ccd0..00b5ddb 100644 --- a/src/services/api/auth.ts +++ b/src/services/api/auth.ts @@ -62,3 +62,15 @@ ...(options || {}), }); } + +/** 鍙戦�侀獙璇佺爜 POST /api/user/auth/sendVerifyCode */ +export async function sendVerifyCode(body: API.SendVerifyCodeCommand, options?: API.RequestConfig) { + return request<string>('/api/user/auth/sendVerifyCode', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/dictionary.ts b/src/services/api/dictionary.ts index 22cee24..4c74b85 100644 --- a/src/services/api/dictionary.ts +++ b/src/services/api/dictionary.ts @@ -2,12 +2,12 @@ // @ts-ignore import { request } from '@/utils/request'; -/** 鍒犻櫎鏁版嵁瀛楀吀绫诲埆 DELETE /api/main/dictionary/deleteDictionaryCategory */ +/** 鍒犻櫎鏁版嵁瀛楀吀绫诲埆 DELETE /api/flexjob/dictionary/deleteDictionaryCategory */ export async function deleteDictionaryCategory( body: API.DeleteDictionaryCategoryCommand, options?: API.RequestConfig ) { - return request<number>('/api/main/dictionary/deleteDictionaryCategory', { + return request<number>('/api/flexjob/dictionary/deleteDictionaryCategory', { method: 'DELETE', headers: { 'Content-Type': 'application/json-patch+json', @@ -17,13 +17,13 @@ }); } -/** 鑾峰彇鏁版嵁瀛楀吀绫诲埆鍒嗛〉鍒楄〃鏁版嵁 POST /api/main/dictionary/getDictionaryCategories */ +/** 鑾峰彇鏁版嵁瀛楀吀绫诲埆鍒嗛〉鍒楄〃鏁版嵁 POST /api/flexjob/dictionary/getDictionaryCategories */ export async function getDictionaryCategories( body: API.GetDictionaryCategoriesQuery, options?: API.RequestConfig ) { return request<API.PagedListQueryResultGetDictionaryCategoriesQueryResultItem>( - '/api/main/dictionary/getDictionaryCategories', + '/api/flexjob/dictionary/getDictionaryCategories', { method: 'POST', headers: { @@ -35,14 +35,14 @@ ); } -/** 鏌ヨ鏁版嵁瀛楀吀绫诲埆閫夋嫨鍣ㄦ暟鎹� GET /api/main/dictionary/getDictionaryCategorySelect */ +/** 鏌ヨ鏁版嵁瀛楀吀绫诲埆閫夋嫨鍣ㄦ暟鎹� GET /api/flexjob/dictionary/getDictionaryCategorySelect */ export async function getDictionaryCategorySelect( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) params: API.APIgetDictionaryCategorySelectParams, options?: API.RequestConfig ) { - return request<API.SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[]>( - '/api/main/dictionary/getDictionaryCategorySelect', + return request<API.SelectOptionGuidGetDictionaryCategorySelectQueryOption[]>( + '/api/flexjob/dictionary/getDictionaryCategorySelect', { method: 'GET', params: { @@ -55,13 +55,13 @@ ); } -/** 鑾峰彇鏁版嵁瀛楀吀鍒嗛〉鍒楄〃鏁版嵁 POST /api/main/dictionary/getDictionaryDatas */ +/** 鑾峰彇鏁版嵁瀛楀吀鍒嗛〉鍒楄〃鏁版嵁 POST /api/flexjob/dictionary/getDictionaryDatas */ export async function getDictionaryDatas( body: API.GetDictionaryDatasQuery, options?: API.RequestConfig ) { return request<API.PagedListQueryResultGetDictionaryDatasQueryResultItem>( - '/api/main/dictionary/getDictionaryDatas', + '/api/flexjob/dictionary/getDictionaryDatas', { method: 'POST', headers: { @@ -73,14 +73,14 @@ ); } -/** 鏌ヨ鏁版嵁瀛楀吀閫夋嫨鍣� GET /api/main/dictionary/getDictionaryDataSelect */ +/** 鏌ヨ鏁版嵁瀛楀吀閫夋嫨鍣� GET /api/flexjob/dictionary/getDictionaryDataSelect */ export async function getDictionaryDataSelect( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) params: API.APIgetDictionaryDataSelectParams, options?: API.RequestConfig ) { - return request<API.SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[]>( - '/api/main/dictionary/getDictionaryDataSelect', + return request<API.SelectOptionStringGetDictionaryDataSelectQueryResultOption[]>( + '/api/flexjob/dictionary/getDictionaryDataSelect', { method: 'GET', params: { @@ -91,12 +91,12 @@ ); } -/** 淇濆瓨鏁版嵁瀛楀吀绫诲埆 POST /api/main/dictionary/saveDictionaryCategory */ +/** 淇濆瓨鏁版嵁瀛楀吀绫诲埆 POST /api/flexjob/dictionary/saveDictionaryCategory */ export async function saveDictionaryCategory( body: API.SaveDictionaryCategoryCommand, options?: API.RequestConfig ) { - return request<string>('/api/main/dictionary/saveDictionaryCategory', { + return request<string>('/api/flexjob/dictionary/saveDictionaryCategory', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', @@ -106,12 +106,12 @@ }); } -/** 淇濆瓨鏁版嵁瀛楀吀 POST /api/main/dictionary/saveDictionaryData */ +/** 淇濆瓨鏁版嵁瀛楀吀 POST /api/flexjob/dictionary/saveDictionaryData */ export async function saveDictionaryData( body: API.SaveDictionaryDataCommand, options?: API.RequestConfig ) { - return request<string>('/api/main/dictionary/saveDictionaryData', { + return request<string>('/api/flexjob/dictionary/saveDictionaryData', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', @@ -121,12 +121,12 @@ }); } -/** 璁剧疆鏁版嵁瀛楀吀鏄惁绂佺敤 PUT /api/main/dictionary/setDictionaryDataIsDisabled */ +/** 璁剧疆鏁版嵁瀛楀吀鏄惁绂佺敤 PUT /api/flexjob/dictionary/setDictionaryDataIsDisabled */ export async function setDictionaryDataIsDisabled( body: API.SetDictionaryDataIsDisabledCommand, options?: API.RequestConfig ) { - return request<number>('/api/main/dictionary/setDictionaryDataIsDisabled', { + return request<number>('/api/flexjob/dictionary/setDictionaryDataIsDisabled', { method: 'PUT', headers: { 'Content-Type': 'application/json-patch+json', @@ -135,3 +135,18 @@ ...(options || {}), }); } + +/** 鍚屾浜哄姏璧勬簮鍦板尯瀛楀吀鏁版嵁 POST /api/flexjob/dictionary/syncHumanResourcesAreaDictionaryData */ +export async function syncHumanResourcesAreaDictionaryData( + body: API.SyncHumanResourcesAreaDictionaryDataCommand, + options?: API.RequestConfig +) { + return request<number>('/api/flexjob/dictionary/syncHumanResourcesAreaDictionaryData', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/index.ts b/src/services/api/index.ts index 1f801d3..dcda25c 100644 --- a/src/services/api/index.ts +++ b/src/services/api/index.ts @@ -2,19 +2,21 @@ /* eslint-disable */ // API 鏇存柊鏃堕棿锛� // API 鍞竴鏍囪瘑锛� -import * as auth from './auth'; -import * as menu from './menu'; import * as dictionary from './dictionary'; -import * as resource from './resource'; -import * as role from './role'; -import * as userInfo from './userInfo'; +import * as menu from './menu'; import * as enterprise from './enterprise'; +import * as task from './task'; +import * as auth from './auth'; +import * as user from './user'; +import * as role from './role'; +import * as resource from './resource'; export default { - auth, - menu, dictionary, - resource, - role, - userInfo, + menu, enterprise, + task, + auth, + user, + role, + resource, }; diff --git a/src/services/api/task.ts b/src/services/api/task.ts new file mode 100644 index 0000000..23c1be7 --- /dev/null +++ b/src/services/api/task.ts @@ -0,0 +1,75 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鏌ヨ浠诲姟璇︽儏 GET /api/flexjob/task/getTaskInfo */ +export async function getTaskInfo( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetTaskInfoParams, + options?: API.RequestConfig +) { + return request<API.GetTaskInfoQueryResult>('/api/flexjob/task/getTaskInfo', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鏌ヨ浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/task/getTaskInfos */ +export async function getTaskInfos(body: API.GetTaskInfosQuery, options?: API.RequestConfig) { + return request<API.PagedListQueryResultGetTaskInfosQueryResultItem>( + '/api/flexjob/task/getTaskInfos', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 淇濆瓨浠诲姟 POST /api/flexjob/task/saveTaskInfo */ +export async function saveTaskInfo(body: API.SaveTaskInfoCommand, options?: API.RequestConfig) { + return request<string>('/api/flexjob/task/saveTaskInfo', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + +/** 璁剧疆浠诲姟鏄惁鎺ㄨ崘 PUT /api/flexjob/task/setTaskInfoRecommendStatus */ +export async function setTaskInfoRecommendStatus( + body: API.SetTaskInfoRecommendStatusCommand, + options?: API.RequestConfig +) { + return request<number>('/api/flexjob/task/setTaskInfoRecommendStatus', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + +/** 璁剧疆浠诲姟鍙戝竷鐘舵�� PUT /api/flexjob/task/setTaskInfoReleaseStatus */ +export async function setTaskInfoReleaseStatus( + body: API.SetTaskInfoReleaseStatusCommand, + options?: API.RequestConfig +) { + return request<number>('/api/flexjob/task/setTaskInfoReleaseStatus', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts index fb57219..5324984 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -30,6 +30,12 @@ categoryCode?: string; /** 涓婄骇Id */ parentId?: string; + /** 鍏抽敭瀛� */ + keywords?: string; + /** 鏌ヨ鎵�鏈� */ + all?: boolean; + /** 鏈�澶ф繁搴� */ + maxDeep?: number; } interface APIgetEnterpriseElectronSignSettingParams { @@ -87,11 +93,21 @@ roleId?: string; } + interface APIgetTaskInfoParams { + /** Id */ + id?: string; + } + interface APIgetUserInfoRolesParams { /** 鐢ㄦ埛Id */ userInfoId?: string; /** 瀹㈡埛绔被鍨� */ clientType?: EnumClientType; + } + + interface APIgetUserResumeParams { + /** 鐢ㄦ埛Id */ + userId?: string; } interface DeleteDictionaryCategoryCommand { @@ -104,6 +120,17 @@ interface DeleteRoleCommand { ids: string[]; + } + + enum EnumBillingMethod { + /**鎸夋湀 */ + Month = 10, + /**鎸夊ぉ */ + Day = 20, + /**鎸夋椂 */ + Hour = 30, + /**璁′欢 */ + Piece = 40, } enum EnumClientType { @@ -152,18 +179,20 @@ enum EnumResourceController { /**鏁版嵁瀛楀吀 */ Dictionary = 0, + /**浠诲姟 */ + Task = 1, /**鐢ㄦ埛璁よ瘉 */ - Auth = 1, + Auth = 2, /**鐢ㄦ埛鑿滃崟 */ - Menu = 2, + Menu = 3, /**鐢ㄦ埛璧勬簮 */ - Resource = 3, + Resource = 4, /**鐢ㄦ埛瑙掕壊 */ - Role = 4, + Role = 5, /**鐢ㄦ埛淇℃伅 */ - UserInfo = 5, + User = 6, /**浼佷笟淇℃伅 */ - Enterprise = 6, + Enterprise = 7, } enum EnumResourceMethod { @@ -192,12 +221,76 @@ All = 999, } + enum EnumSettlementCycle { + /**鏈堢粨 */ + Month = 10, + /**鍛ㄧ粨 */ + Week = 20, + /**鏃ョ粨 */ + Day = 30, + } + enum EnumSmsAccess { /**闃块噷浜戠煭淇� */ AliyunSms = 10, } - enum EnumUserInfoStatus { + enum EnumSmsTemplateType { + /**鐧诲綍 */ + Login = 0, + /**娉ㄥ唽 */ + Register = 1, + /**淇敼瀵嗙爜 */ + UpdatePassword = 2, + /**缁戝畾鎵嬫満鍙风爜 */ + BindPhoneNumber = 3, + /**淇敼鎵嬫満鍙风爜 */ + UpdatePhoneNumber = 4, + } + + enum EnumTaskCheckReceiveStatus { + /**寰呴獙鏀� */ + Wait = 10, + /**宸查獙鏀� */ + Completed = 30, + } + + enum EnumTaskRecommendStatus { + /**鏈帹鑽� */ + No = 10, + /**宸叉帹鑽� */ + Yes = 20, + } + + enum EnumTaskReleaseStatus { + /**鍙戝竷涓� */ + InProcess = 20, + /**宸插仠姝� */ + Stopped = 100, + } + + enum EnumTaskSettlementStatus { + /**寰呯粨绠� */ + Wait = 10, + /**宸茬粨绠� */ + Completed = 30, + } + + enum EnumTaskStatus { + /**寰呭畨鎺� */ + Wait = 10, + /**宸插畨鎺� */ + Complete = 20, + } + + enum EnumUserGender { + /**鐢� */ + Male = 10, + /**濂� */ + Female = 20, + } + + enum EnumUserStatus { /**姝e父 */ Normal = 10, /**绂佺敤 */ @@ -311,6 +404,42 @@ /** 閿欒鐮� */ errorCode?: string; data?: GetRoleQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetTaskInfoQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetTaskInfoQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetUserResumeQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetUserResumeQueryResult; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -454,7 +583,7 @@ timestamp?: number; } - interface FriendlyResultListSelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption { + interface FriendlyResultListSelectOptionGuidGetDictionaryCategorySelectQueryOption { /** 璺熻釜Id */ traceId?: string; /** 鐘舵�佺爜 */ @@ -462,7 +591,7 @@ /** 閿欒鐮� */ errorCode?: string; /** 鏁版嵁 */ - data?: SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption[]; + data?: SelectOptionGuidGetDictionaryCategorySelectQueryOption[]; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -473,7 +602,7 @@ timestamp?: number; } - interface FriendlyResultListSelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption { + interface FriendlyResultListSelectOptionStringGetDictionaryDataSelectQueryResultOption { /** 璺熻釜Id */ traceId?: string; /** 鐘舵�佺爜 */ @@ -481,7 +610,7 @@ /** 閿欒鐮� */ errorCode?: string; /** 鏁版嵁 */ - data?: SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption[]; + data?: SelectOptionStringGetDictionaryDataSelectQueryResultOption[]; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -582,6 +711,24 @@ timestamp?: number; } + interface FriendlyResultPagedListQueryResultGetTaskInfosQueryResultItem { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: PagedListQueryResultGetTaskInfosQueryResultItem; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + interface FriendlyResultPasswordLoginCommandCallback { /** 璺熻釜Id */ traceId?: string; @@ -639,6 +786,8 @@ categoryId?: string; /** 绫诲埆缂栧彿锛圛d/缂栧彿浜岄�変竴锛� */ categoryCode?: string; + /** 涓婄骇Id */ + parentId?: string; /** 鍏抽敭瀛� */ keywords?: string; } @@ -697,10 +846,16 @@ legalPerson?: string; /** 娉曚汉韬唤璇佸彿 */ legalIdentity?: string; + /** 鎵�鍦ㄧ渷浠界紪鍙� */ + provinceCode?: string; /** 鎵�鍦ㄧ渷浠� */ provinceContent?: string; + /** 鎵�鍦ㄥ煄甯傜紪鍙� */ + cityCode?: string; /** 鎵�鍦ㄥ煄甯� */ cityContent?: string; + /** 鎵�灞炶涓氱紪鍙� */ + industryTypeCode?: string; /** 鎵�灞炶涓� */ industryTypeContent?: string; /** 涓昏惀涓氬姟 */ @@ -891,7 +1046,7 @@ remark?: string; /** 瑙掕壊 */ roles?: GetOperationUserInfosQueryResultItemRole[]; - status?: EnumUserInfoStatus; + status?: EnumUserStatus; } interface GetOperationUserInfosQueryResultItemRole { @@ -994,6 +1149,136 @@ isChecked?: boolean; } + interface GetTaskInfoQueryResult { + /** Id */ + id?: string; + /** 浼佷笟Id */ + enterpriseId?: string; + /** 浼佷笟鍏ㄧО */ + enterpriseName?: string; + /** 鍦ㄦ嫑宀椾綅鏁伴噺 */ + taskCount?: number; + /** 浠诲姟鍚嶇О */ + name?: string; + billingMethod?: EnumBillingMethod; + /** 鏈嶅姟璐� */ + serviceFee?: number; + settlementCycle?: EnumSettlementCycle; + /** 绂忓埄 */ + benefits?: GetTaskInfoQueryResultBenefit[]; + /** 骞撮緞鑼冨洿鏈�灏� */ + ageMinLimit?: number; + /** 骞撮緞鑼冨洿澶� */ + ageMaxLimit?: number; + genderLimit?: EnumUserGender; + /** 璧勬牸璇佷功绫诲瀷 */ + credentialLimits?: GetTaskInfoQueryResultCredentialLimit[]; + /** 浠诲姟鍦扮偣鎵�灞炵渷浠界紪鍙� */ + provinceCode?: string; + /** 浠诲姟鍦扮偣鎵�灞炵渷浠� */ + provinceContent?: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ + cityCode?: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯� */ + cityContent?: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName?: string; + /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */ + addressDetail?: string; + /** 缁忓害 */ + longitude?: number; + /** 绾害 */ + latitude?: number; + /** 浠诲姟寮�濮嬫椂闂� */ + beginTime?: string; + /** 浠诲姟缁撴潫鏃堕棿 */ + endTime?: string; + /** 鍒涘缓鏃堕棿 */ + createdTime?: string; + /** 鏄惁宸叉敹钘� */ + isCollected?: boolean; + } + + interface GetTaskInfoQueryResultBenefit { + /** 绂忓埄缂栧彿 */ + benefitCode?: string; + /** 绂忓埄 */ + benefitContent?: string; + } + + interface GetTaskInfoQueryResultCredentialLimit { + /** 璇佷功绫诲瀷缂栧彿 */ + typeCode?: string; + /** 璇佷功绫诲瀷 */ + typeContent?: string; + } + + interface GetTaskInfosQuery { + pageModel?: PagedListQueryPageModel; + /** 鍏抽敭瀛楋紙浠诲姟鍚嶇О锛� */ + keywords?: string; + /** 鍙戝竷鏃堕棿-寮�濮� */ + beginTime?: string; + /** 鍙戝竷鏃堕棿-缁撴潫 */ + endTime?: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ + cityCode?: string; + settlementCycle?: EnumSettlementCycle; + /** 鍛樺伐绂忓埄 */ + benefitCodes?: string[]; + genderLimit?: EnumUserGender; + status?: EnumTaskStatus; + releaseStatus?: EnumTaskReleaseStatus; + recommendStatus?: EnumTaskRecommendStatus; + } + + interface GetTaskInfosQueryResultItem { + /** Id */ + id?: string; + /** 浠诲姟鍚嶇О */ + name: string; + /** 浠诲姟鍗曞彿 */ + code?: string; + billingMethod?: EnumBillingMethod; + /** 鏈嶅姟璐� */ + serviceFee?: number; + settlementCycle?: EnumSettlementCycle; + /** 绂忓埄 */ + benefits?: GetTaskInfoQueryResultBenefit[]; + genderLimit?: EnumUserGender; + /** 璧勬牸璇佷功绫诲瀷 */ + credentialLimits?: GetTaskInfoQueryResultCredentialLimit[]; + /** 浠诲姟鍦扮偣鎵�灞炵渷浠界紪鍙� */ + provinceCode?: string; + /** 浠诲姟鍦扮偣鎵�灞炵渷浠� */ + provinceContent?: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ + cityCode?: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯� */ + cityContent?: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName?: string; + /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */ + addressDetail?: string; + /** 缁忓害 */ + longitude?: number; + /** 绾害 */ + latitude?: number; + /** 鎶ュ悕浜烘暟 */ + userCount?: number; + status?: EnumTaskStatus; + /** 浠诲姟寮�濮嬫椂闂� */ + beginTime?: string; + /** 浠诲姟缁撴潫鏃堕棿 */ + endTime?: string; + releaseStatus?: EnumTaskReleaseStatus; + checkReceiveStatus?: EnumTaskCheckReceiveStatus; + settlementStatus?: EnumTaskSettlementStatus; + recommendStatus?: EnumTaskRecommendStatus; + /** 鍒涘缓鏃堕棿 */ + createdTime?: string; + } + interface GetUserInfoRolesQueryResultItem { /** 瑙掕壊Id */ id?: string; @@ -1004,6 +1289,8 @@ /** 鏄惁閫変腑 */ isChecked?: boolean; } + + type GetUserResumeQueryResult = Record<string, any>; interface PagedListQueryPageModel { /** 琛屾暟 */ @@ -1048,6 +1335,12 @@ pageModel?: PagedListQueryResultPageModel; /** 鏁版嵁 */ data?: GetRolesQueryResultItem[]; + } + + interface PagedListQueryResultGetTaskInfosQueryResultItem { + pageModel?: PagedListQueryResultPageModel; + /** 鏁版嵁 */ + data?: GetTaskInfosQueryResultItem[]; } interface PagedListQueryResultPageModel { @@ -1095,12 +1388,14 @@ interface SaveDictionaryDataCommand { /** Id */ id?: string; - /** 绫诲埆Id */ + /** 绫诲埆Id锛圛d/缂栧彿浜岄�変竴锛� */ categoryId?: string; + /** 绫诲埆缂栧彿锛圛d/缂栧彿浜岄�変竴锛� */ + categoryCode?: string; /** 涓婄骇Id */ parentId?: string; /** 缂栧彿 */ - code?: string; + code: string; /** 鏄剧ず鍐呭 */ content: string; /** 瀛楁1 */ @@ -1130,12 +1425,12 @@ legalPerson?: string; /** 娉曚汉韬唤璇佸彿 */ legalIdentity?: string; - /** 鎵�鍦ㄧ渷浠絀d */ - provinceId?: string; - /** 鎵�鍦ㄥ煄甯侷d */ - cityId?: string; - /** 鎵�灞炶涓欼d */ - industryTypeId?: string; + /** 鎵�鍦ㄧ渷浠界紪鍙� */ + provinceCode?: string; + /** 鎵�鍦ㄥ煄甯傜紪鍙� */ + cityCode?: string; + /** 鎵�灞炶涓氱紪鍙� */ + industryTypeCode?: string; /** 涓昏惀涓氬姟 */ mainBusiness?: string; /** 鑱旂郴浜� */ @@ -1291,7 +1586,43 @@ resources?: GetRoleQueryResultResource[]; } - interface SelectQueryResultOptionGuidGetDictionaryCategorySelectQueryOption { + interface SaveTaskInfoCommand { + /** Id */ + id?: string; + /** 浠诲姟鍚嶇О */ + name: string; + billingMethod: EnumBillingMethod; + /** 鏈嶅姟璐� */ + serviceFee: number; + settlementCycle: EnumSettlementCycle; + /** 绂忓埄缂栧彿 */ + benefits?: string[]; + /** 骞撮緞鑼冨洿鏈�灏� */ + ageMinLimit: number; + /** 骞撮緞鑼冨洿澶� */ + ageMaxLimit: number; + genderLimit: EnumUserGender; + /** 璧勬牸璇佷功绫诲瀷缂栧彿 */ + credentialLimits?: string[]; + /** 浠诲姟鍦扮偣鎵�灞炵渷浠界紪鍙� */ + provinceCode: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ + cityCode: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName: string; + /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */ + addressDetail: string; + /** 缁忓害 */ + longitude?: number; + /** 绾害 */ + latitude?: number; + /** 浠诲姟寮�濮嬫椂闂� */ + beginTime: string; + /** 浠诲姟缁撴潫鏃堕棿 */ + endTime: string; + } + + interface SelectOptionGuidGetDictionaryCategorySelectQueryOption { /** 鍊� */ value?: string; /** 鏍囩 */ @@ -1300,13 +1631,19 @@ data?: any; } - interface SelectQueryResultOptionGuidGetDictionaryDataSelectQueryResultOption { + interface SelectOptionStringGetDictionaryDataSelectQueryResultOption { /** 鍊� */ value?: string; /** 鏍囩 */ label?: string; /** 鏁版嵁 */ data?: any; + } + + interface SendVerifyCodeCommand { + /** 鎵嬫満鍙风爜 */ + phoneNumber?: string; + templateCode?: EnumSmsTemplateType; } interface SetDictionaryDataIsDisabledCommand { @@ -1358,6 +1695,18 @@ userInfoIds?: string[]; } + interface SetTaskInfoRecommendStatusCommand { + /** Id */ + ids?: string[]; + recommendStatus?: EnumTaskRecommendStatus; + } + + interface SetTaskInfoReleaseStatusCommand { + /** Id */ + ids?: string[]; + releaseStatus?: EnumTaskReleaseStatus; + } + interface SetUserInfoRolesCommand { /** 鐢ㄦ埛Id */ userInfoId?: string; @@ -1368,6 +1717,8 @@ interface SetUserInfoStatusCommand { /** Id */ ids?: string[]; - status?: EnumUserInfoStatus; + status?: EnumUserStatus; } + + type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>; } diff --git a/src/services/api/user.ts b/src/services/api/user.ts new file mode 100644 index 0000000..a398d43 --- /dev/null +++ b/src/services/api/user.ts @@ -0,0 +1,81 @@ +/* eslint-disable */ +// @ts-ignore +import { request } from '@/utils/request'; + +/** 鏌ヨ杩愯惀绔敤鎴峰垎椤靛垪琛ㄦ暟鎹� POST /api/user/user/getOperationUserInfos */ +export async function getOperationUserInfos( + body: API.GetOperationUserInfosQuery, + options?: API.RequestConfig +) { + return request<API.PagedListQueryResultGetOperationUserInfosQueryResultItem>( + '/api/user/user/getOperationUserInfos', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + } + ); +} + +/** 鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃 GET /api/user/user/getUserInfoRoles */ +export async function getUserInfoRoles( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetUserInfoRolesParams, + options?: API.RequestConfig +) { + return request<API.GetUserInfoRolesQueryResultItem[]>('/api/user/user/getUserInfoRoles', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 鏌ヨ鐢ㄦ埛绠�鍘� GET /api/user/user/getUserResume */ +export async function getUserResume( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetUserResumeParams, + options?: API.RequestConfig +) { + return request<API.GetUserResumeQueryResult>('/api/user/user/getUserResume', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 璁剧疆鐢ㄦ埛淇℃伅瑙掕壊 PUT /api/user/user/setUserInfoRoles */ +export async function setUserInfoRoles( + body: API.SetUserInfoRolesCommand, + options?: API.RequestConfig +) { + return request<number>('/api/user/user/setUserInfoRoles', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + +/** 璁剧疆鐢ㄦ埛淇℃伅鐘舵�� PUT /api/user/user/setUserInfoStatus */ +export async function setUserInfoStatus( + body: API.SetUserInfoStatusCommand, + options?: API.RequestConfig +) { + return request<number>('/api/user/user/setUserInfoStatus', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} diff --git a/src/services/api/userInfo.ts b/src/services/api/userInfo.ts deleted file mode 100644 index 4367d18..0000000 --- a/src/services/api/userInfo.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* eslint-disable */ -// @ts-ignore -import { request } from '@/utils/request'; - -/** 鏌ヨ杩愯惀绔敤鎴峰垎椤靛垪琛ㄦ暟鎹� POST /api/user/userInfo/getOperationUserInfos */ -export async function getOperationUserInfos( - body: API.GetOperationUserInfosQuery, - options?: API.RequestConfig -) { - return request<API.PagedListQueryResultGetOperationUserInfosQueryResultItem>( - '/api/user/userInfo/getOperationUserInfos', - { - method: 'POST', - headers: { - 'Content-Type': 'application/json-patch+json', - }, - data: body, - ...(options || {}), - } - ); -} - -/** 鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃 GET /api/user/userInfo/getUserInfoRoles */ -export async function getUserInfoRoles( - // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) - params: API.APIgetUserInfoRolesParams, - options?: API.RequestConfig -) { - return request<API.GetUserInfoRolesQueryResultItem[]>('/api/user/userInfo/getUserInfoRoles', { - method: 'GET', - params: { - ...params, - }, - ...(options || {}), - }); -} - -/** 璁剧疆鐢ㄦ埛淇℃伅瑙掕壊 PUT /api/user/userInfo/setUserInfoRoles */ -export async function setUserInfoRoles( - body: API.SetUserInfoRolesCommand, - options?: API.RequestConfig -) { - return request<number>('/api/user/userInfo/setUserInfoRoles', { - method: 'PUT', - headers: { - 'Content-Type': 'application/json-patch+json', - }, - data: body, - ...(options || {}), - }); -} - -/** 璁剧疆鐢ㄦ埛淇℃伅鐘舵�� PUT /api/user/userInfo/setUserInfoStatus */ -export async function setUserInfoStatus( - body: API.SetUserInfoStatusCommand, - options?: API.RequestConfig -) { - return request<number>('/api/user/userInfo/setUserInfoStatus', { - method: 'PUT', - headers: { - 'Content-Type': 'application/json-patch+json', - }, - data: body, - ...(options || {}), - }); -} diff --git a/src/utils/common/area.ts b/src/utils/common/area.ts index cffe5d7..485b749 100644 --- a/src/utils/common/area.ts +++ b/src/utils/common/area.ts @@ -1,13 +1,14 @@ import { AreaType } from '@/constants'; import _ from 'lodash'; -export interface AreaTreeNode extends API.AreaDto { - children?: AreaTreeNode[]; -} +// type formatAreaListToTreeOptions = { +// parentId?: string; +// maxLayer?: number; +// }; export function formatAreaListToTree( - areaDataList: API.AreaDto[], - parentId: number, + areaDataList: API.AreaTreeNode[], + parentId = '', maxLayer = AreaType.Area ) { const treeNodeList: API.AreaTreeNode[] = []; diff --git a/src/views/EmploymentManage/CheckManage.vue b/src/views/EmploymentManage/CheckManage.vue index 5342c37..7890416 100644 --- a/src/views/EmploymentManage/CheckManage.vue +++ b/src/views/EmploymentManage/CheckManage.vue @@ -66,7 +66,6 @@ } from '@bole-core/components'; import { CheckManageColumns } from './constants'; import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; -import { OrderInputType } from '@bole-core/core'; import CheckManageDialog from './components/CheckManageDialog.vue'; defineOptions({ @@ -137,7 +136,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], diff --git a/src/views/EmploymentManage/EmploymentManage.vue b/src/views/EmploymentManage/EmploymentManage.vue index 452e7f8..3750b03 100644 --- a/src/views/EmploymentManage/EmploymentManage.vue +++ b/src/views/EmploymentManage/EmploymentManage.vue @@ -3,49 +3,41 @@ <AppContainer> <ProTableQueryFilterBar @on-reset="reset"> <template #query> - <QueryFilterItem tip-content="褰曠敤鐘舵��"> + <QueryFilterItem tip-content="浠诲姟鐘舵��"> <FieldRadio - v-model="extraParamState.flexEnterpriseSettingStatus" - :value-enum="[ - { label: '宸插畨鎺�', value: 1 }, - { label: '寰呭畨鎺�', value: 0 }, - ]" + v-model="extraParamState.status" + :value-enum="EnumTaskStatusText" buttonStyle showAllBtn @change="getList()" /> </QueryFilterItem> - <QueryFilterItem tip-content="瀹炲悕鐘舵��"> + <QueryFilterItem tip-content="鍙戝竷鐘舵��"> <FieldRadio - v-model="extraParamState.flexEnterpriseSettingStatus" - :value-enum="[ - { label: '鍙戝竷涓�', value: 1 }, - { label: '宸插仠姝�', value: 0 }, - ]" + v-model="extraParamState.releaseStatus" + :value-enum="EnumTaskReleaseStatusText" buttonStyle showAllBtn @change="getList()" /> </QueryFilterItem> - <QueryFilterItem> + <QueryFilterItem tip-content="鍙戝竷鏃堕棿"> <FieldDatePicker - v-model="extraParamState.flexEnterpriseSettingStatus" + v-model="extraParamState.time" type="daterange" range-separator="~" - start-placeholder="璧峰鏃ユ湡" - end-placeholder="鎴鏃ユ湡" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" clearable @change="getList()" - tooltipContent="鍙戝竷鏃堕棿" ></FieldDatePicker> </QueryFilterItem> <QueryFilterItem> <SearchInput - v-model="extraParamState.searchWord" - style="width: 250px" + v-model="extraParamState.keywords" + style="width: 260px" placeholder="浠诲姟鍚嶇О" @on-click-search="getList" - @keyup.enter="getList()" > </SearchInput> </QueryFilterItem> @@ -59,8 +51,10 @@ :columns="EmploymentManageColumns" :operationBtns="operationBtns" > - <template #signNum="{ row }"> - <el-button link type="primary" @click="goSignList(row)">{{ row.signNum || 0 }}</el-button> + <template #userCount="{ row }"> + <el-button link type="primary" @click="goSignList(row)">{{ + row.userCount || 0 + }}</el-button> </template> </ProTableV2> </AppContainer> @@ -81,9 +75,12 @@ defineOperationBtns, } from '@bole-core/components'; import { EmploymentManageColumns } from './constants'; -import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; -import { OrderInputType } from '@bole-core/core'; +import { EnumTaskStatusText, EnumTaskReleaseStatusText } from '@/constants'; import { useGlobalEventContext } from '@/hooks'; +import * as taskServices from '@/services/api/task'; +import { format } from '@/utils'; +import { ModelValueType } from 'element-plus'; +import { Message } from '@bole-core/core'; defineOptions({ name: 'EmploymentManageList', @@ -105,7 +102,7 @@ name: '璇︽儏', }, emits: { - onClick: (role) => goDetail(role), + onClick: (row: API.GetTaskInfosQueryResultItem) => goDetail(row), }, }, { @@ -114,10 +111,12 @@ name: '鍙戝竷', }, emits: { - onClick: (role) => handlePublish(role), + onClick: (row: API.GetTaskInfosQueryResultItem) => + setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.InProcess), }, extraProps: { - hide: (row) => false, + hide: (row: API.GetTaskInfosQueryResultItem) => + row.releaseStatus === EnumTaskReleaseStatus.InProcess, }, }, { @@ -126,10 +125,12 @@ name: '鍋滄鍙戝竷', }, emits: { - onClick: (role) => handleUnPublish(role), + onClick: (row: API.GetTaskInfosQueryResultItem) => + setTaskInfoReleaseStatus(row, EnumTaskReleaseStatus.Stopped), }, extraProps: { - hide: (row) => false, + hide: (row: API.GetTaskInfosQueryResultItem) => + row.releaseStatus === EnumTaskReleaseStatus.Stopped, }, }, { @@ -138,7 +139,7 @@ name: '瀹夋帓', }, emits: { - onClick: (role) => handleArrange(role), + onClick: (row: API.GetTaskInfosQueryResultItem) => handleArrange(row), }, }, ]); @@ -175,17 +176,20 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetFlexEnterpriseInput = { + let params: API.GetTaskInfosQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, - flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, - searchWord: extraParamState.searchWord, + keywords: extraParamState.keywords, + status: extraParamState.status, + releaseStatus: extraParamState.releaseStatus, + beginTime: format(extraParamState.time?.[0] ?? '', 'YYYY-MM-DD 00:00:00'), + endTime: format(extraParamState.time?.[1] ?? '', 'YYYY-MM-DD 23:59:59'), }; - let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + let res = await taskServices.getTaskInfos(params, { showLoading: !state.loading, }); return res; @@ -195,23 +199,46 @@ }, { defaultExtraParams: { - searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + keywords: '', + status: '' as any as EnumTaskStatus, + releaseStatus: '' as any as EnumTaskReleaseStatus, + time: [] as unknown as ModelValueType, + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, - queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], - columnsRenderProps: {}, + queryKey: ['taskServices/getTaskInfos'], + columnsRenderProps: { + billingMethod: { type: 'enum', valueEnum: EnumBillingMethodText }, + settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText }, + genderLimit: { type: 'enum', valueEnum: EnumUserGenderText }, + status: { type: 'enum', valueEnum: EnumTaskStatusText }, + releaseStatus: { type: 'enum', valueEnum: EnumTaskReleaseStatusText }, + beginTime: { type: 'date', format: 'YYYY-MM-DD' }, + endTime: { type: 'date', format: 'YYYY-MM-DD' }, + serviceFee: { type: 'money' }, + }, } ); -function handlePublish(row) { - console.log(row); -} -function handleUnPublish(row) { - console.log(row); +async function setTaskInfoReleaseStatus( + row: API.GetTaskInfosQueryResultItem, + releaseStatus: EnumTaskReleaseStatus +) { + try { + await Message.tipMessage(`纭瑕�${EnumTaskReleaseStatusTextForTip[releaseStatus]}鍚楋紵`); + let params: API.SetTaskInfoReleaseStatusCommand = { + ids: [row.id], + releaseStatus: releaseStatus, + }; + let res = await taskServices.setTaskInfoReleaseStatus(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } + } catch (error) {} } -function handleArrange(row) { +function handleArrange(row: API.GetTaskInfosQueryResultItem) { router.push({ name: 'EmploymentManageArrange', params: { @@ -219,7 +246,7 @@ }, }); } -function goAddOrEdit(row?) { +function goAddOrEdit(row?: API.GetTaskInfosQueryResultItem) { router.push({ name: 'AddOrEditEmployment', params: { @@ -227,7 +254,7 @@ }, }); } -function goDetail(row) { +function goDetail(row: API.GetTaskInfosQueryResultItem) { router.push({ name: 'EmploymentManageDetail', params: { @@ -236,7 +263,7 @@ }); } -function goSignList(row) { +function goSignList(row: API.GetTaskInfosQueryResultItem) { router.push({ name: 'EmploymentSignList', params: { diff --git a/src/views/EmploymentManage/EmploymentManageArrange.vue b/src/views/EmploymentManage/EmploymentManageArrange.vue index a88e530..e587122 100644 --- a/src/views/EmploymentManage/EmploymentManageArrange.vue +++ b/src/views/EmploymentManage/EmploymentManageArrange.vue @@ -75,7 +75,7 @@ defineOperationBtns, } from '@bole-core/components'; import { EmploymentArrangeColumns } from './constants'; -import { OrderInputType, Message } from '@bole-core/core'; +import { Message } from '@bole-core/core'; import { FlexEnterpriseSettingStatus } from '@/constants'; defineOptions({ @@ -137,7 +137,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], diff --git a/src/views/EmploymentManage/EmploymentSignList.vue b/src/views/EmploymentManage/EmploymentSignList.vue index 4cacc5d..c025329 100644 --- a/src/views/EmploymentManage/EmploymentSignList.vue +++ b/src/views/EmploymentManage/EmploymentSignList.vue @@ -53,7 +53,7 @@ UploadUserFile, } from '@bole-core/components'; import { EmploymentSignColumns } from './constants/columns'; -import { OrderInputType, Message } from '@bole-core/core'; +import { Message } from '@bole-core/core'; import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; import StaffInfoDialog from '@/views/FlexJobManage/components/StaffInfoDialog.vue'; import { convertApi2FormUrlOnlyOne } from '@/utils'; @@ -142,7 +142,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue index 87cb1d4..1060e6b 100644 --- a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue +++ b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue @@ -12,24 +12,19 @@ </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="鏈嶅姟璐�:" prop="salaryType"> + <ProFormItemV2 label="鏈嶅姟璐�:" prop="billingMethod"> <RadioWithExtra - v-model="form.salaryType" - :value-enum="[ - { label: '鎸夋湀', value: 1 }, - { label: '鎸夋棩', value: 2 }, - ]" + v-model="form.billingMethod" + :value-enum="EnumBillingMethodText" :showExtra="true" :button-style="false" > <template #extra> <ProFormInputNumber :controls="false" - :min="0" - :max="999" - v-model="form.name" + v-model="form.serviceFee" placeholder="璇疯緭鍏�" - :unit="form.salaryType === 1 ? '鍏�/鏈�' : '鍏�/澶�'" + :unit="EnumBillingMethodUnitText[form.billingMethod]" ></ProFormInputNumber> </template> </RadioWithExtra> @@ -38,10 +33,10 @@ </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="缁撶畻鏂瑰紡:" prop="salaryType"> + <ProFormItemV2 label="缁撶畻鏂瑰紡:" prop="settlementCycle"> <ProFormRadio - v-model="form.salaryType" - :value-enum="[{ label: '鏄�', value: 1 }]" + v-model="form.settlementCycle" + :value-enum="EnumSettlementCycleText" :button-style="false" ></ProFormRadio> </ProFormItemV2> @@ -51,7 +46,8 @@ <ProFormColItem :span="12"> <ProFormItemV2 label="绂忓埄:" prop="benefits"> <el-checkbox - v-model="state.checBenefitskAll" + v-if="!isDetail" + v-model="state.checkBenefitsAll" style="margin-right: 30px" :indeterminate="state.isBenefitsIndeterminate" @change="handleCheckBenefitsAllChange" @@ -59,9 +55,7 @@ > <ProFormCheckbox v-model="form.benefits" - :value-enum="[]" - enumLabelKey="name" - enum-value-key="id" + :value-enum="welfareList" @change="handleCheckedBenefitsServicesChange" ></ProFormCheckbox> </ProFormItemV2> @@ -72,15 +66,15 @@ <ProFormItemV2 label="骞撮緞鑼冨洿:" prop="ageRange" class="form-age-range"> <ProFormInputNumber :controls="false" - :min="0" - v-model="form.ageStart" + :min="1" + v-model="form.ageMinLimit" placeholder="璇疯緭鍏�" ></ProFormInputNumber> <div class="form-input-separator">鑷�</div> <ProFormInputNumber :controls="false" - :min="0" - v-model="form.ageEnd" + :min="1" + v-model="form.ageMaxLimit" placeholder="璇疯緭鍏�" ></ProFormInputNumber> </ProFormItemV2> @@ -88,46 +82,62 @@ </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="鎬у埆瑕佹眰:" prop="sexRequirement" required> + <ProFormItemV2 label="鎬у埆瑕佹眰:" prop="genderLimit"> <ProFormRadio - v-model="form.sexRequirement" - :value-enum="[{ label: '涓嶉檺', value: 1 }]" + v-model="form.genderLimit" + :value-enum="EnumUserGenderTextForEdit" + show-all-btn + :all-btn-label="'涓嶉檺'" + :allBtnValue="0" ></ProFormRadio> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="璧勬牸璇佷功:" prop="benefits"> + <ProFormItemV2 label="璧勬牸璇佷功:" prop="credentialLimits"> <el-checkbox - v-model="state.checBenefitskAll" + v-if="!isDetail" + v-model="state.checkCertificatesAll" style="margin-right: 30px" - :indeterminate="state.isBenefitsIndeterminate" - @change="handleCheckBenefitsAllChange" + :indeterminate="state.isCertificatesIndeterminate" + @change="handleCheckCertificatesAllChange" >鍏ㄩ��</el-checkbox > <ProFormCheckbox - v-model="form.benefits" - :value-enum="[]" - enumLabelKey="name" - enum-value-key="id" - @change="handleCheckedBenefitsServicesChange" + v-model="form.credentialLimits" + :value-enum="certificateTypeList" + @change="handleCheckedCertificatesServicesChange" ></ProFormCheckbox> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="浠诲姟鍦扮偣:" prop="areaList"> - <!-- <ProFromAddressSelect :areaList="form.areaList" :address="form.address" /> --> + <ProFormItemV2 label="浠诲姟鍦扮偣:" prop="weMapInfo"> + <WeMap v-if="!isDetail" v-model="form.weMapInfo" /> + <div v-else> + {{ + `${form.weMapInfo.provinceName ?? ''}${form.weMapInfo.cityName ?? ''}${ + form.weMapInfo.addressName ?? '' + }` + }} + </div> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="浠诲姟鏃堕棿:" prop="name"> + <ProFormItemV2 label="璇︾粏鍦板潃:" prop="addressDetail"> + <ProFormText v-model.trim="form.addressDetail" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="12"> + <ProFormItemV2 label="浠诲姟鏃堕棿:" prop="time"> <ProFormDatePicker - v-model="form.name" + v-model="form.time" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" @@ -160,10 +170,19 @@ ProFormDatePicker, ProFormCheckbox, } from '@bole-core/components'; -import { FormInstance } from 'element-plus'; +import { FormInstance, ModelValueType } from 'element-plus'; import { Message } from '@bole-core/core'; import { useQuery } from '@tanstack/vue-query'; import { useGlobalEventContext, useRouteView } from '@/hooks'; +import * as taskServices from '@/services/api/task'; +import { + EnumUserGenderTextForEdit, + EnumBillingMethodText, + EnumBillingMethodUnitText, + EnumSettlementCycleText, +} from '@/constants'; +import { format } from '@/utils'; +import dayjs from 'dayjs'; defineOptions({ name: 'AddOrEditEmploymentView', @@ -179,38 +198,71 @@ const eventContext = useGlobalEventContext(); const { closeViewPush } = useRouteView(); +const { dictionaryDataList: welfareList } = useDictionaryDataSelect({ + categoryCode: CategoryCode.Welfare, +}); +const { dictionaryDataList: certificateTypeList } = useDictionaryDataSelect({ + categoryCode: CategoryCode.CertificateType, +}); const state = reactive({ - checBenefitskAll: false, + checkBenefitsAll: false, isBenefitsIndeterminate: false, + + checkCertificatesAll: false, + isCertificatesIndeterminate: false, }); const form = reactive({ name: '', - salaryType: 1, - ageStart: 0, - ageEnd: 0, - sexRequirement: 1, - manNumber: 0, - womanNumber: 0, - benefits: [], - areaList: [] as number[], - address: '', + billingMethod: '' as any as EnumBillingMethod, + serviceFee: 0, + settlementCycle: '' as any as EnumSettlementCycle, + benefits: [] as string[], + ageMinLimit: 0, + ageMaxLimit: 0, + genderLimit: 0 as any as EnumUserGender, + credentialLimits: [] as string[], + time: [] as unknown as ModelValueType, + weMapInfo: {} as WeMapModel, + addressDetail: '', }); const { isLoading } = useQuery({ - queryKey: ['flexTaskServices/getFlexTaskDetail', id], + queryKey: ['taskServices/getTaskInfo', id], queryFn: async () => { - return await flexTaskServices.getFlexTaskDetail( + return await taskServices.getTaskInfo( { id: id }, { showLoading: false, } ); }, - placeholderData: () => ({} as API.GetFlexTaskDetailForBackOutput), + placeholderData: () => ({} as API.GetTaskInfoQueryResult), onSuccess(data) { - form.name = data.taskName; + form.name = data.name; + form.billingMethod = data.billingMethod; + form.serviceFee = data.serviceFee; + form.settlementCycle = data.settlementCycle; + form.benefits = data.benefits?.map((x) => x.benefitCode) ?? []; + form.ageMinLimit = data.ageMinLimit; + form.ageMaxLimit = data.ageMaxLimit; + form.genderLimit = data.genderLimit; + form.credentialLimits = data.credentialLimits?.map((x) => x.typeCode) ?? []; + form.time = [ + format(data.beginTime, 'YYYY-MM-DD 00:00:00'), + format(data.endTime, 'YYYY-MM-DD 23:59:59'), + ]; + form.weMapInfo = { + latitude: data.latitude, + longitude: data.longitude, + provinceName: data.provinceContent, + cityName: data.cityContent, + provinceCode: data.provinceCode, + cityCode: data.cityCode, + addressName: data.addressName, + }; + form.addressDetail = data.addressDetail; }, enabled: isEdit, }); @@ -233,8 +285,30 @@ } async function submit() { try { - let params = {}; - let res; + console.log('form.weMapInfo: ', form.weMapInfo); + let params: API.SaveTaskInfoCommand = { + name: form.name, + billingMethod: form.billingMethod, + serviceFee: form.serviceFee, + settlementCycle: form.settlementCycle, + benefits: form.benefits, + ageMinLimit: form.ageMinLimit, + ageMaxLimit: form.ageMaxLimit, + genderLimit: form.genderLimit, + credentialLimits: form.credentialLimits, + provinceCode: form.weMapInfo.provinceCode, + cityCode: form.weMapInfo.cityCode, + addressName: form.weMapInfo.addressName, + addressDetail: form.addressDetail, + longitude: form.weMapInfo.longitude, + latitude: form.weMapInfo.latitude, + beginTime: dayjs(form.time[0]).format('YYYY-MM-DD 00:00:00'), + endTime: dayjs(form.time[1]).format('YYYY-MM-DD 23:59:59'), + }; + if (isEdit) { + params.id = id; + } + let res = await taskServices.saveTaskInfo(params); if (res) { Message.successMessage('鎿嶄綔鎴愬姛'); eventContext.emit(isEdit ? 'employment:edit' : 'employment:add'); @@ -243,9 +317,36 @@ } catch (error) {} } -function handleCheckBenefitsAllChange() {} +function handleCheckBenefitsAllChange(val: boolean) { + form.benefits = val + ? welfareList.value.map((item) => { + return item.value; + }) + : []; + state.isBenefitsIndeterminate = false; +} -function handleCheckedBenefitsServicesChange() {} +function handleCheckedBenefitsServicesChange(value: string[]) { + const checkedCount = value.length; + state.checkBenefitsAll = checkedCount === welfareList.value.length; + state.isBenefitsIndeterminate = checkedCount > 0 && checkedCount < welfareList.value.length; +} + +function handleCheckCertificatesAllChange(val: boolean) { + form.credentialLimits = val + ? certificateTypeList.value.map((item) => { + return item.value; + }) + : []; + state.isCertificatesIndeterminate = false; +} + +function handleCheckedCertificatesServicesChange(value: string[]) { + const checkedCount = value.length; + state.checkCertificatesAll = checkedCount === certificateTypeList.value.length; + state.isCertificatesIndeterminate = + checkedCount > 0 && checkedCount < certificateTypeList.value.length; +} </script> <style lang="scss" scoped> @use '@/style/common.scss' as *; diff --git a/src/views/EmploymentManage/components/CheckManageDialog.vue b/src/views/EmploymentManage/components/CheckManageDialog.vue index b5e73cb..1c93c62 100644 --- a/src/views/EmploymentManage/components/CheckManageDialog.vue +++ b/src/views/EmploymentManage/components/CheckManageDialog.vue @@ -27,7 +27,6 @@ defineOperationBtns, useTable, } from '@bole-core/components'; -import { OrderInputType } from '@bole-core/core'; defineOptions({ name: 'EnterpriseConsumptionDetailDialog', @@ -107,7 +106,7 @@ }, { defaultExtraParams: { - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], columnsRenderProps: {}, diff --git a/src/views/EmploymentManage/constants/columns.ts b/src/views/EmploymentManage/constants/columns.ts index 6b8c412..7a2d70c 100644 --- a/src/views/EmploymentManage/constants/columns.ts +++ b/src/views/EmploymentManage/constants/columns.ts @@ -8,52 +8,52 @@ }, { id: '2', - enCode: 'name', + enCode: 'code', name: '浠诲姟鍗曞彿', }, { id: '3', - enCode: 'name', + enCode: 'billingMethod', name: '缁撶畻鍛ㄦ湡', }, { id: '4', - enCode: 'name', + enCode: 'serviceFee', name: '鏈嶅姟璐归噾棰�', }, { id: '5', - enCode: 'name', + enCode: 'settlementCycle', name: '缁撶畻鏂瑰紡', }, { id: '6', - enCode: 'name', + enCode: 'genderLimit', name: '鎬у埆瑕佹眰', }, { id: '7', - enCode: 'signNum', + enCode: 'userCount', name: '鎶ュ悕浜烘暟', }, { id: '8', - enCode: 'name', + enCode: 'status', name: '浠诲姟鐘舵��', }, { id: '9', - enCode: 'name', + enCode: 'beginTime', name: '鍙戝竷鏃ユ湡', }, { id: '10', - enCode: 'name', + enCode: 'endTime', name: '缁撴潫鏃ユ湡', }, { id: '11', - enCode: 'name', + enCode: 'releaseStatus', name: '鍙戝竷鐘舵��', }, ]); diff --git a/src/views/FinanceManage/components/DistributionDetailView.vue b/src/views/FinanceManage/components/DistributionDetailView.vue index 10d3f52..222e5b3 100644 --- a/src/views/FinanceManage/components/DistributionDetailView.vue +++ b/src/views/FinanceManage/components/DistributionDetailView.vue @@ -22,7 +22,6 @@ // import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; import { DistributionDetailColumns } from '../constants'; import { FlexEnterpriseSettingStatus } from '@/constants'; -import { OrderInputType } from '@bole-core/core'; defineOptions({ name: 'DistributionDetailView', @@ -71,7 +70,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], diff --git a/src/views/FinanceManage/components/UsageDetailView.vue b/src/views/FinanceManage/components/UsageDetailView.vue index 69dd4ab..d4cfad9 100644 --- a/src/views/FinanceManage/components/UsageDetailView.vue +++ b/src/views/FinanceManage/components/UsageDetailView.vue @@ -12,7 +12,6 @@ // import * as flexEnterpriseServices from '@/services/api/FlexEnterprise'; import { UsageDetailColumns } from '../constants'; import { FlexEnterpriseSettingStatus } from '@/constants'; -import { OrderInputType } from '@bole-core/core'; defineOptions({ name: 'UsageDetailView', @@ -59,7 +58,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue index 9661fc8..d89e356 100644 --- a/src/views/FlexJobManage/FlexJobManage.vue +++ b/src/views/FlexJobManage/FlexJobManage.vue @@ -134,7 +134,7 @@ } from '@bole-core/components'; import { FlexJobManageColumns } from './constants'; import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; -import { OrderInputType, Message } from '@bole-core/core'; +import { Message } from '@bole-core/core'; import { convertApi2FormUrlOnlyOne, downloadFileByUrl } from '@/utils'; import StaffInfoDialog from './components/StaffInfoDialog.vue'; import BatchImportDialog from './components/BatchImportDialog.vue'; @@ -242,7 +242,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue index ad92f39..97cf434 100644 --- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue +++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue @@ -133,7 +133,7 @@ import { Edit, Upload } from '@element-plus/icons-vue'; import { SettlementListColumns } from './constants'; import { useQuery } from '@tanstack/vue-query'; -import { downloadFileByUrl, OrderInputType } from '@bole-core/core'; +import { downloadFileByUrl } from '@bole-core/core'; defineOptions({ name: 'ServiceChargeDetail', @@ -199,7 +199,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], columnsRenderProps: {}, diff --git a/src/views/ServiceChargeManage/ServiceChargeManage.vue b/src/views/ServiceChargeManage/ServiceChargeManage.vue index 1f00249..ad975a6 100644 --- a/src/views/ServiceChargeManage/ServiceChargeManage.vue +++ b/src/views/ServiceChargeManage/ServiceChargeManage.vue @@ -109,7 +109,6 @@ } from '@bole-core/components'; import { ServiceChargeManageColumns } from './constants'; import { FlexEnterpriseSettingStatus, Gender } from '@/constants'; -import { OrderInputType } from '@bole-core/core'; import { downloadFileByUrl } from '@/utils'; defineOptions({ @@ -195,7 +194,7 @@ { defaultExtraParams: { searchWord: '', - orderInput: [{ property: 'id', order: OrderInputType.Desc }], + orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus, }, queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], diff --git a/types/api.d.ts b/types/api.d.ts index 5c800b8..5771ec0 100644 --- a/types/api.d.ts +++ b/types/api.d.ts @@ -13,4 +13,19 @@ mock?: boolean; customErrorHandler?: (error: any) => boolean; } + + interface AreaTreeNode { + children?: AreaTreeNode[]; + /** 缂栫爜 */ + areaCode?: string; + /** 鐖剁骇缂栫爜 */ + parentCode?: string; + /** 鍚嶇О */ + areaName?: string; + /** 1鐪� 2甯� 3鍖� 4闀� */ + layer?: number; + /** 鎺掑簭 */ + sort?: number; + id?: string + } } diff --git a/types/global.d.ts b/types/global.d.ts index 33ce661..4a7ea86 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -131,16 +131,17 @@ errorLog: string | Array<'production' | 'development'>; } - interface WeMapModel { + interface WeMapModel { latitude?: number; longitude?: number; provinceName?: string; cityName?: string; countyName?: string; - provinceCode?: number; - cityCode?: number; - countyCode?: number; + provinceCode?: string; + cityCode?: string; + countyCode?: string; address?: string; + addressName?: string; } interface CommonAnnexItem { -- Gitblit v1.9.1