-Dashboard 심사자 이름 *로 변경
-심의 목록 차량번호 뒤 4자리 *로 변경
-모바일 사용 시 개별심사 데이터가 정확하게 보이지 않는 화면 개선 요청
-관리자 사용자관리 비활성 계정 복구 및 패스워드 변경 기능 추가
mpower
sjh88 2 years ago
parent bb8dbde9f7
commit 2df9eda17f

65
package-lock.json generated

@ -76,6 +76,7 @@
"react-quill": "^2.0.0-beta.4",
"react-redux": "^7.2.6",
"react-resizable": "^3.0.4",
"react-responsive": "^9.0.2",
"react-router-dom": "^6.2.1",
"react-scripts": "^4.0.3",
"react-slick": "^0.28.1",
@ -8116,6 +8117,11 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/css-mediaquery": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
"integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q=="
},
"node_modules/css-prefers-color-scheme": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz",
@ -16327,6 +16333,14 @@
"remove-accents": "0.4.2"
}
},
"node_modules/matchmediaquery": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz",
"integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==",
"dependencies": {
"css-mediaquery": "^0.1.2"
}
},
"node_modules/material-ui-popup-state": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/material-ui-popup-state/-/material-ui-popup-state-2.0.1.tgz",
@ -21248,6 +21262,23 @@
"react": ">= 16.3"
}
},
"node_modules/react-responsive": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-9.0.2.tgz",
"integrity": "sha512-+4CCab7z8G8glgJoRjAwocsgsv6VA2w7JPxFWHRc7kvz8mec1/K5LutNC2MG28Mn8mu6+bu04XZxHv5gyfT7xQ==",
"dependencies": {
"hyphenate-style-name": "^1.0.0",
"matchmediaquery": "^0.3.0",
"prop-types": "^15.6.1",
"shallow-equal": "^1.2.1"
},
"engines": {
"node": ">=0.10"
},
"peerDependencies": {
"react": ">=16.8.0"
}
},
"node_modules/react-router": {
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.8.1.tgz",
@ -23071,6 +23102,11 @@
"sha.js": "bin.js"
}
},
"node_modules/shallow-equal": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
"integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
},
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@ -34029,6 +34065,11 @@
}
}
},
"css-mediaquery": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
"integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q=="
},
"css-prefers-color-scheme": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz",
@ -40369,6 +40410,14 @@
"remove-accents": "0.4.2"
}
},
"matchmediaquery": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz",
"integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==",
"requires": {
"css-mediaquery": "^0.1.2"
}
},
"material-ui-popup-state": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/material-ui-popup-state/-/material-ui-popup-state-2.0.1.tgz",
@ -44099,6 +44148,17 @@
"react-draggable": "^4.0.3"
}
},
"react-responsive": {
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-9.0.2.tgz",
"integrity": "sha512-+4CCab7z8G8glgJoRjAwocsgsv6VA2w7JPxFWHRc7kvz8mec1/K5LutNC2MG28Mn8mu6+bu04XZxHv5gyfT7xQ==",
"requires": {
"hyphenate-style-name": "^1.0.0",
"matchmediaquery": "^0.3.0",
"prop-types": "^15.6.1",
"shallow-equal": "^1.2.1"
}
},
"react-router": {
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.8.1.tgz",
@ -45497,6 +45557,11 @@
"safe-buffer": "^5.0.1"
}
},
"shallow-equal": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
"integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",

@ -72,6 +72,7 @@
"react-quill": "^2.0.0-beta.4",
"react-redux": "^7.2.6",
"react-resizable": "^3.0.4",
"react-responsive": "^9.0.2",
"react-router-dom": "^6.2.1",
"react-scripts": "^4.0.3",
"react-slick": "^0.28.1",

@ -32,8 +32,8 @@ import _ from 'lodash';
// 23.04.06 sjh 통신 오래걸리는 작업이 있을 경우 적용
const configCustom = { timeout: 300000 };
export async function findDashboard() {
const res = await axios.get(GET_DASHBOARD);
export async function findDashboard(params) {
const res = await axios.get(GET_DASHBOARD, { params });
if (res.success) {
// res.data = res.data.map((d, idx) => ({ ...d, rowId: setRowId(params, idx) }));
return res;

@ -173,6 +173,10 @@ export const removeAlert = (confirmProcess, dismissProcess) => {
confirmAlert('삭제 하시겠습니까?', confirmProcess, dismissProcess);
};
export const updateAlert = (confirmProcess, dismissProcess) => {
confirmAlert('변경 하시겠습니까?', confirmProcess, dismissProcess);
};
export const Toast = swal.mixin({
toast: true,
backdrop: true,

@ -49,6 +49,9 @@ const JudgeDateModifyForm = ({ dateDatas, setDateModify, handleModalSave }) => {
alert.show('심사 마감일자는 필수입니다.');
return;
}
if (msStartsi.length === 1) {
setMsStartsi(`0${msStartsi}`);
}
if (msStartsi.length < 2) {
alert.show('심사 시작시간은 필수입니다.');
return;

@ -6,6 +6,8 @@ import { findJudgeImages, saveJudgeResult } from 'apis/judge';
import { SkipNext, SkipPrevious, Save } from '@mui/icons-material';
import ImgItem from '../../cmm/ImgItem';
import NumberFormat from 'react-number-format';
// eslint-disable-next-line import/no-extraneous-dependencies
import { useMediaQuery } from 'react-responsive';
const ProcessJudge = (props) => {
const { rowDatas, setOpen, showAlert } = props;
@ -19,6 +21,13 @@ const ProcessJudge = (props) => {
const [selectedResult, setSelectedResult] = useState();
const [selectedImg, setSelectedImg] = useState({});
const isDesktopOrLaptop = useMediaQuery({
query: '(min-width: 1224px)'
});
const isTabletOrMobile = useMediaQuery({ query: '(max-width: 1224px)' });
const size2 = (isDesktopOrLaptop && 2) || (isTabletOrMobile && 12);
const size6 = (isDesktopOrLaptop && 6) || (isTabletOrMobile && 12);
const getImgList = (row) => {
findJudgeImages(row).then((res) => {
const { arrFrecadImg, arrContadImg, arrPicadImg } = res;
@ -94,7 +103,7 @@ const ProcessJudge = (props) => {
return (
<>
<Grid container spacing={1}>
<Grid item xs={6}>
<Grid item xs={size6}>
<ImageList cols={4}>
{frecadImgs
?.filter((img) => img.imgName !== '')
@ -117,7 +126,7 @@ const ProcessJudge = (props) => {
))}
</ImageList>
</Grid>
<Grid item xs={5.9} ml={0.8} border={1}>
<Grid item xs={(isDesktopOrLaptop && 5.9) || (isTabletOrMobile && 12)} ml={0.8} border={1}>
<Grid container>
<Grid item xs={12}>
{selectedImg && (
@ -134,10 +143,10 @@ const ProcessJudge = (props) => {
</Grid>
</Grid>
<Grid container spacing={1} mt={1}>
<Grid item xs={2}>
<Grid item xs={size2}>
<TextField size="small" required disabled label="접수번호" fullWidth value={rowDatas[pageRef.current].msSeq} />
</Grid>
<Grid item xs={2}>
<Grid item xs={size2}>
<NumberFormat
disabled
size="small"
@ -149,10 +158,10 @@ const ProcessJudge = (props) => {
value={rowDatas[pageRef.current]?.msWdate || ''}
/>
</Grid>
<Grid item xs={6}>
<Grid item xs={size6}>
<TextField size="small" required disabled label="위반장소" fullWidth value={rowDatas[pageRef.current]?.msPos || ''} />
</Grid>
<Grid item xs={2}>
<Grid item xs={size2}>
<FormControl fullWidth>
<InputLabel disabled required>
심의결정

@ -6,6 +6,8 @@ import { findParkingImages, saveParkingJudgeResult } from 'apis/judge';
import { SkipNext, SkipPrevious, Save } from '@mui/icons-material';
import ImgItem from '../../cmm/ImgItem';
import NumberFormat from 'react-number-format';
// eslint-disable-next-line import/no-extraneous-dependencies
import { useMediaQuery } from 'react-responsive';
const ProcessParkingJudge = (props) => {
const { rowDatas, setOpen, showAlert } = props;
@ -19,6 +21,13 @@ const ProcessParkingJudge = (props) => {
const [selectedResult, setSelectedResult] = useState();
const [selectedImg, setSelectedImg] = useState({});
const isDesktopOrLaptop = useMediaQuery({
query: '(min-width: 1224px)'
});
const isTabletOrMobile = useMediaQuery({ query: '(max-width: 1224px)' });
const size2 = (isDesktopOrLaptop && 2) || (isTabletOrMobile && 12);
const size6 = (isDesktopOrLaptop && 6) || (isTabletOrMobile && 12);
const getImgList = (row) => {
findParkingImages(row?.rcMaincode).then((res) => {
const { arrFrecadImg, arrContadImg, arrPicadImg } = res;
@ -94,7 +103,7 @@ const ProcessParkingJudge = (props) => {
return (
<>
<Grid container spacing={1}>
<Grid item xs={6}>
<Grid item xs={size6}>
<ImageList cols={4}>
{frecadImgs
?.filter((img) => img.imgName !== '')
@ -117,7 +126,7 @@ const ProcessParkingJudge = (props) => {
))}
</ImageList>
</Grid>
<Grid item xs={5.9} ml={0.8} border={1}>
<Grid item xs={(isDesktopOrLaptop && 5.9) || (isTabletOrMobile && 12)} ml={0.8} border={1}>
<Grid container spacing={1}>
<Grid item xs={12}>
{selectedImg && (
@ -134,10 +143,10 @@ const ProcessParkingJudge = (props) => {
</Grid>
</Grid>
<Grid container spacing={1} mt={1}>
<Grid item xs={2}>
<Grid item xs={size2}>
<TextField size="small" required disabled label="접수번호" fullWidth value={rowDatas[pageRef.current].msSeq} />
</Grid>
<Grid item xs={2}>
<Grid item xs={size2}>
<NumberFormat
disabled
size="small"
@ -149,10 +158,10 @@ const ProcessParkingJudge = (props) => {
value={rowDatas[pageRef.current]?.msWdate || ''}
/>
</Grid>
<Grid item xs={6}>
<Grid item xs={size6}>
<TextField size="small" required disabled label="위반장소" fullWidth value={rowDatas[pageRef.current]?.msPos || ''} />
</Grid>
<Grid item xs={2}>
<Grid item xs={size2}>
<FormControl fullWidth>
<InputLabel disabled required>
심의결정

@ -7,9 +7,9 @@ import { Button, Divider, FormControl, Grid, InputLabel, MenuItem, Select, TextF
import 'react-quill/dist/quill.snow.css';
// project imports
import { Delete, List, Save } from '@mui/icons-material';
import { Delete, List, Save, Update } from '@mui/icons-material';
import PropTypes from 'prop-types';
import { removeAlert, saveAlert } from '../../../commons/XitCmm';
import { removeAlert, saveAlert, updateAlert } from '../../../commons/XitCmm';
import { useAlert } from 'react-alert';
const UserManagementForm = (props) => {
@ -72,10 +72,16 @@ const UserManagementForm = (props) => {
isenable
};
setOpen(false);
if (isenable === '1')
removeAlert(
() => handleModalSave('DELETE', saveParam),
() => setOpen(true)
);
if (isenable === '0')
updateAlert(
() => handleModalSave('DELETE', saveParam),
() => setOpen(true)
);
};
return (
@ -96,7 +102,7 @@ const UserManagementForm = (props) => {
<Grid item sm={5.9}>
<TextField
size="small"
disabled={!create}
// disabled={!create}
required
label="비밀번호"
type="password"
@ -176,8 +182,15 @@ const UserManagementForm = (props) => {
}
}}
>
<Button variant="contained" size="small" color="error" startIcon={<Delete />} onClick={onRemove}>
삭제
<Button
variant="contained"
size="small"
color={(rowData.isenable === '0' && 'warning') || (rowData.isenable === '1' && 'error')}
startIcon={(rowData.isenable === '0' && <Update />) || (rowData.isenable === '1' && <Delete />)}
onClick={onRemove}
>
{rowData.isenable === '0' && '복구'}
{rowData.isenable === '1' && '삭제'}
</Button>
</Grid>
)}

@ -12,10 +12,12 @@ import { IconFileText } from '@tabler/icons';
import { useTheme } from '@mui/material/styles';
import Box from '@mui/material/Box';
import { useAlert } from 'react-alert';
import useAuth from 'hooks/useAuth';
// ==============================|| DEFAULT DASHBOARD ||============================== //
const Dashboard = () => {
const { accesstype } = useAuth();
const theme = useTheme();
const showAlert = useAlert();
const [totalCount, setTotalCount] = useState(0);
@ -131,7 +133,7 @@ const Dashboard = () => {
// size: rowsState.pageSize
// };
findDashboard().then((res) => {
findDashboard({ accesstype }).then((res) => {
// console.log(res);
if (res && res?.success) {
const rows = res.data?.pBoardList.content.map((d, idx) => ({ ...d, rowId: idx + 1 }));

Loading…
Cancel
Save