feat: 심사자 심의 진행
parent
51bc985152
commit
2af89d02a8
@ -0,0 +1,305 @@
|
|||||||
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import _ from 'lodash';
|
||||||
|
import getYear from 'date-fns/getYear';
|
||||||
|
|
||||||
|
// material-ui
|
||||||
|
import { GridActionsCellItem } from '@mui/x-data-grid';
|
||||||
|
import { Divider, FormControl, Grid, InputAdornment, Link, MenuItem, OutlinedInput, Select, Typography } from '@mui/material';
|
||||||
|
import CreditScoreIcon from '@mui/icons-material/CreditScore';
|
||||||
|
import { IconSearch } from '@tabler/icons';
|
||||||
|
|
||||||
|
// berry ui
|
||||||
|
import MainCard from 'ui-component/cards/MainCard';
|
||||||
|
|
||||||
|
// project imports
|
||||||
|
import MuiDataGrid from 'views/cmm/mui-grid/MuiDataGrid';
|
||||||
|
import InputLabel from 'ui-component/extended/Form/InputLabel';
|
||||||
|
import { findByUserJudges } from 'apis/judge';
|
||||||
|
import CmmModal from 'views/cmm/CmmModal';
|
||||||
|
import ProcessJudge from './ProcessJudge';
|
||||||
|
import useAuth from 'hooks/useAuth';
|
||||||
|
import { Delete } from '@mui/icons-material';
|
||||||
|
import Button from '@mui/material/Button';
|
||||||
|
import { useAlert } from 'react-alert';
|
||||||
|
|
||||||
|
const itemData = [
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1551963831-b3b1ca40c98e',
|
||||||
|
title: 'Breakfast'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1551782450-a2132b4ba21d',
|
||||||
|
title: 'Burger'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1522770179533-24471fcdba45',
|
||||||
|
title: 'Camera'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1444418776041-9c7e33cc5a9c',
|
||||||
|
title: 'Coffee'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1533827432537-70133748f5c8',
|
||||||
|
title: 'Hats'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1558642452-9d2a7deb7f62',
|
||||||
|
title: 'Honey'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1516802273409-68526ee1bdd6',
|
||||||
|
title: 'Basketball'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1518756131217-31eb79b20e8f',
|
||||||
|
title: 'Fern'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1597645587822-e99fa5d45d25',
|
||||||
|
title: 'Mushrooms'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1567306301408-9b74779a11af',
|
||||||
|
title: 'Tomato basil'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1471357674240-e1a485acb3e1',
|
||||||
|
title: 'Sea star'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1589118949245-7d38baf380d6',
|
||||||
|
title: 'Bike'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const JudgeByUserReview = ({ msDatagb, menuName }) => {
|
||||||
|
const { user } = useAuth();
|
||||||
|
const showAlert = useAlert();
|
||||||
|
const [totalCount, setTotalCount] = useState(0);
|
||||||
|
const [rowsState, setRowsState] = useState({
|
||||||
|
page: 0,
|
||||||
|
pageSize: 100,
|
||||||
|
rows: []
|
||||||
|
// loading: false
|
||||||
|
});
|
||||||
|
const [open, setOpen] = useState(false);
|
||||||
|
const [title, setTitle] = useState('');
|
||||||
|
const [rowDatas, setRowDatas] = useState([]);
|
||||||
|
const [minSdate, setMinSdate] = useState('');
|
||||||
|
const [maxEdate, setMaxEdate] = useState('');
|
||||||
|
const [minSeq, setMinSeq] = useState(0);
|
||||||
|
const [maxSeq, setMaxSeq] = useState(0);
|
||||||
|
|
||||||
|
const search = useCallback(() => {
|
||||||
|
const params = {
|
||||||
|
msDatagb
|
||||||
|
};
|
||||||
|
|
||||||
|
findByUserJudges(params).then((res) => {
|
||||||
|
if (res && res.data) {
|
||||||
|
setTotalCount(res.count);
|
||||||
|
setRowsState((prevState) => ({ ...prevState, rows: res.data }));
|
||||||
|
const arrMsSeq = res.data.map((r) => r.msSeq);
|
||||||
|
setMinSdate(_.min(res.data.map((r) => r.msSdate)));
|
||||||
|
setMaxEdate(_.max(res.data.map((r) => r.msEdate)));
|
||||||
|
setMinSeq(_.min(arrMsSeq));
|
||||||
|
setMaxSeq(_.max(arrMsSeq));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, [msDatagb]);
|
||||||
|
|
||||||
|
const processJudge = useCallback(
|
||||||
|
(row) => () => {
|
||||||
|
setTitle(`${menuName} 심의 - ${row.msSeq}`);
|
||||||
|
setRowDatas([row]);
|
||||||
|
setOpen(true);
|
||||||
|
},
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
// { headerName: 'rowId', field: 'rowId' },
|
||||||
|
{
|
||||||
|
headerName: 'msMaincode',
|
||||||
|
headerAlign: 'center',
|
||||||
|
field: 'msMaincode',
|
||||||
|
align: 'center',
|
||||||
|
width: 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headerName: '접수번호',
|
||||||
|
headerAlign: 'center',
|
||||||
|
field: 'msSeq',
|
||||||
|
align: 'center',
|
||||||
|
width: 100
|
||||||
|
},
|
||||||
|
{ headerName: '심의차수', headerAlign: 'center', field: 'msChasu', align: 'center', width: 100 },
|
||||||
|
{ headerName: '차량번호', headerAlign: 'center', field: 'msCarnum', align: 'center', width: 100 },
|
||||||
|
{
|
||||||
|
headerName: '심의결정',
|
||||||
|
headerAlign: 'center',
|
||||||
|
field: 'msResult',
|
||||||
|
align: 'center',
|
||||||
|
renderCell: (params) => {
|
||||||
|
switch (params.row.msResult) {
|
||||||
|
case '0':
|
||||||
|
return '심의전';
|
||||||
|
// break;
|
||||||
|
case '1':
|
||||||
|
return '부과';
|
||||||
|
// break;
|
||||||
|
case '2':
|
||||||
|
return '미부과';
|
||||||
|
// break;
|
||||||
|
default:
|
||||||
|
return params.row.msResult;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
width: 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headerName: '심의결정(msu)',
|
||||||
|
headerAlign: 'center',
|
||||||
|
field: 'msuResult',
|
||||||
|
align: 'center',
|
||||||
|
renderCell: (params) => {
|
||||||
|
switch (params.row.msResult) {
|
||||||
|
case '0':
|
||||||
|
return '심의전';
|
||||||
|
// break;
|
||||||
|
case '1':
|
||||||
|
return '부과';
|
||||||
|
// break;
|
||||||
|
case '2':
|
||||||
|
return '미부과';
|
||||||
|
// break;
|
||||||
|
default:
|
||||||
|
return params.row.msResult;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
width: 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headerName: '심의 기간',
|
||||||
|
headerAlign: 'center',
|
||||||
|
field: 'msDate',
|
||||||
|
minWidth: 200,
|
||||||
|
width: 250,
|
||||||
|
description: '심사 기간',
|
||||||
|
valueGetter: (params) => `${params.row.msSdate} ~ ${params.row.msEdate}`,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headerName: '심의 마감 일시',
|
||||||
|
headerAlign: 'center',
|
||||||
|
field: 'msCdate',
|
||||||
|
type: 'dateTime',
|
||||||
|
minWidth: 150,
|
||||||
|
width: 200,
|
||||||
|
valueGetter: (params) => `${params.row.msCdate} ${params.row.msClosesi}`,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headerName: '개별심사',
|
||||||
|
headerAlign: 'center',
|
||||||
|
field: 'actions',
|
||||||
|
type: 'actions',
|
||||||
|
width: 80,
|
||||||
|
getActions: (params) => [
|
||||||
|
<GridActionsCellItem color="error" icon={<CreditScoreIcon />} label="개별심사" onClick={processJudge(params.row)} />
|
||||||
|
],
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const handleSearch = async (event) => {
|
||||||
|
if (event.type === 'keydown' && event.key === 'Enter') {
|
||||||
|
const newString = event?.target.value;
|
||||||
|
search();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const onJudge = useCallback(() => {
|
||||||
|
setTitle(`${menuName} 심의`);
|
||||||
|
setRowDatas(rowsState?.rows);
|
||||||
|
setOpen(true);
|
||||||
|
}, []);
|
||||||
|
useEffect(() => {
|
||||||
|
search();
|
||||||
|
// }, [rowsState.page, rowsState.pageSize, selectedYear, searchTxt]);
|
||||||
|
}, [search]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<MainCard>
|
||||||
|
<Grid container spacing={2} alignItems="center">
|
||||||
|
<Grid container item spacing={2} xs={7} justifyContent="start">
|
||||||
|
<Grid item>
|
||||||
|
<Typography variant="subtitle1">
|
||||||
|
[ <span style={{ color: 'red' }}>심의기간 : </span>{' '}
|
||||||
|
<span style={{ color: 'blue' }}>
|
||||||
|
{minSdate} ~ {maxEdate}
|
||||||
|
</span>{' '}
|
||||||
|
]
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item>
|
||||||
|
<Typography variant="subtitle1">
|
||||||
|
[ <span style={{ color: 'red' }}>접수번호 : </span>
|
||||||
|
<span style={{ color: 'blue' }}>
|
||||||
|
{' '}
|
||||||
|
{minSeq} ~ {maxSeq}
|
||||||
|
</span>{' '}
|
||||||
|
]
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
<Grid container item spacing={2} xs={5} justifyContent="end" alignItems="center">
|
||||||
|
<Grid item>
|
||||||
|
<Typography variant="subtitle1">
|
||||||
|
[ <span style={{ color: 'blue' }}>{user?.name} 위원 / </span>
|
||||||
|
<span style={{ color: 'red' }}>{user?.team?.substring(2)}팀</span> ]
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item>
|
||||||
|
<Button variant="contained" size="small" startIcon={<CreditScoreIcon />} onClick={onJudge}>
|
||||||
|
심사
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
{/* <Grid item> */}
|
||||||
|
{/* <Button variant="contained" size="small" startIcon={<CreditScoreIcon />} onClick={onJudge}> */}
|
||||||
|
{/* 심사 */}
|
||||||
|
{/* </Button> */}
|
||||||
|
{/* </Grid> */}
|
||||||
|
</Grid>
|
||||||
|
<Grid container spacing={1} item xs={12} mt={1}>
|
||||||
|
<Grid item xs={12}>
|
||||||
|
<Divider />
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
<MuiDataGrid
|
||||||
|
// isCheckbox
|
||||||
|
isHideFooter
|
||||||
|
columns={columns}
|
||||||
|
rowsState={rowsState}
|
||||||
|
totalCount={totalCount}
|
||||||
|
setRowsState={setRowsState}
|
||||||
|
// handleCellClick={handleOnCellClick}
|
||||||
|
// handleSelection={handleSelection}
|
||||||
|
// selectionModel={selectionModel}
|
||||||
|
/>
|
||||||
|
<CmmModal isBackdrop title={title} open={open} setOpen={setOpen}>
|
||||||
|
<ProcessJudge rowDatas={rowDatas} />
|
||||||
|
</CmmModal>
|
||||||
|
</MainCard>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
JudgeByUserReview.propTypes = {
|
||||||
|
msDatagb: PropTypes.string.isRequired,
|
||||||
|
menuName: PropTypes.string.isRequired
|
||||||
|
};
|
||||||
|
|
||||||
|
export default JudgeByUserReview;
|
@ -1,275 +0,0 @@
|
|||||||
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
||||||
import PropTypes from 'prop-types';
|
|
||||||
|
|
||||||
import _ from 'lodash';
|
|
||||||
import getYear from 'date-fns/getYear';
|
|
||||||
|
|
||||||
// material-ui
|
|
||||||
import { GridActionsCellItem } from '@mui/x-data-grid';
|
|
||||||
import { Divider, FormControl, Grid, InputAdornment, Link, MenuItem, OutlinedInput, Select } from '@mui/material';
|
|
||||||
import CreditScoreIcon from '@mui/icons-material/CreditScore';
|
|
||||||
import { IconSearch } from '@tabler/icons';
|
|
||||||
|
|
||||||
// berry ui
|
|
||||||
import MainCard from 'ui-component/cards/MainCard';
|
|
||||||
|
|
||||||
// project imports
|
|
||||||
import MuiDataGrid from 'views/cmm/mui-grid/MuiDataGrid';
|
|
||||||
import InputLabel from 'ui-component/extended/Form/InputLabel';
|
|
||||||
import { findByUserJudges } from 'apis/judge';
|
|
||||||
import CmmModal from 'views/cmm/CmmModal';
|
|
||||||
|
|
||||||
const JudgeReview = ({ msDatagb, menuName }) => {
|
|
||||||
const isInit = useRef(true);
|
|
||||||
const year = getYear(new Date());
|
|
||||||
const years = _.range(year, year - 14, -1);
|
|
||||||
|
|
||||||
const [open, setOpen] = useState(false);
|
|
||||||
const [title, setTitle] = useState();
|
|
||||||
|
|
||||||
const [selectedYear, setSelectedYear] = useState(year);
|
|
||||||
const [searchTxt, setSearchTxt] = useState('');
|
|
||||||
|
|
||||||
const [totalCount, setTotalCount] = useState(0);
|
|
||||||
const [rowsState, setRowsState] = useState({
|
|
||||||
page: 0,
|
|
||||||
pageSize: 100,
|
|
||||||
rows: []
|
|
||||||
// loading: false
|
|
||||||
});
|
|
||||||
const [judgeResultData, setJudgeResultData] = useState({
|
|
||||||
totJudgeUserData: [],
|
|
||||||
judgeData: [],
|
|
||||||
judgeCars: [],
|
|
||||||
judgeUserData: [],
|
|
||||||
simsaUser: [],
|
|
||||||
selectedRow: {},
|
|
||||||
judgeTeam: ''
|
|
||||||
});
|
|
||||||
|
|
||||||
const search = useCallback(() => {
|
|
||||||
const params = {
|
|
||||||
msDatagb
|
|
||||||
};
|
|
||||||
|
|
||||||
findByUserJudges(params).then((response) => {
|
|
||||||
if (response && response.data) {
|
|
||||||
setTotalCount(response.count);
|
|
||||||
setRowsState((prevState) => ({ ...prevState, rows: response.data }));
|
|
||||||
// apiRef.current.forceUpdate(); // .updateRowData([]);
|
|
||||||
// apiRef.current.updateRowData([]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, [msDatagb, selectedYear, searchTxt]);
|
|
||||||
|
|
||||||
const execJudge = useCallback(
|
|
||||||
(row) => () => {
|
|
||||||
// removeJudge(row).then((response) => {
|
|
||||||
// if (response && response.success) {
|
|
||||||
// setRowsState({
|
|
||||||
// ...rowsState,
|
|
||||||
// page: 0
|
|
||||||
// });
|
|
||||||
// search();
|
|
||||||
// } else {
|
|
||||||
// alert.show(response.message);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
},
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
|
|
||||||
const columns = [
|
|
||||||
// { headerName: 'rowId', field: 'rowId' },
|
|
||||||
{ headerName: '접수번호', headerAlign: 'center', field: 'msSeq', align: 'center', width: 100 },
|
|
||||||
{ headerName: '심의차수', headerAlign: 'center', field: 'msChasu', align: 'center', width: 100 },
|
|
||||||
{ headerName: '차량번호', headerAlign: 'center', field: 'msCarnum', align: 'center', width: 100 },
|
|
||||||
{
|
|
||||||
headerName: '심의결정',
|
|
||||||
headerAlign: 'center',
|
|
||||||
field: 'msResult',
|
|
||||||
align: 'center',
|
|
||||||
renderCell: (params) => {
|
|
||||||
switch (params.row.msResult) {
|
|
||||||
case '0':
|
|
||||||
return '심의전';
|
|
||||||
// break;
|
|
||||||
case '1':
|
|
||||||
return '부과';
|
|
||||||
// break;
|
|
||||||
case '2':
|
|
||||||
return '미부과';
|
|
||||||
// break;
|
|
||||||
default:
|
|
||||||
return params.row.msResult;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
width: 100
|
|
||||||
},
|
|
||||||
{
|
|
||||||
headerName: '심의결정(msu)',
|
|
||||||
headerAlign: 'center',
|
|
||||||
field: 'msuResult',
|
|
||||||
align: 'center',
|
|
||||||
renderCell: (params) => {
|
|
||||||
switch (params.row.msResult) {
|
|
||||||
case '0':
|
|
||||||
return '심의전';
|
|
||||||
// break;
|
|
||||||
case '1':
|
|
||||||
return '부과';
|
|
||||||
// break;
|
|
||||||
case '2':
|
|
||||||
return '미부과';
|
|
||||||
// break;
|
|
||||||
default:
|
|
||||||
return params.row.msResult;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
width: 100
|
|
||||||
},
|
|
||||||
{
|
|
||||||
headerName: '심사 기간',
|
|
||||||
headerAlign: 'center',
|
|
||||||
field: 'msDate',
|
|
||||||
minWidth: 200,
|
|
||||||
width: 250,
|
|
||||||
description: '심사 기간',
|
|
||||||
valueGetter: (params) => `${params.row.msSdate} ~ ${params.row.msEdate}`,
|
|
||||||
renderCell: (params) => (
|
|
||||||
<Link underline="hover" href="#">
|
|
||||||
{params.value}
|
|
||||||
</Link>
|
|
||||||
),
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
headerName: '심사 마감 일시',
|
|
||||||
headerAlign: 'center',
|
|
||||||
field: 'msCdate',
|
|
||||||
type: 'dateTime',
|
|
||||||
minWidth: 150,
|
|
||||||
width: 200,
|
|
||||||
valueGetter: (params) => `${params.row.msCdate} ${params.row.msClosesi}`,
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
headerName: '개별심사',
|
|
||||||
headerAlign: 'center',
|
|
||||||
field: 'actions',
|
|
||||||
type: 'actions',
|
|
||||||
width: 80,
|
|
||||||
getActions: (params) => [
|
|
||||||
<GridActionsCellItem color="error" icon={<CreditScoreIcon />} label="개별심사" onClick={execJudge(params.row)} />
|
|
||||||
],
|
|
||||||
align: 'center'
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
const handleSearch = async (event) => {
|
|
||||||
if (!selectedYear) return;
|
|
||||||
|
|
||||||
if (event.type === 'keydown' && event.key === 'Enter') {
|
|
||||||
const newString = event?.target.value;
|
|
||||||
setSearchTxt(newString);
|
|
||||||
search();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (isInit.current) {
|
|
||||||
isInit.current = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
search();
|
|
||||||
// }, [rowsState.page, rowsState.pageSize, selectedYear, searchTxt]);
|
|
||||||
}, [search]);
|
|
||||||
|
|
||||||
const handleOnCellClick = async (e) => {
|
|
||||||
// if (e?.field === 'msDate') {
|
|
||||||
// const params = {
|
|
||||||
// msDatagb: e.row.msDatagb,
|
|
||||||
// msSdate: e.row.msSdate,
|
|
||||||
// msEdate: e.row.msEdate,
|
|
||||||
// msChasu: e.row.msChasu,
|
|
||||||
// msuTeam: e.row.msuTeam
|
|
||||||
// };
|
|
||||||
// const res = await findJudgeResults(params);
|
|
||||||
// setJudgeResultData({
|
|
||||||
// ...res?.data,
|
|
||||||
// selectedRow: e.row,
|
|
||||||
// judgeTeam: res.data?.judgeTeam
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// setTitle(`${e.row.msCdate} ${menuName} 심사 결과 (${e.row.msChasu}차 - 총 ${e.row.cnt}건)`);
|
|
||||||
// setOpen(true);
|
|
||||||
// }
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<MainCard>
|
|
||||||
<Grid container spacing={2} alignItems="center">
|
|
||||||
<Grid item xs={12}>
|
|
||||||
<Grid container spacing={1}>
|
|
||||||
<Grid item xs={2}>
|
|
||||||
<FormControl fullWidth>
|
|
||||||
<InputLabel required>심의 년도</InputLabel>
|
|
||||||
<Select
|
|
||||||
size="small"
|
|
||||||
id="reviewYear"
|
|
||||||
name="reviewYear"
|
|
||||||
defaultValue={year}
|
|
||||||
onChange={(e) => setSelectedYear(e.target.value)}
|
|
||||||
>
|
|
||||||
{years.map((year, idx) => (
|
|
||||||
<MenuItem key={idx} value={year}>
|
|
||||||
{year}
|
|
||||||
</MenuItem>
|
|
||||||
))}
|
|
||||||
</Select>
|
|
||||||
</FormControl>
|
|
||||||
</Grid>
|
|
||||||
<Grid item>
|
|
||||||
<OutlinedInput
|
|
||||||
required
|
|
||||||
placeholder="심의차수"
|
|
||||||
onKeyDown={handleSearch}
|
|
||||||
size="small"
|
|
||||||
autoFocus
|
|
||||||
endAdornment={
|
|
||||||
<InputAdornment position="end">
|
|
||||||
<IconSearch stroke={1.5} size="1rem" />
|
|
||||||
</InputAdornment>
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
|
||||||
<Grid container spacing={1} item xs={12} mt={1}>
|
|
||||||
<Grid item xs={12}>
|
|
||||||
<Divider />
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
|
||||||
<MuiDataGrid
|
|
||||||
isHideFooter
|
|
||||||
columns={columns}
|
|
||||||
rowsState={rowsState}
|
|
||||||
totalCount={totalCount}
|
|
||||||
setRowsState={setRowsState}
|
|
||||||
handleCellClick={handleOnCellClick}
|
|
||||||
// handleSelection={handleSelection}
|
|
||||||
// selectionModel={selectionModel}
|
|
||||||
/>
|
|
||||||
<CmmModal isBackdrop title={title} open={open} setOpen={setOpen}>
|
|
||||||
<div>Empty</div>
|
|
||||||
</CmmModal>
|
|
||||||
</MainCard>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
JudgeReview.propTypes = {
|
|
||||||
msDatagb: PropTypes.string.isRequired,
|
|
||||||
menuName: PropTypes.string.isRequired
|
|
||||||
};
|
|
||||||
|
|
||||||
export default JudgeReview;
|
|
@ -0,0 +1,124 @@
|
|||||||
|
import React, { useEffect, useState } from 'react';
|
||||||
|
import { CardMedia, ImageList, ImageListItem } from '@mui/material';
|
||||||
|
import { useDropzone } from 'react-dropzone';
|
||||||
|
import { Image } from '@mui/icons-material';
|
||||||
|
import Box from '@mui/material/Box';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { judgeFileDownload } from '../../../apis/judge';
|
||||||
|
import _ from 'lodash';
|
||||||
|
|
||||||
|
const itemData = [
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1551963831-b3b1ca40c98e',
|
||||||
|
title: 'Breakfast'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1551782450-a2132b4ba21d',
|
||||||
|
title: 'Burger'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1522770179533-24471fcdba45',
|
||||||
|
title: 'Camera'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1444418776041-9c7e33cc5a9c',
|
||||||
|
title: 'Coffee'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1533827432537-70133748f5c8',
|
||||||
|
title: 'Hats'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1558642452-9d2a7deb7f62',
|
||||||
|
title: 'Honey'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1516802273409-68526ee1bdd6',
|
||||||
|
title: 'Basketball'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1518756131217-31eb79b20e8f',
|
||||||
|
title: 'Fern'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1597645587822-e99fa5d45d25',
|
||||||
|
title: 'Mushrooms'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1567306301408-9b74779a11af',
|
||||||
|
title: 'Tomato basil'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1471357674240-e1a485acb3e1',
|
||||||
|
title: 'Sea star'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1589118949245-7d38baf380d6',
|
||||||
|
title: 'Bike'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const ProcessJudge = ({ rowDatas, showAlert }) => {
|
||||||
|
const [previewImage, setPreviewImage] = useState();
|
||||||
|
|
||||||
|
const { getRootProps, getInputProps } = useDropzone({
|
||||||
|
accept: 'image/*',
|
||||||
|
onDrop: (acceptedFiles) => {
|
||||||
|
setPreviewImage(URL.createObjectURL(itemData[0].img));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const viewImg = (scDatagb, scCode, methodName) => {
|
||||||
|
judgeFileDownload(
|
||||||
|
{
|
||||||
|
scDatagb,
|
||||||
|
scCode,
|
||||||
|
methodName
|
||||||
|
},
|
||||||
|
showAlert
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// rowDatas[0]?[`scFrecad`];
|
||||||
|
// rowDatas[0]?[`scContad`];
|
||||||
|
// 1. 데이타 조회 - msMaincode로 gnRecallSc
|
||||||
|
// 2. 이미지 조회 - judgeFileDownload : data['scPicad1'] 가 있는 경우
|
||||||
|
useEffect(() => {
|
||||||
|
rowDatas?.forEach((r) => _.range(1, 5, 1).forEach((idx) => viewImg(r.scDatagb, r.msMaincode, `scPicad${idx}`)));
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<CardMedia
|
||||||
|
component="img"
|
||||||
|
sx={{
|
||||||
|
height: 233,
|
||||||
|
width: 350,
|
||||||
|
maxHeight: { xs: 233, md: 167 },
|
||||||
|
maxWidth: { xs: 350, md: 250 }
|
||||||
|
}}
|
||||||
|
src={itemData[0].img}
|
||||||
|
// src={previewImage}
|
||||||
|
/>
|
||||||
|
<Box
|
||||||
|
component="img"
|
||||||
|
sx={{
|
||||||
|
height: 233,
|
||||||
|
width: 350,
|
||||||
|
maxHeight: { xs: 233, md: 167 },
|
||||||
|
maxWidth: { xs: 350, md: 250 }
|
||||||
|
}}
|
||||||
|
alt="The house from the offer."
|
||||||
|
src={itemData[0].img}
|
||||||
|
/>
|
||||||
|
<Image src={itemData[0].img} />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
ProcessJudge.propTypes = {
|
||||||
|
rowDatas: PropTypes.array.isRequired,
|
||||||
|
showAlert: PropTypes.object
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ProcessJudge;
|
@ -0,0 +1,97 @@
|
|||||||
|
import React, { useState } from 'react';
|
||||||
|
import { CardMedia, ImageList, ImageListItem } from '@mui/material';
|
||||||
|
import { useDropzone } from 'react-dropzone';
|
||||||
|
import { Image } from '@mui/icons-material';
|
||||||
|
import Box from '@mui/material/Box';
|
||||||
|
|
||||||
|
const itemData = [
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1551963831-b3b1ca40c98e',
|
||||||
|
title: 'Breakfast'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1551782450-a2132b4ba21d',
|
||||||
|
title: 'Burger'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1522770179533-24471fcdba45',
|
||||||
|
title: 'Camera'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1444418776041-9c7e33cc5a9c',
|
||||||
|
title: 'Coffee'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1533827432537-70133748f5c8',
|
||||||
|
title: 'Hats'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1558642452-9d2a7deb7f62',
|
||||||
|
title: 'Honey'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1516802273409-68526ee1bdd6',
|
||||||
|
title: 'Basketball'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1518756131217-31eb79b20e8f',
|
||||||
|
title: 'Fern'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1597645587822-e99fa5d45d25',
|
||||||
|
title: 'Mushrooms'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1567306301408-9b74779a11af',
|
||||||
|
title: 'Tomato basil'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1471357674240-e1a485acb3e1',
|
||||||
|
title: 'Sea star'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
img: 'https://images.unsplash.com/photo-1589118949245-7d38baf380d6',
|
||||||
|
title: 'Bike'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const ProcessJudge2 = () => {
|
||||||
|
const [previewImage, setPreviewImage] = useState();
|
||||||
|
|
||||||
|
const { getRootProps, getInputProps } = useDropzone({
|
||||||
|
accept: 'image/*',
|
||||||
|
onDrop: (acceptedFiles) => {
|
||||||
|
setPreviewImage(URL.createObjectURL(itemData[0].img));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<CardMedia
|
||||||
|
component="img"
|
||||||
|
sx={{
|
||||||
|
height: 233,
|
||||||
|
width: 350,
|
||||||
|
maxHeight: { xs: 233, md: 167 },
|
||||||
|
maxWidth: { xs: 350, md: 250 }
|
||||||
|
}}
|
||||||
|
src={itemData[0].img}
|
||||||
|
// src={previewImage}
|
||||||
|
/>
|
||||||
|
<Box
|
||||||
|
component="img"
|
||||||
|
sx={{
|
||||||
|
height: 233,
|
||||||
|
width: 350,
|
||||||
|
maxHeight: { xs: 233, md: 167 },
|
||||||
|
maxWidth: { xs: 350, md: 250 }
|
||||||
|
}}
|
||||||
|
alt="The house from the offer."
|
||||||
|
src={itemData[0].img}
|
||||||
|
/>
|
||||||
|
<Image src={itemData[0].img} />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ProcessJudge2;
|
Loading…
Reference in New Issue