From c03d709b22df7251f84919374f8a67f70577b5f8 Mon Sep 17 00:00:00 2001 From: ohinhyuk <8156217@naver.com> Date: Wed, 23 Aug 2023 01:40:44 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20semester=EC=9D=84=20number=20-\>=20strin?= =?UTF-8?q?g=EC=9C=BC=EB=A1=9C=20=ED=83=80=EC=9E=85=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=20,=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=EB=93=A4=EC=9D=B4=20=EB=AA=A8=EB=91=90=20select=20?= =?UTF-8?q?=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20=20=EB=B2=84=EA=B7=B8?= =?UTF-8?q?=20=EC=88=98=EC=A0=95(#4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/board/MileageApply.tsx | 224 ------------------ src/components/board/MileageItem.tsx | 70 +++++- src/components/board/MileageRegister.tsx | 222 +++++++++++++++++ src/components/board/MileageView.tsx | 65 ++++- src/components/common/CustomTable.tsx | 4 +- .../common/Table/TableComponents.tsx | 3 +- 6 files changed, 343 insertions(+), 245 deletions(-) delete mode 100644 src/components/board/MileageApply.tsx create mode 100644 src/components/board/MileageRegister.tsx diff --git a/src/components/board/MileageApply.tsx b/src/components/board/MileageApply.tsx deleted file mode 100644 index 0584d41..0000000 --- a/src/components/board/MileageApply.tsx +++ /dev/null @@ -1,224 +0,0 @@ -import { StarIcon } from 'src/theme/overrides/CustomIcons'; -import EnhancedTable from '../common/CustomTable'; -import AddIcon from '@mui/icons-material/Add'; -import { - NUM, - CATEGORY, - SEMESTER, - ITEM, - STUDENT_ID, - STUDENT_NAME, - POINT, - REGISTERED_DATE, -} from 'src/assets/data/fields'; -import AttachFileIcon from '@mui/icons-material/AttachFile'; - -/** - * @component [마일리지 등록] 게시판 - */ - -/** - * @kind [마일리지 등록] - * @breif enum - */ - -export enum MileageApplyBoard { - 'NUM' = NUM, - 'SEMESTER' = SEMESTER, - 'ITEM' = ITEM, - 'DESCRIPTION' = DESCRIPTION, - 'REGISTER_NUM' = REGISTER_NUN, - 'FILE' = FILE, - 'MODIFYIED_DATE' = MODIFYIED_DATE, - 'ADD' = ADD, -} - -/** - * @kind [마일리지 등록] - * @breif 데이터 인터페이스 - */ -interface Data { - [MileageApplyBoard.SEMESTER]: string; - [MileageApplyBoard.ITEM]: string; - [MileageApplyBoard.DESCRIPTION]: string; - [MileageApplyBoard.REGISTER_NUM]: number; - [MileageApplyBoard.FILE]: string; - [MileageApplyBoard.MODIFYIED_DATE]: string; - [MileageApplyBoard.ADD]: string; -} - -export default function MileageApply() { - /** - * @kind [마일리지 등록] - * @brief 데이터 생성 함수 - * - * */ - function createData( - num: number, - semester: string, - item: string, - description: string, - registerNum: number, - file: string, - modifyiedDate: string, - add: string - ): Data { - return { - [MileageApplyBoard.NUM]: num, - [MileageApplyBoard.SEMESTER]: semester, - [MileageApplyBoard.ITEM]: item, - [MileageApplyBoard.DESCRIPTION]: description, - [MileageApplyBoard.REGISTER_NUM]: registerNum, - [MileageApplyBoard.FILE]: file, - [MileageApplyBoard.MODIFYIED_DATE]: modifyiedDate, - [MileageApplyBoard.ADD]: add, - }; - } - - /** - * @kind [마일리지 등록] - * @brief 테이블 헤더 - */ - const headCells = [ - { - id: [MileageApplyBoard.NUM], - numeric: false, - disablePadding: true, - label: '번호', - }, - { - id: [MileageApplyBoard.SEMESTER], - numeric: true, - disablePadding: false, - label: '학기', - }, - { - id: [MileageApplyBoard.ITEM], - numeric: true, - disablePadding: false, - label: '항목명', - }, - { - id: [MileageApplyBoard.DESCRIPTION], - numeric: true, - disablePadding: false, - label: '내용', - }, - { - id: [MileageApplyBoard.REGISTER_NUM], - numeric: true, - disablePadding: false, - label: '등록수', - }, - { - id: [MileageApplyBoard.FILE], - numeric: true, - disablePadding: false, - label: '파일', - }, - { - id: [MileageApplyBoard.MODIFYIED_DATE], - numeric: true, - disablePadding: false, - label: '수정일', - }, - { - id: [MileageApplyBoard.ADD], - numeric: true, - disablePadding: false, - label: '추가', - }, - ]; - - /** - * @kind [마일리지 등록] - * @description 마일리지 항목 리스트 - */ - - const rows = [ - createData( - 1, - '2022-01', - '웹 서비스 캠프', - '웹 서비스 구축에 필요한 스터디를 진행하고 직접 자신만의 웹페이지를 만들어보는 과정', - 23, - , - '2021-01-21', - - ), - createData( - 2, - '2022-01',, - 'C언어 캠프', - 'C언어의 기초에 대해 공부하고 C언어를 이용하여 간단한 프로그램을 만들어보는 과정', - 23, - , - '2022-01-23', - - ), - createData( - 3, - '2022-01', - '파이썬 캠프', - '파이썬 기초를 공부하고 파이썬을 이용하여 간단한 프로그램을 만들어보는 과정', - 15, - , - '2022-01-31', - - ), - createData( - 4, - '2022-01', - 'C++ 캠프', - 'C++ 기초를 공부하고 C++을 이용하여 간단한 프로그램을 만들어보는 과정', - 15, - , - '2022-01-31', - - ), - createData( - 5, - '2022-01', - '자바 캠프', - '자바 기초를 공부하고 자바를 이용하여 간단한 프로그램을 만들어보는 과정', - 15, - , - '2022-01-31', - - ), - createData( - 6, - '2022-02', - '웹 서비스 캠프', - '웹 서비스 구축에 필요한 스터디를 진행하고 직접 자신만의 웹페이지를 만들어보는 과정', - 23, - , - '2021-01-21', - - ), - createData( - 7, - '2022-02', - '데이터 구조', - '데이터 구조에 대해 공부하고 간단한 프로그램을 만들어보는 과정', - 23, - , - '2021-01-21', - - ), - createData( - 8, - '2022-02', - '데이터베이스', - '데이터베이스에 대해 공부하고 간단한 프로그램을 만들어보는 과정', - 23, - , - '2021-01-21', - - ), - - - ]; - - return ; -} diff --git a/src/components/board/MileageItem.tsx b/src/components/board/MileageItem.tsx index f6b4f83..e9abb03 100644 --- a/src/components/board/MileageItem.tsx +++ b/src/components/board/MileageItem.tsx @@ -38,7 +38,7 @@ export enum MileageItemBoard { */ interface Data { [MileageItemBoard.CATEGORY]: string; - [MileageItemBoard.SEMESTER]: number; + [MileageItemBoard.SEMESTER]: string; [MileageItemBoard.ITEM]: string; [MileageItemBoard.MILEAGE]: number; [MileageItemBoard.ISVISIBLE]: boolean; @@ -55,7 +55,7 @@ export default function MileageItem() { function createData( num: number, category: string, - semester: number, + semester: string, item: string, mileage: number, isVisible: boolean, @@ -135,12 +135,66 @@ export default function MileageItem() { */ const rows = [ - createData(1, '전공 마일리지', 7, '웹 서비스 캠프', 30, 'y', '2023-08-21', ), - createData(2, '비교과 - 연구활동', 6, '웹 서비스 캠프', 30, 'y', '2023-08-21', ), - createData(3, '비교과 - 전공활동', 6, '웹 서비스 캠프', 30, 'y', '2023-08-21', ), - createData(4, '비교과 - 특강참여', 7, '웹 서비스 캠프', 30, 'y', '2023-08-21', ), - createData(5, '비교과 - 학회활동', 6, '웹 서비스 캠프', 30, 'y', '2023-08-21', ), - createData(6, '비교과 - 행사참여', 8, '웹 서비스 캠프', 30, 'y', '2023-08-21', ), + createData( + 1, + '전공 마일리지', + '2022-01', + '웹 서비스 캠프', + 30, + 'y', + '2023-08-21', + + ), + createData( + 2, + '비교과 - 연구활동', + '2022-01', + '웹 서비스 캠프', + 30, + 'y', + '2023-08-21', + + ), + createData( + 3, + '비교과 - 전공활동', + '2022-01', + '웹 서비스 캠프', + 30, + 'y', + '2023-08-21', + + ), + createData( + 4, + '비교과 - 특강참여', + '2022-01', + '웹 서비스 캠프', + 30, + 'y', + '2023-08-21', + + ), + createData( + 5, + '비교과 - 학회활동', + '2022-02', + '웹 서비스 캠프', + 30, + 'y', + '2023-08-21', + + ), + createData( + 6, + '비교과 - 행사참여', + '2022-02', + '웹 서비스 캠프', + 30, + 'y', + '2023-08-21', + + ), ]; return ; diff --git a/src/components/board/MileageRegister.tsx b/src/components/board/MileageRegister.tsx new file mode 100644 index 0000000..84b528c --- /dev/null +++ b/src/components/board/MileageRegister.tsx @@ -0,0 +1,222 @@ +import { StarIcon } from 'src/theme/overrides/CustomIcons'; +import EnhancedTable from '../common/CustomTable'; +import AddIcon from '@mui/icons-material/Add'; +import { + NUM, + SEMESTER, + ITEM, + DESCRIPTION, + REGISTER_NUM, + FILE, + MODIFYIED_DATE, + ADD, +} from 'src/assets/data/fields'; +import AttachFileIcon from '@mui/icons-material/AttachFile'; + +/** + * @component [마일리지 등록] 게시판 + */ + +/** + * @kind [마일리지 등록] + * @breif enum + */ + +export enum MileageRegisterBoard { + 'NUM' = NUM, + 'SEMESTER' = SEMESTER, + 'ITEM' = ITEM, + 'DESCRIPTION' = DESCRIPTION, + 'REGISTER_NUM' = REGISTER_NUM, + 'FILE' = FILE, + 'MODIFYIED_DATE' = MODIFYIED_DATE, + 'ADD' = ADD, +} + +/** + * @kind [마일리지 등록] + * @breif 데이터 인터페이스 + */ +interface Data { + [MileageRegisterBoard.SEMESTER]: string; + [MileageRegisterBoard.ITEM]: string; + [MileageRegisterBoard.DESCRIPTION]: string; + [MileageRegisterBoard.REGISTER_NUM]: number; + [MileageRegisterBoard.FILE]: string; + [MileageRegisterBoard.MODIFYIED_DATE]: string; + [MileageRegisterBoard.ADD]: string; +} + +export default function MileageRegister() { + /** + * @kind [마일리지 등록] + * @brief 데이터 생성 함수 + * + * */ + function createData( + num: number, + semester: string, + item: string, + description: string, + registerNum: number, + file: string, + modifyiedDate: string, + add: string + ): Data { + return { + [MileageRegisterBoard.NUM]: num, + [MileageRegisterBoard.SEMESTER]: semester, + [MileageRegisterBoard.ITEM]: item, + [MileageRegisterBoard.DESCRIPTION]: description, + [MileageRegisterBoard.REGISTER_NUM]: registerNum, + [MileageRegisterBoard.FILE]: file, + [MileageRegisterBoard.MODIFYIED_DATE]: modifyiedDate, + [MileageRegisterBoard.ADD]: add, + }; + } + + /** + * @kind [마일리지 등록] + * @brief 테이블 헤더 + */ + const headCells = [ + { + id: [MileageRegisterBoard.NUM], + numeric: false, + disablePadding: true, + label: '번호', + }, + { + id: [MileageRegisterBoard.SEMESTER], + numeric: true, + disablePadding: false, + label: '학기', + }, + { + id: [MileageRegisterBoard.ITEM], + numeric: true, + disablePadding: false, + label: '항목명', + }, + { + id: [MileageRegisterBoard.DESCRIPTION], + numeric: true, + disablePadding: false, + label: '내용', + }, + { + id: [MileageRegisterBoard.REGISTER_NUM], + numeric: true, + disablePadding: false, + label: '등록수', + }, + { + id: [MileageRegisterBoard.FILE], + numeric: true, + disablePadding: false, + label: '파일', + }, + { + id: [MileageRegisterBoard.MODIFYIED_DATE], + numeric: true, + disablePadding: false, + label: '수정일', + }, + { + id: [MileageRegisterBoard.ADD], + numeric: true, + disablePadding: false, + label: '추가', + }, + ]; + + /** + * @kind [마일리지 등록] + * @description 마일리지 항목 리스트 + */ + + const rows = [ + createData( + 1, + '2022-01', + '웹 서비스 캠프', + '웹 서비스 구축에 필요한 스터디를 진행하고 직접 자신만의 웹페이지를 만들어보는 과정', + 23, + , + '2021-01-21', + + ), + createData( + 2, + '2022-01', + 'C언어 캠프', + 'C언어의 기초에 대해 공부하고 C언어를 이용하여 간단한 프로그램을 만들어보는 과정', + 23, + , + '2022-01-23', + + ), + createData( + 3, + '2022-01', + '파이썬 캠프', + '파이썬 기초를 공부하고 파이썬을 이용하여 간단한 프로그램을 만들어보는 과정', + 15, + , + '2022-01-31', + + ), + createData( + 4, + '2022-01', + 'C++ 캠프', + 'C++ 기초를 공부하고 C++을 이용하여 간단한 프로그램을 만들어보는 과정', + 15, + , + '2022-01-31', + + ), + createData( + 5, + '2022-01', + '자바 캠프', + '자바 기초를 공부하고 자바를 이용하여 간단한 프로그램을 만들어보는 과정', + 15, + , + '2022-01-31', + + ), + createData( + 6, + '2022-02', + '웹 서비스 캠프', + '웹 서비스 구축에 필요한 스터디를 진행하고 직접 자신만의 웹페이지를 만들어보는 과정', + 23, + , + '2021-01-21', + + ), + createData( + 7, + '2022-02', + '데이터 구조', + '데이터 구조에 대해 공부하고 간단한 프로그램을 만들어보는 과정', + 23, + , + '2021-01-21', + + ), + createData( + 8, + '2022-02', + '데이터베이스', + '데이터베이스에 대해 공부하고 간단한 프로그램을 만들어보는 과정', + 23, + , + '2021-01-21', + + ), + ]; + + return ; +} diff --git a/src/components/board/MileageView.tsx b/src/components/board/MileageView.tsx index 67016c5..4c53462 100644 --- a/src/components/board/MileageView.tsx +++ b/src/components/board/MileageView.tsx @@ -38,7 +38,7 @@ export enum MileageViewBoard { */ interface Data { [MileageViewBoard.CATEGORY]: string; - [MileageViewBoard.SEMESTER]: number; + [MileageViewBoard.SEMESTER]: string; [MileageViewBoard.ITEM]: string; [MileageViewBoard.STUDENT_ID]: number; [MileageViewBoard.STUDENT_NAME]: string; @@ -55,7 +55,7 @@ export default function MileageView() { function createData( num: number, category: string, - semester: number, + semester: string, item: string, studentId: number, studentName: string, @@ -135,35 +135,80 @@ export default function MileageView() { */ const rows = [ - createData(1, '전공 마일리지', 7, '웹 서비스 캠프', '21800446', '오인혁', 230, '2022-08-21'), - createData(2, '비교과 - 전공활동', 6, 'pps 캠프', '21800447', '한시온', 230, '2022-08-21'), - createData(3, '비교과 - 특강참여', 7, 'c언어 캠프', '21800448', '김민수', 230, '2022-08-21'), + createData( + 1, + '전공 마일리지', + '2022-01', + '웹 서비스 캠프', + '21800446', + '오인혁', + 230, + '2022-08-21' + ), + createData( + 2, + '비교과 - 전공활동', + '2022-01', + 'pps 캠프', + '21800447', + '한시온', + 230, + '2022-08-21' + ), + createData( + 3, + '비교과 - 특강참여', + '2022-01', + 'c언어 캠프', + '21800448', + '김민수', + 230, + '2022-08-21' + ), createData( 4, '비교과 - 학회활동', - 6, + '2022-01', '대경권 프로그래밍 대회', '21800449', '장유진', 230, '2022-08-21' ), - createData(5, '비교과 - 행사참여', 8, '와랩 스터디', '21800450', '정석민', 230, '2022-08-21'), + createData( + 5, + '비교과 - 행사참여', + '2022-01', + '와랩 스터디', + '21800450', + '정석민', + 230, + '2022-08-21' + ), createData( 6, '비교과 - 연구활동', - 6, + '2022-02', '웹 서비스 캠프', '21800451', '장유진', 230, '2022-08-21' ), - createData(7, '전공 마일리지', 7, '웹 서비스 캠프', '21800452', '박민지', 230, '2022-08-21'), + createData( + 7, + '전공 마일리지', + '2022-02', + '웹 서비스 캠프', + '21800452', + '박민지', + 230, + '2022-08-21' + ), createData( 8, '비교과 - 전공활동', - 6, + '2022-02', '웹 서비스 캠프', '21800453', '정가원', diff --git a/src/components/common/CustomTable.tsx b/src/components/common/CustomTable.tsx index 0a7fc38..ebeebbf 100644 --- a/src/components/common/CustomTable.tsx +++ b/src/components/common/CustomTable.tsx @@ -319,7 +319,7 @@ function EnhancedTableToolbar(props: EnhancedTableToolbarProps) { ); } -export default function EnhancedTable({ type, rows, headCells }: { type: string; rows: any }) { +export default function EnhancedTable({ rows, headCells }) { const [order, setOrder] = React.useState('asc'); const [orderBy, setOrderBy] = React.useState('calories'); const [selected, setSelected] = React.useState([]); @@ -335,7 +335,7 @@ export default function EnhancedTable({ type, rows, headCells }: { type: string; const handleSelectAllClick = (event: React.ChangeEvent) => { if (event.target.checked) { - const newSelected = rows.map((n) => n.name); + const newSelected = rows.map((n) => n.num); setSelected(newSelected); return; } diff --git a/src/components/common/Table/TableComponents.tsx b/src/components/common/Table/TableComponents.tsx index e8bda95..2869311 100644 --- a/src/components/common/Table/TableComponents.tsx +++ b/src/components/common/Table/TableComponents.tsx @@ -11,6 +11,7 @@ import GavelIcon from '@mui/icons-material/Gavel'; import SettingsIcon from '@mui/icons-material/Settings'; import MileageItem from 'src/components/board/MileageItem'; import MileageView from 'src/components/board/MileageView'; +import MileageRegister from 'src/components/board/MileageRegister'; export const ComponentReturn = (text) => { switch (text) { @@ -25,7 +26,7 @@ export const ComponentReturn = (text) => { case Board['마일리지 조회']: return ; case Board['마일리지 등록']: - return ; + return ; case Board['신청자 관리']: return ; case Board['학생 관리']: