diff --git a/src/api/modules/biz/onboarding-public.ts b/src/api/modules/biz/onboarding-public.ts deleted file mode 100644 index 9aca31d..0000000 --- a/src/api/modules/biz/onboarding-public.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { moduleRequest } from "@/api/request"; - -const http = moduleRequest("/open/onboarding/"); - -export const onboardingPublicApi = { - detail(token: string) { - return http.post("detail", { token }); - }, - - saveEmployeeInfo(params: Record) { - return http.post("save-employee-info", params); - }, - - saveDynamicValues(params: { - token: string; - values: Array<{ - fieldId: number; - fieldValue: string; - }>; - }) { - return http.post("save-dynamic-values", params); - }, - - confirmContract(params: { - token: string; - taskContractId: number; - }) { - return http.post("confirm-contract", params); - }, - - submit(token: string) { - return http.post("submit", { token }); - } -}; \ No newline at end of file diff --git a/src/api/modules/biz/onboarding.ts b/src/api/modules/biz/onboarding.ts index 2b852d0..fad8baf 100644 --- a/src/api/modules/biz/onboarding.ts +++ b/src/api/modules/biz/onboarding.ts @@ -9,10 +9,12 @@ export interface OnboardingTask { id: number; taskNo: string; companyId: number; - positionId: number; - onboardingTemplateId?: number; companyName?: string; + departmentId?: number; + departmentName?: string; + positionId: number; positionName?: string; + onboardingTemplateId?: number; onboardingTemplateName?: string; taskStatus: string; rejectReason?: string; @@ -34,6 +36,11 @@ export interface OnboardingCompanyOption { companyName: string; } +export interface OnboardingDepartmentOption { + id: number; + departmentName: string; +} + export interface OnboardingPositionOption { id: number; positionName: string; @@ -50,8 +57,21 @@ export interface OnboardingCompany extends OnboardingCompanyOption { status: string; } +export interface OnboardingDepartment extends OnboardingDepartmentOption { + companyId: number; + companyName?: string; + departmentCode: string; + sortCode: number; + remark?: string; + status: string; + createTime?: string; +} + export interface OnboardingPosition extends OnboardingPositionOption { companyId: number; + companyName?: string; + departmentId?: number; + departmentName?: string; positionCode: string; defaultContractYears?: number; defaultProbationMonths?: number; @@ -61,6 +81,12 @@ export interface OnboardingPosition extends OnboardingPositionOption { export interface OnboardingContractTemplate { id: number; + companyId?: number; + companyName?: string; + departmentId?: number; + departmentName?: string; + positionIds: number[]; + positionNames?: string[]; templateCode: string; templateName: string; contractType: string; @@ -118,6 +144,8 @@ export interface OnboardingEmployee { employeeNo?: string; employeeName: string; companyId: number; + departmentId?: number; + departmentName?: string; positionId: number; phone: string; idCardNumber: string; @@ -172,6 +200,8 @@ export interface OnboardingTemplate { templateName: string; companyId: number; companyName?: string; + departmentId: number; + departmentName?: string; positionIds: number[]; positionNames?: string[]; contracts: OnboardingTemplateContractConfig[]; @@ -265,6 +295,12 @@ export const onboardingTaskApi = { >("list-enabled"); }, + listDepartments(companyId: number) { + return moduleRequest("/biz/onboarding/department/").get< + OnboardingDepartmentOption[] + >("list-enabled", { companyId }); + }, + listPositions(companyId: number) { return moduleRequest("/biz/onboarding/position/").get< OnboardingPositionOption[] @@ -301,12 +337,48 @@ export const onboardingTaskApi = { ); }, + departmentPage(params: Record) { + return moduleRequest("/biz/onboarding/department/").get< + ResPage + >("page", params); + }, + + departmentDetail(params: ReqId) { + return moduleRequest("/biz/onboarding/department/").get( + "detail", + params + ); + }, + + saveDepartment( + params: Partial, + edit = false + ) { + return moduleRequest("/biz/onboarding/department/").post( + edit ? "edit" : "add", + params + ); + }, + + deleteDepartment(ids: number[]) { + return moduleRequest("/biz/onboarding/department/").post( + "delete", + { ids } + ); + }, + positionPage(params: Record) { return moduleRequest("/biz/onboarding/position/").get< ResPage >("page", params); }, + listPositionsByDepartment(departmentId: number) { + return moduleRequest("/biz/onboarding/position/").get< + OnboardingPosition[] + >("list-by-department", { departmentId }); + }, + positionDetail(params: ReqId) { return moduleRequest("/biz/onboarding/position/").get( "detail", @@ -358,13 +430,27 @@ export const onboardingTaskApi = { ); }, - listEnabledOnboardingTemplates(companyId: number, positionId: number) { + listEnabledOnboardingTemplates( + companyId: number, + departmentId: number, + positionId: number + ) { return moduleRequest("/biz/onboarding/template/").get( "list-enabled", - { companyId, positionId } + { companyId, departmentId, positionId } ); }, + listAvailableContractTemplates(params: { + companyId: number; + departmentId: number; + positionIds: number[]; + }) { + return moduleRequest("/biz/onboarding/contract-template/").post< + OnboardingContractTemplate[] + >("list-available", params); + }, + templatePage(params: Record) { return moduleRequest("/biz/onboarding/contract-template/").get< ResPage @@ -555,9 +641,6 @@ export const onboardingPublicApi = { saveEmployeeInfo(params: Record) { return publicHttp.post("save-employee-info", params); }, - saveMaterial(params: { token: string; materialTypeId: number; fileId: number }) { - return publicHttp.post("save-material", params); - }, confirmContract(params: { token: string; taskContractId: number }) { return publicHttp.post("confirm-contract", params); }, diff --git a/src/views/biz/onboarding/contract/index.vue b/src/views/biz/onboarding/contract/index.vue index c881481..24e06e9 100644 --- a/src/views/biz/onboarding/contract/index.vue +++ b/src/views/biz/onboarding/contract/index.vue @@ -18,6 +18,14 @@ + + \ No newline at end of file + diff --git a/src/views/biz/onboarding/employee/index.vue b/src/views/biz/onboarding/employee/index.vue index 1c4fb0b..0fef9ce 100644 --- a/src/views/biz/onboarding/employee/index.vue +++ b/src/views/biz/onboarding/employee/index.vue @@ -193,6 +193,11 @@ const columns: ColumnProps[] = [ minWidth: 160, search: { el: "input" } }, + { + prop: "departmentName", + label: "所属部门", + minWidth: 140 + }, { prop: "entryDate", label: "入职日期", @@ -368,4 +373,4 @@ function download(fileId: number) { color: #dc2626; margin-top: 4px; } - \ No newline at end of file + diff --git a/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue b/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue index c619407..6f72391 100644 --- a/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue +++ b/src/views/biz/onboarding/entry-config/components/OnboardingTemplatePanel.vue @@ -20,6 +20,7 @@ +