From e5b6f4180bd311bb63c3c5c9b3074e3b6b60e19e Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 08 八月 2025 10:32:12 +0800 Subject: [PATCH] feat: 任务 --- src/constants/user.ts | 4 types/global.d.ts | 6 src/constants/task.ts | 18 ++ .eslintrc-auto-import.json | 9 + src/services/api/typings.d.ts | 75 ++++++++ src/services/api/dictionary.ts | 36 ++-- src/views/Permission/OperationUserManage.vue | 24 +- src/services/api/task.ts | 42 ++++ src/services/api/index.ts | 16 +- src/views/TaskManage/components/SignDetailView.vue | 31 --- src/views/TaskManage/components/SelltementDetailView.vue | 83 ++++++++++ auto-imports.d.ts | 19 ++ src/constants/apiEnum.ts | 28 +++ src/constants/index.ts | 1 src/views/TaskManage/TaskManageDetail.vue | 4 src/services/api/user.ts | 16 +- src/views/TaskManage/TaskManageList.vue | 39 ++-- 17 files changed, 337 insertions(+), 114 deletions(-) diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index d70254c..93803cd 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -34,13 +34,20 @@ "EnumRoleWebApiDataPowerText": true, "EnumRoleWebApiDataPowerTextForFilter": true, "EnumSettlementCycle": true, + "EnumSettlementCycleText": true, "EnumSmsAccess": true, "EnumSmsAccessText": true, + "EnumTaskCheckReceiveStatus": true, + "EnumTaskRecommendStatus": true, + "EnumTaskRecommendStatusText": true, "EnumTaskReleaseStatus": true, + "EnumTaskReleaseStatusText": true, + "EnumTaskSettlementStatus": true, "EnumTaskStatus": true, + "EnumTaskStatusText": true, "EnumUserGender": true, - "EnumUserInfoStatus": true, "EnumUserInfoStatusText": true, + "EnumUserStatus": true, "EnumUserType": true, "EnumUserTypeText": true, "ExtractDefaultPropTypes": true, diff --git a/auto-imports.d.ts b/auto-imports.d.ts index f3f0191..ca95e32 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -41,13 +41,21 @@ 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 EnumSmsAccessText: typeof import('./src/constants/enterprise')['EnumSmsAccessText'] + 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 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 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'] @@ -211,7 +219,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, EnumTaskReleaseStatus, EnumTaskStatus, EnumUserGender, EnumUserInfoStatus, EnumUserType, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskReleaseStatus, EnumTaskStatus, EnumUserGender, EnumUserInfoStatus, EnumUserType } from './src/constants/apiEnum' + 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' import('./src/constants/apiEnum') // @ts-ignore export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson' @@ -283,13 +291,20 @@ 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 EnumSmsAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessText']> + 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 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 EnumUserInfoStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumUserInfoStatus']> 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 FastButtonMap: UnwrapRef<typeof import('./src/constants/module')['FastButtonMap']> diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts index 1e227fd..f260f44 100644 --- a/src/constants/apiEnum.ts +++ b/src/constants/apiEnum.ts @@ -76,7 +76,7 @@ /**鐢ㄦ埛瑙掕壊 */ Role = 5, /**鐢ㄦ埛淇℃伅 */ - UserInfo = 6, + User = 6, /**浼佷笟淇℃伅 */ Enterprise = 7, } @@ -125,12 +125,36 @@ AliyunSms = 10, } +/** 浠诲姟缁撶畻鐘舵�� */ +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, } /** 浠诲姟瀹夋帓鐘舵�� */ @@ -150,7 +174,7 @@ } /** 鐢ㄦ埛淇℃伅鐘舵�� */ -export enum EnumUserInfoStatus { +export enum EnumUserStatus { /**姝e父 */ Normal = 10, /**绂佺敤 */ diff --git a/src/constants/index.ts b/src/constants/index.ts index b179761..02c6032 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -16,3 +16,4 @@ export * from './apiEnumText'; export * from './user'; export * from './dic'; +export * from './task'; diff --git a/src/constants/task.ts b/src/constants/task.ts new file mode 100644 index 0000000..fa7fd95 --- /dev/null +++ b/src/constants/task.ts @@ -0,0 +1,18 @@ +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 EnumTaskRecommendStatusText = { + [EnumTaskRecommendStatus.No]: '鏈帹鑽�', + [EnumTaskRecommendStatus.Yes]: '宸叉帹鑽�', +}; diff --git a/src/constants/user.ts b/src/constants/user.ts index 588b889..b0c901c 100644 --- a/src/constants/user.ts +++ b/src/constants/user.ts @@ -1,4 +1,4 @@ export const EnumUserInfoStatusText = { - [EnumUserInfoStatus.Normal]: '姝e父', - [EnumUserInfoStatus.Disabled]: '绂佺敤', + [EnumUserStatus.Normal]: '姝e父', + [EnumUserStatus.Disabled]: '绂佺敤', }; diff --git a/src/services/api/dictionary.ts b/src/services/api/dictionary.ts index c48fb89..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.SelectOptionGuidGetDictionaryCategorySelectQueryOption[]>( - '/api/main/dictionary/getDictionaryCategorySelect', + '/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.SelectOptionStringGetDictionaryDataSelectQueryResultOption[]>( - '/api/main/dictionary/getDictionaryDataSelect', + '/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', @@ -136,12 +136,12 @@ }); } -/** 鍚屾浜哄姏璧勬簮鍦板尯瀛楀吀鏁版嵁 POST /api/main/dictionary/syncHumanResourcesAreaDictionaryData */ +/** 鍚屾浜哄姏璧勬簮鍦板尯瀛楀吀鏁版嵁 POST /api/flexjob/dictionary/syncHumanResourcesAreaDictionaryData */ export async function syncHumanResourcesAreaDictionaryData( body: API.SyncHumanResourcesAreaDictionaryDataCommand, options?: API.RequestConfig ) { - return request<number>('/api/main/dictionary/syncHumanResourcesAreaDictionaryData', { + return request<number>('/api/flexjob/dictionary/syncHumanResourcesAreaDictionaryData', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', diff --git a/src/services/api/index.ts b/src/services/api/index.ts index de6fd71..dcda25c 100644 --- a/src/services/api/index.ts +++ b/src/services/api/index.ts @@ -2,21 +2,21 @@ /* eslint-disable */ // API 鏇存柊鏃堕棿锛� // API 鍞竴鏍囪瘑锛� -import * as userInfo from './userInfo'; -import * as auth from './auth'; import * as dictionary from './dictionary'; import * as menu from './menu'; -import * as resource from './resource'; -import * as role from './role'; 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 { - userInfo, - auth, dictionary, menu, - resource, - role, enterprise, task, + auth, + user, + role, + resource, }; diff --git a/src/services/api/task.ts b/src/services/api/task.ts index 264a625..23c1be7 100644 --- a/src/services/api/task.ts +++ b/src/services/api/task.ts @@ -2,13 +2,13 @@ // @ts-ignore import { request } from '@/utils/request'; -/** 鏌ヨ浠诲姟璇︽儏 GET /api/main/task/getTaskInfo */ +/** 鏌ヨ浠诲姟璇︽儏 GET /api/flexjob/task/getTaskInfo */ export async function getTaskInfo( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) params: API.APIgetTaskInfoParams, options?: API.RequestConfig ) { - return request<API.GetTaskInfoQueryResult>('/api/main/task/getTaskInfo', { + return request<API.GetTaskInfoQueryResult>('/api/flexjob/task/getTaskInfo', { method: 'GET', params: { ...params, @@ -17,10 +17,10 @@ }); } -/** 鏌ヨ浠诲姟鍒嗛〉鍒楄〃 POST /api/main/task/getTaskInfos */ +/** 鏌ヨ浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/task/getTaskInfos */ export async function getTaskInfos(body: API.GetTaskInfosQuery, options?: API.RequestConfig) { return request<API.PagedListQueryResultGetTaskInfosQueryResultItem>( - '/api/main/task/getTaskInfos', + '/api/flexjob/task/getTaskInfos', { method: 'POST', headers: { @@ -32,9 +32,9 @@ ); } -/** 淇濆瓨浠诲姟 POST /api/main/task/saveTaskInfo */ +/** 淇濆瓨浠诲姟 POST /api/flexjob/task/saveTaskInfo */ export async function saveTaskInfo(body: API.SaveTaskInfoCommand, options?: API.RequestConfig) { - return request<string>('/api/main/task/saveTaskInfo', { + return request<string>('/api/flexjob/task/saveTaskInfo', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', @@ -43,3 +43,33 @@ ...(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 f99c072..4d2153f 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -192,7 +192,7 @@ /**鐢ㄦ埛瑙掕壊 */ Role = 5, /**鐢ㄦ埛淇℃伅 */ - UserInfo = 6, + User = 6, /**浼佷笟淇℃伅 */ Enterprise = 7, } @@ -237,11 +237,32 @@ AliyunSms = 10, } + 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 { @@ -258,7 +279,7 @@ Female = 20, } - enum EnumUserInfoStatus { + enum EnumUserStatus { /**姝e父 */ Normal = 10, /**绂佺敤 */ @@ -996,7 +1017,7 @@ remark?: string; /** 瑙掕壊 */ roles?: GetOperationUserInfosQueryResultItemRole[]; - status?: EnumUserInfoStatus; + status?: EnumUserStatus; } interface GetOperationUserInfosQueryResultItemRole { @@ -1102,6 +1123,12 @@ interface GetTaskInfoQueryResult { /** Id */ id?: string; + /** 浼佷笟Id */ + enterpriseId?: string; + /** 浼佷笟鍏ㄧО */ + enterpriseName?: string; + /** 鍦ㄦ嫑宀椾綅鏁伴噺 */ + taskCount?: number; /** 浠诲姟鍚嶇О */ name?: string; billingMethod?: EnumBillingMethod; @@ -1125,14 +1152,18 @@ cityCode?: string; /** 浠诲姟鍦扮偣鎵�灞炲煄甯� */ cityName?: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName?: string; /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */ - address?: string; + addressDetail?: string; /** 浠诲姟寮�濮嬫椂闂� */ beginTime?: string; /** 浠诲姟缁撴潫鏃堕棿 */ endTime?: string; /** 鍒涘缓鏃堕棿 */ createdTime?: string; + /** 鏄惁宸叉敹钘� */ + isCollected?: boolean; } interface GetTaskInfosQuery { @@ -1141,11 +1172,20 @@ keywords?: string; /** 鍙戝竷鏃堕棿 */ time?: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ + cityCode?: string; + settlementCycle?: EnumSettlementCycle; + /** 鍛樺伐绂忓埄 */ + benefitCodes?: string[]; + genderLimit?: EnumUserGender; status?: EnumTaskStatus; releaseStatus?: EnumTaskReleaseStatus; + recommendStatus?: EnumTaskRecommendStatus; } interface GetTaskInfosQueryResultItem { + /** Id */ + id?: string; /** 浠诲姟鍚嶇О */ name: string; /** 浠诲姟鍗曞彿 */ @@ -1163,6 +1203,11 @@ /** 浠诲姟缁撴潫鏃堕棿 */ endTime?: string; releaseStatus?: EnumTaskReleaseStatus; + checkReceiveStatus?: EnumTaskCheckReceiveStatus; + settlementStatus?: EnumTaskSettlementStatus; + recommendStatus?: EnumTaskRecommendStatus; + /** 鍒涘缓鏃堕棿 */ + createdTime?: string; } interface GetUserInfoRolesQueryResultItem { @@ -1492,8 +1537,14 @@ provinceCode: string; /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ cityCode: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName: string; /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */ - address: string; + addressDetail: string; + /** 缁忓害 */ + longitude?: number; + /** 绾害 */ + latitude?: number; /** 浠诲姟寮�濮嬫椂闂� */ beginTime: string; /** 浠诲姟缁撴潫鏃堕棿 */ @@ -1567,6 +1618,18 @@ userInfoIds?: string[]; } + interface SetTaskInfoRecommendStatusCommand { + /** Id */ + ids?: string[]; + recommendStatus?: EnumTaskRecommendStatus; + } + + interface SetTaskInfoReleaseStatusCommand { + /** Id */ + ids?: string[]; + releaseStatus?: EnumTaskReleaseStatus; + } + interface SetUserInfoRolesCommand { /** 鐢ㄦ埛Id */ userInfoId?: string; @@ -1577,7 +1640,7 @@ interface SetUserInfoStatusCommand { /** Id */ ids?: string[]; - status?: EnumUserInfoStatus; + status?: EnumUserStatus; } type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>; diff --git a/src/services/api/userInfo.ts b/src/services/api/user.ts similarity index 71% rename from src/services/api/userInfo.ts rename to src/services/api/user.ts index 4367d18..3d4e6e0 100644 --- a/src/services/api/userInfo.ts +++ b/src/services/api/user.ts @@ -2,13 +2,13 @@ // @ts-ignore import { request } from '@/utils/request'; -/** 鏌ヨ杩愯惀绔敤鎴峰垎椤靛垪琛ㄦ暟鎹� POST /api/user/userInfo/getOperationUserInfos */ +/** 鏌ヨ杩愯惀绔敤鎴峰垎椤靛垪琛ㄦ暟鎹� POST /api/user/user/getOperationUserInfos */ export async function getOperationUserInfos( body: API.GetOperationUserInfosQuery, options?: API.RequestConfig ) { return request<API.PagedListQueryResultGetOperationUserInfosQueryResultItem>( - '/api/user/userInfo/getOperationUserInfos', + '/api/user/user/getOperationUserInfos', { method: 'POST', headers: { @@ -20,13 +20,13 @@ ); } -/** 鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃 GET /api/user/userInfo/getUserInfoRoles */ +/** 鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃 GET /api/user/user/getUserInfoRoles */ export async function getUserInfoRoles( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) params: API.APIgetUserInfoRolesParams, options?: API.RequestConfig ) { - return request<API.GetUserInfoRolesQueryResultItem[]>('/api/user/userInfo/getUserInfoRoles', { + return request<API.GetUserInfoRolesQueryResultItem[]>('/api/user/user/getUserInfoRoles', { method: 'GET', params: { ...params, @@ -35,12 +35,12 @@ }); } -/** 璁剧疆鐢ㄦ埛淇℃伅瑙掕壊 PUT /api/user/userInfo/setUserInfoRoles */ +/** 璁剧疆鐢ㄦ埛淇℃伅瑙掕壊 PUT /api/user/user/setUserInfoRoles */ export async function setUserInfoRoles( body: API.SetUserInfoRolesCommand, options?: API.RequestConfig ) { - return request<number>('/api/user/userInfo/setUserInfoRoles', { + return request<number>('/api/user/user/setUserInfoRoles', { method: 'PUT', headers: { 'Content-Type': 'application/json-patch+json', @@ -50,12 +50,12 @@ }); } -/** 璁剧疆鐢ㄦ埛淇℃伅鐘舵�� PUT /api/user/userInfo/setUserInfoStatus */ +/** 璁剧疆鐢ㄦ埛淇℃伅鐘舵�� PUT /api/user/user/setUserInfoStatus */ export async function setUserInfoStatus( body: API.SetUserInfoStatusCommand, options?: API.RequestConfig ) { - return request<number>('/api/user/userInfo/setUserInfoStatus', { + return request<number>('/api/user/user/setUserInfoStatus', { method: 'PUT', headers: { 'Content-Type': 'application/json-patch+json', diff --git a/src/views/Permission/OperationUserManage.vue b/src/views/Permission/OperationUserManage.vue index c33d828..b66c8c3 100644 --- a/src/views/Permission/OperationUserManage.vue +++ b/src/views/Permission/OperationUserManage.vue @@ -24,8 +24,8 @@ v-model="row.status" active-text="鍚敤" inactive-text="绂佺敤" - :active-value="EnumUserInfoStatus.Normal" - :inactive-value="EnumUserInfoStatus.Disabled" + :active-value="EnumUserStatus.Normal" + :inactive-value="EnumUserStatus.Disabled" :before-change="() => setStatus(row)" /> </template> @@ -50,9 +50,9 @@ } from '@bole-core/components'; import { useAccess } from '@/hooks'; import { formatRoleName } from '@/utils'; -import * as userInfoServices from '@/services/api/userInfo'; +import * as userServices from '@/services/api/user'; import { Message } from '@bole-core/core'; -import { EnumUserInfoStatus } from '@/constants'; +import { EnumUserStatus } from '@/constants'; import SetOperationUserRoleDialog from './components/SetOperationUserRoleDialog.vue'; defineOptions({ @@ -95,7 +95,7 @@ }, keywords: extraParamState.keywords, }; - let res = await userInfoServices.getOperationUserInfos(params, { + let res = await userServices.getOperationUserInfos(params, { showLoading: !state.loading, }); return res; @@ -106,7 +106,7 @@ keywords: '', orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, - queryKey: ['userInfoServices/getOperationUserInfos'], + queryKey: ['userServices/getOperationUserInfos'], columnsRenderProps: {}, } ); @@ -114,16 +114,14 @@ async function setStatus(row: API.GetOperationUserInfosQueryResultItem) { try { await Message.tipMessage( - `纭瑕�${row.status === EnumUserInfoStatus.Normal ? '绂佺敤' : '鍚敤'}璇ヨ处鍙峰悧锛焋 + `纭瑕�${row.status === EnumUserStatus.Normal ? '绂佺敤' : '鍚敤'}璇ヨ处鍙峰悧锛焋 ); let params: API.SetUserInfoStatusCommand = { ids: [row.id], status: - row.status === EnumUserInfoStatus.Normal - ? EnumUserInfoStatus.Disabled - : EnumUserInfoStatus.Normal, + row.status === EnumUserStatus.Normal ? EnumUserStatus.Disabled : EnumUserStatus.Normal, }; - let res = await userInfoServices.setUserInfoStatus(params); + let res = await userServices.setUserInfoStatus(params); return !!res; } catch (error) {} } @@ -154,7 +152,7 @@ userInfoId: editForm.userInfoId, roleIds: editForm.roleIds, }; - let res = await userInfoServices.setUserInfoRoles(params); + let res = await userServices.setUserInfoRoles(params); if (res) { Message.successMessage('鎿嶄綔鎴愬姛'); getList(paginationState.pageIndex); @@ -168,7 +166,7 @@ userInfoId: row.id, // clientType: row.clientType, }; - let res = await userInfoServices.getUserInfoRoles(params); + let res = await userServices.getUserInfoRoles(params); return res; } catch (error) {} } diff --git a/src/views/TaskManage/TaskManageDetail.vue b/src/views/TaskManage/TaskManageDetail.vue index f664309..3dd88d4 100644 --- a/src/views/TaskManage/TaskManageDetail.vue +++ b/src/views/TaskManage/TaskManageDetail.vue @@ -8,6 +8,9 @@ <ProTabPane lazy label="鎶ュ悕璇︽儏" name="sign"> <SignDetailView></SignDetailView> </ProTabPane> + <ProTabPane lazy label="缁撶畻璇︽儏" name="settle"> + <SelltementDetailView></SelltementDetailView> + </ProTabPane> </ProTabs> </AppContainer> </LoadingLayout> @@ -17,6 +20,7 @@ import { AppContainer, ProTabs, ProTabPane } from '@bole-core/components'; import TaskDetailView from './components/TaskDetailView.vue'; import SignDetailView from './components/SignDetailView.vue'; +import SelltementDetailView from './components/SelltementDetailView.vue'; defineOptions({ name: 'TaskManageDetail', diff --git a/src/views/TaskManage/TaskManageList.vue b/src/views/TaskManage/TaskManageList.vue index 1409251..b6433ff 100644 --- a/src/views/TaskManage/TaskManageList.vue +++ b/src/views/TaskManage/TaskManageList.vue @@ -5,11 +5,8 @@ <template #query> <QueryFilterItem tip-content="鍙戝竷鐘舵��"> <FieldRadio - v-model="extraParamState.status" - :value-enum="[ - { value: true, label: '鍙戝竷涓�' }, - { value: false, label: '宸插仠姝�' }, - ]" + v-model="extraParamState.releaseStatus" + :value-enum="EnumTaskReleaseStatusText" buttonStyle showAllBtn @change="getList()" @@ -17,11 +14,8 @@ </QueryFilterItem> <QueryFilterItem tip-content="鎺ㄨ崘鐘舵��"> <FieldRadio - v-model="extraParamState.status" - :value-enum="[ - { value: true, label: '宸叉帹鑽�' }, - { value: false, label: '鏈帹鑽�' }, - ]" + v-model="extraParamState.recommendStatus" + :value-enum="EnumTaskRecommendStatusText" buttonStyle showAllBtn @change="getList()" @@ -29,7 +23,7 @@ </QueryFilterItem> <QueryFilterItem tip-content="鍙戝竷鏃堕棿"> <FieldDatePicker - v-model="extraParamState.beginDate" + v-model="extraParamState.time" type="daterange" range-separator="~" start-placeholder="寮�濮嬫棩鏈�" @@ -40,7 +34,7 @@ </QueryFilterItem> <QueryFilterItem> <SearchInput - v-model="extraParamState.keyword" + v-model="extraParamState.keywords" style="width: 260px" placeholder="浠诲姟鍚嶇О" @on-click-search="getList" @@ -70,7 +64,8 @@ } from '@bole-core/components'; import { useAccess } from '@/hooks'; import { ModelValueType } from 'element-plus'; -import * as enterpriseServices from '@/services/api/enterprise'; +import * as taskServices from '@/services/api/task'; +import { EnumTaskReleaseStatusText, EnumTaskRecommendStatusText } from '@/constants'; defineOptions({ name: 'OperationManageList', @@ -118,15 +113,18 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetEnterprisesQuery = { + let params: API.GetTaskInfosQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, - // searchKeys: extraParamState.keyword, + keywords: extraParamState.keywords, + releaseStatus: extraParamState.releaseStatus, + recommendStatus: extraParamState.recommendStatus, + // time: extraParamState.time, }; - let res = await enterpriseServices.getEnterprises(params, { + let res = await taskServices.getTaskInfos(params, { showLoading: !state.loading, }); return res; @@ -134,11 +132,10 @@ }, { defaultExtraParams: { - keyword: '', - pageType: '' as any as number, - status: '' as any as boolean, - beginDate: [] as unknown as ModelValueType, - endDate: [] as unknown as ModelValueType, + keywords: '', + releaseStatus: '' as any as EnumTaskReleaseStatus, + recommendStatus: '' as any as EnumTaskRecommendStatus, + time: [] as unknown as ModelValueType, orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }], }, columnsRenderProps: {}, diff --git a/src/views/TaskManage/components/SelltementDetailView.vue b/src/views/TaskManage/components/SelltementDetailView.vue new file mode 100644 index 0000000..58e1843 --- /dev/null +++ b/src/views/TaskManage/components/SelltementDetailView.vue @@ -0,0 +1,83 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <ProTableV2 + v-bind="proTableProps" + :columns="settleColumns" + :operationBtns="settleOperationBtns" + > + </ProTableV2> + </AppContainer> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components'; +import { ModelValueType } from 'element-plus'; +import * as enterpriseServices from '@/services/api/enterprise'; + +defineOptions({ + name: 'SelltementDetailView', +}); + +const operationBtnMap: Record<string, OperationBtnType> = { + 'settle-downloadBtn': { emits: { onClick: (role) => handleDownload(role) } }, +}; + +const { checkSubModuleItemShow, column, operationBtns } = useAccess({ + operationBtnMap, +}); + +const [settleColumns] = useGroupColumns(column, ['settle-']); +const [settleOperationBtns] = useGroupOperationBtns(operationBtns, ['settle-']); + +const router = useRouter(); +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +onMounted(async () => { + await getList(); + state.loading = false; +}); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetEnterprisesQuery = { + pageModel: { + rows: pageSize, + page: pageIndex, + orderInput: extraParamState.orderInput, + }, + // searchKeys: extraParamState.keyword, + }; + let res = await enterpriseServices.getEnterprises(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + keyword: '', + pageType: '' as any as number, + status: '' as any as boolean, + beginDate: [] as unknown as ModelValueType, + endDate: [] as unknown as ModelValueType, + orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }], + }, + columnsRenderProps: {}, + } +); + +function handleDownload(row) {} +</script> diff --git a/src/views/TaskManage/components/SignDetailView.vue b/src/views/TaskManage/components/SignDetailView.vue index 8a59d91..7ef9a0f 100644 --- a/src/views/TaskManage/components/SignDetailView.vue +++ b/src/views/TaskManage/components/SignDetailView.vue @@ -1,21 +1,14 @@ <template> <LoadingLayout :loading="state.loading"> <AppContainer> - <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> + <ProTableV2 v-bind="proTableProps" :columns="signColumns" :operationBtns="signOperationBtns"> </ProTableV2> </AppContainer> </LoadingLayout> </template> <script setup lang="ts"> -import { - OperationBtnType, - ProTableV2, - LoadingLayout, - AppContainer, - useTable, -} from '@bole-core/components'; -import { useAccess } from '@/hooks'; +import { ProTableV2, LoadingLayout, AppContainer, useTable } from '@bole-core/components'; import { ModelValueType } from 'element-plus'; import * as enterpriseServices from '@/services/api/enterprise'; @@ -24,25 +17,15 @@ }); const operationBtnMap: Record<string, OperationBtnType> = { - detailBtn: { emits: { onClick: (role) => goDetail(role) } }, - recommendBtn: { - emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, - extraProps: { - hide: (row) => row.status, - }, - }, - cancelRecommendBtn: { - emits: { onClick: (role) => setAdvertiseOnShowStatus(role) }, - props: { type: 'danger' }, - extraProps: { - hide: (row) => !row.status, - }, - }, + 'sign-detailBtn': { emits: { onClick: (role) => goDetail(role) } }, }; const { checkSubModuleItemShow, column, operationBtns } = useAccess({ operationBtnMap, }); + +const [signColumns] = useGroupColumns(column, ['sign-']); +const [signOperationBtns] = useGroupOperationBtns(operationBtns, ['sign-']); const router = useRouter(); const BaseState = { @@ -92,7 +75,7 @@ } ); -async function setAdvertiseOnShowStatus(row) { +async function handleRecommend(row) { try { } catch (error) {} } diff --git a/types/global.d.ts b/types/global.d.ts index 33ce661..b091bab 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -137,9 +137,9 @@ provinceName?: string; cityName?: string; countyName?: string; - provinceCode?: number; - cityCode?: number; - countyCode?: number; + provinceCode?: string; + cityCode?: string; + countyCode?: string; address?: string; } -- Gitblit v1.9.1