前端第一版
This commit is contained in:
@@ -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 }
|
||||
);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user