From baa76cb2bf0496ea34b4eee1a04a13cc1ca680cb Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期三, 13 八月 2025 17:42:03 +0800 Subject: [PATCH] fix: 验收管理 --- src/views/EmploymentManage/constants/columns.ts | 78 ++++ src/hooks/useEvent.ts | 1 src/constants/task.ts | 15 .eslintrc-auto-import.json | 3 src/services/api/typings.d.ts | 322 +++++++++++++++--- src/services/api/task.ts | 15 src/services/api/index.ts | 4 src/services/api/taskCheckReceive.ts | 60 +++ src/views/EmploymentManage/components/CheckManageDialog.vue | 124 +++++- src/services/api/userResume.ts | 30 + auto-imports.d.ts | 8 src/views/EmploymentManage/CheckReceiveTaskDetail.vue | 186 ++++++++++ src/router/index.ts | 13 src/views/EmploymentManage/CheckManage.vue | 105 +++-- src/constants/apiEnum.ts | 14 src/services/api/auth.ts | 17 + 16 files changed, 861 insertions(+), 134 deletions(-) diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index 33f2fb8..1005d17 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -34,6 +34,7 @@ "EnumSettlementCycleText": true, "EnumSmsAccess": true, "EnumTaskCheckReceiveStatus": true, + "EnumTaskCheckReceiveStatusText": true, "EnumTaskRecommendStatus": true, "EnumTaskRecommendStatusText": true, "EnumTaskReleaseStatus": true, @@ -48,6 +49,8 @@ "EnumTaskUserHireStatusText": true, "EnumTaskUserSignContractStatus": true, "EnumTaskUserSignContractStatusText": true, + "EnumTaskUserSubmitCheckReceiveStatus": true, + "EnumTaskUserSubmitCheckReceiveStatusText": true, "EnumUserGender": true, "EnumUserGenderText": true, "EnumUserGenderTextForEdit": true, diff --git a/auto-imports.d.ts b/auto-imports.d.ts index 22edb57..3da2f7f 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -39,6 +39,7 @@ 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 EnumTaskCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText'] const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus'] const EnumTaskRecommendStatusText: typeof import('./src/constants/task')['EnumTaskRecommendStatusText'] const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus'] @@ -53,6 +54,8 @@ const EnumTaskUserHireStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText'] const EnumTaskUserSignContractStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus'] const EnumTaskUserSignContractStatusText: typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText'] + const EnumTaskUserSubmitCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus'] + const EnumTaskUserSubmitCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText'] const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender'] const EnumUserGenderText: typeof import('./src/constants/task')['EnumUserGenderText'] const EnumUserGenderTextForEdit: typeof import('./src/constants/task')['EnumUserGenderTextForEdit'] @@ -205,7 +208,7 @@ export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' import('vue') // @ts-ignore - export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum' + export type { EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, EnumBillingMethod, EnumClientType, EnumMenuType, EnumMenuVisitLevel, EnumPagedListOrder, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton } from './src/constants/apiEnum' import('./src/constants/apiEnum') // @ts-ignore export type { CategoryCode, IdentityCodeEnum, EducationCodeEnum, CertificateTypeCodeEnum, WelfareCodeEnum } from './src/constants/dic' @@ -265,6 +268,7 @@ readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']> readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']> readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']> + readonly EnumTaskCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']> 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']> @@ -279,6 +283,8 @@ readonly EnumTaskUserHireStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserHireStatusText']> readonly EnumTaskUserSignContractStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSignContractStatus']> readonly EnumTaskUserSignContractStatusText: UnwrapRef<typeof import('./src/constants/enterpriseEmployee')['EnumTaskUserSignContractStatusText']> + readonly EnumTaskUserSubmitCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskUserSubmitCheckReceiveStatus']> + readonly EnumTaskUserSubmitCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskUserSubmitCheckReceiveStatusText']> 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']> diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts index 8d03ef1..01db867 100644 --- a/src/constants/apiEnum.ts +++ b/src/constants/apiEnum.ts @@ -161,6 +161,8 @@ export enum EnumTaskCheckReceiveStatus { /**寰呮彁浜� */ WaitSubmit = 10, + /**寰呴獙鏀� */ + WaitCheckReceive = 20, /**宸查獙鏀� */ Completed = 30, } @@ -225,6 +227,18 @@ Refuse = 30, } +/** 浠诲姟楠屾敹鐘舵�� */ +export enum EnumTaskUserSubmitCheckReceiveStatus { + /**寰呮彁浜� */ + WaitSubmit = 10, + /**寰呴獙鏀� */ + WaitCheckReceive = 20, + /**楠屾敹閫氳繃 */ + Success = 30, + /**楠屾敹鏈�氳繃 */ + Fail = 40, +} + /** 鐢ㄦ埛鎬у埆 */ export enum EnumUserGender { /**鐢� */ diff --git a/src/constants/task.ts b/src/constants/task.ts index c67124b..79bf326 100644 --- a/src/constants/task.ts +++ b/src/constants/task.ts @@ -1,3 +1,5 @@ +import { EnumTaskCheckReceiveStatus } from './apiEnum'; + export const EnumTaskStatusText = { [EnumTaskStatus.Wait]: '寰呭畨鎺�', [EnumTaskStatus.Complete]: '宸插畨鎺�', @@ -58,3 +60,16 @@ [EnumTaskUserArrangeStatus.Wait]: '鏈畨鎺�', [EnumTaskUserArrangeStatus.Complete]: '宸插畨鎺�', }; + +export const EnumTaskCheckReceiveStatusText = { + [EnumTaskCheckReceiveStatus.WaitSubmit]: '寰呮彁浜�', + [EnumTaskCheckReceiveStatus.WaitCheckReceive]: '寰呴獙鏀�', + [EnumTaskCheckReceiveStatus.Completed]: '宸查獙鏀�', +}; + +export const EnumTaskUserSubmitCheckReceiveStatusText = { + [EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit]: '寰呮彁浜�', + [EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive]: '寰呴獙鏀�', + [EnumTaskUserSubmitCheckReceiveStatus.Success]: '楠屾敹閫氳繃', + [EnumTaskUserSubmitCheckReceiveStatus.Fail]: '楠屾敹鏈�氳繃', +}; diff --git a/src/hooks/useEvent.ts b/src/hooks/useEvent.ts index c8f5a0f..f897656 100644 --- a/src/hooks/useEvent.ts +++ b/src/hooks/useEvent.ts @@ -5,6 +5,7 @@ 'home:add': any; 'taskManage:add': any; 'taskManage:edit': any; + checkReceiveTask: any; }; export type GlobalEventListener<T extends keyof GlobalEvent> = (payload: GlobalEvent[T]) => any; diff --git a/src/router/index.ts b/src/router/index.ts index 1d4bf44..e0fdbc8 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -215,6 +215,19 @@ icon: 'home', }, }, + { + path: '/CheckReceiveTaskDetail/:id', + name: 'CheckReceiveTaskDetail', + hidden: true, + alwaysShow: false, + component: () => import('@/views/EmploymentManage/CheckReceiveTaskDetail.vue'), + meta: { + rank: 10031, + title: '楠屾敹璇︽儏', + // rootMenu: true, + icon: 'home', + }, + }, ], }, { diff --git a/src/services/api/auth.ts b/src/services/api/auth.ts index 331a423..1a95129 100644 --- a/src/services/api/auth.ts +++ b/src/services/api/auth.ts @@ -81,6 +81,23 @@ }); } +/** 鏌ヨ浼佷笟鐢ㄦ埛鐧诲綍淇℃伅 GET /api/user/auth/getEnterpriseLoginInfo */ +export async function getEnterpriseLoginInfo( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetEnterpriseLoginInfoParams, + options?: API.RequestConfig +) { + return request<API.GetEnterpriseLoginInfoQueryResult>('/api/user/auth/getEnterpriseLoginInfo', { + method: 'GET', + params: { + ...params, + request: undefined, + ...params['request'], + }, + ...(options || {}), + }); +} + /** 鏌ヨ涓汉鐢ㄦ埛鐧诲綍淇℃伅 GET /api/user/auth/getPersonalLoginInfo */ export async function getPersonalLoginInfo( // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) diff --git a/src/services/api/index.ts b/src/services/api/index.ts index e5221f9..ca93bf7 100644 --- a/src/services/api/index.ts +++ b/src/services/api/index.ts @@ -4,26 +4,26 @@ // API 鍞竴鏍囪瘑锛� import * as enterpriseEmployee from './enterpriseEmployee'; import * as role from './role'; -import * as taskCheckReceive from './taskCheckReceive'; import * as enterprise from './enterprise'; import * as task from './task'; import * as dictionary from './dictionary'; import * as user from './user'; import * as userResume from './userResume'; import * as auth from './auth'; +import * as taskCheckReceive from './taskCheckReceive'; import * as resource from './resource'; import * as taskUser from './taskUser'; import * as menu from './menu'; export default { enterpriseEmployee, role, - taskCheckReceive, enterprise, task, dictionary, user, userResume, auth, + taskCheckReceive, resource, taskUser, menu, diff --git a/src/services/api/task.ts b/src/services/api/task.ts index b6c19fa..9488ff3 100644 --- a/src/services/api/task.ts +++ b/src/services/api/task.ts @@ -14,6 +14,21 @@ }); } +/** 鏌ヨ寮�鏀句换鍔″垎椤靛垪琛� POST /api/flexjob/task/getOpenTaskInfos */ +export async function getOpenTaskInfos( + body: API.GetOpenTaskInfosQuery, + options?: API.RequestConfig +) { + return request<API.GetTaskInfosQueryResult>('/api/flexjob/task/getOpenTaskInfos', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + /** 鎴戠殑鎶ュ悕鍒嗛〉鍒楄〃 POST /api/flexjob/task/getPersonalApplyTaskInfos */ export async function getPersonalApplyTaskInfos( body: API.GetPersonalApplyTaskInfosQuery, diff --git a/src/services/api/taskCheckReceive.ts b/src/services/api/taskCheckReceive.ts index f290dbd..cd10e99 100644 --- a/src/services/api/taskCheckReceive.ts +++ b/src/services/api/taskCheckReceive.ts @@ -2,7 +2,22 @@ // @ts-ignore import { request } from '@/utils/request'; -/** 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/taskCheckReceive/getCheckReceiveTask */ +/** 浠诲姟楠屾敹 POST /api/flexjob/taskCheckReceive/checkReceiveTask */ +export async function checkReceiveTask( + body: API.CheckReceiveTaskCommand, + options?: API.RequestConfig +) { + return request<string>('/api/flexjob/taskCheckReceive/checkReceiveTask', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鏌ヨ楠屾敹浠诲姟璇︽儏 POST /api/flexjob/taskCheckReceive/getCheckReceiveTask */ export async function getCheckReceiveTask( body: API.GetCheckReceiveTaskQuery, options?: API.RequestConfig @@ -20,19 +35,37 @@ ); } -/** 鏌ヨ楠屾敹鍒嗛〉鍒楄〃 POST /api/flexjob/taskCheckReceive/getCheckReceiveTaskUser */ -export async function getCheckReceiveTaskUser( - body: API.GetCheckReceiveTaskUserQuery, +/** 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/taskCheckReceive/getCheckReceiveTasks */ +export async function getCheckReceiveTasks( + body: API.GetCheckReceiveTasksQuery, options?: API.RequestConfig ) { - return request<API.GetCheckReceiveTaskUserQueryResult>( - '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUser', + return request<API.GetCheckReceiveTasksQueryResult>( + '/api/flexjob/taskCheckReceive/getCheckReceiveTasks', { method: 'POST', headers: { 'Content-Type': 'application/json-patch+json', }, data: body, + ...(options || {}), + } + ); +} + +/** 鏌ヨ楠屾敹鎻愪氦璇︽儏 GET /api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmit */ +export async function getCheckReceiveTaskUserSubmit( + // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄) + params: API.APIgetCheckReceiveTaskUserSubmitParams, + options?: API.RequestConfig +) { + return request<API.GetCheckReceiveTaskUserSubmitQueryResult>( + '/api/flexjob/taskCheckReceive/getCheckReceiveTaskUserSubmit', + { + method: 'GET', + params: { + ...params, + }, ...(options || {}), } ); @@ -55,3 +88,18 @@ } ); } + +/** 浠诲姟鎻愪氦楠屾敹 POST /api/flexjob/taskCheckReceive/submitCheckReceiveTask */ +export async function submitCheckReceiveTask( + body: API.SubmitCheckReceiveTaskCommand, + options?: API.RequestConfig +) { + return request<string>('/api/flexjob/taskCheckReceive/submitCheckReceiveTask', { + 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 5eb070c..dfb52b9 100644 --- a/src/services/api/typings.d.ts +++ b/src/services/api/typings.d.ts @@ -13,6 +13,17 @@ maxDeep?: number; } + interface APIgetCheckReceiveTaskUserSubmitParams { + /** 鎻愪氦Id锛堢敤浜嶣绔鎴风锛� */ + submitId?: string; + /** 浠诲姟Id锛堢敤浜嶤绔皬绋嬪簭缂栬緫鎻愪氦 鍜屾棩鏈熶竴璧蜂紶锛� */ + taskInfoId?: string; + /** 浠诲姟浜哄憳Id锛堢敤浜嶣绔皬绋嬪簭楠屾敹 鍜屾棩鏈熶竴璧蜂紶锛� */ + taskInfoUserId?: string; + /** 鏃ユ湡锛堢敤浜庝袱涓皬绋嬪簭 璺熸煇涓�涓狪d涓�璧蜂紶锛� */ + date?: string; + } + interface APIgetCurrentLogierMenuParams { /** Id */ id?: string; @@ -55,6 +66,11 @@ id?: string; /** 浠诲姟Id */ taskInfoId?: string; + } + + interface APIgetEnterpriseLoginInfoParams { + /** 鏌ヨ浼佷笟鐢ㄦ埛鐧诲綍淇℃伅 */ + request?: GetEnterpriseLoginInfoQuery; } interface APIgetEnterpriseParams { @@ -182,11 +198,29 @@ verifyCode: string; } + interface CheckReceiveTaskCommand { + /** 鎻愪氦Id */ + id?: string; + checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus; + } + interface CollectTaskCommand { /** 浠诲姟Id */ ids?: string[]; /** 鏄惁鏀惰棌 */ isCollect?: boolean; + } + + interface CollectUserResumeCommand { + /** 鐢ㄦ埛Id */ + id?: string; + /** 鏄惁宸叉敹钘� */ + isCollected?: boolean; + } + + interface ContactUserResumeCommand { + /** 鐢ㄦ埛Id */ + id?: string; } interface DeleteDictionaryCategoryCommand { @@ -355,6 +389,8 @@ enum EnumTaskCheckReceiveStatus { /**寰呮彁浜� */ WaitSubmit = 10, + /**寰呴獙鏀� */ + WaitCheckReceive = 20, /**宸查獙鏀� */ Completed = 30, } @@ -410,6 +446,17 @@ Pass = 20, /**宸叉嫆绛� */ Refuse = 30, + } + + enum EnumTaskUserSubmitCheckReceiveStatus { + /**寰呮彁浜� */ + WaitSubmit = 10, + /**寰呴獙鏀� */ + WaitCheckReceive = 20, + /**楠屾敹閫氳繃 */ + Success = 30, + /**楠屾敹鏈�氳繃 */ + Fail = 40, } enum EnumUserGender { @@ -517,14 +564,32 @@ timestamp?: number; } - interface FriendlyResultGetCheckReceiveTaskUserQueryResult { + interface FriendlyResultGetCheckReceiveTasksQueryResult { /** 璺熻釜Id */ traceId?: string; /** 鐘舵�佺爜 */ code?: number; /** 閿欒鐮� */ errorCode?: string; - data?: GetCheckReceiveTaskUserQueryResult; + data?: GetCheckReceiveTasksQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetCheckReceiveTaskUserSubmitQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetCheckReceiveTaskUserSubmitQueryResult; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -597,6 +662,24 @@ /** 閿欒鐮� */ errorCode?: string; data?: GetEnterpriseEmployeesQueryResult; + /** 鎵ц鎴愬姛 */ + success?: boolean; + /** 閿欒淇℃伅 */ + msg?: any; + /** 闄勫姞鏁版嵁 */ + extras?: any; + /** 鏃堕棿鎴� */ + timestamp?: number; + } + + interface FriendlyResultGetEnterpriseLoginInfoQueryResult { + /** 璺熻釜Id */ + traceId?: string; + /** 鐘舵�佺爜 */ + code?: number; + /** 閿欒鐮� */ + errorCode?: string; + data?: GetEnterpriseLoginInfoQueryResult; /** 鎵ц鎴愬姛 */ success?: boolean; /** 閿欒淇℃伅 */ @@ -1327,63 +1410,27 @@ } interface GetCheckReceiveTaskQuery { - /** 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� */ - dateBegin?: string; - /** 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� */ - dateEnd?: string; - checkReceiveStatus?: EnumTaskCheckReceiveStatus; + /** 浠诲姟Id */ + taskInfoId?: string; pageModel?: PagedListQueryPageModel; } interface GetCheckReceiveTaskQueryResult { + objectData?: GetCheckReceiveTaskQueryResultObjectData; pageModel?: PagedListQueryResultPageModel; /** 鏁版嵁 */ data?: GetCheckReceiveTaskQueryResultItem[]; } interface GetCheckReceiveTaskQueryResultItem { - /** 浠诲姟Id */ + /** 浠诲姟浜哄憳Id */ id?: string; /** 浠诲姟鍚嶇О */ - name?: string; - /** 浠诲姟寮�濮嬫椂闂� */ - beginTime?: string; - /** 浠诲姟缁撴潫鏃堕棿 */ - endTime?: string; - /** 浠诲姟鍦扮偣鍚嶇О */ - addressName?: string; - } - - interface GetCheckReceiveTaskUserQuery { - /** 浠诲姟Id */ - taskInfoId?: string; - /** 鍏抽敭瀛� */ - keywords?: string; - /** 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� */ - dateBegin?: string; - /** 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� */ - dateEnd?: string; - checkReceiveStatus?: EnumTaskCheckReceiveStatus; - pageModel?: PagedListQueryPageModel; - } - - interface GetCheckReceiveTaskUserQueryResult { - pageModel?: PagedListQueryResultPageModel; - /** 鏁版嵁 */ - data?: GetCheckReceiveTaskUserQueryResultItem[]; - } - - interface GetCheckReceiveTaskUserQueryResultItem { - /** 浠诲姟Id */ - id?: string; - /** 浠诲姟鍚嶇О */ - taskName?: string; - /** 浠诲姟寮�濮嬫椂闂� */ - beginTime?: string; - /** 浠诲姟缁撴潫鏃堕棿 */ - endTime?: string; - /** 浠诲姟鍦扮偣鍚嶇О */ - addressName?: string; + taskInfoName?: string; + /** 浠诲姟鍗曞彿 */ + taskInfoCode?: string; + /** 澶村儚 */ + avatar?: string; /** 濮撳悕 */ name?: string; /** 韬唤璇佸彿 */ @@ -1393,24 +1440,145 @@ age?: number; /** 鎵嬫満鍙� */ contactPhoneNumber?: string; - /** 鎻愪氦鏃堕棿 */ + /** 鏄惁瀹炲悕 */ + isReal?: boolean; + realMethod?: EnumUserRealMethod; + /** 鏈�杩戞彁浜ゆ椂闂� */ lastSubmitTime?: string; checkReceiveStatus?: EnumTaskCheckReceiveStatus; } - interface GetCheckReceiveTaskUserSubmitsQuery { + interface GetCheckReceiveTaskQueryResultObjectData { + /** 浠诲姟鍚嶇О */ + name?: string; + /** 浠诲姟鍗曞彿 */ + code?: string; + billingMethod?: EnumBillingMethod; + /** 鏈嶅姟璐� */ + serviceFee?: number; + settlementCycle?: EnumSettlementCycle; + /** 浠诲姟寮�濮嬫椂闂� */ + beginTime?: string; + /** 浠诲姟缁撴潫鏃堕棿 */ + endTime?: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName?: string; + } + + interface GetCheckReceiveTasksQuery { + /** 鏃ユ湡锛堝皬绋嬪簭-楠屾敹绠$悊涓撶敤锛� */ + date?: string; + /** 鍏抽敭瀛楋紙濮撳悕/鎵嬫満/韬唤璇佸彿锛� */ + keywords?: string; + /** 楠屾敹鏃ユ湡-鏈�鏃╂椂闂达紙B绔鎴风-楠屾敹绠$悊涓撶敤锛� */ + checkReceiveTimeBegin?: string; + /** 楠屾敹鏃ユ湡-鏈�鏅氭椂闂达紙B绔鎴风-楠屾敹绠$悊涓撶敤锛� */ + checkReceiveTimeEnd?: string; + checkReceiveStatus?: EnumTaskCheckReceiveStatus; + pageModel?: PagedListQueryPageModel; + } + + interface GetCheckReceiveTasksQueryResult { + pageModel?: PagedListQueryResultPageModel; + /** 鏁版嵁 */ + data?: GetCheckReceiveTasksQueryResultItem[]; + } + + interface GetCheckReceiveTasksQueryResultItem { /** 浠诲姟Id */ + id?: string; + /** 浠诲姟鍚嶇О */ + name?: string; + /** 浠诲姟鍗曞彿 */ + code?: string; + billingMethod?: EnumBillingMethod; + /** 鏈嶅姟璐� */ + serviceFee?: number; + settlementCycle?: EnumSettlementCycle; + /** 鍙戝竷鏃堕棿 */ + createdTime?: string; + /** 浠诲姟寮�濮嬫椂闂� */ + beginTime?: string; + /** 浠诲姟缁撴潫鏃堕棿 */ + endTime?: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName?: string; + checkReceiveStatus?: EnumTaskCheckReceiveStatus; + /** 鏈�杩戦獙鏀舵椂闂� */ + lastCheckReceiveTime?: string; + } + + interface GetCheckReceiveTaskUserSubmitQueryResult { + /** 鎻愪氦Id */ + id?: string; + enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser; + /** 鎻愪氦鏃堕棿 */ + createdTime?: string; + /** 楠屾敹鐓х墖 */ + files?: string[]; + } + + interface GetCheckReceiveTaskUserSubmitsQuery { + /** 浠诲姟浜哄憳Id */ id?: string; pageModel?: PagedListQueryPageModel; } interface GetCheckReceiveTaskUserSubmitsQueryResult { + objectData?: GetCheckReceiveTaskUserSubmitsQueryResultObjectData; pageModel?: PagedListQueryResultPageModel; /** 鏁版嵁 */ data?: GetCheckReceiveTaskUserSubmitsQueryResultItem[]; } - type GetCheckReceiveTaskUserSubmitsQueryResultItem = Record<string, any>; + interface GetCheckReceiveTaskUserSubmitsQueryResultItem { + /** 鎻愪氦Id */ + id?: string; + /** 鎻愪氦鏃堕棿 */ + createdTime?: string; + /** 楠屾敹鐓х墖 */ + files?: string[]; + checkReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus; + /** 楠屾敹鏃堕棿 */ + checkReceiveTime?: string; + } + + interface GetCheckReceiveTaskUserSubmitsQueryResultObjectData { + taskInfo?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataTaskInfo; + enterpriseEmployeeUser?: GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser; + } + + interface GetCheckReceiveTaskUserSubmitsQueryResultObjectDataEnterpriseEmployeeUser { + /** 鐢ㄦ埛Id */ + id?: string; + /** 澶村儚 */ + avatar?: string; + /** 濮撳悕 */ + name?: string; + /** 韬唤璇佸彿 */ + identity?: string; + gender?: EnumUserGender; + /** 骞撮緞 */ + age?: number; + /** 鎵嬫満鍙� */ + contactPhoneNumber?: string; + /** 鏄惁瀹炲悕 */ + isReal?: boolean; + realMethod?: EnumUserRealMethod; + /** 鏄惁缁戝畾閾惰鍗� */ + isBindBankCard?: boolean; + } + + interface GetCheckReceiveTaskUserSubmitsQueryResultObjectDataTaskInfo { + /** 浠诲姟鍚嶇О */ + name?: string; + /** 浠诲姟寮�濮嬫椂闂� */ + beginTime?: string; + /** 浠诲姟缁撴潫鏃堕棿 */ + endTime?: string; + /** 浠诲姟鍦扮偣鍚嶇О */ + addressName?: string; + } type GetCurrentLogierMenusQuery = Record<string, any>; @@ -1631,6 +1799,27 @@ enterpriseSignContractTime?: string; } + type GetEnterpriseLoginInfoQuery = Record<string, any>; + + interface GetEnterpriseLoginInfoQueryResult { + /** Id */ + id?: string; + /** 澶村儚 */ + avatar?: string; + /** 濮撳悕 */ + name?: string; + /** 浼佷笟鍏ㄧО */ + enterpriseName?: string; + /** 瑙掕壊 */ + roles?: string[]; + /** 鏄惁瀹炲悕 */ + isReal?: boolean; + /** 鎴戠殑鏀惰棌 */ + collectUsers?: number; + /** 鑱旂郴璁板綍 */ + contactRecords?: number; + } + interface GetEnterpriseQueryResult { /** Id */ id?: string; @@ -1823,6 +2012,28 @@ sort?: number; /** 澶囨敞 */ remark?: string; + } + + interface GetOpenTaskInfosQuery { + /** 鍏抽敭瀛楋紙浠诲姟鍚嶇О锛� */ + keywords?: string; + /** 浼佷笟Id */ + enterpriseId?: string; + /** 鍙戝竷鏃堕棿-寮�濮� */ + beginTime?: string; + /** 鍙戝竷鏃堕棿-缁撴潫 */ + endTime?: string; + /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */ + cityCode?: string; + settlementCycle?: EnumSettlementCycle; + /** 鍛樺伐绂忓埄 */ + benefitCodes?: string[]; + genderLimit?: EnumUserGender; + status?: EnumTaskStatus; + releaseStatus?: EnumTaskReleaseStatus; + recommendStatus?: EnumTaskRecommendStatus; + checkReceiveStatus?: EnumTaskCheckReceiveStatus; + pageModel?: PagedListQueryPageModel; } interface GetOperationUserInfosQuery { @@ -2085,6 +2296,8 @@ applyCount?: number; /** 浠诲姟鍚嶇О */ name?: string; + /** 浠诲姟鍗曞彿 */ + code?: string; billingMethod?: EnumBillingMethod; /** 鏈嶅姟璐� */ serviceFee?: number; @@ -2233,7 +2446,7 @@ checkReceiveStatus?: EnumTaskCheckReceiveStatus; settlementStatus?: EnumTaskSettlementStatus; recommendStatus?: EnumTaskRecommendStatus; - /** 鍒涘缓鏃堕棿 */ + /** 鍙戝竷鏃堕棿 */ createdTime?: string; } @@ -3084,6 +3297,13 @@ clientType?: EnumClientType; } + interface SubmitCheckReceiveTaskCommand { + /** 浠诲姟Id */ + taskInfoId?: string; + /** 闄勪欢 */ + files?: string[]; + } + type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>; interface UpdatePhoneNumberVerifyCodeCommand { diff --git a/src/services/api/userResume.ts b/src/services/api/userResume.ts index 7b9b8d6..8edd703 100644 --- a/src/services/api/userResume.ts +++ b/src/services/api/userResume.ts @@ -2,6 +2,36 @@ // @ts-ignore import { request } from '@/utils/request'; +/** 鏀惰棌鐏靛伐 POST /api/user/userResume/collectUserResume */ +export async function collectUserResume( + body: API.CollectUserResumeCommand, + options?: API.RequestConfig +) { + return request<string>('/api/user/userResume/collectUserResume', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + +/** 鑱旂郴鐏靛伐 POST /api/user/userResume/contactUserResume */ +export async function contactUserResume( + body: API.ContactUserResumeCommand, + options?: API.RequestConfig +) { + return request<string>('/api/user/userResume/contactUserResume', { + method: 'POST', + headers: { + 'Content-Type': 'application/json-patch+json', + }, + data: body, + ...(options || {}), + }); +} + /** 鍒犻櫎鐢ㄦ埛绠�鍘�-璧勬牸璇佷功 DELETE /api/user/userResume/deleteUserResumeCredential */ export async function deleteUserResumeCredential( body: API.DeleteUserResumeCredentialCommand, diff --git a/src/views/EmploymentManage/CheckManage.vue b/src/views/EmploymentManage/CheckManage.vue index 71f634c..a6c7c31 100644 --- a/src/views/EmploymentManage/CheckManage.vue +++ b/src/views/EmploymentManage/CheckManage.vue @@ -5,11 +5,8 @@ <template #query> <QueryFilterItem tip-content="楠屾敹鐘舵��"> <FieldRadio - v-model="extraParamState.flexEnterpriseSettingStatus" - :value-enum="[ - { label: '宸插畨鎺�', value: 1 }, - { label: '寰呭畨鎺�', value: 0 }, - ]" + v-model="extraParamState.checkReceiveStatus" + :value-enum="EnumTaskCheckReceiveStatusText" buttonStyle showAllBtn @change="getList()" @@ -17,7 +14,7 @@ </QueryFilterItem> <QueryFilterItem> <FieldDatePicker - v-model="extraParamState.flexEnterpriseSettingStatus" + v-model="extraParamState.checkReceiveTime" type="daterange" range-separator="~" start-placeholder="璧峰鏃ユ湡" @@ -46,7 +43,6 @@ > </ProTableV2> </AppContainer> - <CheckManageDialog v-bind="dialogProps" @check="handleCheck" /> </LoadingLayout> </template> @@ -65,8 +61,10 @@ useFormDialog, } from '@bole-core/components'; import { CheckManageColumns } from './constants'; -import { EnumUserGender } from '@/constants'; -import CheckManageDialog from './components/CheckManageDialog.vue'; +import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive'; +import { ModelValueType } from 'element-plus'; +import { format } from '@/utils'; +import { EnumTaskCheckReceiveStatusText } from '@/constants'; defineOptions({ name: 'CheckManage', @@ -75,20 +73,24 @@ const operationBtns = defineOperationBtns([ { data: { - enCode: 'checkBtn', - name: '楠屾敹', - }, - emits: { - onClick: (role) => openDialog(role, 'check'), - }, - }, - { - data: { enCode: 'detailBtn', name: '璇︽儏', }, emits: { - onClick: (role) => openDialog(role, 'detail'), + onClick: (role) => goCheckReceiveTaskDetail(role), + }, + }, + { + data: { + enCode: 'exportBtn', + name: '瀵煎嚭', + }, + emits: { + onClick: (role) => handleExport(role), + }, + extraProps: { + hide: (row: API.GetCheckReceiveTasksQueryResultItem) => + row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.Completed, }, }, ]); @@ -100,6 +102,12 @@ }; const state = reactive({ ...BaseState }); + +const eventContext = useGlobalEventContext(); + +eventContext.addEvent('checkReceiveTask', () => { + getList(paginationState.pageIndex); +}); onMounted(async () => { await getList(); @@ -115,17 +123,25 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetFlexEnterpriseInput = { + let params: API.GetCheckReceiveTasksQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, - flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus, - searchWord: extraParamState.searchWord, + checkReceiveStatus: extraParamState.checkReceiveStatus, + checkReceiveTimeBegin: format( + extraParamState.checkReceiveTime?.[0] ?? '', + 'YYYY-MM-DD 00:00:00' + ), + checkReceiveTimeEnd: format( + extraParamState.checkReceiveTime?.[1] ?? '', + 'YYYY-MM-DD 23:59:59' + ), + keywords: extraParamState.searchWord, }; - let res = await flexEnterpriseServices.getFlexEnterpriseList(params, { + let res = await taskCheckReceiveServices.getCheckReceiveTasks(params, { showLoading: !state.loading, }); return res; @@ -137,29 +153,36 @@ defaultExtraParams: { searchWord: '', orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], - flexEnterpriseSettingStatus: '' as any, + checkReceiveStatus: '' as any as EnumTaskCheckReceiveStatus, + checkReceiveTime: [] as unknown as ModelValueType, }, - queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], - columnsRenderProps: {}, + queryKey: ['taskCheckReceiveServices/getCheckReceiveTasks'], + columnsRenderProps: { + checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText }, + billingMethod: { type: 'enum', valueEnum: EnumBillingMethodText }, + serviceFee: { + type: 'money', + formatter: (row) => { + return `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`; + }, + }, + settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText }, + createdTime: { type: 'date', format: 'YYYY-MM-DD' }, + beginTime: { type: 'date', format: 'YYYY-MM-DD' }, + endTime: { type: 'date', format: 'YYYY-MM-DD' }, + lastCheckReceiveTime: { type: 'date' }, + }, } ); -const { dialogProps, dialogState, handleEdit, editForm } = useFormDialog({ - defaultFormParams: { - id: '', - type: '', - }, -}); - -function openDialog(row, type: string) { - handleEdit({ - id: row.id, - type: type, +function goCheckReceiveTaskDetail(row: API.GetCheckReceiveTasksQueryResultItem) { + router.push({ + name: 'CheckReceiveTaskDetail', + params: { + id: row.id ?? '', + }, }); } -function handleCheck(val) { - console.log('val: ', val); - dialogState.dialogVisible = false; -} +function handleExport(row: API.GetCheckReceiveTasksQueryResultItem) {} </script> diff --git a/src/views/EmploymentManage/CheckReceiveTaskDetail.vue b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue new file mode 100644 index 0000000..d52653d --- /dev/null +++ b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue @@ -0,0 +1,186 @@ +<template> + <LoadingLayout :loading="state.loading"> + <AppContainer> + <el-card class="query-filter-bar-wrapper" shadow="never"> + <ProForm :model="taskInfo" is-read> + <ProFormCol> + <ProFormColItem :span="8"> + <ProFormItemV2 label="浠诲姟鍚嶇О:"> + {{ taskInfo.name ?? '' }} + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="浠诲姟缂栧彿:"> + {{ taskInfo.code ?? '' }} + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="鏈嶅姟璐归噾棰�:"> + {{ `${taskInfo.serviceFee}${EnumBillingMethodUnitText[taskInfo.billingMethod]}` }} + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <ProFormCol> + <ProFormColItem :span="8"> + <ProFormItemV2 label="鍙戝竷鏃ユ湡:"> + {{ dayjs(taskInfo.createdTime ?? '').format('YYYY-MM-DD') }} + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="寮�濮嬫棩鏈�:"> + {{ dayjs(taskInfo.beginTime ?? '').format('YYYY-MM-DD') }} + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8"> + <ProFormItemV2 label="鍙戝竷鏃ユ湡:"> + {{ dayjs(taskInfo.endTime ?? '').format('YYYY-MM-DD') }} + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + </ProForm> + </el-card> + + <ProTableV2 + v-bind="proTableProps" + :columns="CheckReceiveTaskDetailColumns" + :operationBtns="operationBtns" + > + </ProTableV2> + </AppContainer> + <CheckManageDialog v-bind="dialogProps" /> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import { + ProTableV2, + LoadingLayout, + AppContainer, + useTable, + useFormDialog, + defineOperationBtns, + ProForm, + ProFormCol, + ProFormColItem, + ProFormItemV2, + ProTableQueryFilterBar, +} from '@bole-core/components'; +import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive'; +import * as taskServices from '@/services/api/task'; +import { useQuery } from '@tanstack/vue-query'; +import { CheckReceiveTaskDetailColumns } from './constants'; +import { EnumBillingMethodUnitText } from '@/constants'; +import dayjs from 'dayjs'; +import CheckManageDialog from './components/CheckManageDialog.vue'; + +defineOptions({ + name: 'CheckReceiveTaskDetail', +}); + +const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'exportBtn', + name: '楠屾敹', + }, + emits: { + onClick: (role) => openDialog(role), + }, + extraProps: { + hide: (row: API.GetCheckReceiveTaskQueryResultItem) => + row.checkReceiveStatus !== EnumTaskCheckReceiveStatus.WaitCheckReceive, + }, + }, + { + data: { + enCode: 'detailBtn', + name: '璇︽儏', + }, + emits: { + onClick: (role) => openDialog(role, true), + }, + }, +]); + +const route = useRoute(); +const id = (route.params.id as string) ?? ''; + +const { data: taskInfo } = useQuery({ + queryKey: ['taskServices/getTaskInfo', id], + queryFn: () => { + return taskServices.getTaskInfo( + { id: id }, + { + showLoading: false, + } + ); + }, + placeholderData: () => ({} as API.GetTaskInfoQueryResult), +}); + +const BaseState = { + loading: true, +}; + +const state = reactive({ ...BaseState }); + +const eventContext = useGlobalEventContext(); + +eventContext.addEvent('checkReceiveTask', () => { + getList(paginationState.pageIndex); +}); + +onMounted(async () => { + await getList(); + state.loading = false; +}); + +const { + getDataSource: getList, + proTableProps, + paginationState, + extraParamState, + reset, +} = useTable( + async ({ pageIndex, pageSize }, extraParamState) => { + try { + let params: API.GetCheckReceiveTaskQuery = { + pageModel: { + rows: pageSize, + page: pageIndex, + }, + taskInfoId: id, + }; + + let res = await taskCheckReceiveServices.getCheckReceiveTask(params, { + showLoading: !state.loading, + }); + return res; + } catch (error) {} + }, + { + defaultExtraParams: { + keyword: '', + }, + columnsRenderProps: { + gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson }, + lastSubmitTime: { type: 'date' }, + checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskCheckReceiveStatusText }, + }, + } +); + +function openDialog(row: API.GetCheckReceiveTaskQueryResultItem, isDetail = false) { + handleEdit({ + id: row.id, + isDetail, + }); +} + +const { dialogProps, handleEdit } = useFormDialog({ + defaultFormParams: { + id: '', + isDetail: false, + }, +}); +</script> diff --git a/src/views/EmploymentManage/components/CheckManageDialog.vue b/src/views/EmploymentManage/components/CheckManageDialog.vue index 1c93c62..af00716 100644 --- a/src/views/EmploymentManage/components/CheckManageDialog.vue +++ b/src/views/EmploymentManage/components/CheckManageDialog.vue @@ -6,13 +6,7 @@ </ProDialogTableWrapper> <template #footer> <span class="dialog-footer"> - <el-button v-if="form.type === 'detail'" @click="emit('onCancel')" type="primary" - >纭畾</el-button - > - <template v-if="form.type === 'check'"> - <el-button @click="emit('check', false)">楠屾敹鏈�氳繃</el-button> - <el-button type="primary" @click="emit('check', true)">楠屾敹閫氳繃</el-button> - </template> + <el-button @click="emit('onCancel')" type="primary">纭畾</el-button> </span> </template> </ProDialog> @@ -27,6 +21,10 @@ defineOperationBtns, useTable, } from '@bole-core/components'; +import * as taskCheckReceiveServices from '@/services/api/taskCheckReceive'; +import { setOSSLink } from '@/utils'; +import { downloadWithZip, Message } from '@bole-core/core'; +import { useGlobalEventContext } from '@/hooks'; defineOptions({ name: 'EnterpriseConsumptionDetailDialog', @@ -34,31 +32,74 @@ type Form = { id: string; - type: string; + isDetail: boolean; }; const visible = defineModel({ type: Boolean }); const form = defineModel<Form>('form'); -const title = computed(() => (form.value.type === 'check' ? '楠屾敹' : '璇︽儏')); +const title = computed(() => (form.value.isDetail ? '璇︽儏' : '楠屾敹')); const emit = defineEmits<{ (e: 'onCancel'): void; - (e: 'check', value: boolean): void; }>(); + +const eventContext = useGlobalEventContext(); const columns = defineColumns([ { id: '1', - enCode: 'creationTime', + enCode: 'createdTime', name: '鎻愪氦鏃堕棿', }, { id: '2', - enCode: 'type', + enCode: 'files', name: '楠屾敹鐓х墖', + }, + { + id: '3', + enCode: 'checkReceiveStatus', + name: '楠屾敹鐘舵��', + }, + { + id: '4', + enCode: 'checkReceiveTime', + name: '楠屾敹鏃堕棿', }, ]); const operationBtns = defineOperationBtns([ + { + data: { + enCode: 'checkReceiveBtn', + name: '楠屾敹閫氳繃', + }, + emits: { + onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Success), + }, + extraProps: { + hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) => + !( + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit || + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive + ) || form.value.isDetail, + }, + }, + { + data: { + enCode: 'checkReceiveBtn', + name: '楠屾敹鏈�氳繃', + }, + emits: { + onClick: (role) => checkReceiveTask(role, EnumTaskUserSubmitCheckReceiveStatus.Fail), + }, + extraProps: { + hide: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) => + !( + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit || + row.checkReceiveStatus === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive + ) || form.value.isDetail, + }, + }, { data: { enCode: 'downloadBtn', @@ -71,10 +112,12 @@ ]); watch( - () => visible.value, + visible, (val) => { if (val) { - getList(); + if (form.value.id) { + getList(); + } } }, { @@ -91,14 +134,15 @@ } = useTable( async ({ pageIndex, pageSize }, extraParamState) => { try { - let params: API.GetFlexEnterpriseInput = { + let params: API.GetCheckReceiveTaskUserSubmitsQuery = { pageModel: { rows: pageSize, page: pageIndex, orderInput: extraParamState.orderInput, }, + id: form.value.id, }; - let res = await flexEnterpriseServices.getFlexEnterpriseList(params); + let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params); return res; } catch (error) { console.log('error: ', error); @@ -108,14 +152,48 @@ defaultExtraParams: { orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, - queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'], - columnsRenderProps: {}, + queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmits'], + columnsRenderProps: { + createdTime: { type: 'date' }, + checkReceiveTime: { type: 'date' }, + checkReceiveStatus: { type: 'enum', valueEnum: EnumTaskUserSubmitCheckReceiveStatusText }, + files: { + type: 'url', + //@ts-ignore + formatter: (row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) => + (row.files ?? []).map((x) => setOSSLink(x)), + showDownloadBtn: false, + }, + }, } ); -function handleDownload(row) {} -</script> +function handleDownload(row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem) { + if (row.files?.length > 0) { + downloadWithZip( + row.files.map((x) => ({ + data: setOSSLink(x), + })), + '楠屾敹鐓х墖' + ); + } +} -<style lang="scss" scoped> -@use '@/style/common.scss' as *; -</style> +async function checkReceiveTask( + row: API.GetCheckReceiveTaskUserSubmitsQueryResultItem, + checkReceiveStatus: EnumTaskUserSubmitCheckReceiveStatus +) { + try { + let params: API.CheckReceiveTaskCommand = { + id: row.id, + checkReceiveStatus: checkReceiveStatus, + }; + let res = await taskCheckReceiveServices.checkReceiveTask(params); + if (res) { + Message.successMessage('鎿嶄綔鎴愬姛'); + getList(paginationState.pageIndex); + eventContext.emit('checkReceiveTask'); + } + } catch (error) {} +} +</script> diff --git a/src/views/EmploymentManage/constants/columns.ts b/src/views/EmploymentManage/constants/columns.ts index 97c074b..b20138e 100644 --- a/src/views/EmploymentManage/constants/columns.ts +++ b/src/views/EmploymentManage/constants/columns.ts @@ -138,41 +138,99 @@ { id: '1', enCode: 'name', + name: '浠诲姟鍚嶇О', + }, + { + id: '2', + enCode: 'code', + name: '浠诲姟鍗曞彿', + }, + { + id: '3', + enCode: 'billingMethod', + name: '缁撶畻鍛ㄦ湡', + }, + { + id: '4', + enCode: 'serviceFee', + name: '鏈嶅姟璐归噾棰�', + }, + { + id: '5', + enCode: 'settlementCycle', + name: '缁撶畻鏂瑰紡', + }, + { + id: '6', + enCode: 'createdTime', + name: '鍙戝竷鏃ユ湡', + }, + { + id: '6-1', + enCode: 'beginTime', + name: '寮�濮嬫棩鏈�', + }, + { + id: '7', + enCode: 'endTime', + name: '缁撴潫鏃ユ湡', + }, + { + id: '8', + enCode: 'checkReceiveStatus', + name: '浠诲姟楠屾敹鐘舵��', + }, + { + id: '9', + enCode: 'lastCheckReceiveTime', + name: '鏈�杩戦獙鏀舵椂闂�', + }, +]); + +export const CheckReceiveTaskDetailColumns = defineColumns([ + { + id: '1', + enCode: 'name', name: '濮撳悕', }, { id: '2', - enCode: 'name', + enCode: 'identity', name: '韬唤璇佸彿', }, { id: '3', - enCode: 'name', + enCode: 'gender', name: '鎬у埆', }, { id: '4', - enCode: 'name', + enCode: 'age', name: '骞撮緞', }, { id: '5', - enCode: 'name', + enCode: 'contactPhoneNumber', name: '鎵嬫満鍙�', }, { id: '6', - enCode: 'name', - name: '鎵�灞炲鎴�', + enCode: 'taskInfoName', + name: '浠诲姟鍚嶇О', }, { id: '7', - enCode: 'name', - name: '鎻愪氦鏃堕棿', + enCode: 'taskInfoCode', + name: '浠诲姟缂栧彿', }, { id: '8', - enCode: 'name', - name: '楠屾敹鐘舵��', + enCode: 'lastSubmitTime', + name: '鏈�杩戞彁浜ゆ椂闂�', + }, + { + id: '8', + enCode: 'checkReceiveStatus', + name: '浠诲姟楠屾敹鐘舵��', }, ]); -- Gitblit v1.9.1