You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
6.1 KiB
209 lines
6.1 KiB
import React, { useEffect, useRef, useState } from 'react' |
|
import { MultiSelect } from 'react-multi-select-component' |
|
import { Col, Label, Row } from 'reactstrap' |
|
import Select from 'react-select' |
|
import { Button as ButtonP } from 'primereact/button' |
|
import { isObjEmpty } from '../../kytp/util' |
|
import jquery from 'jquery' |
|
import collect from 'collect.js' |
|
|
|
import { useDispatch, useSelector } from 'react-redux' |
|
import { setCqlFilterWilayah, setSelectedOpsi } from '../../kytp/store/PetaStore' |
|
import { matoaLayers } from '../layers/overlayLayers' |
|
import { useMap } from 'react-leaflet' |
|
const NipPengampu = ({ dataSend, setDataSend, activeTab, toast, setHiddenGraphMatoa, dataOpsi, setIsOpenPopUpWilayah, refFeatureBawah }) => { |
|
const map = useMap() |
|
const dispatch = useDispatch() |
|
const storeKpdl = useSelector((state) => state.kpdl) |
|
|
|
const [kanwil, setKanwil] = useState([]) |
|
const [kpp, setKpp] = useState({}) |
|
const [seksi, setSeksi] = useState([]) |
|
const [ar, setAr] = useState([]) |
|
|
|
const [kanwilSelected, setKanwilSelected] = useState(null) |
|
const [kppSelected, setKppSelected] = useState({}) |
|
const [seksiSelected, setSeksiSelected] = useState([]) |
|
const [arSelected, setArSelected] = useState([]) |
|
const base_url = '/engineN/' |
|
|
|
useEffect(() => { |
|
jquery.ajax({ |
|
url: base_url + 'kewilayahan/ref/kanwil', |
|
method: 'GET', |
|
dataType: 'json', |
|
success: (data) => { |
|
setKanwil(data) |
|
} |
|
}) |
|
}, []) |
|
|
|
useEffect(() => { |
|
setKpp([]) |
|
setSeksi([]) |
|
setAr([]) |
|
setKppSelected(null) |
|
setSeksiSelected([]) |
|
setArSelected([]) |
|
if (kanwilSelected && !isObjEmpty(kanwilSelected)) { |
|
const kanwil = kanwilSelected.value |
|
jquery.ajax({ |
|
url: base_url + 'kewilayahan/ref/kpp', |
|
method: 'GET', |
|
dataType: 'json', |
|
data: { kanwil }, |
|
success: (data) => { |
|
setKpp(data) |
|
} |
|
}) |
|
} |
|
}, [kanwilSelected]) |
|
|
|
useEffect(() => { |
|
setSeksi([]) |
|
setAr([]) |
|
setSeksiSelected([]) |
|
setArSelected([]) |
|
if (kppSelected && !isObjEmpty(kppSelected)) { |
|
const kpp = kppSelected.value |
|
jquery.ajax({ |
|
url: base_url + 'kewilayahan/ref/seksi', |
|
method: 'GET', |
|
dataType: 'json', |
|
data: { kpp }, |
|
success: (data) => { |
|
setSeksi(data) |
|
} |
|
}) |
|
} |
|
}, [kppSelected]) |
|
|
|
useEffect(() => { |
|
setAr([]) |
|
setArSelected([]) |
|
const seksi = collect(seksiSelected).pluck('value').all() |
|
if (seksi.length && !isObjEmpty(seksiSelected)) { |
|
const kpp = kppSelected.value |
|
|
|
jquery.ajax({ |
|
url: base_url + 'kewilayahan/ref/ar', |
|
method: 'POST', |
|
dataType: 'json', |
|
data: { kpp, seksi }, |
|
success: (data) => { |
|
setAr(data) |
|
} |
|
}) |
|
} |
|
}, [seksiSelected]) |
|
const buttonProsesOnClick = () => { |
|
refFeatureBawah.current.clearLayers() |
|
const nip_ar_pengampu = collect(arSelected).pluck('value').all() |
|
const nip_ar_pengampu2 = collect(arSelected).pluck('value2').all() |
|
if (nip_ar_pengampu.length) { |
|
dispatch(setSelectedOpsi(dataOpsi.pengampu)) |
|
setDataSend({ opsiWilZona: dataOpsi.pengampu.key, nip_ar_pengampu }) |
|
const par_pengampu = nip_ar_pengampu2.join("','") |
|
const cq_filter_poi = "NIP_AR_PENGAMPU in ('" + par_pengampu + "')" |
|
dispatch(setCqlFilterWilayah(cq_filter_poi)) |
|
matoaLayers.poiMatoaNpwpLayer.setParams({ |
|
styles: 'poi_matoa_npwp', |
|
cql_filter: cq_filter_poi, |
|
minZoom: 4 |
|
}) |
|
|
|
matoaLayers.poiMatoaNpwpNullLayer.setParams({ |
|
styles: 'poi_matoa_npwp', |
|
cql_filter: cq_filter_poi, |
|
minZoom: 4 |
|
}) |
|
|
|
map.setZoom(8) |
|
setIsOpenPopUpWilayah(false) |
|
} else { |
|
toast.current.show({ severity: 'info', summary: 'Info', detail: 'AR Pengampu harus dipilih' }) |
|
} |
|
} |
|
|
|
return ( |
|
<> |
|
<Row> |
|
<Col md="3"> |
|
<Label className="form-label" for="basicInput"> |
|
Kanwil |
|
</Label> |
|
<Select |
|
placeholder="Pilih Kanwil" |
|
className="basic-single w-100" |
|
onChange={(e) => { |
|
setKanwilSelected(e) |
|
}} |
|
classNamePrefix="select" |
|
// defaultValue={kanwilSelected} |
|
value={kanwilSelected} |
|
isClearable={false} |
|
options={kanwil} |
|
/> |
|
</Col> |
|
<Col md="3"> |
|
<Label className="form-label" for="Pilih KPP"> |
|
KPP |
|
</Label> |
|
<Select |
|
placeholder="Pilih KPP" |
|
className="basic-single w-100" |
|
onChange={(e) => { |
|
setKppSelected(e) |
|
}} |
|
classNamePrefix="select" |
|
// defaultValue={kanwilSelected} |
|
value={kppSelected} |
|
isClearable={false} |
|
options={kpp} |
|
/> |
|
</Col> |
|
<Col md="3"> |
|
<Label className="form-label" for="Pilih Seksi"> |
|
Seksi |
|
</Label> |
|
<MultiSelect |
|
className="me-1 w-full" |
|
hasSelectAll={true} |
|
debounceDuration={300} |
|
options={seksi} |
|
value={seksiSelected} |
|
onChange={(e) => { |
|
setSeksiSelected(e) |
|
}} |
|
labelledBy="Pilih Seksi" |
|
overrideStrings={{ allItemsAreSelected: 'Semua dipilih', selectSomeItems: 'Pilih Seksi' }} |
|
/> |
|
</Col> |
|
<Col md="3"> |
|
<Label className="form-label" for="Pilih AR"> |
|
AR |
|
</Label> |
|
<MultiSelect |
|
className="me-1 w-full" |
|
hasSelectAll={true} |
|
debounceDuration={300} |
|
options={ar} |
|
value={arSelected} |
|
onChange={(e) => { |
|
setArSelected(e) |
|
}} |
|
labelledBy="Pilih AR" |
|
overrideStrings={{ allItemsAreSelected: 'Semua dipilih', selectSomeItems: 'Pilih AR' }} |
|
/> |
|
</Col> |
|
</Row> |
|
<Row className="mt-2"> |
|
<Col sm="12"> |
|
<ButtonP onClick={() => buttonProsesOnClick()} label="Proses" severity="" rounded className="w-10rem text-white text-base" /> |
|
</Col> |
|
</Row> |
|
</> |
|
) |
|
} |
|
|
|
export default NipPengampu
|
|
|