|
|
@@ -53,7 +53,7 @@ const EditStaff: React.FC<formProps> = ({ Staff, combos, SalaryEffectiveInfo }) |
|
|
|
const { t } = useTranslation(); |
|
|
|
const searchParams = useSearchParams() |
|
|
|
const id = parseInt(searchParams.get("id") || "0"); |
|
|
|
const formProps = useForm<CreateStaffInputs & { salaryEffectiveInfo: SalaryEffectiveInfo[] }>({ |
|
|
|
const formProps = useForm<CreateStaffInputs & { salaryEffectiveInfo: SalaryEffectiveInfo[] } & { delSalaryEffectiveInfo: number[] }>({ |
|
|
|
defaultValues: { |
|
|
|
staffId: Staff.staffId, |
|
|
|
name: Staff.name, |
|
|
@@ -78,10 +78,11 @@ const EditStaff: React.FC<formProps> = ({ Staff, combos, SalaryEffectiveInfo }) |
|
|
|
remark: Staff.remark, |
|
|
|
salaryEffectiveInfo: SalaryEffectiveInfo.map(item => { |
|
|
|
return ({ |
|
|
|
id: Math.random(), |
|
|
|
id: item.id, |
|
|
|
salaryPoint: combos.salary.filter(sal => sal.id === item.salaryPoint)[0].label, |
|
|
|
date: dayjs(item.date).toDate(), |
|
|
|
})}) |
|
|
|
})}), |
|
|
|
delSalaryEffectiveInfo: [] |
|
|
|
}}); |
|
|
|
const [serverError, setServerError] = useState(""); |
|
|
|
const router = useRouter(); |
|
|
@@ -154,9 +155,9 @@ const EditStaff: React.FC<formProps> = ({ Staff, combos, SalaryEffectiveInfo }) |
|
|
|
const postData: CreateStaffInputs = { |
|
|
|
id: id, |
|
|
|
...data, |
|
|
|
salaryEffectiveInfo: SalaryEffectiveInfo.map(item => ({ |
|
|
|
salaryEffectiveInfo: data.salaryEffectiveInfo.map((item: SalaryEffectiveInfo) => ({ |
|
|
|
id: item.id, |
|
|
|
salaryPoint: item.salaryPoint, |
|
|
|
salaryPoint: chopSalaryPoints(item.salaryPoint), |
|
|
|
date: dayjs(item.date).format('YYYY-MM-DD').toString() |
|
|
|
})) |
|
|
|
} |
|
|
@@ -194,6 +195,18 @@ const EditStaff: React.FC<formProps> = ({ Staff, combos, SalaryEffectiveInfo }) |
|
|
|
router.back(); |
|
|
|
}; |
|
|
|
|
|
|
|
function chopSalaryPoints(input: string | number): number | null { |
|
|
|
if (typeof input === 'string') { |
|
|
|
const match = input.match(/(\d+) \((\d+) - (\d+)\)/); |
|
|
|
if (match) { |
|
|
|
return parseInt(match[1], 10); |
|
|
|
} |
|
|
|
} else if (typeof input === 'number') { |
|
|
|
return input; |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
// const resetStaff = useCallback(() => { |
|
|
|
// window.location.reload() |
|
|
|
// console.log(dayjs(Staff.joinDate).format(INPUT_DATE_FORMAT)) |
|
|
|