3달간 수정 사항
This commit is contained in:
@@ -4,7 +4,7 @@ import Label from '@/components/form/Label2';
|
||||
import Input from '@/components/form/input/InputField2';
|
||||
import CtModal from "@/components/CtModal";
|
||||
import { useMultiState } from "@/hooks/useMultiState";
|
||||
import api, { formatBusinessNumber } from '@/lib/_AG';
|
||||
import api, { formatBusinessNumber, isValidBusinessNumber } from '@/lib/_AG';
|
||||
|
||||
|
||||
export interface BizGroupModalProps {
|
||||
@@ -30,13 +30,17 @@ export default function AddModifyBizGroupModal({ multiState, onOk, isOpen, close
|
||||
|
||||
const handleClickAddOrModify = () => {
|
||||
if (multiState.values.name == "") {
|
||||
alert("그룹명(사업자명)을 입력하셔야 합니다.");
|
||||
alert("그룹(사업자)명을 입력하셔야 합니다.");
|
||||
return;
|
||||
}
|
||||
//else if (multiState.values.biz_reg_num == "") {
|
||||
// alert("사업자등록번호를 입력하셔야 합니다.");
|
||||
// return;
|
||||
//}
|
||||
if (multiState.values.biz_reg_num != "" && !isValidBusinessNumber(multiState.values.biz_reg_num)) {
|
||||
if (!confirm("잘못된 형식의 사업자등록번호입니다. 그래도 등록하시겠습니까?"))
|
||||
return;
|
||||
}
|
||||
|
||||
if (multiState.values.isModify) {
|
||||
api.post('/api/modify-biz-group.do', multiState.values).then((resp) => {
|
||||
@@ -96,7 +100,7 @@ export default function AddModifyBizGroupModal({ multiState, onOk, isOpen, close
|
||||
className="max-w-[700px] p-6 lg:p-10"
|
||||
>
|
||||
<div>
|
||||
<Label redPoint>그룹명(사업자명)</Label>
|
||||
<Label redPoint>그룹(사업자)명</Label>
|
||||
<Input type="text" value={multiState.values.name} onChange={(e) => multiState.set("name", e.target.value)} />
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -9,7 +9,7 @@ import Input from '@/components/form/input/InputField2';
|
||||
import DatePicker from '@/components/form/date-picker2';
|
||||
import React, { Key } from "react";
|
||||
import { useEffect, useState } from 'react';
|
||||
import api, { convertDateTime3, formatBusinessNumber, useAuthStore } from '@/lib/_AG';
|
||||
import api, { addDaysYMD, convertDateTime3, formatBusinessNumber, isValidBusinessNumber, todayYMD, useAuthStore } from '@/lib/_AG';
|
||||
|
||||
import { useModal } from "@/hooks/useModal";
|
||||
import AddModifyBizGroupModal, { BizGroupModalProps } from './AddModifyBizGroupModal';
|
||||
@@ -19,7 +19,7 @@ import CtTree, { CtTreeNode, expandAndSelectTreeNode, getAllNodeKeys, findParent
|
||||
import { tree } from "next/dist/build/templates/app-page";
|
||||
import { useRouter } from "next/router";
|
||||
|
||||
const SEARCH_LABEL_WIDTH = 24;
|
||||
const SEARCH_LABEL_WIDTH_PX = 80;
|
||||
|
||||
|
||||
// api component
|
||||
@@ -126,22 +126,22 @@ export default function BizGroupContent({
|
||||
}: BizGroupContentProps) {
|
||||
const tokenPayload = useAuthStore((s) => s.tokenPayload); //Bruce, JWT
|
||||
|
||||
const {isOpen, openModal, closeModal} = useModal();
|
||||
const { isOpen, openModal, closeModal } = useModal();
|
||||
|
||||
// tree part
|
||||
const [treeData, setTreeData] = useState<CtTreeNode[]>(preloadTreeData ? preloadTreeData : []);
|
||||
const [selectedTreeKeys, setSelectedTreeKeys] = useState<Key[]>(preloadTreeData ? [preloadTreeData[0].key as string] : []);
|
||||
const [expandedTreeKeys, setExpandedTreeKeys] = useState<Key[]>(preloadTreeData ? getAllNodeKeys(preloadTreeData) : []);
|
||||
const [ treeData, setTreeData ] = useState<CtTreeNode[]>(preloadTreeData ? preloadTreeData : []);
|
||||
const [ selectedTreeKeys, setSelectedTreeKeys ] = useState<Key[]>(preloadTreeData ? [preloadTreeData[0].key as string] : []);
|
||||
const [ expandedTreeKeys, setExpandedTreeKeys ] = useState<Key[]>(preloadTreeData ? getAllNodeKeys(preloadTreeData) : []);
|
||||
|
||||
// search fields
|
||||
const [name, setName] = useState<string>("");
|
||||
const [biz_reg_num, setBizRegNum] = useState<string>("");
|
||||
const [date_start, setDateStart] = useState<string>("");
|
||||
const [date_end, setDateEnd] = useState<string>("");
|
||||
const [ name, setName ] = useState<string>("");
|
||||
const [ biz_reg_num, setBizRegNum ] = useState<string>("");
|
||||
const [ date_start, setDateStart ] = useState<string>();
|
||||
const [ date_end, setDateEnd ] = useState<string>();
|
||||
//
|
||||
|
||||
// form fields
|
||||
const [formInfo, setFormInfo] = useState({name: "", biz_reg_num: "", email: "", phone: "", ceo: "", address: ""});
|
||||
const [ formInfo, setFormInfo ] = useState({name: "", biz_reg_num: "", email: "", phone: "", ceo: "", address: ""});
|
||||
const handleChangeFormInfo = (field: string, value?: string | number) => { setFormInfo(prev => ({ ...prev, [field]: value ?? "" })); };
|
||||
|
||||
// modal values
|
||||
@@ -175,13 +175,17 @@ export default function BizGroupContent({
|
||||
|
||||
function reqModifyBizGroup(biz_group_id: Key) {
|
||||
if (formInfo.name == "") {
|
||||
alert("그룹명(사업자명)을 입력하셔야 합니다.");
|
||||
alert("그룹(사업자)명을 입력하셔야 합니다.");
|
||||
return;
|
||||
}
|
||||
//else if (formInfo.biz_reg_num == "") {
|
||||
// alert("사업자등록번호를 입력하셔야 합니다.");
|
||||
// return;
|
||||
//}
|
||||
if (formInfo.biz_reg_num != "" && !isValidBusinessNumber(formInfo.biz_reg_num)) {
|
||||
if (!confirm("잘못된 형식의 사업자등록번호입니다. 그래도 등록하시겠습니까?"))
|
||||
return;
|
||||
}
|
||||
|
||||
const params = {
|
||||
biz_group_id: biz_group_id,
|
||||
@@ -233,17 +237,17 @@ export default function BizGroupContent({
|
||||
}
|
||||
|
||||
const handleClickSearch = () => {
|
||||
if (tokenPayload?.permission == 1) {
|
||||
if (tokenPayload?.permission == 0xffffffff) {
|
||||
if (name == "" && biz_reg_num == "") {
|
||||
alert("그룹명(사업자명) 또는 사업자등록번호를 입력하셔야 합니다.");
|
||||
alert("그룹(사업자)명 또는 사업자등록번호를 입력하셔야 합니다.");
|
||||
return;
|
||||
}
|
||||
if (name != "" && name.length < 3) {
|
||||
alert("그룹명(사업자명)은 세글자 이상 입력해야 합니다.");
|
||||
if (name != "" && name.length < 2) {
|
||||
alert("그룹(사업자)명은 두글자 이상 입력해야 합니다.");
|
||||
return;
|
||||
}
|
||||
if (biz_reg_num != "" && biz_reg_num.length < 3) {
|
||||
alert("사업자등록번호는 세글자 이상 입력해야 합니다.");
|
||||
if (biz_reg_num != "" && biz_reg_num.length < 2) {
|
||||
alert("사업자등록번호는 두글자 이상 입력해야 합니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -339,11 +343,11 @@ export default function BizGroupContent({
|
||||
<ComponentCard title={title} titleIcon={titleIcon}>
|
||||
<div className="space-y-3">
|
||||
<div className="grid grid-cols-1 gap-3 sm:grid-cols-4">
|
||||
<WithLabel label="그룹명(사업자명)" label_width={SEARCH_LABEL_WIDTH}>
|
||||
<Input type="text" placeholder="조회할 그룹명(사업자명)을 입력하세요." value={name} onChange={(e) => setName(e.target.value)}
|
||||
<WithLabel label="그룹(사업자)명" label_width={SEARCH_LABEL_WIDTH_PX}>
|
||||
<Input type="text" placeholder="조회할 그룹(사업자)명을 입력하세요." value={name} onChange={(e) => setName(e.target.value)}
|
||||
onKeyDown={(e) => {if (e.key === "Enter") handleClickSearch()}} />
|
||||
</WithLabel>
|
||||
<WithLabel label="사업자번호" label_width={SEARCH_LABEL_WIDTH}>
|
||||
<WithLabel label="사업자번호" label_width={SEARCH_LABEL_WIDTH_PX}>
|
||||
<Input type="text" placeholder="조회할 사업자번호를 입력하세요." value={biz_reg_num} onChange={(e) => handleChangeBizRegNum(e.target.value)}
|
||||
onKeyDown={(e) => {if (e.key === "Enter") handleClickSearch()}} />
|
||||
</WithLabel>
|
||||
@@ -353,17 +357,19 @@ export default function BizGroupContent({
|
||||
</div>
|
||||
{/*
|
||||
<div className="space-y-2 grid grid-cols-1 gap-3 sm:grid-cols-2">
|
||||
<WithLabel label="등록일" label_width={SEARCH_LABEL_WIDTH}>
|
||||
<div className="grid grid-cols-1 gap-3 sm:grid-cols-2">
|
||||
<WithLabel label="등록일" label_width={50}>
|
||||
<div className="grid grid-cols-2 gap-3 sm:grid-cols-2">
|
||||
<DatePicker
|
||||
id="date_start-picker"
|
||||
placeholder="조회 시작일"
|
||||
onChange={(dates, currentDateString) => { setDateStart(currentDateString); }}
|
||||
defaultDate={date_start}
|
||||
/>
|
||||
<DatePicker
|
||||
id="date_end-picker"
|
||||
placeholder="조회 종료일"
|
||||
onChange={(dates, currentDateString) => { setDateEnd(currentDateString); }}
|
||||
defaultDate={date_end}
|
||||
/>
|
||||
</div>
|
||||
</WithLabel>
|
||||
@@ -399,9 +405,9 @@ export default function BizGroupContent({
|
||||
</div>
|
||||
</ComponentCard>
|
||||
<div className="w-[380px]">
|
||||
<div className="flex-1 space-y-6">
|
||||
<div className="flex-1 space-y-4">
|
||||
<div>
|
||||
<Label>그룹명(사업자명)</Label>
|
||||
<Label>그룹(사업자)명</Label>
|
||||
<Input type="text" value={formInfo.name} onChange={(e) => handleChangeFormInfo("name", e.target.value)} />
|
||||
</div>
|
||||
<div>
|
||||
|
||||
Reference in New Issue
Block a user