[as instl] 업무 구분 선택 화면 추가
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
export { InstlSncnApi } from "./api/instl-sncn-service";
|
||||
export type {
|
||||
InstlSncnMng,
|
||||
InstlSncnMngSearchParams,
|
||||
SpringPage,
|
||||
export {
|
||||
INSTL_SNCN_REGISTER_SELECTION_KEY,
|
||||
type InstlSncnMng,
|
||||
type InstlSncnMngSearchParams,
|
||||
type SpringPage,
|
||||
} from "./model/instl-sncn-interface";
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
export const INSTL_SNCN_REGISTER_SELECTION_KEY = "instlSncnRegisterSelection";
|
||||
|
||||
export interface SpringPage<T> {
|
||||
content: T[];
|
||||
totalElements: number;
|
||||
|
||||
@@ -7,7 +7,11 @@ import { useQuery } from "@tanstack/react-query";
|
||||
|
||||
import { dayjs } from "@/shared/lib";
|
||||
import { useCodeList } from "@/entities/code";
|
||||
import { InstlSncnApi, type InstlSncnMngSearchParams } from "@/entities/instl-sncn";
|
||||
import {
|
||||
INSTL_SNCN_REGISTER_SELECTION_KEY,
|
||||
InstlSncnApi,
|
||||
type InstlSncnMngSearchParams,
|
||||
} from "@/entities/instl-sncn";
|
||||
|
||||
import "./cnfm-page.css";
|
||||
|
||||
@@ -69,7 +73,7 @@ function CnfmListPage() {
|
||||
const [taskDialogOpen, setTaskDialogOpen] = useState(false);
|
||||
const [selectedTaskSeComCd, setSelectedTaskSeComCd] = useState("");
|
||||
|
||||
const { data: fnrsCodeList = [] } = useCodeList("FNRS");
|
||||
const { data: fnrsCodeList = [] } = useCodeList("INSTL");
|
||||
|
||||
useEffect(() => {
|
||||
if (!taskDialogOpen) return;
|
||||
@@ -112,12 +116,15 @@ function CnfmListPage() {
|
||||
const selected = fnrsCodeList.find((item) => item.lwpoCd === selectedTaskSeComCd);
|
||||
if (!selected) return;
|
||||
|
||||
const query = new URLSearchParams({
|
||||
taskSeComCd: selected.lwpoCd,
|
||||
taskSeComCdNm: selected.lwpoCdNm,
|
||||
});
|
||||
sessionStorage.setItem(
|
||||
INSTL_SNCN_REGISTER_SELECTION_KEY,
|
||||
JSON.stringify({
|
||||
taskSeComCd: selected.lwpoCd,
|
||||
taskSeComCdNm: selected.lwpoCdNm,
|
||||
}),
|
||||
);
|
||||
setTaskDialogOpen(false);
|
||||
router.push(`/instl-sncn/register?${query.toString()}`);
|
||||
router.push("/instl-sncn/register");
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { useRouter, useSearchParams } from "next/navigation";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
|
||||
import type { AcntgSeMngTreeDto } from "@/entities/acntg";
|
||||
import { acntgService } from "@/entities/acntg";
|
||||
import { INSTL_SNCN_REGISTER_SELECTION_KEY } from "@/entities/instl-sncn";
|
||||
import { Button, Input } from "@common/components";
|
||||
|
||||
import "./cnfm-page.css";
|
||||
@@ -55,14 +56,23 @@ const ReadCell = ({ value }: { value: string | number }) => (
|
||||
/* ------------------------------------------------------------------ */
|
||||
function CnfmRegistPage() {
|
||||
const router = useRouter();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const taskSeComCdNm = searchParams?.get("taskSeComCdNm") || "하수관로";
|
||||
const [taskSeComCd, setTaskSeComCd] = useState("");
|
||||
const [taskSeComCdNm, setTaskSeComCdNm] = useState("재이용수");
|
||||
const [taskSeComCd, setTaskSeComCd] = useState("RE");
|
||||
|
||||
useEffect(() => {
|
||||
setTaskSeComCd(searchParams?.get("taskSeComCd") || "");
|
||||
}, [searchParams]);
|
||||
const raw = sessionStorage.getItem(INSTL_SNCN_REGISTER_SELECTION_KEY);
|
||||
if (!raw) return;
|
||||
|
||||
try {
|
||||
const parsed = JSON.parse(raw) as { taskSeComCd?: string; taskSeComCdNm?: string };
|
||||
setTaskSeComCd(parsed.taskSeComCd || "RE");
|
||||
setTaskSeComCdNm(parsed.taskSeComCdNm || "재이용수");
|
||||
} catch {
|
||||
// noop
|
||||
} finally {
|
||||
sessionStorage.removeItem(INSTL_SNCN_REGISTER_SELECTION_KEY);
|
||||
}
|
||||
}, []);
|
||||
|
||||
/* ── 기본 정보 ── */
|
||||
const [bzNm, setBzNm] = useState("");
|
||||
|
||||
Reference in New Issue
Block a user