From 87af8eda59a2679cb1c9295012adda05b72cde85 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 08 八月 2025 14:28:46 +0800 Subject: [PATCH] feat: 任务 --- types/global.d.ts | 1 src/views/TaskManage/components/TaskDetailView.vue | 187 ++++++++++++++++++-------- src/constants/task.ts | 21 +++ .eslintrc-auto-import.json | 18 ++ src/services/api/typings.d.ts | 78 +++++++++- src/components/WeMap/WeMap.vue | 2 auto-imports.d.ts | 40 +++++ src/constants/apiEnum.ts | 14 ++ src/services/api/auth.ts | 12 + src/services/api/user.ts | 15 ++ src/views/TaskManage/TaskManageList.vue | 30 +++ 11 files changed, 338 insertions(+), 80 deletions(-) diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index 93803cd..0a73595 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -5,6 +5,7 @@ "AreaType": true, "AuthorizeType": true, "BooleanOptions": true, + "CallingConventions": true, "CategoryCode": true, "CertificateTypeCodeEnum": true, "ChargeTypeEnum": true, @@ -21,6 +22,8 @@ "EnterpriseConfigureType": true, "EnterpriseConfigureTypeText": true, "EnumBillingMethod": true, + "EnumBillingMethodText": true, + "EnumBillingMethodUnitText": true, "EnumClientType": true, "EnumClientTypeText": true, "EnumMenuType": true, @@ -37,6 +40,7 @@ "EnumSettlementCycleText": true, "EnumSmsAccess": true, "EnumSmsAccessText": true, + "EnumSmsTemplateType": true, "EnumTaskCheckReceiveStatus": true, "EnumTaskRecommendStatus": true, "EnumTaskRecommendStatusText": true, @@ -46,10 +50,12 @@ "EnumTaskStatus": true, "EnumTaskStatusText": true, "EnumUserGender": true, + "EnumUserGenderText": true, "EnumUserInfoStatusText": true, "EnumUserStatus": true, "EnumUserType": true, "EnumUserTypeText": true, + "EventAttributes": true, "ExtractDefaultPropTypes": true, "ExtractPropTypes": true, "ExtractPublicPropTypes": true, @@ -58,6 +64,7 @@ "FastColumnList": true, "FastDataButtonList": true, "FastPageButtonList": true, + "FieldAttributes": true, "FlexEnterpriseCertificationStatus": true, "FlexEnterpriseCertificationStatusText": true, "FlexTaskWorkerHireEnum": true, @@ -66,6 +73,7 @@ "FlexWorkerEleSignEnumText": true, "Gender": true, "GenderText": true, + "GenericParameterAttributes": true, "GlobalEvent": true, "GlobalEventContext": true, "GlobalEventListener": true, @@ -73,9 +81,13 @@ "InjectionKey": true, "IsConfiguredText": true, "IsRealText": true, + "LayoutKind": true, "MaybeRef": true, "MaybeRefOrGetter": true, + "MemberTypes": true, "MenuSvgIconMap": true, + "MethodAttributes": true, + "MethodImplAttributes": true, "ModuleColumns": true, "MyRegExp": true, "OSSBaseURL": true, @@ -91,18 +103,24 @@ "OssRich": true, "OssUser": true, "OssUserSign": true, + "ParameterAttributes": true, "PropType": true, + "PropertyAttributes": true, "Ref": true, "RoleClientType": true, + "SecurityRuleSet": true, "Slot": true, "Slots": true, "SubModuleKey": true, "SubModuleTitle": true, "SubModuleType": true, + "TaskCreationOptions": true, + "TaskStatus": true, "ThemeColorItem": true, "ThemeColorName": true, "ThemeColors": true, "ThemeColorsType": true, + "TypeAttributes": true, "UsePortraitTableColumnsItem": true, "UsePortraitTableOptions": true, "VNode": true, diff --git a/auto-imports.d.ts b/auto-imports.d.ts index 263e64b..af87f98 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -11,6 +11,7 @@ const AreaType: typeof import('./src/constants/enum')['AreaType'] const AuthorizeType: typeof import('./src/constants/enum')['AuthorizeType'] const BooleanOptions: typeof import('./src/constants/enum')['BooleanOptions'] + const CallingConventions: typeof import('./src/constants/apiEnum')['CallingConventions'] const CategoryCode: typeof import('./src/constants/dic')['CategoryCode'] const CertificateTypeCodeEnum: typeof import('./src/constants/dic')['CertificateTypeCodeEnum'] const CertificateTypeEnum: typeof import('./src/constants/dic')['CertificateTypeEnum'] @@ -28,6 +29,8 @@ const EnterpriseConfigureType: typeof import('./src/constants/enterprise')['EnterpriseConfigureType'] const EnterpriseConfigureTypeText: typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeText'] 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'] @@ -44,6 +47,7 @@ const EnumSettlementCycleText: typeof import('./src/constants/task')['EnumSettlementCycleText'] const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess'] const EnumSmsAccessText: typeof import('./src/constants/enterprise')['EnumSmsAccessText'] + 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'] @@ -53,16 +57,19 @@ 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 EnumUserInfoStatus: typeof import('./src/constants/apiEnum')['EnumUserInfoStatus'] const EnumUserInfoStatusText: typeof import('./src/constants/user')['EnumUserInfoStatusText'] 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 EnumWebApiMethod: typeof import('./src/constants/apiEnum')['EnumWebApiMethod'] + const EventAttributes: typeof import('./src/constants/apiEnum')['EventAttributes'] const FastButtonMap: typeof import('./src/constants/module')['FastButtonMap'] const FastColumnList: typeof import('./src/constants/module')['FastColumnList'] const FastDataButtonList: typeof import('./src/constants/module')['FastDataButtonList'] const FastPageButtonList: typeof import('./src/constants/module')['FastPageButtonList'] + const FieldAttributes: typeof import('./src/constants/apiEnum')['FieldAttributes'] const FlexEnterpriseCertificationStatus: typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatus'] const FlexEnterpriseCertificationStatusText: typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatusText'] const FlexEnterpriseSettingStatus: typeof import('./src/constants/enterprise')['FlexEnterpriseSettingStatus'] @@ -75,12 +82,17 @@ const FlexWorkerEleSignEnumText: typeof import('./src/constants/cPerson')['FlexWorkerEleSignEnumText'] const Gender: typeof import('./src/constants/enum')['Gender'] const GenderText: typeof import('./src/constants/enum')['GenderText'] + const GenericParameterAttributes: typeof import('./src/constants/apiEnum')['GenericParameterAttributes'] const IdentityCodeEnum: typeof import('./src/constants/dic')['IdentityCodeEnum'] const IsConfiguredText: typeof import('./src/constants/enterprise')['IsConfiguredText'] const IsRealText: typeof import('./src/constants/enterprise')['IsRealText'] + const LayoutKind: typeof import('./src/constants/apiEnum')['LayoutKind'] + const MemberTypes: typeof import('./src/constants/apiEnum')['MemberTypes'] const MenuSvgIconMap: typeof import('./src/constants/menu')['MenuSvgIconMap'] const MessageChannelEnum: typeof import('./src/constants/enterprise')['MessageChannelEnum'] const MessageChannelEnumText: typeof import('./src/constants/enterprise')['MessageChannelEnumText'] + const MethodAttributes: typeof import('./src/constants/apiEnum')['MethodAttributes'] + const MethodImplAttributes: typeof import('./src/constants/apiEnum')['MethodImplAttributes'] const ModuleColumns: typeof import('./src/constants/module')['ModuleColumns'] const MyRegExp: typeof import('./src/constants/regExp')['MyRegExp'] const OSSBaseURL: typeof import('./src/constants/oss')['OSSBaseURL'] @@ -96,15 +108,21 @@ const OssRich: typeof import('./src/constants/oss')['OssRich'] const OssUser: typeof import('./src/constants/oss')['OssUser'] const OssUserSign: typeof import('./src/constants/oss')['OssUserSign'] + const ParameterAttributes: typeof import('./src/constants/apiEnum')['ParameterAttributes'] + const PropertyAttributes: typeof import('./src/constants/apiEnum')['PropertyAttributes'] const RoleClientType: typeof import('./src/constants/role')['RoleClientType'] const SearchType: typeof import('./src/constants/dic')['SearchType'] const SearchTypeText: typeof import('./src/constants/dic')['SearchTypeText'] + const SecurityRuleSet: typeof import('./src/constants/apiEnum')['SecurityRuleSet'] const SignChannelEnum: typeof import('./src/constants/enterprise')['SignChannelEnum'] const SignChannelEnumText: typeof import('./src/constants/enterprise')['SignChannelEnumText'] const SubModuleKey: typeof import('./src/constants/module')['SubModuleKey'] const SubModuleTitle: typeof import('./src/constants/module')['SubModuleTitle'] const SubModuleType: typeof import('./src/constants/module')['SubModuleType'] + const TaskCreationOptions: typeof import('./src/constants/apiEnum')['TaskCreationOptions'] + const TaskStatus: typeof import('./src/constants/apiEnum')['TaskStatus'] const ThemeColors: typeof import('./src/constants/theme')['ThemeColors'] + const TypeAttributes: typeof import('./src/constants/apiEnum')['TypeAttributes'] const VerifyStatus: typeof import('./src/constants/enterprise')['VerifyStatus'] const VerifyStatusColor: typeof import('./src/constants/enterprise')['VerifyStatusColor'] const VerifyStatusText: typeof import('./src/constants/enterprise')['VerifyStatusText'] @@ -219,7 +237,7 @@ export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' import('vue') // @ts-ignore - export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType } from './src/constants/apiEnum' + export type { CallingConventions, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EventAttributes, FieldAttributes, GenericParameterAttributes, LayoutKind, MemberTypes, MethodAttributes, MethodImplAttributes, ParameterAttributes, PropertyAttributes, SecurityRuleSet, TaskCreationOptions, TaskStatus, TypeAttributes, CallingConventions, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsTemplateType, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumUserGender, EnumUserStatus, EnumUserType, EventAttributes, FieldAttributes, GenericParameterAttributes, LayoutKind, MemberTypes, MethodAttributes, MethodImplAttributes, ParameterAttributes, PropertyAttributes, SecurityRuleSet, TaskCreationOptions, TaskStatus, TypeAttributes } from './src/constants/apiEnum' import('./src/constants/apiEnum') // @ts-ignore export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson' @@ -266,6 +284,7 @@ readonly AreaType: UnwrapRef<typeof import('./src/constants/enum')['AreaType']> readonly AuthorizeType: UnwrapRef<typeof import('./src/constants/enum')['AuthorizeType']> readonly BooleanOptions: UnwrapRef<typeof import('./src/constants/enum')['BooleanOptions']> + readonly CallingConventions: UnwrapRef<typeof import('./src/constants/apiEnum')['CallingConventions']> readonly CategoryCode: UnwrapRef<typeof import('./src/constants/dic')['CategoryCode']> readonly CertificateTypeCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['CertificateTypeCodeEnum']> readonly ChargeTypeEnum: UnwrapRef<typeof import('./src/constants/enterprise')['ChargeTypeEnum']> @@ -278,6 +297,8 @@ readonly EnterpriseConfigureType: UnwrapRef<typeof import('./src/constants/enterprise')['EnterpriseConfigureType']> readonly EnterpriseConfigureTypeText: UnwrapRef<typeof import('./src/constants/enterprise')['EnterpriseConfigureTypeText']> 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']> @@ -294,6 +315,7 @@ readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']> readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']> readonly EnumSmsAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessText']> + 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']> @@ -303,14 +325,17 @@ 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 EnumUserInfoStatusText: UnwrapRef<typeof import('./src/constants/user')['EnumUserInfoStatusText']> 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 EventAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['EventAttributes']> readonly FastButtonMap: UnwrapRef<typeof import('./src/constants/module')['FastButtonMap']> readonly FastColumnList: UnwrapRef<typeof import('./src/constants/module')['FastColumnList']> readonly FastDataButtonList: UnwrapRef<typeof import('./src/constants/module')['FastDataButtonList']> readonly FastPageButtonList: UnwrapRef<typeof import('./src/constants/module')['FastPageButtonList']> + readonly FieldAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['FieldAttributes']> readonly FlexEnterpriseCertificationStatus: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatus']> readonly FlexEnterpriseCertificationStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['FlexEnterpriseCertificationStatusText']> readonly FlexTaskWorkerHireEnum: UnwrapRef<typeof import('./src/constants/cPerson')['FlexTaskWorkerHireEnum']> @@ -319,10 +344,15 @@ readonly FlexWorkerEleSignEnumText: UnwrapRef<typeof import('./src/constants/cPerson')['FlexWorkerEleSignEnumText']> readonly Gender: UnwrapRef<typeof import('./src/constants/enum')['Gender']> readonly GenderText: UnwrapRef<typeof import('./src/constants/enum')['GenderText']> + readonly GenericParameterAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['GenericParameterAttributes']> readonly IdentityCodeEnum: UnwrapRef<typeof import('./src/constants/dic')['IdentityCodeEnum']> readonly IsConfiguredText: UnwrapRef<typeof import('./src/constants/enterprise')['IsConfiguredText']> readonly IsRealText: UnwrapRef<typeof import('./src/constants/enterprise')['IsRealText']> + readonly LayoutKind: UnwrapRef<typeof import('./src/constants/apiEnum')['LayoutKind']> + readonly MemberTypes: UnwrapRef<typeof import('./src/constants/apiEnum')['MemberTypes']> readonly MenuSvgIconMap: UnwrapRef<typeof import('./src/constants/menu')['MenuSvgIconMap']> + readonly MethodAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['MethodAttributes']> + readonly MethodImplAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['MethodImplAttributes']> readonly ModuleColumns: UnwrapRef<typeof import('./src/constants/module')['ModuleColumns']> readonly MyRegExp: UnwrapRef<typeof import('./src/constants/regExp')['MyRegExp']> readonly OSSBaseURL: UnwrapRef<typeof import('./src/constants/oss')['OSSBaseURL']> @@ -338,11 +368,17 @@ readonly OssRich: UnwrapRef<typeof import('./src/constants/oss')['OssRich']> readonly OssUser: UnwrapRef<typeof import('./src/constants/oss')['OssUser']> readonly OssUserSign: UnwrapRef<typeof import('./src/constants/oss')['OssUserSign']> + readonly ParameterAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['ParameterAttributes']> + readonly PropertyAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['PropertyAttributes']> readonly RoleClientType: UnwrapRef<typeof import('./src/constants/role')['RoleClientType']> + readonly SecurityRuleSet: UnwrapRef<typeof import('./src/constants/apiEnum')['SecurityRuleSet']> readonly SubModuleKey: UnwrapRef<typeof import('./src/constants/module')['SubModuleKey']> readonly SubModuleTitle: UnwrapRef<typeof import('./src/constants/module')['SubModuleTitle']> readonly SubModuleType: UnwrapRef<typeof import('./src/constants/module')['SubModuleType']> + readonly TaskCreationOptions: UnwrapRef<typeof import('./src/constants/apiEnum')['TaskCreationOptions']> + readonly TaskStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['TaskStatus']> readonly ThemeColors: UnwrapRef<typeof import('./src/constants/theme')['ThemeColors']> + readonly TypeAttributes: UnwrapRef<typeof import('./src/constants/apiEnum')['TypeAttributes']> readonly VerifyStatus: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatus']> readonly VerifyStatusColor: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatusColor']> readonly VerifyStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['VerifyStatusText']> @@ -451,4 +487,4 @@ readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']> readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']> } -} +} \ No newline at end of file diff --git a/src/components/WeMap/WeMap.vue b/src/components/WeMap/WeMap.vue index 8706d7c..e8dddd4 100644 --- a/src/components/WeMap/WeMap.vue +++ b/src/components/WeMap/WeMap.vue @@ -13,7 +13,6 @@ <script setup lang="ts"> import { useAllAreaList } from '@/hooks'; -import { Message } from '@bole-core/core'; import { loadEnv } from '@build/index'; import { useFormItem } from 'element-plus'; @@ -87,6 +86,7 @@ cityCode: findAreaCodeFromName(cityName), countyCode: findAreaCodeFromName(countyName), address: loc.poiaddress, + addressName: loc.name, }); if (props.validateEvent) { formItem?.validate?.('change'); diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts index f260f44..d4ebf8b 100644 --- a/src/constants/apiEnum.ts +++ b/src/constants/apiEnum.ts @@ -125,6 +125,20 @@ AliyunSms = 10, } +/** 鐭俊妯℃澘绫诲瀷 */ +export enum EnumSmsTemplateType { + /**鐧诲綍 */ + Login = 0, + /**娉ㄥ唽 */ + Register = 1, + /**淇敼瀵嗙爜 */ + UpdatePassword = 2, + /**缁戝畾鎵嬫満鍙风爜 */ + BindPhoneNumber = 3, + /**淇敼鎵嬫満鍙风爜 */ + UpdatePhoneNumber = 4, +} + /** 浠诲姟缁撶畻鐘舵�� */ export enum EnumTaskCheckReceiveStatus { /**寰呴獙鏀� */ diff --git a/src/constants/task.ts b/src/constants/task.ts index fa7fd95..b615868 100644 --- a/src/constants/task.ts +++ b/src/constants/task.ts @@ -2,6 +2,7 @@ [EnumTaskStatus.Wait]: '寰呭畨鎺�', [EnumTaskStatus.Complete]: '宸插畨鎺�', }; + export const EnumSettlementCycleText = { [EnumSettlementCycle.Month]: '鏈堢粨', [EnumSettlementCycle.Week]: '鍛ㄧ粨', @@ -12,7 +13,27 @@ [EnumTaskReleaseStatus.InProcess]: '鍙戝竷涓�', [EnumTaskReleaseStatus.Stopped]: '宸插仠姝�', }; + export const EnumTaskRecommendStatusText = { [EnumTaskRecommendStatus.No]: '鏈帹鑽�', [EnumTaskRecommendStatus.Yes]: '宸叉帹鑽�', }; + +export const EnumUserGenderText = { + [EnumUserGender.Male]: '鐢锋��', + [EnumUserGender.Female]: '濂虫��', +}; + +export const EnumBillingMethodText = { + [EnumBillingMethod.Month]: '鎸夋湀', + [EnumBillingMethod.Day]: '鎸夋棩', + [EnumBillingMethod.Hour]: '鎸夋椂', + [EnumBillingMethod.Piece]: '璁′欢', +}; + +export const EnumBillingMethodUnitText = { + [EnumBillingMethod.Month]: '鍏�/鏈�', + [EnumBillingMethod.Day]: '鍏�/鏃�', + [EnumBillingMethod.Hour]: '鍏�/灏忔椂', + [EnumBillingMethod.Piece]: '鍏�/浠�', +}; 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/typings.d.ts b/src/services/api/typings.d.ts index bbbf1ab..5324984 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -122,13 +122,6 @@ ids: string[]; } - interface DictionaryDataQueryModel { - /** 缂栧彿 */ - code?: string; - /** 鍚嶇О */ - name?: string; - } - enum EnumBillingMethod { /**鎸夋湀 */ Month = 10, @@ -240,6 +233,19 @@ enum EnumSmsAccess { /**闃块噷浜戠煭淇� */ AliyunSms = 10, + } + + enum EnumSmsTemplateType { + /**鐧诲綍 */ + Login = 0, + /**娉ㄥ唽 */ + Register = 1, + /**淇敼瀵嗙爜 */ + UpdatePassword = 2, + /**缁戝畾鎵嬫満鍙风爜 */ + BindPhoneNumber = 3, + /**淇敼鎵嬫満鍙风爜 */ + UpdatePhoneNumber = 4, } enum EnumTaskCheckReceiveStatus { @@ -1159,26 +1165,30 @@ serviceFee?: number; settlementCycle?: EnumSettlementCycle; /** 绂忓埄 */ - benefits?: DictionaryDataQueryModel[]; + benefits?: GetTaskInfoQueryResultBenefit[]; /** 骞撮緞鑼冨洿鏈�灏� */ ageMinLimit?: number; /** 骞撮緞鑼冨洿澶� */ ageMaxLimit?: number; genderLimit?: EnumUserGender; /** 璧勬牸璇佷功绫诲瀷 */ - credentialLimits?: DictionaryDataQueryModel[]; + credentialLimits?: GetTaskInfoQueryResultCredentialLimit[]; /** 浠诲姟鍦扮偣鎵�灞炵渷浠界紪鍙� */ provinceCode?: string; /** 浠诲姟鍦扮偣鎵�灞炵渷浠� */ - provinceName?: string; + provinceContent?: string; /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ cityCode?: string; /** 浠诲姟鍦扮偣鎵�灞炲煄甯� */ - cityName?: string; + cityContent?: string; /** 浠诲姟鍦扮偣鍚嶇О */ addressName?: string; /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */ addressDetail?: string; + /** 缁忓害 */ + longitude?: number; + /** 绾害 */ + latitude?: number; /** 浠诲姟寮�濮嬫椂闂� */ beginTime?: string; /** 浠诲姟缁撴潫鏃堕棿 */ @@ -1189,12 +1199,28 @@ isCollected?: boolean; } + interface GetTaskInfoQueryResultBenefit { + /** 绂忓埄缂栧彿 */ + benefitCode?: string; + /** 绂忓埄 */ + benefitContent?: string; + } + + interface GetTaskInfoQueryResultCredentialLimit { + /** 璇佷功绫诲瀷缂栧彿 */ + typeCode?: string; + /** 璇佷功绫诲瀷 */ + typeContent?: string; + } + interface GetTaskInfosQuery { pageModel?: PagedListQueryPageModel; /** 鍏抽敭瀛楋紙浠诲姟鍚嶇О锛� */ keywords?: string; - /** 鍙戝竷鏃堕棿 */ - time?: string; + /** 鍙戝竷鏃堕棿-寮�濮� */ + beginTime?: string; + /** 鍙戝竷鏃堕棿-缁撴潫 */ + endTime?: string; /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ cityCode?: string; settlementCycle?: EnumSettlementCycle; @@ -1217,7 +1243,27 @@ /** 鏈嶅姟璐� */ 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; @@ -1594,6 +1640,12 @@ data?: any; } + interface SendVerifyCodeCommand { + /** 鎵嬫満鍙风爜 */ + phoneNumber?: string; + templateCode?: EnumSmsTemplateType; + } + interface SetDictionaryDataIsDisabledCommand { ids?: string[]; /** 鏄惁宸茬鐢� */ diff --git a/src/services/api/user.ts b/src/services/api/user.ts index 3d4e6e0..a398d43 100644 --- a/src/services/api/user.ts +++ b/src/services/api/user.ts @@ -35,6 +35,21 @@ }); } +/** 鏌ヨ鐢ㄦ埛绠�鍘� 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, diff --git a/src/views/TaskManage/TaskManageList.vue b/src/views/TaskManage/TaskManageList.vue index b6433ff..1f3e545 100644 --- a/src/views/TaskManage/TaskManageList.vue +++ b/src/views/TaskManage/TaskManageList.vue @@ -66,6 +66,8 @@ import { ModelValueType } from 'element-plus'; import * as taskServices from '@/services/api/task'; import { EnumTaskReleaseStatusText, EnumTaskRecommendStatusText } from '@/constants'; +import { format } from '@/utils'; +import { Message } from '@bole-core/core'; defineOptions({ name: 'OperationManageList', @@ -74,16 +76,16 @@ const operationBtnMap: Record<string, OperationBtnType> = { detailBtn: { emits: { onClick: (role) => goDetail(role) } }, recommendBtn: { - emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, + emits: { onClick: (role) => setTaskInfoRecommendStatus(role) }, extraProps: { - hide: (row) => row.status, + hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.Yes, }, }, cancelRecommendBtn: { - emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, + emits: { onClick: (role) => setTaskInfoRecommendStatus(role) }, props: { type: 'danger' }, extraProps: { - hide: (row) => !row.status, + hide: (row) => row.recommendStatus === EnumTaskRecommendStatus.No, }, }, }; @@ -122,7 +124,8 @@ keywords: extraParamState.keywords, releaseStatus: extraParamState.releaseStatus, recommendStatus: extraParamState.recommendStatus, - // time: extraParamState.time, + 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 taskServices.getTaskInfos(params, { showLoading: !state.loading, @@ -142,8 +145,23 @@ } ); -async function setAdvertiseOnShowStatus(row) { +async function setTaskInfoRecommendStatus(row: API.GetTaskInfosQueryResultItem) { try { + await Message.tipMessage( + `纭瑕�${row.recommendStatus === EnumTaskRecommendStatus.Yes ? '鍙栨秷' : '鎺ㄨ崘'}鍚楋紵` + ); + let params: API.SetTaskInfoRecommendStatusCommand = { + ids: [row.id], + recommendStatus: + row.recommendStatus === EnumTaskRecommendStatus.Yes + ? EnumTaskRecommendStatus.No + : EnumTaskRecommendStatus.Yes, + }; + let res = await taskServices.setTaskInfoRecommendStatus(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + } } catch (error) {} } diff --git a/src/views/TaskManage/components/TaskDetailView.vue b/src/views/TaskManage/components/TaskDetailView.vue index 668e441..ab2fac9 100644 --- a/src/views/TaskManage/components/TaskDetailView.vue +++ b/src/views/TaskManage/components/TaskDetailView.vue @@ -2,99 +2,119 @@ <LoadingLayout :loading="isLoading"> <AppContainer> <PageFormLayout> - <ProForm :model="detail" ref="formRef" label-width="140px" is-read> + <ProForm :model="form" ref="productFormRef" label-width="110px" is-read> <ProFormCol> <ProFormColItem :span="12"> <ProFormItemV2 label="浠诲姟鍚嶇О:" prop="name"> - <ProFormText v-model.trim="detail.enterpriseName" /> + <ProFormText v-model.trim="form.name" placeholder="璇疯緭鍏ヤ换鍔″悕绉�" /> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> - <ProFormItemV2 label="鏈嶅姟璐�:" prop="salaryType"> - <RadioWithExtra - v-model="detail.enterpriseName" - :value-enum="[ - { value: 1, text: '鎸夋湀' }, - { value: 2, text: '鎸夋棩' }, - ]" - enumLabelKey="text" - enum-value-key="value" - :showExtra="true" - > - <template #extra> - <ProFormInputNumber - :controls="false" - v-model="detail.enterpriseName" - :unit="detail.enterpriseName === '' ? '鍏�/鏈�' : '鍏�/鏃�'" - ></ProFormInputNumber> - </template> - </RadioWithExtra> - </ProFormItemV2> + <ProFormColItem :span="12"> + <ProFormItemV2 label="鏈嶅姟璐�:" prop="billingMethod"> + <RadioWithExtra + v-model="form.billingMethod" + :value-enum="EnumBillingMethodText" + :showExtra="true" + :button-style="false" + > + <template #extra> + <ProFormInputNumber + :controls="false" + v-model="form.serviceFee" + placeholder="璇疯緭鍏�" + :unit="EnumBillingMethodUnitText[form.billingMethod]" + ></ProFormInputNumber> + </template> + </RadioWithExtra> + </ProFormItemV2> + </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="缁撶畻鏂瑰紡:" prop="salaryType"> + <ProFormItemV2 label="缁撶畻鏂瑰紡:" prop="settlementCycle"> <ProFormRadio - v-model="detail.enterpriseName" - :value-enum="[ - { label: '鏈堢粨', value: 1 }, - { label: '鏃ョ粨', value: 2 }, - ]" - /> + v-model="form.settlementCycle" + :value-enum="EnumSettlementCycleText" + :button-style="false" + ></ProFormRadio> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="绂忓埄:" prop="salaryType"> - <ProFormRadio v-model="detail.enterpriseName" :value-enum="dictionaryDataList" /> + <ProFormItemV2 label="绂忓埄:" prop="benefits"> + <ProFormCheckbox + v-model="form.benefits" + :value-enum="welfareList" + enumLabelKey="name" + enum-value-key="code" + ></ProFormCheckbox> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="骞撮緞鑼冨洿:" prop="ageRange"> - <ProFormInputNumber v-model="detail.enterpriseName"></ProFormInputNumber> + <ProFormItemV2 label="骞撮緞鑼冨洿:" prop="ageRange" class="form-age-range"> + <ProFormInputNumber + :controls="false" + :min="0" + v-model="form.ageMinLimit" + placeholder="璇疯緭鍏�" + ></ProFormInputNumber> + <div class="form-input-separator">鑷�</div> + <ProFormInputNumber + :controls="false" + :min="0" + v-model="form.ageMaxLimit" + placeholder="璇疯緭鍏�" + ></ProFormInputNumber> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="鎬у埆闇�姹�:" prop="salaryType"> + <ProFormItemV2 label="鎬у埆瑕佹眰:" prop="genderLimit"> <ProFormRadio - v-model="detail.enterpriseName" - :value-enum="[ - { label: '鐢�', value: 1 }, - { label: '濂�', value: 2 }, - ]" - /> + v-model="form.genderLimit" + :value-enum="EnumUserGenderText" + show-all-btn + ></ProFormRadio> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="璧勬牸璇佷功:" prop="salaryType"> - <ProFormRadio v-model="detail.enterpriseName" :value-enum="dictionaryDataList" /> + <ProFormItemV2 label="璧勬牸璇佷功:" prop="credentialLimits"> + <ProFormCheckbox + v-model="form.credentialLimits" + :value-enum="certificateTypeList" + enumLabelKey="name" + enum-value-key="code" + ></ProFormCheckbox> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="浠诲姟鍦扮偣:" prop="areaList"> - <!-- <ProFromAddressSelectV2 - v-model:areaList="detail.areaList" - areaListPlaceholder="璇烽�夋嫨" - :layer="AreaType.Area" - /> --> + <ProFormItemV2 label="浠诲姟鍦扮偣:" prop="weMapInfo"> + <WeMap v-model="form.weMapInfo" /> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="浠诲姟鏃堕棿:" prop="creationTime" mode="read"> + <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="detail.enterpriseName" + v-model="form.time" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" @@ -125,10 +145,18 @@ ProFormInputNumber, ProFormRadio, ProFormDatePicker, + ProFormCheckbox, } from '@bole-core/components'; import { useQuery } from '@tanstack/vue-query'; -import { AreaType } from '@/constants'; -import * as enterpriseServices from '@/services/api/enterprise'; +import * as taskServices from '@/services/api/task'; +import { + EnumUserGenderText, + EnumBillingMethodText, + EnumBillingMethodUnitText, + EnumSettlementCycleText, +} from '@/constants'; +import { ModelValueType } from 'element-plus'; +import { format } from '@/utils'; defineOptions({ name: 'TaskDetailView', @@ -137,21 +165,64 @@ const route = useRoute(); const id = route.params?.id as string; const { closeViewPush } = useRouteView(); -const { dictionaryDataList } = useDictionaryDataSelect({ - categoryCode: computed(() => CategoryCode.Welfare), +const { dictionaryDataList: welfareList } = useDictionaryDataSelect({ + categoryCode: CategoryCode.Welfare, +}); +const { dictionaryDataList: certificateTypeList } = useDictionaryDataSelect({ + categoryCode: CategoryCode.CertificateType, }); -const { data: detail, isLoading } = useQuery({ - queryKey: ['enterpriseServices/getEnterprise', id], +const form = reactive({ + name: '', + billingMethod: '' as any as EnumBillingMethod, + serviceFee: 0, + settlementCycle: '' as any as EnumSettlementCycle, + benefits: [] as string[], + ageMinLimit: 0, + ageMaxLimit: 0, + genderLimit: '' as any as EnumUserGender, + credentialLimits: [] as string[], + time: [] as unknown as ModelValueType, + weMapInfo: {} as WeMapModel, + addressDetail: '', +}); + +const { isLoading } = useQuery({ + queryKey: ['taskServices/getTaskInfo', id], queryFn: async () => { - return await enterpriseServices.getEnterprise( + return await taskServices.getTaskInfo( { id: id }, { showLoading: false, } ); }, - placeholderData: () => ({} as API.GetEnterpriseQueryResult), + placeholderData: () => ({} as API.GetTaskInfoQueryResult), + onSuccess(data) { + form.name = data.name; + form.billingMethod = data.billingMethod; + form.serviceFee = data.serviceFee; + form.settlementCycle = data.settlementCycle; + form.benefits = data.benefits?.map((x) => x.code) ?? []; + form.ageMinLimit = data.ageMinLimit; + form.ageMaxLimit = data.ageMaxLimit; + form.genderLimit = data.genderLimit; + form.credentialLimits = data.credentialLimits?.map((x) => x.code) ?? []; + 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.provinceName, + cityName: data.cityName, + provinceCode: data.provinceCode, + cityCode: data.cityCode, + addressName: data.addressName, + }; + form.addressDetail = data.addressDetail; + }, enabled: computed(() => !!id), }); diff --git a/types/global.d.ts b/types/global.d.ts index b091bab..4c54821 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -141,6 +141,7 @@ cityCode?: string; countyCode?: string; address?: string; + addressName?: string; } interface CommonAnnexItem { -- Gitblit v1.9.1