|
|
|
@ -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)}, |
|
|
|
|
<br /> |
|
|
|
|
{areaList[0].lon.toFixed(5)} |
|
|
|
|
</> |
|
|
|
|
) |
|
|
|
|
render: areaList => { |
|
|
|
|
return areaList.length <= 1 ? ( |
|
|
|
|
<> |
|
|
|
|
{areaList[0].lat.toFixed(5)}, |
|
|
|
|
<br /> |
|
|
|
|
{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}건 <br /> |
|
|
|
|
미승인: |
|
|
|
|
{approvalCounts.pending}건<br /> 비대상: |
|
|
|
|
{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} // 기본 확장 아이콘을 숨김
|
|
|
|
|
/> |
|
|
|
|