feat: 관리자 단에서 '위원회 관리' > '위원회 일정 관리'에 '등록' 버튼을 누른 후 '위원회 일정 등록' 페이지 placeholder 수정 건

thkim
thkim 2024-01-09 13:30:28 +09:00
parent a7ee5c3318
commit 7767f27c23
3 changed files with 7304 additions and 7064 deletions

View File

@ -3,6 +3,10 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"@material-ui/core": "^4.12.4",
"@material-ui/icons": "^4.11.3",
"@mui/material": "^5.14.19",
"@mui/styles": "^5.15.3",
"bootstrap": "^5.3.2",
"qs": "^6.11.0",
"react": "^18.2.0",

View File

@ -2,6 +2,8 @@ import React, { useState, useEffect } from 'react';
import { Link, useLocation, useNavigate } from 'react-router-dom';
import DatePicker from "react-datepicker";
import * as EgovNet from 'api/egovFetch';
import URL from 'constants/url';
import CODE from 'constants/code';
@ -11,6 +13,22 @@ import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin';
import 'react-datepicker/dist/react-datepicker.css';
import styled from "styled-components";
import { makeStyles } from "@mui/styles";
const useStyles = makeStyles(() => ({
shake: {
animation: "$description 15s",
animationIterationCount: "1"
},
"@keyframes description": {
"0%": { opacity: 0, transform: "translateY(0)" },
"15%": { transform: "translateY(-4px, 0)" },
"30%": { transform: "translateY(6px, 0)" },
"45%": { transform: "translateY(-4px, 0)" },
"60%": { transform: "translateY(6px, 0)" },
"100%": { opacity: 1, transform: "translateY(0)" }
}
}));
const StyledDiv = styled.div`
.org-under-id {
@ -40,6 +58,9 @@ function SchedulesEdit(props) {
console.log("[Start] EgovAdminScheduleEdit ------------------------------");
console.log("EgovAdminScheduleEdit [props] : ", props);
const classes = useStyles();
const [isShake, setShake] = useState(false);
const navigate = useNavigate();
const location = useLocation();
console.log("EgovAdminScheduleEdit [location] : ", location);
@ -171,6 +192,11 @@ function SchedulesEdit(props) {
}
const formValidator = (formData) => {
if (formData.get('divMeet') === null || formData.get('divMeet') === "") {
alert("일정구분은 필수 값입니다.");
return false;
}
if (formData.get('schdulNm') === null || formData.get('schdulNm') === "") {
alert("일정명은 필수 값입니다.");
return false;
@ -179,10 +205,6 @@ function SchedulesEdit(props) {
alert("일정내용은 필수 값입니다.");
return false;
}
if (formData.get('schdulSe') === null || formData.get('schdulSe') === "") {
alert("일정구분은 필수 값입니다.");
return false;
}
if (formData.get('schdulIpcrCode') === null || formData.get('schdulIpcrCode') === "") {
alert("중요도는 필수 값입니다.");
return false;
@ -263,10 +285,10 @@ function SchedulesEdit(props) {
<dl>
<dt>구분<span className="req">필수</span></dt>
<dd>
<label className="f_select w_150" htmlFor="schdulSe">
<select id="schdulSe" name="schdulSe" title="일정구분"
value={scheduleDetail.schdulSe}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, schdulSe: e.target.value })}>
<label className="f_select w_150" htmlFor="div-meet">
<select id="div-meet" name="div-meet" title="일정구분"
value={scheduleDetail.divMeet}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, divMeet: e.target.value })}>
<option key={"none"} value="">선택</option>
{scheduleInit && scheduleInit.result && scheduleInit.result.listCodes
&& scheduleInit.result.listCodes.map((item) => (
@ -279,10 +301,10 @@ function SchedulesEdit(props) {
<dl>
<dt>심의위원회<span className="req">필수</span></dt>
<dd>
<label className="f_select w_250 org-group-id" htmlFor="orgGroupId">
<select id="orgGroupId" name="orgGroupId" title="중요도"
value={scheduleDetail.orgGroupId}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, orgGroupId: e.target.value })}>
<label className="f_select w_250 up-committe" htmlFor="up-committee">
<select id="up-committe" name="up-committe" title="심의위원회-상위"
value={scheduleDetail.upCommittee}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, upCommittee: e.target.value })}>
<option value="">선택</option>
{scheduleInit && scheduleInit.result && scheduleInit.result.listTopOrg
&& scheduleInit.result.listTopOrg.map((item) => (
@ -290,10 +312,10 @@ function SchedulesEdit(props) {
))}
</select>
</label>
<label className="f_select w_250 org-under-id" htmlFor="orgUnderId">
<select id="orgUnderId" name="orgUnderId" title="중요도"
value={scheduleDetail.orgUnderId}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, orgUnderId: e.target.value })}>
<label className="f_select w_250 org-under-id" htmlFor="committee">
<select id="committee" name="committee" title="심의위원회-하위"
value={scheduleDetail.committee}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, committee: e.target.value })}>
<option value="">선택</option>
{scheduleApiOrgApiDepthList && scheduleApiOrgApiDepthList.result && scheduleApiOrgApiDepthList.result.list
&& scheduleApiOrgApiDepthList.result.list.map((item) => (
@ -304,19 +326,20 @@ function SchedulesEdit(props) {
</dd>
</dl>
<dl>
<dt><label htmlFor="schdulDeptName">제목</label><span className="req">필수</span></dt>
<dt><label htmlFor="title">제목</label><span className="req">필수</span></dt>
<dd>
<input className="f_input2 w_full" type="text" name="schdulDeptName" title="부서" id="schdulDeptName"
value={scheduleDetail.schdulDeptName} readOnly
<input className="f_input2 w_full" type="text" name="title" title="제목" id="title" placeholder="제목을 입력하세요."
value={scheduleDetail.title}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, title: e.target.value })}
/>
</dd>
</dl>
<dl>
<dt><label htmlFor="schdulNm">장소</label><span className="req">필수</span></dt>
<dt><label htmlFor="location">장소</label><span className="req">필수</span></dt>
<dd>
<input className="f_input2 w_full" type="text" name="schdulNm" title="부서" id="schdulNm" placeholder="일정 테스트"
defaultValue={scheduleDetail.schdulNm}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, schdulNm: e.target.value })} />
<input className="f_input2 w_full" type="text" name="location" title="장소" id="location" placeholder="장소를 입력하세요."
defaultValue={scheduleDetail.location}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, location: e.target.value })} />
</dd>
</dl>
<dl>
@ -360,11 +383,11 @@ function SchedulesEdit(props) {
</dd>
</dl>
<dl>
<dt><label htmlFor="schdulCn">내용</label><span className="req">필수</span></dt>
<dt><label htmlFor="contents">내용</label><span className="req">필수</span></dt>
<dd>
<textarea className="f_txtar w_full h_100" name="schdulCn" id="schdulCn" cols="30" rows="10" placeholder="일정내용"
defaultValue={scheduleDetail.schdulCn}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, schdulCn: e.target.value })}
<textarea className="f_txtar w_full h_100" name="contents" id="contents" cols="30" rows="10" placeholder="일정 내용을 입력하세요."
defaultValue={scheduleDetail.contents}
onChange={(e) => setScheduleDetail({ ...scheduleDetail, contents: e.target.value })}
></textarea>
</dd>
</dl>
@ -379,7 +402,7 @@ function SchedulesEdit(props) {
</div>
<div className="right_col btn1">
<Link to={URL.ADMIN_SCHEDULE} className="btn btn_blue_h46 w_100">목록</Link>
<Link to={URL.ADMIN__COMMITTEE__SCHEDULES} className="btn btn_blue_h46 w_100">목록</Link>
</div>
</div>
{/* <!--// 버튼영역 --> */}

File diff suppressed because it is too large Load Diff