diff --git a/apps/cs/app/(with-base-layout)/loginlog/page.tsx b/apps/cs/app/(with-base-layout)/loginlog/page.tsx new file mode 100644 index 000000000..960f03e05 --- /dev/null +++ b/apps/cs/app/(with-base-layout)/loginlog/page.tsx @@ -0,0 +1,2 @@ +import { LoginlogPage } from "@/pages/loginlog"; +export default LoginlogPage; diff --git a/apps/cs/src/pages/loginlog/index.ts b/apps/cs/src/pages/loginlog/index.ts new file mode 100644 index 000000000..4e5e70ea8 --- /dev/null +++ b/apps/cs/src/pages/loginlog/index.ts @@ -0,0 +1 @@ +export { LoginlogPage } from "./ui/loginlog-page"; diff --git a/apps/sn/.env.local b/apps/sn/.env.local index dfb172cf0..35c1476f5 100644 --- a/apps/sn/.env.local +++ b/apps/sn/.env.local @@ -1,9 +1,9 @@ NEXT_PUBLIC_SITE_ID = SN NEXT_PUBLIC_PORT = 3002 -NEXT_PUBLIC_PROXY_HOST = http://con.mind-one.co.kr:11302 +NEXT_PUBLIC_PROXY_HOST = http://localhost:3002 NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000 NEXT_PUBLIC_GEOSERVER_URL = http://rsone.iptime.org:10010/geoserver -NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver #TODO 운영에서 바꿔야 함 +NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver NEXT_PUBLIC_RSONE_DC_URL = https://apigateway.rsonesoft.com #자료관 데이터 NEXT_PUBLIC_CLAIM_NAME = Authorization NEXT_PUBLIC_AUTH_USER_ID = token-id diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx index fe08f34f0..984391a95 100644 --- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx +++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx @@ -20,7 +20,7 @@ const InfilChart = ({ pplMngNo }: ModalOpenProp) => { const [popupPosition, setPopupPosition] = useState<{ top: number; left: number }>({ top: 0, left: 0 }); // 팝업 위치 const [selectedAplcnYm, setSelectedAplcnYm] = useState(""); const [inftwtAnlss, setInftwtAnlss] = useState([]); - const [inftwtAnlsInfos, setInftwtAnlsInfos] = useState([{ val: 0, text: '선택', hidden: true }]); // 침입수분석정보 options + const [inftwtAnlsInfos, setInftwtAnlsInfos] = useState([{ val: 0, text: '선택' }]); // 침입수분석정보 options const [inftwtAnls, setInftwtAnls] = useState(null); // 침입수분석정보 const [selectedInftwtAnls, setSelectedInftwtAnls] = useState(0); // 침입수분석 정보 선택시 사용 const [chartData, setChartData] = useState<{ chartData1: DataType[]; chartData2: DataType[] }>({ @@ -52,7 +52,7 @@ const InfilChart = ({ pplMngNo }: ModalOpenProp) => { setPopupOpen(true); // 모달이 닫힐 때 조회조건팝업은 열어두기 setSelectedAplcnYm(""); // 상수사용월 초기화 setInftwtAnlss([]); // 침입수분석 초기화 - setInftwtAnlsInfos([{ val: 0, text: '선택', hidden: true }]); // 침입수분석정보 초기화 + setInftwtAnlsInfos([{ val: 0, text: '선택' }]); // 침입수분석정보 초기화 setInftwtAnls(null); // 침입수분석정보 초기화 setSelectedInftwtAnls(0); // 침입수분석 일련번호 초기화 setChartData({ chartData1: [], chartData2: [], }); // 차트 데이터 초기화 @@ -72,7 +72,7 @@ const InfilChart = ({ pplMngNo }: ModalOpenProp) => { // 빈 값이면 초기화만 하고 종료 if (!selectedValue || selectedValue === "0" || selectedValue === "") { - setInftwtAnlsInfos([{ val: 0, text: '선택', hidden: true }]); + setInftwtAnlsInfos([{ val: 0, text: '선택' }]); return; } @@ -85,7 +85,7 @@ const InfilChart = ({ pplMngNo }: ModalOpenProp) => { } catch (error) { console.error("selectInftwtAnls 에러:", error); setInftwtAnlss([]); - setInftwtAnlsInfos([{ val: 0, text: '선택', hidden: true }]); + setInftwtAnlsInfos([{ val: 0, text: '선택' }]); } setSelectedInftwtAnls(0); }; diff --git a/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx b/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx index 3578ff967..9479a5395 100644 --- a/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx +++ b/apps/sn/app/(with-base-layout)/oper/floodPre/page.tsx @@ -41,7 +41,12 @@ const Page = () => { page: curPage - 1, size: '10' }) - setTableData(data) + // 일련번호를 추가한 데이터로 변환 (전체 데이터 기준으로 일련번호 계산) + const dataWithRowNumber = (data || []).map((item: any, index: number) => ({ + ...item, + rowNumber: (curPage - 1) * 10 + index + 1, // 페이지 기준 일련번호 계산 + })); + setTableData(dataWithRowNumber) setTotalData(total) } catch (error) { console.error('Error fetching data:', error) } @@ -52,6 +57,7 @@ const Page = () => { setIsLoading(false); } } + useEffect(() => { setCurPage(1) fetchData() diff --git a/apps/sn/app/(with-base-layout)/oper/index.ts b/apps/sn/app/(with-base-layout)/oper/index.ts index e4be8bcf6..b9dd98685 100644 --- a/apps/sn/app/(with-base-layout)/oper/index.ts +++ b/apps/sn/app/(with-base-layout)/oper/index.ts @@ -1,5 +1,6 @@ export const tableHeadlist = [ - { id: 'sbmrgPrevntBizSn', title: '일련번호' }, + { id: 'rowNumber', title: '일련번호' }, + // { id: 'sbmrgPrevntBizSn', title: '일련번호' }, { id: 'sbmrgPrevntBizNm', title: '파일명' }, { id: 'mngYr', title: '년도' }, { id: 'mngQu', title: '분기' }, @@ -8,7 +9,8 @@ export const tableHeadlist = [ ] export const tableHeadlistOldPp = [ - { id: 'dcrpPplMtncBizSn', title: '일련번호' }, + { id: 'rowNumber', title: '일련번호' }, + // { id: 'dcrpPplMtncBizSn', title: '일련번호' }, { id: 'dcrpPplMtncBizNm', title: '파일명' }, { id: 'mngYr', title: '년도' }, { id: 'mngQu', title: '분기' }, diff --git a/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx b/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx index c4bac35b7..5236e1c17 100644 --- a/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx +++ b/apps/sn/app/(with-base-layout)/oper/oldPp/page.tsx @@ -38,9 +38,13 @@ const Page = () => { page: curPage - 1, size: '10' }) - setTableData(data) + // 일련번호를 추가한 데이터로 변환 (전체 데이터 기준으로 일련번호 계산) + const dataWithRowNumber = (data || []).map((item: any, index: number) => ({ + ...item, + rowNumber: (curPage - 1) * 10 + index + 1, // 페이지 기준 일련번호 계산 + })); + setTableData(dataWithRowNumber) setTotalData(total) - console.log(data, total) } catch (error) { console.error('Error fetching data:', error) } finally { @@ -50,6 +54,7 @@ const Page = () => { setIsLoading(false) } } + useEffect(() => { setCurPage(1) fetchData() diff --git a/apps/sn/middleware.ts b/apps/sn/middleware.ts index b5a8e7981..d69ef5513 100644 --- a/apps/sn/middleware.ts +++ b/apps/sn/middleware.ts @@ -15,12 +15,18 @@ export function middleware(req: NextRequest) { const searchParams = req.nextUrl.searchParams; if (pathname.startsWith("/server")) { - const queryParams = searchParams.toString(); - const newUrl = `${SERVER_API_URL}${pathname.replace("/server", "")}${queryParams ? `?${queryParams}` : ""}`; - console.log(`[Middleware] Rewriting from '/server' path to: ${newUrl}`); + + const decodedParams = Array.from(searchParams.entries()) + .map(([key, value]) => `${key}=${decodeURIComponent(value)}`) + .join("&"); + + const newUrl = `${SERVER_API_URL}${pathname.replace("/server", "")}${ + decodedParams ? `?${decodedParams}` : "" + }`; return NextResponse.rewrite(new URL(newUrl)); } - else if (pathname.startsWith("/geoserver")) { + + if (pathname.startsWith("/geoserver")) { let queryParams = searchParams.toString(); const typename = searchParams.get("TYPENAME"); @@ -61,7 +67,8 @@ export function middleware(req: NextRequest) { console.log(`[Middleware] Rewriting from '/geoserver' path to: ${newUrl}`); return NextResponse.rewrite(new URL(newUrl)); } - else if ( + + if ( pathname.startsWith("/attach-service") || pathname.startsWith("/cms-service") ) { @@ -80,7 +87,8 @@ export function middleware(req: NextRequest) { headers: requestHeaders, }); } - else if (pathname.startsWith("/user-service")) { + + if (pathname.startsWith("/user-service")) { const requestHeaders = new Headers(req.headers); const newUrl = `${SERVER_API_URL}${pathname}`; @@ -91,7 +99,8 @@ export function middleware(req: NextRequest) { headers: requestHeaders, }); } - else if (pathname.startsWith("/dc-service")) { + + if (pathname.startsWith("/dc-service")) { const requestHeaders = new Headers(req.headers); const newUrl = `${RSONE_DC_URL}${pathname}`;