Feat : logic bật tắt chỉ tiêu

uat
Quy_FE 3 months ago
parent 60d2c077b8
commit ca037c6267
  1. 140
      src/_screens/criteria/criteria-setting/index.js

@ -26,6 +26,7 @@ export default function CriteriaSetting() {
const [criteriaTarget, setCriteriaTarget] = useState(DEFAULT_SETTING_CRITERIA);
const [showAlert, setShowAlert] = useState(false);
const [alertMessage, setAlertMessage] = useState("");
const [isApply, setIsApply] = useState(false)
const schoolList = isJsonString(decodeURIComponent(_schoolList))
? JSON.parse(decodeURIComponent(_schoolList))
@ -60,30 +61,93 @@ export default function CriteriaSetting() {
}
}
const saveCriteriaSetting = async () => {
try {
const dataSave = {
school_list: schoolList,
assign_number_active: criteriaTarget.assign.enable ? 1 : 0,
assign_number_target_1: criteriaTarget.assign.target1,
assign_number_target_2: criteriaTarget.assign.target2,
student_done_active: criteriaTarget.studentDone.enable ? 1 : 0,
student_done_target_1: criteriaTarget.studentDone.target1,
student_done_target_2: criteriaTarget.studentDone.target2,
const isValid = () => {
if (criteriaTarget.assign.enable) {
if (!criteriaTarget.studentDone.enable) {
return (
!(criteriaTarget.assign.target1 &&
criteriaTarget.assign.target2 &&
criteriaTarget.assign.target1 < criteriaTarget.assign.target2)
);
} else {
return (
!(criteriaTarget.assign.target1 &&
criteriaTarget.assign.target2 &&
criteriaTarget.assign.target1 < criteriaTarget.assign.target2 &&
criteriaTarget.studentDone.target1 != null &&
criteriaTarget.studentDone.target2 != null &&
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2)
);
}
} else if (criteriaTarget.studentDone.enable) {
return (
!(criteriaTarget.studentDone.target1 != null &&
criteriaTarget.studentDone.target2 != null &&
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2)
);
} else {
return true;
}
const res = await apiCaller(
"/report/api_report/assignCriteriaToOrganization",
"PUT",
dataSave,
);
if (res?.status) {
setAlertMessage(res?.msg);
};
const saveCriteriaSetting = async () => {
try {
const dataSave = {
school_list: schoolList,
assign_number_active: criteriaTarget.assign.enable ? 1 : 0,
assign_number_target_1: criteriaTarget.assign.target1,
assign_number_target_2: criteriaTarget.assign.target2,
student_done_active: criteriaTarget.studentDone.enable ? 1 : 0,
student_done_target_1: criteriaTarget.studentDone.target1,
student_done_target_2: criteriaTarget.studentDone.target2,
};
let res;
if (isApply) {
res = await handleApply(dataSave);
} else {
res = await handleNonApply(dataSave);
}
if (res?.status) {
setAlertMessage(res?.msg);
setShowAlert(true);
}
} catch (err) {
console.error("Error: ", err);
}
};
const handleApply = async (dataSave) => {
if (isValid()) {
return await apiCaller(
"/report/api_report/removeCriteriaFromOrganization",
"PUT",
{ school_list: schoolList }
);
} else {
return await apiCaller(
"/report/api_report/assignCriteriaToOrganization",
"PUT",
dataSave
);
}
};
const handleNonApply = async (dataSave) => {
if (!isValid()) {
return await apiCaller(
"/report/api_report/assignCriteriaToOrganization",
"PUT",
dataSave
);
} else {
setAlertMessage("Bạn chưa thực hiện bất kỳ thay đổi nào");
setShowAlert(true);
return null;
}
} catch (err) {
console.log("err: ", err);
}
}
};
const getData = async () => {
try {
@ -93,6 +157,7 @@ export default function CriteriaSetting() {
"GET",
);
if (res?.status) {
setIsApply(res?.data?.status_criteria ==='1')
setCriteriaTarget({
assign: {
target1: res?.data?.assign_number_target_1 || DEFAULT_SETTING_CRITERIA.assign.target1,
@ -122,6 +187,7 @@ export default function CriteriaSetting() {
"GET",
);
if (res?.status) {
setIsApply(res?.data?.status_criteria ==='1')
setCriteriaTarget({
assign: {
target1: res?.data?.assign_number_target_1 || DEFAULT_SETTING_CRITERIA.assign.target1,
@ -160,34 +226,6 @@ export default function CriteriaSetting() {
return !isRead
}
const isValid = () => {
if (criteriaTarget.assign.enable) {
if (!criteriaTarget.studentDone.enable) {
return (
!(criteriaTarget.assign.target1 &&
criteriaTarget.assign.target2 &&
criteriaTarget.assign.target1 < criteriaTarget.assign.target2)
);
} else {
return (
!(criteriaTarget.assign.target1 &&
criteriaTarget.assign.target2 &&
criteriaTarget.assign.target1 < criteriaTarget.assign.target2 &&
criteriaTarget.studentDone.target1 != null &&
criteriaTarget.studentDone.target2 != null &&
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2)
);
}
} else if (criteriaTarget.studentDone.enable) {
return (
!(criteriaTarget.studentDone.target1 != null &&
criteriaTarget.studentDone.target2 != null &&
criteriaTarget.studentDone.target1 < criteriaTarget.studentDone.target2)
);
} else {
return true;
}
};
const renderRightItem = ({ title, desc, valueName, unit, key, maxLengthInput }) => {
return (
<div
@ -339,8 +377,8 @@ export default function CriteriaSetting() {
>
Quay lại
</PrimaryButton>
{authentication?.user?.role === USER_ROLE.ADMIN && (
<PrimaryButton onClick={saveCriteriaSetting} isDisabled={isValid()}>Lưu</PrimaryButton>
{(authentication?.user?.role === USER_ROLE.ADMIN || authentication?.user?.role === USER_ROLE.HEADMASTER) && (
<PrimaryButton onClick={saveCriteriaSetting}>Lưu</PrimaryButton>
)}
</div>
</div>

Loading…
Cancel
Save