fix: 거주지/장애인 상세 목록 반영
parent
2d5c549f59
commit
e21993241c
@ -1,132 +1,117 @@
|
||||
import Board from '../board/Board';
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
import { findJudge, findJudgeDetails } from 'apis/judge';
|
||||
import {
|
||||
Box,
|
||||
Checkbox,
|
||||
IconButton,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TablePagination,
|
||||
TableSortLabel,
|
||||
TableRow,
|
||||
Toolbar,
|
||||
Tooltip,
|
||||
Typography
|
||||
} from '@mui/material';
|
||||
import { visuallyHidden } from '@mui/utils';
|
||||
import Paper from '@mui/material/Paper';
|
||||
import Table from '@mui/material/Table';
|
||||
import TableBody from '@mui/material/TableBody';
|
||||
import TableCell, { tableCellClasses } from '@mui/material/TableCell';
|
||||
import TableContainer from '@mui/material/TableContainer';
|
||||
import TableHead from '@mui/material/TableHead';
|
||||
import TableRow from '@mui/material/TableRow';
|
||||
import { styled } from '@mui/material/styles';
|
||||
import { Divider, Grid } from '@mui/material';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
// project imports
|
||||
import MainCard from 'ui-component/cards/MainCard';
|
||||
const StyledTableCell = styled(TableCell)(({ theme }) => ({
|
||||
[`&.${tableCellClasses.head}`]: {
|
||||
backgroundColor: theme.palette.common.black,
|
||||
color: theme.palette.common.white
|
||||
},
|
||||
[`&.${tableCellClasses.body}`]: {
|
||||
// fontSize: 14
|
||||
}
|
||||
}));
|
||||
|
||||
const ModalJudgeDetail = ({ totData, judgeData, colNames }) => {
|
||||
// const [rowData, setRowData] = useState({});
|
||||
//
|
||||
// const [totalCount, setTotalCount] = useState(0);
|
||||
// const [rowsState, setRowsState] = useState({
|
||||
// page: 0,
|
||||
// pageSize: 20,
|
||||
// rows: []
|
||||
// // loading: false
|
||||
// });
|
||||
// const [rows, setRows] = useState([]);
|
||||
//
|
||||
// const columns = [];
|
||||
//
|
||||
// const tableHeader = null;
|
||||
const StyledTableRow = styled(TableRow)(({ theme }) => ({
|
||||
'&:nth-of-type(odd)': {
|
||||
backgroundColor: theme.palette.action.hover
|
||||
},
|
||||
// hide last border
|
||||
'&:last-child td, &:last-child th': {
|
||||
border: 0
|
||||
}
|
||||
}));
|
||||
|
||||
/*
|
||||
const search = useCallback(() => {
|
||||
const params = {
|
||||
msDatagb,
|
||||
msSdate,
|
||||
msEdate,
|
||||
msChasu,
|
||||
msuTeam
|
||||
};
|
||||
|
||||
findJudgeDetails(params).then((response) => {
|
||||
if (response && response.data) {
|
||||
console.log(response.data);
|
||||
const totUserList = response.data?.totUserList;
|
||||
const resultList = response.data?.resultList;
|
||||
setRows(() => {
|
||||
resultList.map((m) => {
|
||||
let result = { ...m };
|
||||
const users = [...m.simsa];
|
||||
delete result.simsa;
|
||||
users.map((u) => {
|
||||
result = { ...result, [u.NAME]: u.msResult };
|
||||
return result;
|
||||
});
|
||||
return result;
|
||||
|
||||
// return users.map((u) => ({ ...result, [u.NAME]: u.msResult }));
|
||||
});
|
||||
Object.keys(rows[0]).forEach((k) => {
|
||||
columns.push(k);
|
||||
});
|
||||
});
|
||||
|
||||
// Object.keys(gridRows[0]).forEach((k) => {
|
||||
// // console.log(k, v);
|
||||
// columns.push({ headerName: k, headerAlign: 'center', field: k, align: 'center' });
|
||||
// });
|
||||
// setColdef(columns);
|
||||
|
||||
// for (const k in gridRows[0]) {
|
||||
// columns.push({ headerName: k, headerAlign: 'center', field: k, align: 'center' });
|
||||
// }
|
||||
|
||||
setTotalCount(rows.length);
|
||||
setRowsState((prevState) => ({ ...prevState, rows }));
|
||||
// apiRef.current.forceUpdate(); // .updateRowData([]);
|
||||
// apiRef.current.updateRowData([]);
|
||||
}
|
||||
});
|
||||
}, [msDatagb, msSdate, msEdate, msChasu, msuTeam]);
|
||||
*/
|
||||
|
||||
const init = useMemo(() => {
|
||||
console.log(totData, judgeData, colNames);
|
||||
}, []);
|
||||
|
||||
// useEffect(() => {
|
||||
// // if (isInit.current) {
|
||||
// // isInit.current = false;
|
||||
// // return;
|
||||
// // }
|
||||
// init();
|
||||
// // }, [rowsState.page, rowsState.pageSize, selectedYear, searchTxt]);
|
||||
// }, []);
|
||||
const ModalJudgeDetail = ({ totJudgeUserData, judgeData, simsaUser }) => {
|
||||
const totLabel = ['부과', '서손', '미부과', '계'];
|
||||
|
||||
return (
|
||||
<MainCard content={false}>
|
||||
<TableContainer>
|
||||
<Table sx={{ minWidth: 650 }} size="small" aria-label="a dense table">
|
||||
<Paper sx={{ width: '100%', overflow: 'hidden' }}>
|
||||
<TableContainer sx={{ maxHeight: 440 }}>
|
||||
<Table stickyHeader aria-label="sticky table">
|
||||
<TableHead>
|
||||
<TableRow>
|
||||
{colNames.map((name, idx) => (
|
||||
<TableCell sx={{ pl: 3 }}>{name}</TableCell>
|
||||
{/* <StyledTableCell align="center" style={{ minWidth: 80 }} hidden> */}
|
||||
{/* 민원코드 */}
|
||||
{/* </StyledTableCell> */}
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
접수번호
|
||||
</StyledTableCell>
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
차량번호
|
||||
</StyledTableCell>
|
||||
{simsaUser.map((u) => (
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
{u.NAME}
|
||||
</StyledTableCell>
|
||||
))}
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
결과
|
||||
</StyledTableCell>
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{/* 심사 통계 */}
|
||||
{totJudgeUserData.map((totData, idx) => (
|
||||
<StyledTableRow hover key={idx}>
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
{totLabel[idx]}
|
||||
</StyledTableCell>
|
||||
<StyledTableCell align="center" style={{ width: 180 }} />
|
||||
{totData.map((data) => (
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
{data}
|
||||
</StyledTableCell>
|
||||
))}
|
||||
</StyledTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
<TableBody sx={{ mt: 3 }}>
|
||||
<Grid item xs={12}>
|
||||
<Divider />
|
||||
<Divider />
|
||||
</Grid>
|
||||
{/* 접수번호별 심사 결과 */}
|
||||
{judgeData.map((row) => (
|
||||
<TableRow hover key={row.scSeq}>
|
||||
<TableCell sx={{ pl: 3 }} component="th" scope="row">
|
||||
{row.scSeq}
|
||||
</TableCell>
|
||||
<TableCell align="right">{row.scCarnum}</TableCell>
|
||||
</TableRow>
|
||||
<StyledTableRow hover key={row.msSeq}>
|
||||
{/* <StyledTableCell>{row.msMaincode}</StyledTableCell> */}
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
{row.msSeq}
|
||||
</StyledTableCell>
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
{row.msCarnum}
|
||||
</StyledTableCell>
|
||||
|
||||
{/* 심사위원별 심사결과 */}
|
||||
{row.simsa.map((r) => (
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
{r.msuResult}
|
||||
</StyledTableCell>
|
||||
))}
|
||||
|
||||
{/* 최종심사결과 */}
|
||||
<StyledTableCell align="center" style={{ width: 180 }}>
|
||||
{row.simsa[0].msResult}
|
||||
</StyledTableCell>
|
||||
</StyledTableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</MainCard>
|
||||
</Paper>
|
||||
);
|
||||
};
|
||||
ModalJudgeDetail.propTypes = {
|
||||
totJudgeUserData: PropTypes.array.isRequired,
|
||||
judgeData: PropTypes.array.isRequired,
|
||||
simsaUser: PropTypes.array.isRequired
|
||||
};
|
||||
|
||||
export default ModalJudgeDetail;
|
||||
|
@ -0,0 +1,139 @@
|
||||
import Board from '../board/Board';
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
import { findJudge, findJudgeDetails } from 'apis/judge';
|
||||
import {
|
||||
Box,
|
||||
Checkbox,
|
||||
IconButton,
|
||||
Table,
|
||||
TableBody,
|
||||
TableCell,
|
||||
TableContainer,
|
||||
TableHead,
|
||||
TablePagination,
|
||||
TableSortLabel,
|
||||
TableRow,
|
||||
Toolbar,
|
||||
Tooltip,
|
||||
Typography
|
||||
} from '@mui/material';
|
||||
import { visuallyHidden } from '@mui/utils';
|
||||
|
||||
// project imports
|
||||
import MainCard from 'ui-component/cards/MainCard';
|
||||
|
||||
const ModalJudgeDetail = ({ totData, judgeData, simsaUser, colNames }) => {
|
||||
// const [rowData, setRowData] = useState({});
|
||||
//
|
||||
// const [totalCount, setTotalCount] = useState(0);
|
||||
// const [rowsState, setRowsState] = useState({
|
||||
// page: 0,
|
||||
// pageSize: 20,
|
||||
// rows: []
|
||||
// // loading: false
|
||||
// });
|
||||
// const [rows, setRows] = useState([]);
|
||||
//
|
||||
// const columns = [];
|
||||
//
|
||||
// const tableHeader = null;
|
||||
|
||||
/*
|
||||
const search = useCallback(() => {
|
||||
const params = {
|
||||
msDatagb,
|
||||
msSdate,
|
||||
msEdate,
|
||||
msChasu,
|
||||
msuTeam
|
||||
};
|
||||
|
||||
findJudgeDetails(params).then((response) => {
|
||||
if (response && response.data) {
|
||||
console.log(response.data);
|
||||
const totUserList = response.data?.totUserList;
|
||||
const resultList = response.data?.resultList;
|
||||
setRows(() => {
|
||||
resultList.map((m) => {
|
||||
let result = { ...m };
|
||||
const users = [...m.simsa];
|
||||
delete result.simsa;
|
||||
users.map((u) => {
|
||||
result = { ...result, [u.NAME]: u.msResult };
|
||||
return result;
|
||||
});
|
||||
return result;
|
||||
|
||||
// return users.map((u) => ({ ...result, [u.NAME]: u.msResult }));
|
||||
});
|
||||
Object.keys(rows[0]).forEach((k) => {
|
||||
columns.push(k);
|
||||
});
|
||||
});
|
||||
|
||||
// Object.keys(gridRows[0]).forEach((k) => {
|
||||
// // console.log(k, v);
|
||||
// columns.push({ headerName: k, headerAlign: 'center', field: k, align: 'center' });
|
||||
// });
|
||||
// setColdef(columns);
|
||||
|
||||
// for (const k in gridRows[0]) {
|
||||
// columns.push({ headerName: k, headerAlign: 'center', field: k, align: 'center' });
|
||||
// }
|
||||
|
||||
setTotalCount(rows.length);
|
||||
setRowsState((prevState) => ({ ...prevState, rows }));
|
||||
// apiRef.current.forceUpdate(); // .updateRowData([]);
|
||||
// apiRef.current.updateRowData([]);
|
||||
}
|
||||
});
|
||||
}, [msDatagb, msSdate, msEdate, msChasu, msuTeam]);
|
||||
*/
|
||||
|
||||
const init = useMemo(() => {
|
||||
console.log(totData, judgeData, simsaUser, colNames);
|
||||
}, []);
|
||||
|
||||
// useEffect(() => {
|
||||
// // if (isInit.current) {
|
||||
// // isInit.current = false;
|
||||
// // return;
|
||||
// // }
|
||||
// init();
|
||||
// // }, [rowsState.page, rowsState.pageSize, selectedYear, searchTxt]);
|
||||
// }, []);
|
||||
|
||||
return (
|
||||
<MainCard content={false}>
|
||||
<TableContainer>
|
||||
<Table sx={{ minWidth: 850, width: 1000 }} size="small" aria-label="a dense table">
|
||||
<TableHead>
|
||||
<TableRow key="-1">
|
||||
<TableCell sx={{ pl: 3, visibility: false }}>민원코드</TableCell>
|
||||
<TableCell sx={{ pl: 3 }}>접수번호</TableCell>
|
||||
<TableCell sx={{ pl: 3 }}>차량번호</TableCell>
|
||||
{simsaUser.map((u, idx) => (
|
||||
<TableCell sx={{ pl: 3 }}>{u.NAME}</TableCell>
|
||||
))}
|
||||
</TableRow>
|
||||
</TableHead>
|
||||
<TableBody>
|
||||
{judgeData.map((row) => (
|
||||
<TableRow hover key={row.msSeq}>
|
||||
<TableCell sx={{ pl: 3 }} component="th" scope="row">
|
||||
{row.msMaincode}
|
||||
</TableCell>
|
||||
<TableCell>{row.msSeq}</TableCell>
|
||||
<TableCell>{row.msCarnum}</TableCell>
|
||||
{row.simsa.map((r) => (
|
||||
<TableCell>{r.msuResult}</TableCell>
|
||||
))}
|
||||
</TableRow>
|
||||
))}
|
||||
</TableBody>
|
||||
</Table>
|
||||
</TableContainer>
|
||||
</MainCard>
|
||||
);
|
||||
};
|
||||
export default ModalJudgeDetail;
|
Loading…
Reference in New Issue