Merge remote-tracking branch 'origin/iipbs/wr/pfmncSttn' into iipbs/wr/dev

This commit is contained in:
leedj312
2025-07-17 16:05:11 +09:00
6 changed files with 264 additions and 174 deletions
@@ -338,21 +338,23 @@ export default function PublicReuseFaciltyInsert() {
<ListDiv className="col-span-3 pr-6 ">
{formWatch && formWatch[0]?.pbnstRuseFcltId ? (
<Tabs defaultValue="mng" onValueChange={handleTabChange}>
<TabsList className="">
<TabsTrigger className="!text-xl" value="mng">
시설정보
</TabsTrigger>
<TabsTrigger className="!text-xl" value="buse">
차수별정보
</TabsTrigger>
<div className="flex justify-between items-center">
<TabsList className="">
<TabsTrigger className="!text-xl" value="mng">
시설정보
</TabsTrigger>
<TabsTrigger className="!text-xl" value="buse">
차수별정보
</TabsTrigger>
</TabsList>
<Button
size={"sm"}
onClick={form.handleSubmit(onSubmit, onInvalid)}
className="!justify-end" // 저장 버튼 위치 조정
className="mr-5 mt-2"
>
저장
</Button>
</TabsList>
</div>
<ScrollArea className="h-[60vh]">
<TabsContent className="max-h-full" value="mng">
<PbnstMngForm
@@ -375,6 +377,7 @@ export default function PublicReuseFaciltyInsert() {
indexBiz={indexBiz}
/>
</TabsContent>
</ScrollArea>
</Tabs>
) : (
@@ -119,6 +119,9 @@ export default function PbnstSttn() {
selectUnitWaterShedData={code.lgbsnCd}
selectMiddleRegionData={code.mdmbsnCd}
selectEnvPartData={code.lclgvrnmntCd}
rightClassName="ml-auto mr-6 flex items-center space-x-1"
leftClassName="flex gap-5 w-9/12 m-4"
leftSelectClassName="w-1/4"
rightChildren={
<Button
className={btnClass}
@@ -141,11 +144,11 @@ export default function PbnstSttn() {
setSearchYear(String(val))
}
/>
<Label className="w-64 mt-2 mx-4 text-xl text-gray-600">
{"하수처리시설명 "}
<Label className="w-full mt-2 ml-4 text-xl text-gray-600">
{"하수처리시설명"}
</Label>
<SearchInput
className={"text-2xl w-full ㅍ"}
className={"text-2xl w-full"}
label=""
textValue={pbnRuseNm || ""}
setText={(e) => {
@@ -530,19 +530,28 @@ export default function PbnstPrfmncSttn() {
selectMiddleRegionData={code.mdmbsnCd}
selectEnvPartData={code.lclgvrnmntCd}
rightChildren={undefined}
rightClassName="ml-auto mr-6 flex items-center space-x-1"
leftClassName="flex gap-5 w-9/12 m-4"
leftSelectClassName="w-1/6"
leftChildren={<div className="col-span-5">
<div className="flex flex-row">
<div className="flex flex-row items-center">
<Label className="text-xl text-gray-600">하수 재이용년도</Label>
{/* <div className="flex flex-row items-center"> */}
<div className="flex flex-row items-center gap-x-4 flex-nowrap">
{/* <Label className="w-full text-xl text-gray-600"> */}
<Label className="flex-none whitespace-nowrap text-xl text-gray-600">
하수 재이용년도</Label>
<SelectBox
className="h-full text-2xl"
// className="w-full h-full text-2xl mx-4"
className="flex-none w-32 h-full text-2xl"
label=""
selectClass={""}
selectArray={yearOptions}
value={fromDate}
onSelectValue={(val: string | number) => setFromDate(String(val))} />
<span> ~</span>
<SelectBox
className="h-full text-2xl"
// className="w-full h-full text-2xl mx-4"
className="flex-none w-32 h-full text-2xl mr-4"
label=""
selectClass={""}
selectArray={yearOptions}
@@ -604,8 +613,7 @@ export default function PbnstPrfmncSttn() {
cellClick={(index: number | undefined, headId: string) => {
cellClick(index ?? undefined, headId);
}}
onPageChange={() => { }
}
onPageChange={() => { }}
index={0}
/>
@@ -232,7 +232,7 @@ export default function ConCostForm({
>
저장
</Button>
<Label>검토완료</Label>
<Label>검토완료</Label>
<Checkbox
className="ml-3 mr-6"
checked={checkFinish}
@@ -267,6 +267,7 @@ export default function ConCostForm({
field.onChange(e.target.value);
}}
value={field.value ?? ""}
readOnly={true}
/>
</FormUi>
)}
@@ -286,6 +287,7 @@ export default function ConCostForm({
field.onChange(Number(e.target.value));
}}
value={field.value ?? 0}
readOnly={true}
/>
</FormUi>
)}
@@ -331,6 +333,7 @@ export default function ConCostForm({
onChange={field.onChange}
value={field.value ?? ""}
className="mt-2"
readOnly={true}
/>
</FormUi>
)}
@@ -358,7 +361,7 @@ export default function ConCostForm({
/>
</div>
<div className="col-span-12 w-full">
<h1 className={formH1Class}>공사비 입력사항</h1>
<h1 className={formH1Class}>공사비 입력사항</h1>
</div>
<div className="col-span-2 mt-4">
@@ -116,22 +116,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.bod-key`}
render={({ field }) => (
<FormUi label="BOD(mg/L)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이하`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이하
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -146,17 +153,30 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.grssClfg-key`}
render={({ field }) => (
<FormUi label="총대장균군수(개/mg)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
field.onChange(String(e.target.value));
}}
value={field.value ?? ""}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
{/* TODO: 총대장균군수 확인 필요*/}
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이하
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -168,22 +188,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.combResdch-key`}
render={({ field }) => (
<FormUi label="결합잔류염소(mh/L)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이상`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이상
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -195,22 +222,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.trbt-key`}
render={({ field }) => (
<FormUi label="탁도(NTU)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이상`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이상
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -248,7 +282,7 @@ export function BuseWaterQulity({
onSelectValue={(val) => {
field.onChange(val);
}}
value={field.value||undefined}
value={field.value || undefined}
></SelectBox>
</FormUi>
)}
@@ -261,22 +295,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.crmty-key`}
render={({ field }) => (
<FormUi label="색도(도)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이하`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이하
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -288,22 +329,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.tn-key`}
render={({ field }) => (
<FormUi label="총질소(T-N)(mg/L)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이하`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이하
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -316,22 +364,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.tph-key`}
render={({ field }) => (
<FormUi label="총인(T-P)(mg/L)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이하`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={6}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이하
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -343,22 +398,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.cdtnv-key`}
render={({ field }) => (
<FormUi label="전기전도도(μs/cm)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이하`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={7}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={7}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이하
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -371,22 +433,29 @@ export function BuseWaterQulity({
key={`items.${indexMng}.fcBizs.${indexBiz}.clIonQnt-key`}
render={({ field }) => (
<FormUi label="염화물(mg/L)">
<Input
className="!text-2xl"
placeholder=""
type="text"
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value} 이하`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={7}
/>
<div className="flex items-center gap-2">
<div className="relative flex-1 min-w-0">
<Input
type="text"
className="w-full pr-16 border py-2 text-right rounded-md"
placeholder=""
onChange={(e) => {
const inputValue = e.target.value.replace(/[^0-9.]/g, ""); // 숫자만 저장
field.onChange(inputValue);
}}
value={
field.value !== undefined && field.value !== ""
? `${field.value}`
: ""
}
readOnly={formType === "sttn" ? true : false}
maxLength={7}
/>
<span className="text-xl absolute inset-y-0 right-3 flex items-center text-gray-500 pointer-events-none">
이하
</span>
</div>
</div>
</FormUi>
)}
/>
@@ -395,7 +464,7 @@ export function BuseWaterQulity({
<Label className="text-xl">수소이온농도(PH)</Label>
<div className="flex flex-row items-center gap-2">
<Input
className="!text-2xl w-28"
className="!text-xl w-28"
placeholder=""
type="text"
onChange={(e) =>
@@ -408,7 +477,7 @@ export function BuseWaterQulity({
/>
<span className="text-xl">~</span>
<Input
className="!text-2xl w-28"
className="!text-xl w-28"
placeholder=""
type="text"
onChange={(e) => {
@@ -42,7 +42,7 @@ export function PbnstRegModal({
const onSubmit = async (valuse: { items: PbnstRegArrrayType }) => {
const item = valuse.items[indexMng];
const data = item ? writeRgtrAndMdfr([item]) : [];
//
//
const handleConfirm = () => {
if (data && data[0]) {
setPbnstInsert(data[0]);
@@ -72,8 +72,9 @@ export function PbnstRegModal({
</h1>
<div className="border-t border-gray-300 my-4"></div>
<ScrollArea className="h-[75vh]">
<Tabs defaultValue="mng" onValueChange={handleTabChange}>
<Tabs defaultValue="mng" onValueChange={handleTabChange}>
<div className="flex justify-between items-center">
<TabsList className="">
<TabsTrigger className="!text-xl" value="mng">
시설정보
@@ -81,14 +82,17 @@ export function PbnstRegModal({
<TabsTrigger className="!text-xl" value="buse">
차수별정보
</TabsTrigger>
<Button
onClick={form.handleSubmit(onSubmit, onInvalid)}
size={"sm"}
className="!justify-end"
>
저장
</Button>
</TabsList>
<Button
onClick={form.handleSubmit(onSubmit, onInvalid)}
size={"sm"}
className="mr-5 mt-2"
>
저장
</Button>
</div>
<ScrollArea className="h-[75vh]">
<TabsContent className="max-h-full" value="mng">
<PbnstMngForm
form={form}
@@ -106,8 +110,8 @@ export function PbnstRegModal({
formType={"reg"}
/>
</TabsContent>
</Tabs>
</ScrollArea>
</ScrollArea>
</Tabs>
</>
);
}