Untitled

 avatar
unknown
plain_text
a month ago
3.8 kB
1
Indexable
 const updateParameters = (values = []) => {
        const valuesMap = Array.isArray(values)
            ? values.reduce((acc, { name, value }) => {
                  acc[name[0]] = value || ""
                  return acc
              }, {})
            : {}
        const NCC_ID = valuesMap["NCC_ID"] || ""
        const Nam_SX = valuesMap["Nam_SX"] || ""
        const Nuoc_SX = valuesMap["Nuoc_SX"] || ""
        const Nhan_Hieu = valuesMap["Nhan_Hieu"] || ""
        const Nguon_Goc_TS = valuesMap["Nguon_Goc_TS"] || ""
        const Ly_Do_Tang = valuesMap["Ly_Do_Tang"] || ""
        const Muc_Dich_Giao = valuesMap["Muc_Dich_Giao"] || ""
        const Hien_Trang_SD = valuesMap["Hien_Trang_SD"] || ""
        const Hien_Trang_SD_Nha_Dat = valuesMap["Hien_Trang_SD_Nha_Dat"] || ""
        const Loai_TS = valuesMap["Loai_TS"] || ""
        const Truong_ID = valuesMap["Truong_ID"] || ""
        const Ngay_Filter = valuesMap["Ngay_Filter"] || []
        const keyword = valuesMap["keyword"] || ""
        const Bien_Kiem_Soat = valuesMap["Bien_Kiem_Soat"] || ""
        const So_May = valuesMap["So_May"] || ""
        const So_Khung = valuesMap["So_Khung"] || ""
        const So_Cho_Ngoi = valuesMap["So_Cho_Ngoi"] || ""
        const Tai_Trong = valuesMap["Tai_Trong"] || ""

        const formatAddress = {
            Tinh_Thanh: getIncludes(valuesMap, "Tinh_Thanh"),
            Quan_Huyen: getIncludes(valuesMap, "Quan_Huyen"),
            Phuong_Xa: getIncludes(valuesMap, "Phuong_Xa"),
        }

        const fields = ["Nguon_NS", "Quy", "Nguon_Khac", "Nguon_Vien_Tro", "Nguon_Du_An", "Tong"]

        const initialValues = fields.reduce((acc, field) => {
            acc[field] = valuesMap[field] || ""
            acc[`${field}_select`] = valuesMap[`${field}_select`] || ""
            return acc
        }, {})

        const formattedParamsNumber = fields.reduce((acc, field) => {
            const value = initialValues[field]
            const selectValue = initialValues[`${field}_select`]
            acc[field] = value ? (selectValue ? formatSelect(selectValue, field) : formatRadio(value, field)) : ""
            return acc
        }, {})

        const formattedGiaTri = fields.reduce((acc, field) => {
            acc[`${field}_Tu`] = formattedParamsNumber[field]?.[`${field}_Tu`] || ""
            acc[`${field}_Den`] = formattedParamsNumber[field]?.[`${field}_Den`] || ""
            return acc
        }, {})

        const formattedParams = {
            Nam_SX: formatDate(Nam_SX),
            Nguon_Goc_TS: formatArray(Nguon_Goc_TS),
            Ly_Do_Tang: formatArray(Ly_Do_Tang),
            Muc_Dich_Giao: formatArray(Muc_Dich_Giao),
            Hien_Trang_SD: formatArray(Hien_Trang_SD),
            Hien_Trang_SD_Nha_Dat: formatArray(Hien_Trang_SD_Nha_Dat),
            Nhan_Hieu: formatArray(Nhan_Hieu),
            Nuoc_SX: formatArray(Nuoc_SX),
            NCC_ID: formatArray(NCC_ID),
            Loai_TS: formatArray(Loai_TS.value),
        }

        const [Ngay_HD_From, Ngay_HD_To] = Ngay_Filter ? Ngay_Filter.map((date) => formatDate(date)) : ["", ""]

        const newParams = {
            ...parameters,
            ...formattedParams,
            ...formattedGiaTri,
            ...formatAddress,
            keyword,
            Bien_Kiem_Soat,
            So_May,
            So_Khung,
            So_Cho_Ngoi,
            Tai_Trong,
            Truong_ID,
            Ngay_HD_From,
            Ngay_HD_To,
        }

        const debounceValue = keyword || Bien_Kiem_Soat || So_May || So_Khung || So_Cho_Ngoi || Tai_Trong || Tai_Trong
        if (debounceValue) {
            debounceSearch(newParams, setParameters)
        } else {
            setParameters({ ...newParams })
        }
    }
Leave a Comment