"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'; export interface GoodsModalProps { biz_group_name?: string; // internal use biz_reg_num?: string; // internal use // isModify: boolean; // goods_id: string; biz_group_id: string; code: string; name: string; price: string; inventory: string; vendor: string; } interface AddModifyGoodsModalProps { multiState: ReturnType>; onOk: () => void; isOpen: boolean; closeModal: () => void; } function randomCode(): string { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; let result = ''; for (let i = 0; i < 4; i++) { result += chars[Math.floor(Math.random() * chars.length)]; } return result; } export default function AddModifyGoodsModal({ multiState, onOk, isOpen, closeModal }: AddModifyGoodsModalProps) { const [ isAutoCode, setIsAutoCode ] = useState(true); const handleClickAddOrModify = () => { if (multiState.values.code == "") { alert("상품코드를 입력하셔야 합니다."); return; } if (multiState.values.name == "") { alert("상품명을 입력하셔야 합니다."); return; } const { biz_group_name, biz_reg_num, ...params } = multiState.values; // remove biz_group_name, biz_reg_num if (multiState.values.isModify) { api.post('/api/modify-goods.do', params).then((resp) => { console.log(resp); if (resp.data.errCode == 0) { alert("수정되었습니다."); onOk(); } else if (resp.data.errCode == -11) { alert("상품코드나 상품명은 중복될 수 없습니다."); } else { alert("일시적으로 사용할 수 없습니다 : " + resp.data.errCode); } }) .catch((err) => console.error(err)) } else { api.post('/api/add-goods.do', params).then((resp) => { console.log(resp); if (resp.data.errCode == 0) { alert("추가되었습니다."); onOk(); } else if (resp.data.errCode == -11) { alert("이미 추가된 상품코드나 상품명입니다."); } else { alert("일시적으로 사용할 수 없습니다 : " + resp.data.errCode); } }) .catch((err) => console.error(err)) } } useEffect(() => { if (isOpen) { if (multiState.values.isModify == false) { setIsAutoCode(true); multiState.set("code", randomCode()); } } }, [isOpen]); return ( //
{ multiState.values.isModify == false &&
setIsAutoCode(value)} /> 자동생성
}
multiState.set("code", e.target.value)} disabled={multiState.values.isModify == false && isAutoCode} />
multiState.set("name", e.target.value)} />
{/*
multiState.set("price", e.target.value)} />
multiState.set("inventory", e.target.value)} />
*/}
multiState.set("vendor", e.target.value)} />
//
); };