diff --git a/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx b/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx index 7d4039d91..5cb29539c 100644 --- a/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx +++ b/apps/st/src/components/statistics/review/StatsInputSatusRvw.tsx @@ -1,187 +1,14 @@ import SearchForm from "@/components/module/SearchForm"; -import DataGrid from "@/components/module/DataGrid"; +import TabDataGrid from "@/components/module/TabDataGrid"; import SaveButton from "@/components/button/SaveButton"; import ApproveButton from "@/components/button/ApproveButton"; import ReviewOpinionButton from "@/components/button/ReviewOpinionButton"; import ReturnButton from "@/components/button/ReturnButton"; +import { StatsInputSatusInfoList } from "@/components/util/column/review/StatsInputSatusColumnRvw"; + const StatsInputSatusRvw = () => { - const rawColumns = [ - { name: 'sido', fieldName: '시도', header: { text: '시도' } }, - { name: 'sgg', fieldName: '구군', header: { text: '구군' } }, - - { name: '진행상태', fieldName: '진행상태', header: { text: '진행상태' } }, - //01번 - { name: '제출자01', fieldName: '제출자01', header: { text: '제출자' } }, - { name: '연락처01', fieldName: '연락처01', header: { text: '연락처' } }, - { name: '지자체진행상태01', fieldName: '지자체진행상태01', header: { text: '지자체진행상태' } }, - { name: '진행상태01', fieldName: '진행상태01', header: { text: '진행상태' } }, - //02번 - { name: '제출자02', fieldName: '제출자02', header: { text: '제출자' } }, - { name: '연락처02', fieldName: '연락처02', header: { text: '연락처' } }, - { name: '지자체진행상태02', fieldName: '지자체진행상태02', header: { text: '지자체진행상태' } }, - { name: '진행상태02', fieldName: '진행상태02', header: { text: '진행상태' } }, - // 03번 - { name: '제출자03', fieldName: '제출자03', header: { text: '제출자' } }, - { name: '연락처03', fieldName: '연락처03', header: { text: '연락처' } }, - { name: '지자체진행상태03', fieldName: '지자체진행상태03', header: { text: '지자체진행상태' } }, - { name: '진행상태03', fieldName: '진행상태03', header: { text: '진행상태' } }, - - // 04번 - { name: '제출자04', fieldName: '제출자04', header: { text: '제출자' } }, - { name: '연락처04', fieldName: '연락처04', header: { text: '연락처' } }, - { name: '지자체진행상태04', fieldName: '지자체진행상태04', header: { text: '지자체진행상태' } }, - { name: '진행상태04', fieldName: '진행상태04', header: { text: '진행상태' } }, - - // 05번 - { name: '제출자05', fieldName: '제출자05', header: { text: '제출자' } }, - { name: '연락처05', fieldName: '연락처05', header: { text: '연락처' } }, - { name: '지자체진행상태05', fieldName: '지자체진행상태05', header: { text: '지자체진행상태' } }, - { name: '진행상태05', fieldName: '진행상태05', header: { text: '진행상태' } }, - - // 06번 - { name: '제출자06', fieldName: '제출자06', header: { text: '제출자' } }, - { name: '연락처06', fieldName: '연락처06', header: { text: '연락처' } }, - { name: '지자체진행상태06', fieldName: '지자체진행상태06', header: { text: '지자체진행상태' } }, - { name: '진행상태06', fieldName: '진행상태06', header: { text: '진행상태' } }, - - // 07번 - { name: '제출자07', fieldName: '제출자07', header: { text: '제출자' } }, - { name: '연락처07', fieldName: '연락처07', header: { text: '연락처' } }, - { name: '지자체진행상태07', fieldName: '지자체진행상태07', header: { text: '지자체진행상태' } }, - { name: '진행상태07', fieldName: '진행상태07', header: { text: '진행상태' } }, - - // 08번 - { name: '제출자08', fieldName: '제출자08', header: { text: '제출자' } }, - { name: '연락처08', fieldName: '연락처08', header: { text: '연락처' } }, - { name: '지자체진행상태08', fieldName: '지자체진행상태08', header: { text: '지자체진행상태' } }, - { name: '진행상태08', fieldName: '진행상태08', header: { text: '진행상태' } }, - - // 09번 - { name: '제출자09', fieldName: '제출자09', header: { text: '제출자' } }, - { name: '연락처09', fieldName: '연락처09', header: { text: '연락처' } }, - { name: '지자체진행상태09', fieldName: '지자체진행상태09', header: { text: '지자체진행상태' } }, - { name: '진행상태09', fieldName: '진행상태09', header: { text: '진행상태' } }, - - // 10번 - { name: '제출자10', fieldName: '제출자10', header: { text: '제출자' } }, - { name: '연락처10', fieldName: '연락처10', header: { text: '연락처' } }, - { name: '지자체진행상태10', fieldName: '지자체진행상태10', header: { text: '지자체진행상태' } }, - { name: '진행상태10', fieldName: '진행상태10', header: { text: '진행상태' } }, - - // 11번 - { name: '제출자11', fieldName: '제출자11', header: { text: '제출자' } }, - { name: '연락처11', fieldName: '연락처11', header: { text: '연락처' } }, - { name: '지자체진행상태11', fieldName: '지자체진행상태11', header: { text: '지자체진행상태' } }, - { name: '진행상태11', fieldName: '진행상태11', header: { text: '진행상태' } }, - - // 12번 - { name: '제출자12', fieldName: '제출자12', header: { text: '제출자' } }, - { name: '연락처12', fieldName: '연락처12', header: { text: '연락처' } }, - { name: '지자체진행상태12', fieldName: '지자체진행상태12', header: { text: '지자체진행상태' } }, - { name: '진행상태12', fieldName: '진행상태12', header: { text: '진행상태' } }, - - // 13번 - { name: '제출자13', fieldName: '제출자13', header: { text: '제출자' } }, - { name: '연락처13', fieldName: '연락처13', header: { text: '연락처' } }, - { name: '지자체진행상태13', fieldName: '지자체진행상태13', header: { text: '지자체진행상태' } }, - { name: '진행상태13', fieldName: '진행상태13', header: { text: '진행상태' } }, - { name: 'rmk', fieldName: '비고', header: { text: '비고' } }, - ]; - - const columns = rawColumns.map(col => ({ - ...col, - editable: false - })); - - const columnLayout = [ - { - name: 'groupA', - hideChildHeaders: false, - header: { text: '행정구역' }, - items: ['sido', 'sgg'], - }, - '진행상태', - { - name: 'groupB', - hideChildHeaders: false, - header: { text: '01. 하수도 보급율' }, - items: ['제출자01', '연락처01', '지자체진행상태01', '진행상태01'], - }, - { - name: 'groupC', - hideChildHeaders: false, - header: { text: '02. 하수관로' }, - items: ['제출자02', '연락처02', '지자체진행상태02', '진행상태02'], - }, - { - name: 'groupD', - hideChildHeaders: false, - header: { text: '03. 하수관로유지관리' }, - items: ['제출자03', '연락처03', '지자체진행상태03', '진행상태03'], - }, - { - name: 'groupE', - hideChildHeaders: false, - header: { text: '04. 하수저류시설' }, - items: ['제출자04', '연락처04', '지자체진행상태04', '진행상태04'], - }, - { - name: 'groupF', - hideChildHeaders: false, - header: { text: '05. 펌프장' }, - items: ['제출자05', '연락처05', '지자체진행상태05', '진행상태05'], - }, - { - name: 'groupG', - hideChildHeaders: false, - header: { text: '06. 공공하수처리시설' }, - items: ['제출자06', '연락처06', '지자체진행상태06', '진행상태06'], - }, - { - name: 'groupH', - hideChildHeaders: false, - header: { text: '07. 분뇨처리시설' }, - items: ['제출자07', '연락처07', '지자체진행상태07', '진행상태07'], - }, - { - name: 'groupI', - hideChildHeaders: false, - header: { text: '08. 개인하수처리시설' }, - items: ['제출자08', '연락처08', '지자체진행상태08', '진행상태08'], - }, - { - name: 'groupJ', - hideChildHeaders: false, - header: { text: '09. 하수도재정' }, - items: ['제출자09', '연락처09', '지자체진행상태09', '진행상태09'], - }, - { - name: 'groupK', - hideChildHeaders: false, - header: { text: '10. 물재이용' }, - items: ['제출자10', '연락처10', '지자체진행상태10', '진행상태10'], - }, - { - name: 'groupL', - hideChildHeaders: false, - header: { text: '11. 하수및분뇨찌꺼기' }, - items: ['제출자11', '연락처11', '지자체진행상태11', '진행상태11'], - }, - { - name: 'groupM', - hideChildHeaders: false, - header: { text: '12. 하수및분뇨관련사업' }, - items: ['제출자12', '연락처12', '지자체진행상태12', '진행상태12'], - }, - { - name: 'groupN', - hideChildHeaders: false, - header: { text: '13. 하수도서비스수준' }, - items: ['제출자13', '연락처13', '지자체진행상태13', '진행상태13'], - } - ]; - + const approveFunc = () => { console.log('approveFunc'); }; @@ -207,7 +34,7 @@ const StatsInputSatusRvw = () => { - + ); } diff --git a/apps/st/src/components/util/column/review/StatsInputSatusColumnRvw.ts b/apps/st/src/components/util/column/review/StatsInputSatusColumnRvw.ts new file mode 100644 index 000000000..586cb30e7 --- /dev/null +++ b/apps/st/src/components/util/column/review/StatsInputSatusColumnRvw.ts @@ -0,0 +1,50 @@ +// 1. 원본 데이터 정의 (데이터 구조와 레이아웃 정의) +const rawStatsInputStatusList = [ + { + tabKey: 'a', + tabLabel: '통계 입력현황 검증', + rowStartNum: 2, + fixedColumns: 2, + columns: [ + { name: 'SIDO', fieldName: 'SIDO', header: { text: '시도' } }, + { name: 'GUGUN', fieldName: 'GUGUN', header: { text: '시군구' } }, + { name: 'STATUS', fieldName: 'STATUS', header: { text: '진행상태' } }, + + ...[1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15].flatMap(num => { + const id = num.toString(); + return [ + { name: `LOCG_CHARGER_${id}`, fieldName: `LOCG_CHARGER_${id}`, header: { text: '제출자' } }, + { name: `LOCG_CTTPC_${id}`, fieldName: `LOCG_CTTPC_${id}`, header: { text: '연락처' } }, + { name: `LOCG_STATUS_NM_${id}`, fieldName: `LOCG_STATUS_NM_${id}`, header: { text: '지자체진행상태' } }, + { name: `STATUS_${id}`, fieldName: `STATUS_${id}`, header: { text: '진행상태' } } + ]; + }), + ], + columnLayout: [ + { name: 'addrGroup', header: { text: '구분' }, items: ['SIDO', 'GUGUN'] }, + 'STATUS', + { name: 'group01', header: { text: '01. 하수도보급율' }, items: ['LOCG_CHARGER_1', 'LOCG_CTTPC_1', 'LOCG_STATUS_NM_1', 'STATUS_1'] }, + { name: 'group02', header: { text: '02. 하수관로' }, items: ['LOCG_CHARGER_3', 'LOCG_CTTPC_3', 'LOCG_STATUS_NM_3', 'STATUS_3'] }, + { name: 'group03', header: { text: '03. 하수관로유지관리' }, items: ['LOCG_CHARGER_4', 'LOCG_CTTPC_4', 'LOCG_STATUS_NM_4', 'STATUS_4'] }, + { name: 'group04', header: { text: '04. 하수저류시설' }, items: ['LOCG_CHARGER_5', 'LOCG_CTTPC_5', 'LOCG_STATUS_NM_5', 'STATUS_5'] }, + { name: 'group05', header: { text: '05. 펌프장' }, items: ['LOCG_CHARGER_6', 'LOCG_CTTPC_6', 'LOCG_STATUS_NM_6', 'STATUS_6'] }, + { name: 'group06', header: { text: '06. 공공하수처리시설' }, items: ['LOCG_CHARGER_7', 'LOCG_CTTPC_7', 'LOCG_STATUS_NM_7', 'STATUS_7'] }, + { name: 'group07', header: { text: '07. 분뇨처리시설' }, items: ['LOCG_CHARGER_8', 'LOCG_CTTPC_8', 'LOCG_STATUS_NM_8', 'STATUS_8'] }, + { name: 'group08', header: { text: '08. 개인하수처리시설' }, items: ['LOCG_CHARGER_9', 'LOCG_CTTPC_9', 'LOCG_STATUS_NM_9', 'STATUS_9'] }, + { name: 'group09', header: { text: '09. 하수도재정' }, items: ['LOCG_CHARGER_10', 'LOCG_CTTPC_10', 'LOCG_STATUS_NM_10', 'STATUS_10'] }, + { name: 'group10', header: { text: '10. 물재이용' }, items: ['LOCG_CHARGER_11', 'LOCG_CTTPC_11', 'LOCG_STATUS_NM_11', 'STATUS_11'] }, + { name: 'group11', header: { text: '11. 하수및분뇨찌꺼기' }, items: ['LOCG_CHARGER_12', 'LOCG_CTTPC_12', 'LOCG_STATUS_NM_12', 'STATUS_12'] }, + { name: 'group12', header: { text: '12. 하수및분뇨관련사업' }, items: ['LOCG_CHARGER_13', 'LOCG_CTTPC_13', 'LOCG_STATUS_NM_13', 'STATUS_13'] }, + { name: 'group13', header: { text: '13. 하수도서비스수준' }, items: ['LOCG_CHARGER_15', 'LOCG_CTTPC_15', 'LOCG_STATUS_NM_15', 'STATUS_15'] } + ] + } +]; + + +export const StatsInputSatusInfoList = rawStatsInputStatusList.map(tab => ({ + ...tab, + columns: tab.columns.map(col => ({ + ...col, + editable: false + })) +})); \ No newline at end of file