前端第一版

This commit is contained in:
fuenmao
2026-08-24 16:36:28 +08:00
parent 3c52039b5b
commit c6509a3545
11 changed files with 5413 additions and 1 deletions
+34
View File
@@ -0,0 +1,34 @@
import { moduleRequest } from "@/api/request";
const http = moduleRequest("/open/onboarding/");
export const onboardingPublicApi = {
detail(token: string) {
return http.post("detail", { token });
},
saveEmployeeInfo(params: Record<string, unknown>) {
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 });
}
};
+521
View File
@@ -0,0 +1,521 @@
import { moduleRequest } from "@/api/request";
import type { ReqId, ResPage } from "@/api/interface";
const taskHttp = moduleRequest("/biz/onboarding/task/");
const auditHttp = moduleRequest("/biz/onboarding/audit/");
export interface OnboardingTask {
id: number;
taskNo: string;
companyId: number;
positionId: number;
taskStatus: string;
linkExpireAt?: string;
submitCount: number;
createTime: string;
}
export interface OnboardingCompanyOption {
id: number;
companyName: string;
}
export interface OnboardingPositionOption {
id: number;
positionName: string;
}
export interface OnboardingCompany extends OnboardingCompanyOption {
companyCode: string;
legalName: string;
unifiedSocialCreditCode?: string;
legalRepresentative?: string;
registeredAddress?: string;
contactPhone?: string;
remark?: string;
status: string;
}
export interface OnboardingPosition extends OnboardingPositionOption {
companyId: number;
positionCode: string;
defaultContractYears?: number;
defaultProbationMonths?: number;
remark?: string;
status: string;
}
export interface OnboardingContractTemplate {
id: number;
templateCode: string;
templateName: string;
contractType: string;
description?: string;
status: string;
}
export interface OnboardingContractVersion {
id: number;
templateId: number;
versionNo: string;
sourceDocxFileId: number;
effectiveDate?: string;
expiryDate?: string;
versionStatus: string;
remark?: string;
}
export interface OnboardingTemplateVariable {
id: number;
templateVersionId: number;
variableCode: string;
variableName: string;
variableType: string;
dataType: string;
employeeField?: string;
defaultValue?: string;
required: boolean;
hrEditable: boolean;
sortCode?: number;
remark?: string;
}
export interface OnboardingContractScope {
id: number;
companyId: number;
positionId?: number;
templateId: number;
templateVersionId: number;
required: boolean;
sortCode?: number;
}
export interface OnboardingTaskContractVariableItem {
id: number;
variableCode: string;
variableName: string;
variableType: string;
dataType: string;
variableValue?: string;
required: boolean;
hrEditable: boolean;
editable: boolean;
}
export interface OnboardingTaskContractVariableGroup {
taskContractId: number;
contractName: string;
contractType: string;
variables: OnboardingTaskContractVariableItem[];
}
export interface OnboardingEmployee {
id: number;
employeeNo?: string;
employeeName: string;
companyId: number;
positionId: number;
phone: string;
idCardNumber: string;
entryDate?: string;
createTime: string;
}
export interface OnboardingFormField {
id: number;
fieldCode: string;
fieldName: string;
dataType: string;
optionsJson?: string;
validationRule?: string;
placeholder?: string;
status: string;
}
export interface OnboardingMaterialType {
id: number;
materialCode: string;
materialName: string;
allowedExtensions?: string;
maxFileCount: number;
maxFileSizeMb?: number;
status: string;
}
export interface OnboardingFormRequirement {
id: number;
companyId: number;
positionId?: number;
fieldId: number;
required: boolean;
sortCode?: number;
}
export interface OnboardingMaterialRequirement {
id: number;
companyId: number;
positionId?: number;
materialTypeId: number;
required: boolean;
sortCode?: number;
}
export const onboardingTaskApi = {
page(params: Record<string, unknown>) {
return taskHttp.get<ResPage<OnboardingTask>>("page", params);
},
detail(params: ReqId) {
return taskHttp.get("detail", params);
},
create(params: Record<string, unknown>) {
return taskHttp.post("create", params);
},
approve(params: {
taskId: number;
auditOpinion?: string;
}) {
return auditHttp.post("approve", params);
},
reject(params: {
taskId: number;
auditOpinion: string;
}) {
return auditHttp.post("reject", params);
},
generateContract(taskContractId: number) {
return moduleRequest("/biz/onboarding/contract-document/").post(
"generate",
{ taskContractId }
);
},
archive(params: {
taskId: number;
auditOpinion?: string;
}) {
return taskHttp.post("archive", params);
},
revoke(params: {
taskId: number;
auditOpinion?: string;
}) {
return taskHttp.post("revoke", params);
},
reviewMaterial(params: {
taskMaterialId: number;
reviewStatus: string;
reviewRemark?: string;
}) {
return moduleRequest("/biz/onboarding/material/").post(
"review",
params
);
},
listCompanies() {
return moduleRequest("/biz/onboarding/company/").get<
OnboardingCompanyOption[]
>("list-enabled");
},
listPositions(companyId: number) {
return moduleRequest("/biz/onboarding/position/").get<
OnboardingPositionOption[]
>("list-enabled", { companyId });
},
companyPage(params: Record<string, unknown>) {
return moduleRequest("/biz/onboarding/company/").get<
ResPage<OnboardingCompany>
>("page", params);
},
companyDetail(params: ReqId) {
return moduleRequest("/biz/onboarding/company/").get<OnboardingCompany>(
"detail",
params
);
},
saveCompany(
params: Partial<OnboardingCompany>,
edit = false
) {
return moduleRequest("/biz/onboarding/company/").post(
edit ? "edit" : "add",
params
);
},
deleteCompany(ids: number[]) {
return moduleRequest("/biz/onboarding/company/").post(
"delete",
{ ids }
);
},
positionPage(params: Record<string, unknown>) {
return moduleRequest("/biz/onboarding/position/").get<
ResPage<OnboardingPosition>
>("page", params);
},
positionDetail(params: ReqId) {
return moduleRequest("/biz/onboarding/position/").get<OnboardingPosition>(
"detail",
params
);
},
savePosition(
params: Partial<OnboardingPosition>,
edit = false
) {
return moduleRequest("/biz/onboarding/position/").post(
edit ? "edit" : "add",
params
);
},
deletePosition(ids: number[]) {
return moduleRequest("/biz/onboarding/position/").post(
"delete",
{ ids }
);
},
templatePage(params: Record<string, unknown>) {
return moduleRequest("/biz/onboarding/contract-template/").get<
ResPage<OnboardingContractTemplate>
>("page", params);
},
templateDetail(params: ReqId) {
return moduleRequest("/biz/onboarding/contract-template/").get<
OnboardingContractTemplate
>("detail", params);
},
saveTemplate(
params: Partial<OnboardingContractTemplate>,
edit = false
) {
return moduleRequest("/biz/onboarding/contract-template/").post(
edit ? "edit" : "add",
params
);
},
deleteTemplate(ids: number[]) {
return moduleRequest("/biz/onboarding/contract-template/").post(
"delete",
{ ids }
);
},
versionPage(params: {
templateId: number;
pageNum: number;
pageSize: number;
}) {
return moduleRequest("/biz/onboarding/contract-template/").get<
ResPage<OnboardingContractVersion>
>("version/page", params);
},
addVersion(params: Partial<OnboardingContractVersion>) {
return moduleRequest("/biz/onboarding/contract-template/").post(
"version/add",
params
);
},
setVersionStatus(params: {
id: number;
versionStatus: string;
}) {
return moduleRequest("/biz/onboarding/contract-template/").post(
"version/set-status",
params
);
},
variablePage(params: {
templateVersionId: number;
pageNum: number;
pageSize: number;
}) {
return moduleRequest("/biz/onboarding/contract-template/").get<
ResPage<OnboardingTemplateVariable>
>("variable/page", params);
},
saveVariable(
params: Partial<OnboardingTemplateVariable>,
edit = false
) {
return moduleRequest("/biz/onboarding/contract-template/").post(
edit ? "variable/edit" : "variable/add",
params
);
},
deleteVariable(ids: number[]) {
return moduleRequest("/biz/onboarding/contract-template/").post(
"variable/delete",
{ ids }
);
},
scopePage(params: {
templateId: number;
pageNum: number;
pageSize: number;
}) {
return moduleRequest("/biz/onboarding/contract-template/").get<
ResPage<OnboardingContractScope>
>("scope/page", params);
},
addScope(params: Partial<OnboardingContractScope>) {
return moduleRequest("/biz/onboarding/contract-template/").post(
"scope/add",
params
);
},
deleteScope(ids: number[]) {
return moduleRequest("/biz/onboarding/contract-template/").post(
"scope/delete",
{ ids }
);
},
uploadDocx(params: FormData) {
return moduleRequest("/sys/dev/file/").post<number>(
"uploadLocal",
params
);
},
taskContractVariables(taskId: number) {
return moduleRequest("/biz/onboarding/task-contract-variable/").get<
OnboardingTaskContractVariableGroup[]
>("list", { taskId });
},
saveTaskContractVariables(params: {
taskContractId: number;
values: Array<{
id: number;
variableValue?: string;
}>;
}) {
return moduleRequest("/biz/onboarding/task-contract-variable/").post(
"save",
params
);
},
employeePage(params: Record<string, unknown>) {
return moduleRequest("/biz/onboarding/employee/").get<
ResPage<OnboardingEmployee>
>("page", params);
},
employeeDetail(params: ReqId) {
return moduleRequest("/biz/onboarding/employee/").get(
"detail",
params
);
},
listFormFields() {
return moduleRequest("/biz/onboarding/entry-config/").get<
OnboardingFormField[]
>("form-field/list");
},
saveFormField(params: Partial<OnboardingFormField>) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"form-field/save",
params
);
},
deleteFormFields(ids: number[]) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"form-field/delete",
{ ids }
);
},
listMaterialTypes() {
return moduleRequest("/biz/onboarding/entry-config/").get<
OnboardingMaterialType[]
>("material-type/list");
},
saveMaterialType(params: Partial<OnboardingMaterialType>) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"material-type/save",
params
);
},
deleteMaterialTypes(ids: number[]) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"material-type/delete",
{ ids }
);
},
listFormRequirements(companyId: number) {
return moduleRequest("/biz/onboarding/entry-config/").get<
OnboardingFormRequirement[]
>("form-requirement/list", { companyId });
},
saveFormRequirement(params: Partial<OnboardingFormRequirement>) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"form-requirement/save",
params
);
},
deleteFormRequirements(ids: number[]) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"form-requirement/delete",
{ ids }
);
},
listMaterialRequirements(companyId: number) {
return moduleRequest("/biz/onboarding/entry-config/").get<
OnboardingMaterialRequirement[]
>("material-requirement/list", { companyId });
},
saveMaterialRequirement(
params: Partial<OnboardingMaterialRequirement>
) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"material-requirement/save",
params
);
},
deleteMaterialRequirements(ids: number[]) {
return moduleRequest("/biz/onboarding/entry-config/").post(
"material-requirement/delete",
{ ids }
);
}
};