import React, { useMemo, useRef, useState } from 'react'; import PanelBox from '../../components/PanelBox'; import { useDispatch, useSelector } from 'react-redux'; import { SLGC_TYPES } from '../../consts'; import { IconButton, InputBase, makeStyles, Paper, Table, TableBody, TableContainer, TableHead, TableRow } from '@material-ui/core'; import { Search } from '@material-ui/icons'; import useRequest from '../../../../utils/useRequest'; import { DcpjPromise } from '../../../../models/_/dcpj'; import DpTableRow from '../../../../layouts/mui/DpTableRow'; import DpTableCell from '../../../../layouts/mui/DpTableCell'; import { openRecordPop } from '../../MapCtrl/_'; import { adnmExact, adnmZhen } from '../../../../models/_/adcd'; const useStyles = makeStyles({ root: { display: 'flex', flexDirection: 'column', height: '100%', }, toolbar: { marginTop: '0.8rem', display: 'flex', alignItems: 'center', flexShrink: 0, marginBottom: '0.8rem', }, table: { flexGrow: 1, height: '20rem', marginBottom: '0.5rem' }, input: { marginLeft: '0.8rem', flex: 1, }, iconButton: { padding: '0.6rem', }, }); function SlgcList({ style }) { const classes = useStyles(); const [search, setSearch] = useState(''); const listType = useSelector(s => s.slgcview.listType); const dispatch = useDispatch(); const inputRef = useRef(); const { data } = useRequest(DcpjPromise[listType].get, listType); const filterData = useMemo(() => { if (!data) { return []; } return data.filter((o) => { if (search && o.NAME.indexOf(search) < 0) { return false } return true; }); }, [data, search]) const doSearch = () => { setSearch(inputRef.current.value); } const searchPressed = (e) => { if (e.keyCode === 13) { doSearch(); } } const flyTo = (record) => { openRecordPop(dispatch, listType, record, true); } return (
名称 行政区划 {filterData.map((row) => (
flyTo(row)}>{row.NAME}
{adnmExact(row.ADCD)}
))}
) } export default SlgcList;