fix: 단속내용 인쇄기능 추가 및 답변 내용 수정, 심의목록 심사기간 및 마감일시 수정 기능, 심의 처리 시 에러나면 Exception나는 부분 제거 후 log insert 처리
parent
72486e1b1e
commit
64d6cf2bbc
@ -1,7 +1,7 @@
|
|||||||
NODE_PATH=src
|
NODE_PATH=src
|
||||||
REACT_APP_MODE=production
|
REACT_APP_MODE=production
|
||||||
REACT_APP_VERSION = v0.0.1
|
REACT_APP_VERSION = v0.0.1
|
||||||
#REACT_APP_API_URL=http://localhost:8090
|
REACT_APP_API_URL=http://localhost:8090
|
||||||
#REACT_APP_API_URL=http://211.119.124.9:8090
|
#REACT_APP_API_URL=http://211.119.124.9:8090
|
||||||
REACT_APP_API_URL=http://211.119.124.107:8090
|
#REACT_APP_API_URL=http://211.119.124.62:8090
|
||||||
REACT_APP_SERVER_TIMEOUT=60000
|
REACT_APP_SERVER_TIMEOUT=60000
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,43 @@
|
|||||||
|
@media print {
|
||||||
|
.report + .report {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@page {
|
||||||
|
size: A4;
|
||||||
|
margin: 20mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@page :first {margin:0 20mm}
|
||||||
|
|
||||||
|
.report {
|
||||||
|
//break-after: page;
|
||||||
|
margin-top: 20mm;
|
||||||
|
width: 100%;
|
||||||
|
border-style: double;
|
||||||
|
border-width: 2px;
|
||||||
|
border-color: #000000;
|
||||||
|
border-collapse: collapse;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.report + .report {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.report th, td{
|
||||||
|
border: 1px solid #000000;
|
||||||
|
font-family: "??";
|
||||||
|
font-size:12px;
|
||||||
|
color: #525252;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tit_text2 {
|
||||||
|
font-size:1.5em;
|
||||||
|
font-family: "??";
|
||||||
|
color:#666666;
|
||||||
|
text-decoration: none;
|
||||||
|
line-height: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
@ -0,0 +1,134 @@
|
|||||||
|
import { forwardRef } from 'react';
|
||||||
|
|
||||||
|
import 'assets/scss/print.scss';
|
||||||
|
import NumberFormat from 'react-number-format';
|
||||||
|
import format from 'date-fns/format';
|
||||||
|
|
||||||
|
const toDate = new Date();
|
||||||
|
|
||||||
|
// eslint-disable-next-line
|
||||||
|
const JudgeDataPrintForm = forwardRef((props, ref) => {
|
||||||
|
return (
|
||||||
|
<table ref={ref} className="report">
|
||||||
|
<tr>
|
||||||
|
<td colSpan="5" align="center" className="tit_text2" height="50">
|
||||||
|
{props.content.scDatagb === '1' && '부정주차 이의신청'}
|
||||||
|
{props.content.scDatagb === '2' && '장애인주차구역 위반 의견진술'}
|
||||||
|
처리결과 통지서
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td rowSpan="2" align="center" width="50">
|
||||||
|
<b>
|
||||||
|
의 견
|
||||||
|
<br />
|
||||||
|
진술인
|
||||||
|
</b>
|
||||||
|
</td>
|
||||||
|
<td align="center" height="40" width="50">
|
||||||
|
<b>성 명</b>
|
||||||
|
</td>
|
||||||
|
<td colSpan="3" width="480">
|
||||||
|
{props.content.scName}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center" height="40" width="50">
|
||||||
|
<b>주 소</b>
|
||||||
|
</td>
|
||||||
|
<td colSpan="3">
|
||||||
|
{props.content.scJuso} {props.content.scBunji}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colSpan="2" align="center" height="40" width="100">
|
||||||
|
<b>접 수 번 호</b>
|
||||||
|
</td>
|
||||||
|
<td align="center" width="120">
|
||||||
|
{props.content.scSeq}
|
||||||
|
</td>
|
||||||
|
<td align="center" width="100">
|
||||||
|
<b>차량등록번호</b>
|
||||||
|
</td>
|
||||||
|
<td width="260">{props.content.scCarnum}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colSpan="2" align="center" height="40" width="100">
|
||||||
|
<b>위 반 일 시</b>
|
||||||
|
</td>
|
||||||
|
<td align="center" width="120">
|
||||||
|
<NumberFormat format="####-##-##" value={props.content.scWdate} displayType="text" />
|
||||||
|
|
||||||
|
<NumberFormat format="##:##" value={props.content.scJbtime} displayType="text" />
|
||||||
|
</td>
|
||||||
|
<td align="center" width="100">
|
||||||
|
<b>위 반 내 용</b>
|
||||||
|
</td>
|
||||||
|
<td width="260">
|
||||||
|
{props.content.scDatagb === '1' && '거주자우선주차구역내 부정주차'}
|
||||||
|
{props.content.scDatagb === '2' && '장애인전용주차 구역내 일반차량 주차'}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colSpan="2" align="center" height="40" width="100">
|
||||||
|
<b>위 반 장 소</b>
|
||||||
|
</td>
|
||||||
|
<td colSpan="3">
|
||||||
|
{props.content.scDong} {props.content.scPos}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colSpan="2" align="center" height="40" width="100">
|
||||||
|
<b>심 의 결 과</b>
|
||||||
|
</td>
|
||||||
|
<td colSpan="3">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<span className="tit_text2">({props.content.scStateNm})</span>
|
||||||
|
<br />
|
||||||
|
답변
|
||||||
|
<br />
|
||||||
|
{props.content.scAnswer}
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colSpan="5">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<b>
|
||||||
|
■ 거주자우선주차 구역내 부정주차와 관련하여 제출하신 의견진술에 대하여 심의위원회에서 주차장법 제8조2
|
||||||
|
<br />
|
||||||
|
(노상주차장에서의 주차행위 제한 등)에 의거하여 위반내용을 심의한 결과 위와같이 결정되었음을
|
||||||
|
통보합니다.
|
||||||
|
</b>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<b>■ 기타문의안내 : ARS 1544-2113, FAX : 0505-489-0440</b>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colSpan="5" align="center" height="90">
|
||||||
|
<b>{format(toDate, 'yyyy년 MM월 dd일')}</b>
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<span className="tit_text2">
|
||||||
|
서 울 특 별 시 강 남 구 도 시 관 리 공 단
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
export default JudgeDataPrintForm;
|
@ -0,0 +1,156 @@
|
|||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import NumberFormat from 'react-number-format';
|
||||||
|
import { useAlert } from 'react-alert';
|
||||||
|
|
||||||
|
import { Grid, TextField } from '@mui/material';
|
||||||
|
import Button from '@mui/material/Button';
|
||||||
|
|
||||||
|
import { saveAlert } from 'commons/XitCmm';
|
||||||
|
|
||||||
|
const JudgeDateModifyForm = ({ dateDatas, setDateModify, handleModalSave }) => {
|
||||||
|
const alert = useAlert();
|
||||||
|
|
||||||
|
const [msDatagb, setMsDatagb] = useState(dateDatas?.msDatagb);
|
||||||
|
const [msYear, setMsYear] = useState(dateDatas?.msYear);
|
||||||
|
const [msChasu, setMsChasu] = useState(dateDatas?.msChasu);
|
||||||
|
const [msSdate, setMsSdate] = useState(dateDatas?.msSdate);
|
||||||
|
const [msEdate, setMsEdate] = useState(dateDatas?.msEdate);
|
||||||
|
const [msCdate, setMsCdate] = useState(dateDatas?.msCdate);
|
||||||
|
const [msClosesi, setMsClosesi] = useState(dateDatas?.msClosesi);
|
||||||
|
|
||||||
|
const onSave = () => {
|
||||||
|
// TODO : validation check 추가
|
||||||
|
const param = {
|
||||||
|
msDatagb,
|
||||||
|
msYear,
|
||||||
|
msChasu,
|
||||||
|
msSdate,
|
||||||
|
msEdate,
|
||||||
|
msCdate,
|
||||||
|
msClosesi
|
||||||
|
};
|
||||||
|
|
||||||
|
// 필수항목 빈값 체크
|
||||||
|
if (msSdate.length < 8) {
|
||||||
|
alert.show('심사 시작일자는 필수입니다.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (msEdate.length < 8) {
|
||||||
|
alert.show('심사 종료일자는 필수입니다.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (msCdate.length < 8) {
|
||||||
|
alert.show('심사 마감일자는 필수입니다.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (msClosesi.length < 2) {
|
||||||
|
alert.show('심사 마감시간은 필수입니다.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (msEdate.replace(/-/g, '') > msCdate.replace(/-/g, '')) {
|
||||||
|
alert.show('심사 종료일자가 심사 마감일자보다 클 수 없습니다.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setDateModify(false);
|
||||||
|
saveAlert(
|
||||||
|
() => {
|
||||||
|
handleModalSave('SAVE', param);
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
setDateModify(true);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const onCancel = () => {
|
||||||
|
setDateModify(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Grid mt={2}>
|
||||||
|
<Grid container spacing={0.5} mb={1.5}>
|
||||||
|
<Grid item xs={6}>
|
||||||
|
<TextField disabled required label="심의 년도" size="small" fullWidth value={msYear} autoFocus />
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={6}>
|
||||||
|
<TextField disabled required label="심의 차수" size="small" fullWidth value={msChasu} autoFocus />
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
<Grid container spacing={0.5} mb={1.5}>
|
||||||
|
<Grid item xs={6}>
|
||||||
|
<NumberFormat
|
||||||
|
size="small"
|
||||||
|
customInput={TextField}
|
||||||
|
required
|
||||||
|
label="심사 시작일자"
|
||||||
|
format="####-##-##"
|
||||||
|
fullWidth
|
||||||
|
value={msSdate}
|
||||||
|
onChange={(e) => setMsSdate(e?.target?.value)}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={6}>
|
||||||
|
<NumberFormat
|
||||||
|
size="small"
|
||||||
|
customInput={TextField}
|
||||||
|
required
|
||||||
|
label="심사 종료일자"
|
||||||
|
format="####-##-##"
|
||||||
|
fullWidth
|
||||||
|
value={msEdate}
|
||||||
|
onChange={(e) => setMsEdate(e?.target?.value)}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
<Grid container spacing={0.5} mb={1.5}>
|
||||||
|
<Grid item xs={6}>
|
||||||
|
<NumberFormat
|
||||||
|
size="small"
|
||||||
|
customInput={TextField}
|
||||||
|
required
|
||||||
|
label="심사 마감일자"
|
||||||
|
format="####-##-##"
|
||||||
|
fullWidth
|
||||||
|
value={msCdate}
|
||||||
|
onChange={(e) => setMsCdate(e?.target?.value)}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={6}>
|
||||||
|
<NumberFormat
|
||||||
|
size="small"
|
||||||
|
customInput={TextField}
|
||||||
|
required
|
||||||
|
label="심사 마감시간"
|
||||||
|
format="##"
|
||||||
|
fullWidth
|
||||||
|
value={msClosesi}
|
||||||
|
onChange={(e) => setMsClosesi(e?.target?.value)}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
<Grid item container spacing={0.5} xs={12} mt={1}>
|
||||||
|
<Grid item>
|
||||||
|
<Button variant="contained" color="error" size="small" onClick={onCancel}>
|
||||||
|
취소
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
<Grid item style={{ marginLeft: 'auto' }}>
|
||||||
|
<Button variant="contained" color="primary" size="small" onClick={onSave}>
|
||||||
|
저장
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
JudgeDateModifyForm.propTypes = {
|
||||||
|
dateDatas: PropTypes.object.isRequired,
|
||||||
|
handleModalSave: PropTypes.func.isRequired,
|
||||||
|
setDateModify: PropTypes.func.isRequired
|
||||||
|
};
|
||||||
|
export default JudgeDateModifyForm;
|
@ -0,0 +1,44 @@
|
|||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
import Modal from '@mui/material/Modal';
|
||||||
|
import { IconButton } from '@mui/material';
|
||||||
|
import CloseOutlined from '@mui/icons-material/CloseOutlined';
|
||||||
|
import MainCard from 'ui-component/cards/MainCard';
|
||||||
|
|
||||||
|
const CmmModal = ({ isBackdrop = false, open, setOpen, title, children, style, callback = () => {} }) => {
|
||||||
|
const handleClose = () => {
|
||||||
|
if (callback) callback();
|
||||||
|
setOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="modalGroup">
|
||||||
|
{/* <Button onClick={handleOpen}>Grid Modal(List)</Button> */}
|
||||||
|
<Modal hideBackdrop={isBackdrop} open={open} aria-labelledby="modal-modal-title" aria-describedby="modal-modal-description">
|
||||||
|
<MainCard
|
||||||
|
sx={style}
|
||||||
|
title={title}
|
||||||
|
content
|
||||||
|
secondary={
|
||||||
|
<IconButton size="small" variant="rounded" onClick={handleClose}>
|
||||||
|
<CloseOutlined fontSize="small" />
|
||||||
|
</IconButton>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</MainCard>
|
||||||
|
</Modal>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
CmmModal.propTypes = {
|
||||||
|
isBackdrop: PropTypes.bool,
|
||||||
|
open: PropTypes.bool,
|
||||||
|
title: PropTypes.string,
|
||||||
|
children: PropTypes.node,
|
||||||
|
setOpen: PropTypes.func,
|
||||||
|
callback: PropTypes.func
|
||||||
|
};
|
||||||
|
|
||||||
|
export default CmmModal;
|
Loading…
Reference in New Issue