"use client"; import React, { useEffect, useState } from "react"; import Label from '@/components/form/Label2'; import Input from '@/components/form/input/InputField2'; import Select from '@/components/form/Select2'; import Checkbox from '@/components/form/input/Checkbox'; import CtModal from "@/components/CtModal"; import { useMultiState } from "@/hooks/useMultiState"; import api from '@/lib/_AG'; function randomUppercase(max: number): string { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; let result = ''; for (let i = 0; i < max; i++) { result += chars[Math.floor(Math.random() * chars.length)]; } return result; } export interface TerminalModalProps { biz_group_name?: string; // internal use biz_reg_num?: string; // internal use // isModify: boolean; addType: string; // terminal_id: string; biz_group_id: string; name: string; uid1: string; type: string; } interface AddModifyTerminalModalProps { multiState: ReturnType>; onOk: () => void; isOpen: boolean; closeModal: () => void; } export default function AddModifyTerminalModal({ multiState, onOk, isOpen, closeModal }: AddModifyTerminalModalProps) { const [ optAddType, setOptAddType ] = useState("1"); const [ optTerminalType, setOptTerminalType ] = useState("1"); const [ isAutoName, setIsAutoName ] = useState(true); const [ prefix, setPrefix ] = useState(randomUppercase(7)); //... const handleChangeUid1 = (value: string) => { multiState.set("uid1", value); if (isAutoName) { //multiState.set("name", multiState.values.biz_group_name + "-" + value); //... //multiState.set("name", prefix + "-" + value); //... multiState.set("name", prefix); //... } }; const handleClickAddOrModify = () => { setPrefix(randomUppercase(7)); //... if (multiState.values.name == "") { alert("그룹명(사업자명)을 입력하셔야 합니다."); return; } if (multiState.values.uid1 == "") { alert("TID를 입력하셔야 합니다."); return; } const { biz_group_name, biz_reg_num, ...tmpParams } = multiState.values; const params = { ...tmpParams, addType: optAddType, type: optTerminalType }; if (multiState.values.isModify) { api.post('/api/modify-terminal.do', params).then((resp) => { console.log(resp); if (resp.data.errCode == 0) { alert("수정되었습니다."); onOk(); } else if (resp.data.errCode == -11) { alert("무인기기명이나 TID는 중복될 수 없습니다."); } else { alert("일시적으로 사용할 수 없습니다 : " + resp.data.errCode); } }) .catch((err) => console.error(err)) } else { api.post('/api/add-terminal.do', params).then((resp) => { console.log(resp); if (resp.data.errCode == 0) { alert("추가되었습니다."); onOk(); } else if (resp.data.errCode == -11) { alert("이미 추가된 기기명이나 TID입니다."); } else { alert("일시적으로 사용할 수 없습니다 : " + resp.data.errCode); } }) .catch((err) => console.error(err)) } } useEffect(() => { if (isOpen) { setOptAddType("1"); setIsAutoName(true); } }, [isOpen]); return ( //
setIsAutoName(value)} /> 자동생성
multiState.set("name", e.target.value)} disabled={multiState.values.isModify || isAutoName} />
handleChangeUid1(e.target.value)} disabled={multiState.values.isModify} />
{setOptAddType(value)}} className="dark:bg-dark-900" />
:
{/* {}} /> {}} /> {}} /> {}} /> {}} /> */}
}
//
); };