|
|
@@ -10,10 +10,6 @@ import Tabs, { TabsProps } from "@mui/material/Tabs"; |
|
|
|
import { useRouter } from "next/navigation"; |
|
|
|
import React, { useCallback, useState } from "react"; |
|
|
|
import { useTranslation } from "react-i18next"; |
|
|
|
// import ProjectClientDetails from "./ProjectClientDetails"; |
|
|
|
// import TaskSetup from "./TaskSetup"; |
|
|
|
// import StaffAllocation from "./StaffAllocation"; |
|
|
|
// import ResourceMilestone from "./ResourceMilestone"; |
|
|
|
import { Task, TaskTemplate } from "@/app/api/tasks"; |
|
|
|
import { |
|
|
|
FieldErrors, |
|
|
@@ -26,7 +22,7 @@ import { CreateProjectInputs, saveProject } from "@/app/api/projects/actions"; |
|
|
|
import { Error } from "@mui/icons-material"; |
|
|
|
import { ProjectCategory } from "@/app/api/projects"; |
|
|
|
import { Grid, Typography } from "@mui/material"; |
|
|
|
import CreateStaffForm from "@/components/CreateStaff/CreateStaffForm"; |
|
|
|
import CreateStaffForm from "@/components/CreateStaff/CreateStaff"; |
|
|
|
|
|
|
|
interface CreateCustomInputs { |
|
|
|
projectCode: string; |
|
|
@@ -41,165 +37,6 @@ const CreateStaff: React.FC = async () => { |
|
|
|
const title = ['', t('Additional Info')] |
|
|
|
// const regex = new RegExp("^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$") |
|
|
|
// console.log(regex) |
|
|
|
const fieldLists = [ |
|
|
|
[ |
|
|
|
{ |
|
|
|
id: "staffId", |
|
|
|
label: t("Staff ID"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "name", |
|
|
|
label: t("Staff Name"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "companyId", |
|
|
|
label: t("Company"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, label: "Company A"}, {id: 2, label: "Company B"}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "teamId", |
|
|
|
label: t("Team"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, label: "A"}, {id: 2, label: "B"}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "departmentId", |
|
|
|
label: t("Department"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, label: "Department A"}, {id: 2, label: "Department B"}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "gradeId", |
|
|
|
label: t("Grade"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, label: "A"}, {id: 2, label: "B"}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "skillSetId", |
|
|
|
label: t("Skillset"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, label: "excel"}, {id: 2, label: "word"}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "currentPositionId", |
|
|
|
label: t("Current Position"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, label: "pos1"}, {id: 2, label: "pos2"}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "salaryEffId", |
|
|
|
label: t("Salary Point"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, label: t("15")}, {id: 2, label: t("20")}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "hourlyRate", |
|
|
|
label: t("Hourly Rate"), |
|
|
|
type: "numeric-testing", |
|
|
|
value: "", |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "employType", |
|
|
|
label: t("Employ Type"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: "FT", label: t("FT")}, {id: "PT", label: t("PT")}], |
|
|
|
value: "", |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "email", |
|
|
|
label: t("Email"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
pattern: "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$", |
|
|
|
message: t("input matching format"), |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "phone1", |
|
|
|
label: t("Phone1"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
pattern: "^\\d{8}$", |
|
|
|
message: t("input correct phone no."), |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "phone2", |
|
|
|
label: t("Phone2"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
pattern: "^\\d{8}$", |
|
|
|
message: t("input correct phone no."), |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
id: "emergContactName", |
|
|
|
label: t("Emergency Contact Name"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "emergContactPhone", |
|
|
|
label: t("Emergency Contact Phone"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
pattern: "^\\d{8}$", |
|
|
|
message: t("input correct phone no."), |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "joinDate", |
|
|
|
label: t("Join Date"), |
|
|
|
type: "multiDate", |
|
|
|
value: "", |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "joinPositionId", |
|
|
|
label: t("Join Position"), |
|
|
|
type: "combo-Obj", |
|
|
|
options: [{id: 1, key: 1, value: 1, label: "pos1"}, {id: 2, key: 2, value: 2, label: "pos2"}], |
|
|
|
required: true, |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "departDate", |
|
|
|
label: t("Depart Date"), |
|
|
|
type: "multiDate", |
|
|
|
value: "", |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "departReason", |
|
|
|
label: t("Depart Reason"), |
|
|
|
type: "text", |
|
|
|
value: "", |
|
|
|
}, |
|
|
|
{ |
|
|
|
id: "remark", |
|
|
|
label: t("Remark"), |
|
|
|
type: "remarks", |
|
|
|
value: "", |
|
|
|
}, |
|
|
|
] |
|
|
|
]; |
|
|
|
|
|
|
|
return ( |
|
|
|
<> |
|
|
@@ -207,7 +44,6 @@ const CreateStaff: React.FC = async () => { |
|
|
|
<I18nProvider namespaces={["staff"]}> |
|
|
|
<CreateStaffForm |
|
|
|
Title={title} |
|
|
|
fieldLists={fieldLists} |
|
|
|
/> |
|
|
|
</I18nProvider> |
|
|
|
</> |
|
|
|