Commit ee8ff61c by tungnq

TODO: Bổ sung các trạng thái giúp người dùng nhập liệu

parent d09748e2
......@@ -23,20 +23,165 @@ const Profile = props => {
employmentStatus: 'Đang công tác',
workCommencementDate: '20/03/2025',
});
// States cho các TextField trong form
const [phoneNumber, setPhoneNumber] = useState('');
const [oldTeacherCode, setOldTeacherCode] = useState('');
const [workPlace, setWorkPlace] = useState('');
const [position, setPosition] = useState('');
const [extraDuty, setExtraDuty] = useState('');
const [laborType, setLaborType] = useState('');
const [employmentType, setEmploymentType] = useState('');
const [appointmentDecision, setAppointmentDecision] = useState('');
const [appointmentDate, setAppointmentDate] = useState('');
const [issuingAgency, setIssuingAgency] = useState('');
const [jobBeforeRecruitment, setJobBeforeRecruitment] = useState('');
const [allowanceSeniorityDate, setAllowanceSeniorityDate] = useState('');
const [workAllowancePercent, setWorkAllowancePercent] = useState('');
const [teacherAllowancePercent, setTeacherAllowancePercent] = useState('');
const [teacherType, setTeacherType] = useState('');
const [academicUnit, setAcademicUnit] = useState('');
const [subjectDepartment, setSubjectDepartment] = useState('');
const [employmentStatus, setEmploymentStatus] = useState('');
const [workStartDate, setWorkStartDate] = useState('');
const [currentContractType, setCurrentContractType] = useState('');
const [contractStartDate, setContractStartDate] = useState('');
const [contractEndDate, setContractEndDate] = useState('');
const [currentContractNumber, setCurrentContractNumber] = useState('');
const [contractEffectiveDate, setContractEffectiveDate] = useState('');
const [fullTimeWorkStartDate, setFullTimeWorkStartDate] = useState('');
const [lastClassificationDate, setLastClassificationDate] = useState('');
const [currentWorkAllowancePercent, setCurrentWorkAllowancePercent] = useState('');
const [salaryGrade, setSalaryGrade] = useState('');
const [currentSalaryLevel, setCurrentSalaryLevel] = useState('');
const [currentSalaryCoefficient, setCurrentSalaryCoefficient] = useState('');
const [salaryIncreaseMilestone, setSalaryIncreaseMilestone] = useState('');
const [lecturerTitle, setLecturerTitle] = useState('');
const [selectedValue2, setSelectedValue2] = useState('1');
const options2 = [
{label: 'Cơ chế', value: '1'},
{label: 'Biên hữu', value: '2'},
];
const onValueChange2 = value => {
setSelectedValue2(value);
};
const handleSave = () => {
const formData = {
phoneNumber,
oldTeacherCode,
workPlace,
position,
extraDuty,
laborType,
employmentType,
appointmentDecision,
appointmentDate,
issuingAgency,
jobBeforeRecruitment,
selectedValue2,
allowanceSeniorityDate,
workAllowancePercent,
teacherAllowancePercent,
teacherType,
academicUnit,
subjectDepartment,
employmentStatus,
workStartDate,
currentContractType,
contractStartDate,
contractEndDate,
currentContractNumber,
contractEffectiveDate,
fullTimeWorkStartDate,
lastClassificationDate,
currentWorkAllowancePercent,
salaryGrade,
currentSalaryLevel,
currentSalaryCoefficient,
salaryIncreaseMilestone,
lecturerTitle,
};
console.log('Profile Form Data:', formData);
// TODO: Implement save logic
};
return (
<ProfileView
dataProfile={user}
selectedValue2={selectedValue2}
options2={options2}
onValueChange2={onValueChange2}
// TextField states
phoneNumber={phoneNumber}
setPhoneNumber={setPhoneNumber}
oldTeacherCode={oldTeacherCode}
setOldTeacherCode={setOldTeacherCode}
workPlace={workPlace}
setWorkPlace={setWorkPlace}
position={position}
setPosition={setPosition}
extraDuty={extraDuty}
setExtraDuty={setExtraDuty}
laborType={laborType}
setLaborType={setLaborType}
employmentType={employmentType}
setEmploymentType={setEmploymentType}
appointmentDecision={appointmentDecision}
setAppointmentDecision={setAppointmentDecision}
appointmentDate={appointmentDate}
setAppointmentDate={setAppointmentDate}
issuingAgency={issuingAgency}
setIssuingAgency={setIssuingAgency}
jobBeforeRecruitment={jobBeforeRecruitment}
setJobBeforeRecruitment={setJobBeforeRecruitment}
allowanceSeniorityDate={allowanceSeniorityDate}
setAllowanceSeniorityDate={setAllowanceSeniorityDate}
workAllowancePercent={workAllowancePercent}
setWorkAllowancePercent={setWorkAllowancePercent}
teacherAllowancePercent={teacherAllowancePercent}
setTeacherAllowancePercent={setTeacherAllowancePercent}
teacherType={teacherType}
setTeacherType={setTeacherType}
academicUnit={academicUnit}
setAcademicUnit={setAcademicUnit}
subjectDepartment={subjectDepartment}
setSubjectDepartment={setSubjectDepartment}
employmentStatus={employmentStatus}
setEmploymentStatus={setEmploymentStatus}
workStartDate={workStartDate}
setWorkStartDate={setWorkStartDate}
currentContractType={currentContractType}
setCurrentContractType={setCurrentContractType}
contractStartDate={contractStartDate}
setContractStartDate={setContractStartDate}
contractEndDate={contractEndDate}
setContractEndDate={setContractEndDate}
currentContractNumber={currentContractNumber}
setCurrentContractNumber={setCurrentContractNumber}
contractEffectiveDate={contractEffectiveDate}
setContractEffectiveDate={setContractEffectiveDate}
fullTimeWorkStartDate={fullTimeWorkStartDate}
setFullTimeWorkStartDate={setFullTimeWorkStartDate}
lastClassificationDate={lastClassificationDate}
setLastClassificationDate={setLastClassificationDate}
currentWorkAllowancePercent={currentWorkAllowancePercent}
setCurrentWorkAllowancePercent={setCurrentWorkAllowancePercent}
salaryGrade={salaryGrade}
setSalaryGrade={setSalaryGrade}
currentSalaryLevel={currentSalaryLevel}
setCurrentSalaryLevel={setCurrentSalaryLevel}
currentSalaryCoefficient={currentSalaryCoefficient}
setCurrentSalaryCoefficient={setCurrentSalaryCoefficient}
salaryIncreaseMilestone={salaryIncreaseMilestone}
setSalaryIncreaseMilestone={setSalaryIncreaseMilestone}
lecturerTitle={lecturerTitle}
setLecturerTitle={setLecturerTitle}
// Handlers
onSave={handleSave}
/>
);
};
......
......@@ -16,7 +16,80 @@ import RadioButton from '../../components/RadioButton/RadioButton';
import RadioGroup from '../../components/RadioButton/RadioGroup';
const ProfileView = props => {
const {dataProfile, selectedValue2, options2, onValueChange2} = props;
const {
dataProfile,
selectedValue2,
options2,
onValueChange2,
// TextField states
phoneNumber,
setPhoneNumber,
oldTeacherCode,
setOldTeacherCode,
workPlace,
setWorkPlace,
position,
setPosition,
extraDuty,
setExtraDuty,
laborType,
setLaborType,
employmentType,
setEmploymentType,
appointmentDecision,
setAppointmentDecision,
appointmentDate,
setAppointmentDate,
issuingAgency,
setIssuingAgency,
jobBeforeRecruitment,
setJobBeforeRecruitment,
allowanceSeniorityDate,
setAllowanceSeniorityDate,
workAllowancePercent,
setWorkAllowancePercent,
teacherAllowancePercent,
setTeacherAllowancePercent,
teacherType,
setTeacherType,
academicUnit,
setAcademicUnit,
subjectDepartment,
setSubjectDepartment,
employmentStatus,
setEmploymentStatus,
workStartDate,
setWorkStartDate,
currentContractType,
setCurrentContractType,
contractStartDate,
setContractStartDate,
contractEndDate,
setContractEndDate,
currentContractNumber,
setCurrentContractNumber,
contractEffectiveDate,
setContractEffectiveDate,
fullTimeWorkStartDate,
setFullTimeWorkStartDate,
lastClassificationDate,
setLastClassificationDate,
currentWorkAllowancePercent,
setCurrentWorkAllowancePercent,
salaryGrade,
setSalaryGrade,
currentSalaryLevel,
setCurrentSalaryLevel,
currentSalaryCoefficient,
setCurrentSalaryCoefficient,
salaryIncreaseMilestone,
setSalaryIncreaseMilestone,
lecturerTitle,
setLecturerTitle,
// Handlers
onSave,
} = props;
console.log(dataProfile?.name);
return (
<View style={styles.container}>
......@@ -166,6 +239,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Số điện thoại'}
value={phoneNumber}
onChangeText={setPhoneNumber}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -175,6 +250,8 @@ const ProfileView = props => {
<View style={styles.sizedBox}></View>
<TextField
title={'Mã CBGV cũ'}
value={oldTeacherCode}
onChangeText={setOldTeacherCode}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -186,6 +263,8 @@ const ProfileView = props => {
<TextField
width={'100%'}
title={'Nơi công tác'}
value={workPlace}
onChangeText={setWorkPlace}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -196,6 +275,8 @@ const ProfileView = props => {
<TextField
width={'100%'}
title={'Chức vụ'}
value={position}
onChangeText={setPosition}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -206,6 +287,8 @@ const ProfileView = props => {
<TextField
width={'100%'}
title={'Vị trí kiêm nhiệm '}
value={extraDuty}
onChangeText={setExtraDuty}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -215,6 +298,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Loại lao động'}
value={laborType}
onChangeText={setLaborType}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -224,6 +309,8 @@ const ProfileView = props => {
<View style={styles.sizedBox}></View>
<TextField
title={'Loại biên chế'}
value={employmentType}
onChangeText={setEmploymentType}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -234,6 +321,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Quyết định bổ nhiệm'}
value={appointmentDecision}
onChangeText={setAppointmentDecision}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -242,7 +331,9 @@ const ProfileView = props => {
/>
<View style={styles.sizedBox}></View>
<TextField
title={'Quyết định bổ nhiệm'}
title={'Ngày bổ nhiệm'}
value={appointmentDate}
onChangeText={setAppointmentDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -253,6 +344,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Cơ quan ban hành QĐ'}
value={issuingAgency}
onChangeText={setIssuingAgency}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -264,6 +357,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Công việc trước khi tuyển dụng'}
value={jobBeforeRecruitment}
onChangeText={setJobBeforeRecruitment}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -292,6 +387,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Ngày hưởng PCTN'}
value={allowanceSeniorityDate}
onChangeText={setAllowanceSeniorityDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -302,6 +399,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'PCTN công tác(%)'}
value={workAllowancePercent}
onChangeText={setWorkAllowancePercent}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -311,6 +410,8 @@ const ProfileView = props => {
<View style={styles.sizedBox}></View>
<TextField
title={'PCTN nhà giáo(%)'}
value={teacherAllowancePercent}
onChangeText={setTeacherAllowancePercent}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -322,6 +423,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Loại CBGV'}
value={teacherType}
onChangeText={setTeacherType}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -333,6 +436,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Đơn vị sinh hoạt chuyên môn'}
value={academicUnit}
onChangeText={setAcademicUnit}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -344,6 +449,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Bộ môn sinh hoạt chuyên môn'}
value={subjectDepartment}
onChangeText={setSubjectDepartment}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -355,6 +462,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Trạng thái làm việc'}
value={employmentStatus}
onChangeText={setEmploymentStatus}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -366,6 +475,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Ngày bắt đầu làm việc'}
value={workStartDate}
onChangeText={setWorkStartDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -374,7 +485,9 @@ const ProfileView = props => {
/>
<View style={styles.sizedBox}></View>
<TextField
title={'Loại hợp đồng hiện hành'}
title={'Loại hđ hiện hành'}
value={currentContractType}
onChangeText={setCurrentContractType}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -386,6 +499,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Ngày BĐ HĐ hiện hành'}
value={contractStartDate}
onChangeText={setContractStartDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -395,6 +510,8 @@ const ProfileView = props => {
<View style={styles.sizedBox}></View>
<TextField
title={'Ngày KT HĐ hiện hành'}
value={contractEndDate}
onChangeText={setContractEndDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -406,6 +523,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Số hợp đồng hiện hành'}
value={currentContractNumber}
onChangeText={setCurrentContractNumber}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -417,6 +536,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Ngày HL HĐ hiện hành'}
value={contractEffectiveDate}
onChangeText={setContractEffectiveDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -426,6 +547,8 @@ const ProfileView = props => {
<View style={styles.sizedBox}></View>
<TextField
title={'Ngày BĐ làm việc CT'}
value={fullTimeWorkStartDate}
onChangeText={setFullTimeWorkStartDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -437,6 +560,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Thời điểm xếp BL cuối'}
value={lastClassificationDate}
onChangeText={setLastClassificationDate}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -446,6 +571,8 @@ const ProfileView = props => {
<View style={styles.sizedBox}></View>
<TextField
title={'(%) PCTNVK hiện hành'}
value={currentWorkAllowancePercent}
onChangeText={setCurrentWorkAllowancePercent}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -457,6 +584,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Ngạch lương'}
value={salaryGrade}
onChangeText={setSalaryGrade}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -468,6 +597,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Bậc lương hiện hành'}
value={currentSalaryLevel}
onChangeText={setCurrentSalaryLevel}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -477,6 +608,8 @@ const ProfileView = props => {
<View style={styles.sizedBox}></View>
<TextField
title={'Hệ số lương hiện hành'}
value={currentSalaryCoefficient}
onChangeText={setCurrentSalaryCoefficient}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -487,6 +620,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Mốc nâng lương'}
value={salaryIncreaseMilestone}
onChangeText={setSalaryIncreaseMilestone}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -498,6 +633,8 @@ const ProfileView = props => {
<View style={styles.containerInput}>
<TextField
title={'Chức danh giảng viên'}
value={lecturerTitle}
onChangeText={setLecturerTitle}
color={R.colors.black}
fontSize={R.sizes.sm}
fontSizeTitle={R.sizes.sm}
......@@ -508,7 +645,7 @@ const ProfileView = props => {
<Button
title={'Lưu'}
onPress={() => {}}
onPress={onSave}
backgroundColor={R.colors.blue}
textColor={R.colors.white}
fontSize={R.sizes.sm}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment