From cdc8edff283d0f50a457347dbfd7c13bf3b4befb Mon Sep 17 00:00:00 2001 From: sanguu516 Date: Fri, 21 Jun 2024 10:24:43 +0900 Subject: [PATCH] =?UTF-8?q?=ED=85=8C=EC=9D=B4=EB=B8=94=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 38 ++++++++ src/assets/css/custom.css | 2 +- .../flight/NewFlightApprovalsTable.js | 96 ++++++++++++++----- 3 files changed, 109 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7eaaebd6..3707dbcd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26960,6 +26960,44 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "requires": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", diff --git a/src/assets/css/custom.css b/src/assets/css/custom.css index 03c074b2..4ecc38f9 100644 --- a/src/assets/css/custom.css +++ b/src/assets/css/custom.css @@ -1181,7 +1181,7 @@ caption {overflow: hidden; line-height: 0;text-indent: -2000px;} .flight-approval .rdt_TableHeadRow>div{display:none} .flight-approval .rdt_TableHeadRow .rdt_TableCol{display:block;font-size:0.8rem;} .flight-approval .rdt_TableHeadRow .rdt_TableCol div{font-weight:600} -.flight-approval-layer{width:635px;overflow:scroll;} +.flight-approval-layer{width:665px;overflow:scroll;} .layer-ti-sub{display:block;font-size:0.875rem;color:#777;margin-top:-4px;} .flight-approval-layer .layer-ti-sub{margin-bottom:0.5rem} .flight-approval-layer .calendar-flat svg{color:#8a1c05} diff --git a/src/components/flight/NewFlightApprovalsTable.js b/src/components/flight/NewFlightApprovalsTable.js index db1cf64f..d3587c02 100644 --- a/src/components/flight/NewFlightApprovalsTable.js +++ b/src/components/flight/NewFlightApprovalsTable.js @@ -5,6 +5,7 @@ import dayjs from 'dayjs'; import { openModal } from '@src/redux/features/comn/message/messageSlice'; import { Table } from 'antd'; import { FaAngleDown, FaAngleUp } from 'react-icons/fa'; +import { area } from '@turf/turf'; export default function NewFlightApprovalsTable(props) { const dispatch = useDispatch(); @@ -86,12 +87,14 @@ export default function NewFlightApprovalsTable(props) { 구역 ), - dataIndex: 'applyDt', + dataIndex: 'areaList', width: '75px', align: 'center', - key: 'applyDt', + key: 'adress', editable: true, - render: text => '서울시 마포구상암동 1674 (원추)' + render: areaList => { + return areaList.length <= 1 ? '서울시 마포구상암동1674(원추)' : '-'; + } }, { title: ( @@ -105,13 +108,17 @@ export default function NewFlightApprovalsTable(props) { width: '85px', key: 'latLon', editable: true, - render: areaList => ( - <> - {areaList[0].lat.toFixed(5)}, -
- {areaList[0].lon.toFixed(5)} - - ) + render: areaList => { + return areaList.length <= 1 ? ( + <> + {areaList[0].lat.toFixed(5)}, +
+ {areaList[0].lon.toFixed(5)} + + ) : ( + '-' + ); + } }, { title: ( @@ -125,7 +132,9 @@ export default function NewFlightApprovalsTable(props) { width: '70px', key: 'bufferZone', editable: true, - render: areaList => <>{areaList[0].bufferZone} + render: areaList => { + return areaList.length <= 1 ? <>{areaList[0].bufferZone} : '-'; + } }, { title: ( @@ -139,7 +148,9 @@ export default function NewFlightApprovalsTable(props) { align: 'center', width: '70px', editable: true, - render: areaList => <>{areaList[0].fltElev} + render: areaList => { + return areaList.length <= 1 ? <>{areaList[0].fltElev} : '-'; + } }, { title: ( @@ -150,24 +161,52 @@ export default function NewFlightApprovalsTable(props) { ), dataIndex: 'areaList', align: 'center', - width: '85px', + width: '100px', key: 'approvalCd', editable: true, - render: areaList => ( - <> - {areaList[0].approvalCd === 'U' - ? '비대상' - : areaList[0].approvalCd === 'S' - ? '승인' - : '미승인'} - - ) + + render: areaList => { + const approvalCounts = areaList.reduce( + (counts, item) => { + if (item.approvalCd === 'U') { + counts.unapproved += 1; + } else if (item.approvalCd === 'S') { + counts.approved += 1; + } else { + counts.pending += 1; + } + return counts; + }, + { unapproved: 0, approved: 0, pending: 0 } + ); + + return ( + <> + {areaList.length > 1 ? ( + <> + 승인: {approvalCounts.approved}건
+ 미승인: + {approvalCounts.pending}건
비대상: + {approvalCounts.unapproved}건 + + ) : ( + <> + {areaList[0].approvalCd === 'U' + ? '비대상' + : areaList[0].approvalCd === 'S' + ? '승인' + : '미승인'} + + )} + + ); + } }, { title: <>더보기, dataIndex: 'areaList', align: 'center', - width: '80px', + width: '95px', key: 'more', editable: true, render: (areaList, record) => @@ -212,6 +251,13 @@ export default function NewFlightApprovalsTable(props) { key: 'zoneNo', editable: true }, + { + dataIndex: '홍길동', + align: 'center', + width: '85px', + key: '홍길동', + editable: true + }, { align: 'center', width: '85px', @@ -252,7 +298,6 @@ export default function NewFlightApprovalsTable(props) { const data = []; record.areaList.map((item, index) => { - if (index < 1) return; data.push({ key: `${record.applyNo}-${index}`, applyNo: item.applyNo, @@ -279,10 +324,10 @@ export default function NewFlightApprovalsTable(props) { return className; }} size='small' - bordered columns={childColumns} dataSource={data} pagination={false} + rowHoverable={false} showHeader={false} /> ); @@ -424,7 +469,6 @@ export default function NewFlightApprovalsTable(props) { onExpand: handleExpand, rowExpandable: record => record.areaList.length > 1 // areaList가 1개 이상인 경우에만 확장 가능 }} - tableLayout='auto' rowHoverable={false} expandIconColumnIndex={-1} // 기본 확장 아이콘을 숨김 />