|
|
|
@ -13,13 +13,13 @@ import { history } from "../../../_helpers/history"; |
|
|
|
|
import { PATH } from "../../../_constants/path"; |
|
|
|
|
import { apiCaller } from "../../../_helpers"; |
|
|
|
|
import { configConstants } from "../../../_constants"; |
|
|
|
|
import { listStatusCriteria } from "../../../_constants/common"; |
|
|
|
|
import { listStatusCriteria, TYPE_DISPATCH } from "../../../_constants/common"; |
|
|
|
|
import moment from "moment"; |
|
|
|
|
import { useDispatch } from "react-redux"; |
|
|
|
|
import { useDispatch, useSelector } from "react-redux"; |
|
|
|
|
import { alertActions } from "../../../_actions"; |
|
|
|
|
|
|
|
|
|
export default function CriteriaManage() { |
|
|
|
|
const [searchText, setSearchText] = useState(); |
|
|
|
|
const [searchText, setSearchText] = useState(''); |
|
|
|
|
const [listIdSelected, setListIdSelected] = useState([]); |
|
|
|
|
const [listData, setListData] = useState([]); |
|
|
|
|
const [listProvince, setListProvince] = useState([ |
|
|
|
@ -32,13 +32,10 @@ export default function CriteriaManage() { |
|
|
|
|
]); |
|
|
|
|
const [districtSelect, setDistrictSelect] = useState(listDistrict[0]); |
|
|
|
|
const [isLoadingDistrict, setIsLoadingDistrict] = useState(false); |
|
|
|
|
const [statusCriteriaSelected, setStatusCriteriaSelected] = useState( |
|
|
|
|
listStatusCriteria[0], |
|
|
|
|
); |
|
|
|
|
const [statusCriteriaSelected, setStatusCriteriaSelected] = useState(listStatusCriteria[0]); |
|
|
|
|
const [isLoading, setIsLoading] = useState(false); |
|
|
|
|
const [isFiltered, setIsFiltered] = useState(false); |
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
|
|
const changeProvince = (item) => { |
|
|
|
|
setProvinceSelect(item); |
|
|
|
|
setDistrictSelect({ value: "", label: "Lọc theo huyện" }); |
|
|
|
@ -117,9 +114,9 @@ export default function CriteriaManage() { |
|
|
|
|
}), |
|
|
|
|
); |
|
|
|
|
setListIdSelected([]); |
|
|
|
|
await setSearchText(""); |
|
|
|
|
await changeProvince(listProvince[0]); |
|
|
|
|
await setStatusCriteriaSelected(listStatusCriteria[0]); |
|
|
|
|
// await setSearchText("");
|
|
|
|
|
// await changeProvince(listProvince[0]);
|
|
|
|
|
// await setStatusCriteriaSelected(listStatusCriteria[0]);
|
|
|
|
|
getDataCriteria(); |
|
|
|
|
} |
|
|
|
|
} catch (err) { |
|
|
|
@ -147,20 +144,38 @@ export default function CriteriaManage() { |
|
|
|
|
const getDataCriteria = async (isFilter = false) => { |
|
|
|
|
try { |
|
|
|
|
setIsLoading(true); |
|
|
|
|
const endPoint = |
|
|
|
|
`/report/api_report/getOrganizationAndCriteria` + |
|
|
|
|
(isFilter |
|
|
|
|
? `?province_id=${ |
|
|
|
|
!!provinceSelect?.value ? provinceSelect?.value : "" |
|
|
|
|
const queryParams = []; |
|
|
|
|
|
|
|
|
|
const addParam = (key, value) => { |
|
|
|
|
if (value !== undefined && value !== null && value !== '') { |
|
|
|
|
queryParams.push(`${key}=${value}`); |
|
|
|
|
} |
|
|
|
|
${!!districtSelect?.value ? `&district_id=${districtSelect?.value}` : ""} |
|
|
|
|
${ |
|
|
|
|
!!statusCriteriaSelected?.value |
|
|
|
|
? `&status=${statusCriteriaSelected?.value}` |
|
|
|
|
: "" |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
addParam('province_id', provinceSelect?.value); |
|
|
|
|
addParam('district_id', districtSelect?.value); |
|
|
|
|
if (statusCriteriaSelected?.value !== undefined && statusCriteriaSelected?.value !== null) { |
|
|
|
|
const statusValue = statusCriteriaSelected.value === '0' |
|
|
|
|
? JSON.stringify(statusCriteriaSelected.value) |
|
|
|
|
: statusCriteriaSelected.value; |
|
|
|
|
addParam('status', statusValue); |
|
|
|
|
} |
|
|
|
|
${!!searchText ? `&school_name=${searchText}` : ""}` |
|
|
|
|
: ""); |
|
|
|
|
addParam('school_name', searchText); |
|
|
|
|
|
|
|
|
|
const obj = queryParams.reduce((acc, curr) => { |
|
|
|
|
const [key, value] = curr.split('='); |
|
|
|
|
acc[key] = value; |
|
|
|
|
return acc; |
|
|
|
|
}, {}); |
|
|
|
|
|
|
|
|
|
dispatch({ |
|
|
|
|
type: TYPE_DISPATCH.SET_FILTER_CRITERIA, |
|
|
|
|
payload: obj, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const endPoint = `/report/api_report/getOrganizationAndCriteria${ |
|
|
|
|
isFilter && queryParams.length ? `?${queryParams.join("&")}` : "" |
|
|
|
|
}`;
|
|
|
|
|
const res = await apiCaller(endPoint, "GET"); |
|
|
|
|
if (res?.status) { |
|
|
|
|
setListData(res?.data); |
|
|
|
@ -235,6 +250,14 @@ export default function CriteriaManage() { |
|
|
|
|
// getDataCriteria();
|
|
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
const isDisabled = () => |
|
|
|
|
!( |
|
|
|
|
searchText || |
|
|
|
|
provinceSelect.value || |
|
|
|
|
districtSelect.value || |
|
|
|
|
statusCriteriaSelected.value |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<div className="flex-1"> |
|
|
|
|
<Header |
|
|
|
@ -274,7 +297,7 @@ export default function CriteriaManage() { |
|
|
|
|
className={"criteria-manage-item"} |
|
|
|
|
/> |
|
|
|
|
<div className="criteria-manage-filter-action"> |
|
|
|
|
<PrimaryButton onClick={handleFilter}>Áp dụng</PrimaryButton> |
|
|
|
|
<PrimaryButton isDisabled={isDisabled()} onClick={handleFilter}>Áp dụng</PrimaryButton> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div className="criteria-manage-list-container"> |
|
|
|
|