From 3b2a756389bf9047b3e6a7b8f1e00ef927097c6a Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 10 Sep 2024 17:37:41 +0900 Subject: [PATCH 1/7] =?UTF-8?q?=EB=AC=BC=EA=B1=B4=ED=98=84=ED=99=A9=20getM?= =?UTF-8?q?essage=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/management/Stuff.jsx | 49 +++-- src/components/management/StuffDetail.jsx | 235 +++++++++++++++------- src/components/management/StuffQGrid.jsx | 1 + src/locales/ja.json | 13 +- src/locales/ko.json | 13 +- 5 files changed, 220 insertions(+), 91 deletions(-) diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx index e26b11a3..f8467027 100644 --- a/src/components/management/Stuff.jsx +++ b/src/components/management/Stuff.jsx @@ -4,8 +4,8 @@ import React, { useEffect, useState, useRef } from 'react' import { useRouter, usePathname } from 'next/navigation' import { Button } from '@nextui-org/react' import { useAxios } from '@/hooks/useAxios' +import { useMessage } from '@/hooks/useMessage' import StuffQGrid from './StuffQGrid' -import { useI18n } from '@/locales/client' import { useRecoilValue } from 'recoil' import { stuffSearchState } from '@/store/stuffAtom' import { queryStringFormatter } from '@/util/common-utils' @@ -15,10 +15,11 @@ dayjs.extend(isLeapYear) export default function Stuff() { const stuffSearchParams = useRecoilValue(stuffSearchState) - + const { getMessage } = useMessage() + const [curPage, setCurPage] = useState(1) //현재 페이지 번호 + const [size, setSize] = useState(100) //페이지 당 게시물 수 const { get, del } = useAxios() const gridRef = useRef() - const lang = useI18n() const [gridCount, setGridCount] = useState(0) const [selectedRowData, setSelectedRowData] = useState([]) @@ -47,7 +48,7 @@ export default function Stuff() { gridColumns: [ { field: 'lastEditDatetime', - headerName: lang('stuff.gridHeader.lastEditDatetime'), + headerName: getMessage('stuff.gridHeader.lastEditDatetime'), headerCheckboxSelection: true, headerCheckboxSelectionCurrentPageOnly: true, //페이징시 현재 페이지만 체크되도록 checkboxSelection: true, @@ -73,7 +74,7 @@ export default function Stuff() { }, { field: 'objectNo', - headerName: lang('stuff.gridHeader.objectNo'), + headerName: getMessage('stuff.gridHeader.objectNo'), // headerClass: 'centered', //_test.scss에 추가 테스트 cellRenderer: function (params) { if (params.data.objectNo) { @@ -100,22 +101,22 @@ export default function Stuff() { }, { field: 'planTotCnt', - headerName: lang('stuff.gridHeader.planTotCnt'), + headerName: getMessage('stuff.gridHeader.planTotCnt'), cellStyle: { textAlign: 'right' }, }, - { field: 'objectName', headerName: lang('stuff.gridHeader.objectName'), cellStyle: { textAlign: 'left' } }, + { field: 'objectName', headerName: getMessage('stuff.gridHeader.objectName'), cellStyle: { textAlign: 'left' } }, { field: 'saleStoreId', - headerName: lang('stuff.gridHeader.saleStoreId'), + headerName: getMessage('stuff.gridHeader.saleStoreId'), cellStyle: { textAlign: 'left' }, }, - { field: 'saleStoreName', headerName: lang('stuff.gridHeader.saleStoreName'), cellStyle: { textAlign: 'left' } }, - { field: 'address', headerName: lang('stuff.gridHeader.address'), cellStyle: { textAlign: 'left' } }, - { field: 'dispCompanyName', headerName: lang('stuff.gridHeader.dispCompanyName'), cellStyle: { textAlign: 'left' } }, - { field: 'receiveUser', headerName: lang('stuff.gridHeader.receiveUser'), cellStyle: { textAlign: 'left' } }, + { field: 'saleStoreName', headerName: getMessage('stuff.gridHeader.saleStoreName'), cellStyle: { textAlign: 'left' } }, + { field: 'address', headerName: getMessage('stuff.gridHeader.address'), cellStyle: { textAlign: 'left' } }, + { field: 'dispCompanyName', headerName: getMessage('stuff.gridHeader.dispCompanyName'), cellStyle: { textAlign: 'left' } }, + { field: 'receiveUser', headerName: getMessage('stuff.gridHeader.receiveUser'), cellStyle: { textAlign: 'left' } }, { field: 'specDate', - headerName: lang('stuff.gridHeader.specDate'), + headerName: getMessage('stuff.gridHeader.specDate'), valueFormatter: function (params) { if (params.value) { return dayjs(params?.value).format('YYYY.MM.DD') @@ -127,7 +128,7 @@ export default function Stuff() { }, { field: 'createDatetime', - headerName: lang('stuff.gridHeader.createDatetime'), + headerName: getMessage('stuff.gridHeader.createDatetime'), valueFormatter: function (params) { if (params.value) { return dayjs(params?.value).format('YYYY.MM.DD') @@ -264,12 +265,30 @@ export default function Stuff() { schDateType: 'U', schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'), schToDt: dayjs(new Date()).format('YYYY-MM-DD'), + startRow: (curPage - 1) * size + 1, + endRow: curPage * size, } async function fetchData() { console.log('화면진입:::::::::::::', params) + console.log('현재페이지::::::', curPage) + console.log('페이지당 게시물수::::::', size) + + //api에 넘길값 startRow, endRow + // let startRow + // let endRow + // startRow = (curPage - 1) * size + 1 + // endRow = curPage * size + // console.log('startrow::', startRow) + // console.log('endRow::', endRow) + + // let curPage + // let totalpage + // let totalCount + // let size + // let pageCount + const apiUrl = `/api/object/v1.0/object?saleStoreId=201TES01&${queryStringFormatter(params)}` - // console.log('apiUrl::', apiUrl) await get({ url: apiUrl, diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index 2f39b066..ed15d729 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -2,14 +2,46 @@ import React, { useState, useEffect } from 'react' import { useRouter, useSearchParams } from 'next/navigation' -import { Input, RadioGroup, Radio, Button, Autocomplete, AutocompleteItem, Select, SelectItem, Checkbox, Textarea } from '@nextui-org/react' +import { Input, RadioGroup, Radio, Button, Autocomplete, AutocompleteItem, Select, SelectItem, Checkbox, Textarea, button } from '@nextui-org/react' import Link from 'next/link' import { get } from '@/lib/Axios' import { queryStringFormatter } from '@/util/common-utils' import dayjs from 'dayjs' +import { useForm } from 'react-hook-form' export default function StuffDetail() { const router = useRouter() const searchParams = useSearchParams() + + //form + const formInitValue = { + // 물건번호 T...(임시) R...(진짜) + dispCompanyName: '', //담당자 + objectStatusId: '0', //물건구분(신축:0 기축 : 1) + objectName: '', //물건명 + objectNameOmit: '', //경칭선택 + objectNameKana: '', //물건명 후리가나 + saleStoreId: '', //판매점ID + saleStoreName: '', //판매점명 + zipNo: '', //우편번호 + prefId: '', //도도부현 + address: '', //주소 + powerSimArea: '', //발전량시뮬레이션지역 + windSpeed: '', //기준풍속 + snowCover: '', //수직적설량 + coldAreaChk: false, //한랭지대책시행 + surfaceType: '', //면조도구분(Ⅲ・Ⅳ / Ⅱ) + saltAreaChk: false, //염해지역용아이템사용 + installHeight: '', //설치높이 + powerConTerms: '', //계약조건 + remark: '', //메모 + tempFlag: 'T', //임시저장(1) 저장(0) + } + const { register, setValue, getValues, handleSubmit, resetField, control, watch } = useForm({ + defaultValues: formInitValue, + }) + + const form = { register, setValue, getValues, handleSubmit, resetField, control, watch } + const [receiveUser, setReceiveUser] = useState('') //담당자 const [name2, setName2] = useState('') //물건명 const [name3, setName3] = useState('') //물건명후리가나 @@ -25,7 +57,7 @@ export default function StuffDetail() { const [isFormValid, setIsFormValid] = useState(false) //임시저장, 진짜저장 버튼 컨트롤 const [testSelOption, setTestSelOption] = useState([]) // 테스트용 const [autoSelectValue, setAutoSelectValue] = useState('') //판매점명 자동완성 - const [buttonValid, setButtonValid] = useState(true) //주소검색 활성화 컨트롤 + const [buttonValid, setButtonValid] = useState(false) //주소검색 활성화 컨트롤 const [isSelected, setIsSelected] = useState(false) //한랭지대첵 체크박스 const [isSelected2, setIsSelected2] = useState(false) //염해지역용아이템사용 체크박스 const [gubun2, setGubun2] = useState('1') //면조도구분 라디오 @@ -33,47 +65,50 @@ export default function StuffDetail() { const [memo, setMemo] = useState('') //메모 const objectNo = searchParams.get('objectNo') //url에서 물건번호 꺼내서 바로 set - const [address1, setAddress1] = useState('') //우편API리턴 도도부현명 - const [address2, setAddress2] = useState('') //우편API리턴 시구정촌명 - const [address3, setAddress3] = useState('') //우편API리턴 마을 지역명 - const [prefcode, setPrefCode] = useState(1) //우편API prefcode + // const [address1, setAddress1] = useState('') //우편API리턴 도도부현명 + // const [address2, setAddress2] = useState('') //우편API리턴 시구정촌명 + // const [address3, setAddress3] = useState('') //우편API리턴 마을 지역명 + // const [prefCode, setPrefCode] = useState(1) //우편API prefcode const [editMode, setEditMode] = useState('NEW') const [detailData, setDetailData] = useState({}) useEffect(() => { // console.log('상세화면진입:::::::::', searchParams.get('objectNo')) - // console.log('물건번호::::', objectNo) + console.log('물건번호::::', objectNo) if (objectNo) { - console.log('상세::') + // console.log('상세::', objectNo) setEditMode('EDIT') - //http://localhost:8080/api/object/v1.0/object/R201TES01240906007/1 + if (objectNo.substring(0, 1) === 'R') { + setIsFormValid(true) + } //일단 플랜번호 무조건 1로 //API 호출 get({ url: `/api/object/v1.0/object/${objectNo}/1` }).then((res) => { if (res != null) { // console.log('res:::::::', res) setDetailData(res) - //setTestSelOption(res) } }) - } else { - console.log('신규:::') } }, [objectNo]) useEffect(() => { - validateForm() + // validateForm() }, [receiveUser, name2, name3, gubun, sel, autoSelectValue, zipCode, sel2, sel3, name5, sel4]) // 우편번호 숫자만 체크 - const textTypeHandler = (e) => { - //\D 숫자가 아닌것(특수문자포함)과 매치, [^0-9]와 동일 - if (!e.target.value.match(/\D/g)) { - setZipCode(e.target.value) + const _zipNo = watch('zipNo') + useEffect(() => { + console.log('실시간이니:::::', _zipNo) + if (_zipNo !== '' && _zipNo.length === 7 && !_zipNo.match(/\D/g)) { + console.log('벨리통과했군') + setButtonValid(true) + } else { + setButtonValid(false) } - } + }, [_zipNo]) // 수직적설량 숫자만 const textTypeHandler2 = (e) => { @@ -127,28 +162,29 @@ export default function StuffDetail() { errors.name5 = '수직적설량 is required.' } - // console.log('errors::', errors) + console.log('errors::', errors) setErrors(errors) setIsFormValid(Object.keys(errors).length === 0) } // 우편번호 API const onSearchPostNumber = () => { - if (!zipCode) { - return alert('우편번호 입력해') - } const params = { - zipcode: zipCode, + zipcode: _zipNo, } - get({ url: `https://zipcloud.ibsnet.co.jp/api/search?${queryStringFormatter(params)}` }).then((res) => { console.log('우편API RES::::::::', res) + //7830060 if (res.status === 200) { - if (res.results.length > 0) { - setAddress1(res.results[0].address1) - setAddress2(res.results[0].address2) - setAddress3(res.results[0].address3) - setPrefCode(res.results[0].prefcode) + if (res.results?.length > 0) { + // setAddress1(res.results[0].address1) + // setAddress2(res.results[0].address2) + // setAddress3(res.results[0].address3) + // setPrefCode(res.results[0].prefcode) + // prefId: '', //도도부현 + // address: '', //주소 + form.setValue('prefId', res.results[0].prefcode) + form.setValue('address', res.results[0].address2 + res.results[0].address3) } else { alert('등록된 우편번호에서 주소를 찾을 수 없습니다. 다시 입력해주세요.') } @@ -174,10 +210,90 @@ export default function StuffDetail() { console.log('e:::::::', e.target.value) } + //필수값 다 입력했을때 + const onValid = (data) => { + console.log('data::::::', data) + const formData = form.getValues() + //console.log('formData::::', formData) + const _dispCompanyName = watch('dispCompanyName') + const _objectStatusId = watch('objectStatusId') + const _objectNameOmit = watch('objectNameOmit') + const _zipno = watch('zipno') + console.log(_dispCompanyName) + console.log(_objectStatusId) + console.log(_objectNameOmit) + console.log(_zipno) + } + + //필수값 안넣었을때 + const onInvalid = (errors) => { + console.log('실패', errors) + } + return ( <> - {(editMode === 'NEW' &&
신규:::::::::::
) ||
상세:::::::::::
} -
+ {(editMode === 'NEW' && ( +
+
+
(*필수 입력항목)
+
+ + +
+
+ + + + + + +
+ +
+
+
+ + +
+
+ +
+
+ +
+
+ + + + *우편번호 7자리를 입력한 후, 주소검색 버튼을 클릭해 주십시오 +
+
+ + + +
+
+ +
+ )) ||
상세:::::::::::
} + + {/*
물건번호 {objectNo} @@ -200,36 +316,9 @@ export default function StuffDetail() { 등록일
-
-
(*필수 입력항목)
-
- 담당자* - setReceiveUser(e.target.value)} /> -
-
- 물건구분/물건명 * - { - setGubun(e.target.value) - }} - /> - - { - setGubun(e.target.value) - }} - /> - +
*/} + {/*
(*필수 입력항목)
+
setName2(e.target.value)} />
@@ -244,8 +333,8 @@ export default function StuffDetail() { 물건명 후리가나 setName3(e.target.value)} />
- -
+
*/} + {/*
판매점명 /ID *
{option.name}}
-
-
+
*/} + {/*
우편번호* *우편번호 7자리를 입력한 후, 주소검색 버튼을 클릭해 주십시오 -
-
+
*/} + {/*
도도부현 / 주소* - {/* */} -
-
+
*/} + {/*
발전량시뮬레이션지역* - - {/* */} + */} ) } diff --git a/src/components/management/StuffQGrid.jsx b/src/components/management/StuffQGrid.jsx index 8139991b..4fd6c42d 100644 --- a/src/components/management/StuffQGrid.jsx +++ b/src/components/management/StuffQGrid.jsx @@ -82,6 +82,7 @@ export default function StuffQGrid(props) { }, []) const onGridReady = useCallback((event) => { + // console.log('event:::', event) // 헤더 사이즈 조정 컬럼에 width값으로 계산 event.api.sizeColumnsToFit() }, []) diff --git a/src/locales/ja.json b/src/locales/ja.json index 146bb78a..31dfae1b 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -86,5 +86,16 @@ "common.message.backToG3": "Back to G3処理実行しますか?", "common.message.writeToConfirm": "作成解除を実行しますか?", "common.message.password.init.success": "パスワード [{0}] に初期化されました。", - "common.message.no.edit.save": "この文書は変更できません。" + "common.message.no.edit.save": "この文書は変更できません。", + "stuff.gridHeader.lastEditDatetime": "갱신일시", + "stuff.gridHeader.objectNo": "물건번호", + "stuff.gridHeader.planTotCnt": "플랜 수", + "stuff.gridHeader.objectName": "물건명", + "stuff.gridHeader.saleStoreId": "대리점ID", + "stuff.gridHeader.saleStoreName": "대리점명", + "stuff.gridHeader.address": "물건주소", + "stuff.gridHeader.dispCompanyName": "견적처", + "stuff.gridHeader.receiveUser": "담당자", + "stuff.gridHeader.specDate": "사양확인", + "stuff.gridHeader.createDatetime": "등록일" } diff --git a/src/locales/ko.json b/src/locales/ko.json index 04b14c9f..3b40df01 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -86,5 +86,16 @@ "common.message.backToG3": "Back to G3 처리를 실행하시겠습니까?", "common.message.writeToConfirm": "작성 해제를 실행하시겠습니까?", "common.message.password.init.success": "비밀번호 [{0}]로 초기화 되었습니다.", - "common.message.no.edit.save": "This document cannot be changed." + "common.message.no.edit.save": "This document cannot be changed.", + "stuff.gridHeader.lastEditDatetime": "갱신일시", + "stuff.gridHeader.objectNo": "물건번호", + "stuff.gridHeader.planTotCnt": "플랜 수", + "stuff.gridHeader.objectName": "물건명", + "stuff.gridHeader.saleStoreId": "대리점ID", + "stuff.gridHeader.saleStoreName": "대리점명", + "stuff.gridHeader.address": "물건주소", + "stuff.gridHeader.dispCompanyName": "견적처", + "stuff.gridHeader.receiveUser": "담당자", + "stuff.gridHeader.specDate": "사양확인", + "stuff.gridHeader.createDatetime": "등록일" } From 8c31a6e3fafcba128824c4f9422965cf72d7b840 Mon Sep 17 00:00:00 2001 From: Kang Jung Kyo Date: Tue, 10 Sep 2024 17:56:20 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EA=B0=80=EC=9E=85?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=97=A4=EB=8D=94=20=EB=B9=84?= =?UTF-8?q?=EB=85=B8=EC=B6=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/[locale]/join/complete/page.jsx | 10 ++-- src/components/auth/Join.jsx | 74 ++++++++++++------------- src/components/auth/Login.jsx | 20 +++---- src/components/header/Header.jsx | 2 +- src/locales/ja.json | 54 ++++++++++++++++++ src/locales/ko.json | 54 ++++++++++++++++++ 6 files changed, 161 insertions(+), 53 deletions(-) diff --git a/src/app/[locale]/join/complete/page.jsx b/src/app/[locale]/join/complete/page.jsx index 3c5c61c3..3f9fc462 100644 --- a/src/app/[locale]/join/complete/page.jsx +++ b/src/app/[locale]/join/complete/page.jsx @@ -1,17 +1,17 @@ 'use client' -import { useI18n } from '@/locales/client' +import { useMessage } from '@/hooks/useMessage' export default function CompletePage() { - const t = useI18n() + const { getMessage } = useMessage() return ( <>
-

{t('join.complete.title')}

-
{t('join.complete.contents')}
+

{getMessage('join.complete.title')}

+
{getMessage('join.complete.contents')}
- {t('join.complete.email_comment')} : {t('join.complete.email')} + {getMessage('join.complete.email_comment')} : {getMessage('join.complete.email')}
diff --git a/src/components/auth/Join.jsx b/src/components/auth/Join.jsx index 971c30a0..03fc8ecb 100644 --- a/src/components/auth/Join.jsx +++ b/src/components/auth/Join.jsx @@ -2,10 +2,10 @@ import { post } from '@/lib/Axios' import { redirect } from 'next/navigation' -import { useI18n } from '@/locales/client' +import { useMessage } from '@/hooks/useMessage' export default function Join() { - const t = useI18n() + const { getMessage } = useMessage() const joinProcess = async (formData) => { const param = { @@ -48,11 +48,11 @@ export default function Join() { return (
-

{t('join.title')}

+

{getMessage('join.title')}

- ● {t('join.sub1.title')} (*{t('common.require')}) {t('join.sub1.comment')} + ● {getMessage('join.sub1.title')} (*{getMessage('common.require')}) {getMessage('join.sub1.comment')}
@@ -61,21 +61,21 @@ export default function Join() { - + - + - + - + @@ -140,7 +140,7 @@ export default function Join() {
{t('join.sub1.storeQcastNm')} *{getMessage('join.sub1.storeQcastNm')} *
{t('join.sub1.storeQcastNmKana')} *{getMessage('join.sub1.storeQcastNmKana')} *
- {t('join.sub1.postCd')}/{t('join.sub1.addr')} * + {getMessage('join.sub1.postCd')}/{getMessage('join.sub1.addr')} *
{t('join.sub1.telNo')} *{getMessage('join.sub1.telNo')} *
{t('join.sub1.fax')} *{getMessage('join.sub1.fax')} *
- ● {t('join.sub2.title')} (*{t('common.require')}) + ● {getMessage('join.sub2.title')} (*{getMessage('common.require')})
@@ -149,7 +149,7 @@ export default function Join() { - + - + - + - + - + - + - + @@ -233,7 +233,7 @@ export default function Join() {
{t('join.sub2.userNm')} *{getMessage('join.sub2.userNm')} *
{t('join.sub2.userNmKana')} *{getMessage('join.sub2.userNmKana')} *
{t('join.sub2.userId')} *{getMessage('join.sub2.userId')} *
{t('join.sub2.email')} *{getMessage('join.sub2.email')} *
{t('join.sub2.telNo')} *{getMessage('join.sub2.telNo')} *
{t('join.sub2.fax')} *{getMessage('join.sub2.fax')} *
{t('join.sub2.category')}{getMessage('join.sub2.category')}
- ● {t('join.sub3.title')} (*{t('common.require')}) + ● {getMessage('join.sub3.title')} (*{getMessage('common.require')})
@@ -242,14 +242,14 @@ export default function Join() { - + - + - + - + @@ -312,7 +312,7 @@ export default function Join() { type="submit" className="w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" > - {t('join.btn.approval_request')} + {getMessage('join.btn.approval_request')} diff --git a/src/components/auth/Login.jsx b/src/components/auth/Login.jsx index 1d75d69a..5772ab79 100644 --- a/src/components/auth/Login.jsx +++ b/src/components/auth/Login.jsx @@ -3,7 +3,7 @@ import { post, patch } from '@/lib/Axios' import { setSession } from '@/lib/authActions' import { redirect } from 'next/navigation' -import { useI18n } from '@/locales/client' +import { useMessage } from '@/hooks/useMessage' import { Button } from '@nextui-org/react' import { useRecoilState } from 'recoil' @@ -11,7 +11,7 @@ import { modalContent, modalState } from '@/store/modalAtom' export default function Login(props) { const { currentLocale } = props - const t = useI18n() + const { getMessage } = useMessage() // login process const loginProcess = async (formData) => { @@ -55,7 +55,7 @@ export default function Login(props) { await patch({ url: '/api/login/v1.0/user/init-password', data: param }).then((res) => { if (res) { if (res.result.resultCode == 'S') { - alert(t('login.init_password.complete_message')) + alert(getMessage('login.init_password.complete_message')) redirect('/login') } else { alert(res.result.resultMsg) @@ -67,8 +67,8 @@ export default function Login(props) { const initPasswordContent = (
-

{t('login.init_password.title')}

-

{t('login.init_password.sub_title')}

+

{getMessage('login.init_password.title')}

+

{getMessage('login.init_password.sub_title')}

@@ -113,8 +113,8 @@ export default function Login(props) {
-

{t('site.name')}

-

{t('site.sub_name')}

+

{getMessage('site.name')}

+

{getMessage('site.sub_name')}

@@ -158,7 +158,7 @@ export default function Login(props) { type="submit" className="mt-10 flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" > - {t('login.login')} + {getMessage('login')}
@@ -171,7 +171,7 @@ export default function Login(props) { }} className="font-semibold leading-6 text-indigo-600 hover:text-indigo-500" > - {t('login.init_password.btn')} + {getMessage('login.init_password.btn')}

diff --git a/src/components/header/Header.jsx b/src/components/header/Header.jsx index efb58a52..028ef6ed 100644 --- a/src/components/header/Header.jsx +++ b/src/components/header/Header.jsx @@ -20,7 +20,7 @@ export const ToggleonMouse = (e, act, target) => { export default function Header() { const pathName = usePathname() - if (pathName.includes('login')) { + if (pathName.includes('login') || pathName.includes('join')) { return null } const SelectOption = [{ name: 'オンライン保証シ' }, { name: 'ステム' }] diff --git a/src/locales/ja.json b/src/locales/ja.json index 31dfae1b..75f49389 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -87,6 +87,60 @@ "common.message.writeToConfirm": "作成解除を実行しますか?", "common.message.password.init.success": "パスワード [{0}] に初期化されました。", "common.message.no.edit.save": "この文書は変更できません。", + + "common.require": "필수", + + "site.name": "Q.CAST III", + "site.sub_name": "태양광 발전 시스템 도면관리 사이트", + + "login": "로그인", + "login.init_password.btn": "비밀번호 초기화", + "login.init_password.title": "비밀번호 초기화", + "login.init_password.sub_title": "비밀번호를 초기화할 아이디와 이메일 주소를 입력해 주세요.", + "login.init_password.complete_message": "비밀번호가 초기화 되었습니다. 초기화된 비밀번호는 아이디와 같습니다.", + + "join.title": "Q.CAST3 로그인ID 발행 신청", + "join.sub1.title": "판매대리점 정보", + "join.sub1.comment": "※ 등록되는 리셀러의 회사 이름을 입력하십시오. (2차점은 「○○판매주식회사(2차점:××설비주식회사)」로 기입해 주세요.)", + "join.sub1.storeQcastNm": "판매대리점명", + "join.sub1.storeQcastNm_placeholder": "株式会社エネルギア・ソリューション・アンド・サービス(2次店:山口住機販売有限会社)", + "join.sub1.storeQcastNmKana": "판매대리점명 후리가나", + "join.sub1.storeQcastNmKana_placeholder": "カブシキガイシャエネルギア・ソリューション・アン", + "join.sub1.postCd": "우편번호", + "join.sub1.postCd_placeholder": "숫자 7자리", + "join.sub1.addr": "주소", + "join.sub1.addr_placeholder": "전각50자이내", + "join.sub1.telNo": "전화번호", + "join.sub1.telNo_placeholder": "00-0000-0000", + "join.sub1.fax": "FAX 번호", + "join.sub1.fax_placeholder": "00-0000-0000", + "join.sub2.title": "담당자 정보", + "join.sub2.userNm": "담당자명", + "join.sub2.userNmKana": "담당자명 후리가나", + "join.sub2.userId": "신청 ID", + "join.sub2.email": "이메일 주소", + "join.sub2.telNo": "전화번호", + "join.sub2.telNo_placeholder": "00-0000-0000", + "join.sub2.fax": "FAX 번호", + "join.sub2.fax_placeholder": "00-0000-0000", + "join.sub2.category": "부서명", + "join.sub3.title": "견적서 제출용 회사정보", + "join.sub3.qtCompNm": "회사명", + "join.sub3.qtPostCd": "우편번호", + "join.sub3.qtPostCd_placeholder": "숫자 7자리", + "join.sub3.qtAddr": "주소", + "join.sub3.qtAddr_placeholder": "전각50자이내", + "join.sub3.qtEmail": "이메일 주소", + "join.sub3.qtTelNo": "전화번호", + "join.sub3.qtTelNo_placeholder": "00-0000-0000", + "join.sub3.qtFax": "FAX 번호", + "join.sub3.qtFax_placeholder": "00-0000-0000", + "join.btn.approval_request": "ID 승인요청", + "join.complete.title": "Q.CAST3 로그인ID 발행신청 완료", + "join.complete.contents": "※ 신청한 ID가 승인되면, 담당자 정보에 입력한 이메일 주소로 로그인 관련 안내 메일이 전송됩니다.", + "join.complete.email_comment": "담당자 이메일 주소", + "join.complete.email": "test@naver.com", + "stuff.gridHeader.lastEditDatetime": "갱신일시", "stuff.gridHeader.objectNo": "물건번호", "stuff.gridHeader.planTotCnt": "플랜 수", diff --git a/src/locales/ko.json b/src/locales/ko.json index 3b40df01..75ef871f 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -87,6 +87,60 @@ "common.message.writeToConfirm": "작성 해제를 실행하시겠습니까?", "common.message.password.init.success": "비밀번호 [{0}]로 초기화 되었습니다.", "common.message.no.edit.save": "This document cannot be changed.", + + "common.require": "필수", + + "site.name": "Q.CAST III", + "site.sub_name": "태양광 발전 시스템 도면관리 사이트", + + "login": "로그인", + "login.init_password.btn": "비밀번호 초기화", + "login.init_password.title": "비밀번호 초기화", + "login.init_password.sub_title": "비밀번호를 초기화할 아이디와 이메일 주소를 입력해 주세요.", + "login.init_password.complete_message": "비밀번호가 초기화 되었습니다. 초기화된 비밀번호는 아이디와 같습니다.", + + "join.title": "Q.CAST3 로그인ID 발행 신청", + "join.sub1.title": "판매대리점 정보", + "join.sub1.comment": "※ 등록되는 리셀러의 회사 이름을 입력하십시오. (2차점은 「○○판매주식회사(2차점:××설비주식회사)」로 기입해 주세요.)", + "join.sub1.storeQcastNm": "판매대리점명", + "join.sub1.storeQcastNm_placeholder": "주식회사 에너지 기어 솔루션 앤 서비스 (2차점: 야마구치 주기 판매 유한회사)", + "join.sub1.storeQcastNmKana": "판매대리점명 후리가나", + "join.sub1.storeQcastNmKana_placeholder": "주식회사 에너지 기어 솔루션", + "join.sub1.postCd": "우편번호", + "join.sub1.postCd_placeholder": "숫자 7자리", + "join.sub1.addr": "주소", + "join.sub1.addr_placeholder": "전각50자이내", + "join.sub1.telNo": "전화번호", + "join.sub1.telNo_placeholder": "00-0000-0000", + "join.sub1.fax": "FAX 번호", + "join.sub1.fax_placeholder": "00-0000-0000", + "join.sub2.title": "담당자 정보", + "join.sub2.userNm": "담당자명", + "join.sub2.userNmKana": "담당자명 후리가나", + "join.sub2.userId": "신청 ID", + "join.sub2.email": "이메일 주소", + "join.sub2.telNo": "전화번호", + "join.sub2.telNo_placeholder": "00-0000-0000", + "join.sub2.fax": "FAX 번호", + "join.sub2.fax_placeholder": "00-0000-0000", + "join.sub2.category": "부서명", + "join.sub3.title": "견적서 제출용 회사정보", + "join.sub3.qtCompNm": "회사명", + "join.sub3.qtPostCd": "우편번호", + "join.sub3.qtPostCd_placeholder": "숫자 7자리", + "join.sub3.qtAddr": "주소", + "join.sub3.qtAddr_placeholder": "전각50자이내", + "join.sub3.qtEmail": "이메일 주소", + "join.sub3.qtTelNo": "전화번호", + "join.sub3.qtTelNo_placeholder": "00-0000-0000", + "join.sub3.qtFax": "FAX 번호", + "join.sub3.qtFax_placeholder": "00-0000-0000", + "join.btn.approval_request": "ID 승인요청", + "join.complete.title": "Q.CAST3 로그인ID 발행신청 완료", + "join.complete.contents": "※ 신청한 ID가 승인되면, 담당자 정보에 입력한 이메일 주소로 로그인 관련 안내 메일이 전송됩니다.", + "join.complete.email_comment": "담당자 이메일 주소", + "join.complete.email": "test@naver.com", + "stuff.gridHeader.lastEditDatetime": "갱신일시", "stuff.gridHeader.objectNo": "물건번호", "stuff.gridHeader.planTotCnt": "플랜 수", From e17fa1cc04524a7717b2ff3922f0107442fbc474 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 11 Sep 2024 10:48:45 +0900 Subject: [PATCH 3/7] =?UTF-8?q?useEvent=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/context-menu/QContextMenu.jsx | 2 +- src/components/floor-plan/CanvasFrame.jsx | 22 +++-- src/hooks/useEvent.js | 80 +++++++++++++++++++ src/store/canvasAtom.js | 5 ++ 4 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 src/hooks/useEvent.js diff --git a/src/components/common/context-menu/QContextMenu.jsx b/src/components/common/context-menu/QContextMenu.jsx index 4658ef6f..bf8ef23c 100644 --- a/src/components/common/context-menu/QContextMenu.jsx +++ b/src/components/common/context-menu/QContextMenu.jsx @@ -14,7 +14,7 @@ export default function QContextMenu(props) { if (activeObject) { if (activeObject.initOptions) { //이건 바뀔 가능성이 있음 - if (activeObject.initOptions.name.indexOf('guide') > -1) { + if (activeObject.initOptions?.name?.indexOf('guide') > -1) { contextType = 'surface' //면형상 } } diff --git a/src/components/floor-plan/CanvasFrame.jsx b/src/components/floor-plan/CanvasFrame.jsx index 5923888f..7c3e6c7c 100644 --- a/src/components/floor-plan/CanvasFrame.jsx +++ b/src/components/floor-plan/CanvasFrame.jsx @@ -1,7 +1,15 @@ -export default function CanvasFrame () { - return( -
- -
- ) -} \ No newline at end of file +import { useCanvas } from '@/hooks/useCanvas' +import { useRef } from 'react' +import { useEvent } from '@/hooks/useEvent' + +export default function CanvasFrame() { + const canvasRef = useRef(null) + useCanvas('canvas') + useEvent() + + return ( +
+ +
+ ) +} diff --git a/src/hooks/useEvent.js b/src/hooks/useEvent.js new file mode 100644 index 00000000..3c304b8f --- /dev/null +++ b/src/hooks/useEvent.js @@ -0,0 +1,80 @@ +import { useEffect, useRef } from 'react' +import { useRecoilValue } from 'recoil' +import { canvasState, stepState } from '@/store/canvasAtom' + +export function useEvent() { + const canvas = useRecoilValue(canvasState) + const step = useRecoilValue(stepState) + const keyboardEventListeners = useRef([]) + + useEffect(() => { + if (!canvas) { + return + } + Object.keys(canvas.__eventListeners).forEach((key) => { + if (key.indexOf('mouse') > -1) { + canvas.off(key) + } + }) + removeAllKeyboardEventListeners() + addEvent(step) + }, [step]) + + const addEvent = (step) => { + //default Event 추가 + canvas?.on('mouse:move', defaultMouseMoveEvent) + addKeyboardEventListener('keydown', document, defaultKeyboardEvent) + + if (step === 1) { + canvas?.on('mouse:down', (e) => { + canvas?.add(new fabric.Rect({ width: 100, height: 100, fill: 'red', left: e.pointer.x, top: e.pointer.y })) + }) + addKeyboardEventListener('keydown', document, (e) => { + if (e.key === 'Escape') { + console.log(1111) + } + }) + } else if (step === 2) { + canvas?.on('mouse:down', (e) => { + canvas?.add(new fabric.Circle({ radius: 50, fill: 'blue', left: e.pointer.x, top: e.pointer.y })) + }) + addKeyboardEventListener('keydown', document, (e) => { + if (e.key === 'Escape') { + console.log(2222) + } + }) + } else { + canvas?.on('mouse:down', (e) => { + canvas?.add(new fabric.Triangle({ width: 100, height: 100, fill: 'green', left: e.pointer.x, top: e.pointer.y })) + }) + addKeyboardEventListener('keydown', document, (e) => { + if (e.key === 'Escape') { + console.log(333) + } + }) + } + } + + const defaultMouseMoveEvent = (e) => { + console.log('defaultMouseMoveEvent') + } + + const defaultKeyboardEvent = (e) => { + if (e.key === 'Escape') { + console.log('defaultKeyboardEvent') + } + } + + // 이벤트 리스너를 추가하는 함수 + function addKeyboardEventListener(eventType, element, handler) { + element.addEventListener(eventType, handler) + keyboardEventListeners.current.push({ eventType, element, handler }) + } + // 이벤트 리스너를 제거하는 함수 + function removeAllKeyboardEventListeners() { + keyboardEventListeners.current.forEach(({ eventType, element, handler }) => { + element.removeEventListener(eventType, handler) + }) + keyboardEventListeners.current.length = 0 // 배열 초기화 + } +} diff --git a/src/store/canvasAtom.js b/src/store/canvasAtom.js index 44f29df5..404b9106 100644 --- a/src/store/canvasAtom.js +++ b/src/store/canvasAtom.js @@ -179,3 +179,8 @@ export const objectPlacementModeState = atom({ key: 'objectPlacementMode', default: { width: 0, height: 0, areaBoundary: false, inputType: 'free', batchType: 'opening' }, }) + +export const stepState = atom({ + key: 'step', + default: 0, +}) From a1c89a61ce5323ad17682189ece5598e5b1ffc6e Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 11 Sep 2024 10:55:40 +0900 Subject: [PATCH 4/7] =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useEvent.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/hooks/useEvent.js b/src/hooks/useEvent.js index 3c304b8f..2f32d044 100644 --- a/src/hooks/useEvent.js +++ b/src/hooks/useEvent.js @@ -65,12 +65,17 @@ export function useEvent() { } } - // 이벤트 리스너를 추가하는 함수 + /** + * document 키보드 이벤트 임의로 직접 등록한 이벤트의 경우 remove가 안되기 때문에 이 함수를 통해서만 등록해야 함. + * @param eventType + * @param element + * @param handler + */ function addKeyboardEventListener(eventType, element, handler) { element.addEventListener(eventType, handler) keyboardEventListeners.current.push({ eventType, element, handler }) } - // 이벤트 리스너를 제거하는 함수 + function removeAllKeyboardEventListeners() { keyboardEventListeners.current.forEach(({ eventType, element, handler }) => { element.removeEventListener(eventType, handler) From 867b62a366cc606640510ce66cf797a05d6b86f8 Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Wed, 11 Sep 2024 10:57:23 +0900 Subject: [PATCH 5/7] Refactor locale layout and message handling - Refactor the locale layout component to use the useEffect hook and Recoil state management for app messages. - Update the getMessage function in the useMessage hook to retrieve messages from the appMessageStore Recoil atom. - Remove unused imports and commented out code. --- src/app/[locale]/layout.js | 23 ++++++++++++++++++++++- src/components/Playground.jsx | 2 +- src/hooks/useMessage.js | 28 +++++++++++++++------------- src/locales/ja.json | 1 + src/locales/ko.json | 1 + src/store/localeAtom.js | 5 +++++ yarn.lock | 10 +++++----- 7 files changed, 50 insertions(+), 20 deletions(-) diff --git a/src/app/[locale]/layout.js b/src/app/[locale]/layout.js index 334cfbb3..28847d66 100644 --- a/src/app/[locale]/layout.js +++ b/src/app/[locale]/layout.js @@ -1,13 +1,34 @@ 'use client' -import { useCurrentLocale } from '@/locales/client' +import { useEffect } from 'react' +import { useRecoilState, useRecoilValue } from 'recoil' +import { appMessageStore, globalLocaleState } from '@/store/localeAtom' import { LocaleProvider } from './LocaleProvider' +import { useCurrentLocale } from '@/locales/client' import ServerError from './error' import { ErrorBoundary } from 'next/dist/client/components/error-boundary' import '@/styles/common.scss' +import KO from '@/locales/ko.json' +import JA from '@/locales/ja.json' + export default function LocaleLayout({ children }) { const locale = useCurrentLocale() + const globalLocale = useRecoilValue(globalLocaleState) + const [appMessageState, setAppMessageState] = useRecoilState(appMessageStore) + + useEffect(() => { + console.log(globalLocale) + console.log(sessionStorage.getItem('hi')) + console.log(Object.keys(appMessageState).length) + if (Object.keys(appMessageState).length === 0) { + if (globalLocale === 'ko') { + setAppMessageState(KO) + } else { + setAppMessageState(JA) + } + } + }, []) return ( <> diff --git a/src/components/Playground.jsx b/src/components/Playground.jsx index da470ab3..f0a71e44 100644 --- a/src/components/Playground.jsx +++ b/src/components/Playground.jsx @@ -119,7 +119,7 @@ export default function Playground() {

Sass 테스트입니다.

-
{getMessage('hi')}
+
test']) }}>

React ColorPicker

diff --git a/src/hooks/useMessage.js b/src/hooks/useMessage.js index bc2f7eef..f336f0b7 100644 --- a/src/hooks/useMessage.js +++ b/src/hooks/useMessage.js @@ -1,25 +1,27 @@ import { useRecoilValue } from 'recoil' -import { globalLocaleState } from '@/store/localeAtom' +import { appMessageStore } from '@/store/localeAtom' -import KO from '@/locales/ko.json' -import JA from '@/locales/ja.json' +// import KO from '@/locales/ko.json' +// import JA from '@/locales/ja.json' const SESSION_STORAGE_MESSAGE_KEY = 'QCAST_MESSAGE_STORAGE' export const useMessage = () => { - const globalLocale = useRecoilValue(globalLocaleState) + // const globalLocale = useRecoilValue(globalLocaleState) + const appMessageState = useRecoilValue(appMessageStore) const getMessage = (key, args = []) => { - if (sessionStorage.getItem(SESSION_STORAGE_MESSAGE_KEY) === null) { - if (globalLocale === 'ko') { - setSessionMessage(JSON.stringify(KO)) - } else { - setSessionMessage(JSON.stringify(JA)) - } - } + // if (sessionStorage.getItem(SESSION_STORAGE_MESSAGE_KEY) === null) { + // if (globalLocale === 'ko') { + // setSessionMessage(JSON.stringify(KO)) + // } else { + // setSessionMessage(JSON.stringify(JA)) + // } + // } - const sessionMessage = getSessionMessage() - const message = sessionMessage[key] || key + // const sessionMessage = getSessionMessage() + // const message = sessionMessage[key] || key + const message = appMessageState[key] || key return args.reduce((acc, arg, i) => { return acc.replaceAll(`{${i}}`, arg) diff --git a/src/locales/ja.json b/src/locales/ja.json index 75f49389..acc6bcbb 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1,5 +1,6 @@ { "hi": "こんにちは", + "welcome": "환영합니다. {0}님", "common.message.no.data": "No data", "common.message.no.dataDown": "ダウンロードするデータがありません", "common.message.noData": "表示するデータがありません", diff --git a/src/locales/ko.json b/src/locales/ko.json index 75ef871f..21b0115e 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1,5 +1,6 @@ { "hi": "안녕하세요", + "welcome": "환영합니다. {0}님", "common.message.no.data": "No data", "common.message.no.dataDown": "No data to download", "common.message.noData": "No data to display", diff --git a/src/store/localeAtom.js b/src/store/localeAtom.js index d82bcf7b..8070d6ac 100644 --- a/src/store/localeAtom.js +++ b/src/store/localeAtom.js @@ -4,3 +4,8 @@ export const globalLocaleState = atom({ key: 'globalLocaleState', default: 'ko', }) + +export const appMessageStore = atom({ + key: 'appMessageState', + default: {}, +}) diff --git a/yarn.lock b/yarn.lock index 62434324..d77f654f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5515,11 +5515,6 @@ react-dom@^18: loose-envify "^1.1.0" scheduler "^0.23.2" -react-hook-form@^7.53.0: - version "7.53.0" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.53.0.tgz#3cf70951bf41fa95207b34486203ebefbd3a05ab" - integrity sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ== - react-draggable@^4.4.6: version "4.4.6" resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.6.tgz#63343ee945770881ca1256a5b6fa5c9f5983fe1e" @@ -5528,6 +5523,11 @@ react-draggable@^4.4.6: clsx "^1.1.1" prop-types "^15.8.1" +react-hook-form@^7.53.0: + version "7.53.0" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.53.0.tgz#3cf70951bf41fa95207b34486203ebefbd3a05ab" + integrity sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ== + react-icons@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-5.3.0.tgz#ccad07a30aebd40a89f8cfa7d82e466019203f1c" From 11e40caaa7d2808fea1a9a14a8a9ac9caf944d83 Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Wed, 11 Sep 2024 11:26:25 +0900 Subject: [PATCH 6/7] Add message process guide file --- .../Nextjs 14 컴포넌트에 대해서....pdf | Bin .../Qcast coding convention.pdf | Bin .../Qcast development guilde.pdf | Bin docs/메세지 처리 가이드.pdf | Bin 0 -> 137499 bytes 4 files changed, 0 insertions(+), 0 deletions(-) rename Nextjs 14 컴포넌트에 대해서....pdf => docs/Nextjs 14 컴포넌트에 대해서....pdf (100%) rename Qcast coding convention.pdf => docs/Qcast coding convention.pdf (100%) rename Qcast development guilde.pdf => docs/Qcast development guilde.pdf (100%) create mode 100644 docs/메세지 처리 가이드.pdf diff --git a/Nextjs 14 컴포넌트에 대해서....pdf b/docs/Nextjs 14 컴포넌트에 대해서....pdf similarity index 100% rename from Nextjs 14 컴포넌트에 대해서....pdf rename to docs/Nextjs 14 컴포넌트에 대해서....pdf diff --git a/Qcast coding convention.pdf b/docs/Qcast coding convention.pdf similarity index 100% rename from Qcast coding convention.pdf rename to docs/Qcast coding convention.pdf diff --git a/Qcast development guilde.pdf b/docs/Qcast development guilde.pdf similarity index 100% rename from Qcast development guilde.pdf rename to docs/Qcast development guilde.pdf diff --git a/docs/메세지 처리 가이드.pdf b/docs/메세지 처리 가이드.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b6f316e14b251aa89f776cd6100b6b5540b8b6bf GIT binary patch literal 137499 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 z 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μo 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 literal 0 HcmV?d00001 From bc080a0855a4d5cc18d1dd207ba8621dfdc08e03 Mon Sep 17 00:00:00 2001 From: basssy Date: Wed, 11 Sep 2024 12:15:45 +0900 Subject: [PATCH 7/7] =?UTF-8?q?Qcast-100=20=EB=AC=BC=EA=B1=B4=ED=98=84?= =?UTF-8?q?=ED=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 1 + src/components/management/Stuff.jsx | 16 +-- src/components/management/StuffDetail.jsx | 132 ++++++++++++++++++---- src/util/common-utils.js | 8 ++ 4 files changed, 129 insertions(+), 28 deletions(-) diff --git a/.env.development b/.env.development index f8aa1483..468efc67 100644 --- a/.env.development +++ b/.env.development @@ -2,6 +2,7 @@ NEXT_PUBLIC_TEST="테스트변수입니다. development" NEXT_PUBLIC_API_SERVER_PATH="http://1.248.227.176:38080" # NEXT_PUBLIC_API_SERVER_PATH="http://localhost:8080" +# NEXT_PUBLIC_API_SERVER_PATH="http://172.30.1.60:8080" DATABASE_URL="sqlserver://mssql.devgrr.kr:1433;database=qcast;user=qcast;password=Qwertqaz12345;trustServerCertificate=true" diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx index f8467027..cf427814 100644 --- a/src/components/management/Stuff.jsx +++ b/src/components/management/Stuff.jsx @@ -8,7 +8,7 @@ import { useMessage } from '@/hooks/useMessage' import StuffQGrid from './StuffQGrid' import { useRecoilValue } from 'recoil' import { stuffSearchState } from '@/store/stuffAtom' -import { queryStringFormatter } from '@/util/common-utils' +import { queryStringFormatter, isEmptyArray } from '@/util/common-utils' import dayjs from 'dayjs' import isLeapYear from 'dayjs/plugin/isLeapYear' // 윤년 판단 플러그인 dayjs.extend(isLeapYear) @@ -288,13 +288,13 @@ export default function Stuff() { // let size // let pageCount - const apiUrl = `/api/object/v1.0/object?saleStoreId=201TES01&${queryStringFormatter(params)}` + const apiUrl = `/api/object/list?saleStoreId=201TES01&${queryStringFormatter(params)}` await get({ url: apiUrl, }).then((res) => { - if (res.length > 0) { - console.log('API결과:::::::', res) + if (!isEmptyArray(res)) { + console.log('화면진입API결과::', res) setGridProps({ ...gridProps, gridData: res, count: res.length }) setGridCount(res.length) } @@ -308,11 +308,13 @@ export default function Stuff() { if (stuffSearchParams?.code === 'E') { console.log('조회 눌럿을때 ::::::::::::::', stuffSearchParams) async function fetchData() { - const apiUrl = `/api/object/v1.0/object?saleStoreId=201TES01&${queryStringFormatter(stuffSearchParams)}` + const apiUrl = `/api/object/list?saleStoreId=201TES01&${queryStringFormatter(stuffSearchParams)}` await get({ url: apiUrl }).then((res) => { console.log('API결과:::::::', res) - setGridProps({ ...gridProps, gridData: res, count: res.length }) - setGridCount(res.length) + if (!isEmptyArray(res)) { + setGridProps({ ...gridProps, gridData: res, count: res.length }) + setGridCount(res.length) + } }) } fetchData() diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index ed15d729..0c0692c7 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -5,7 +5,7 @@ import { useRouter, useSearchParams } from 'next/navigation' import { Input, RadioGroup, Radio, Button, Autocomplete, AutocompleteItem, Select, SelectItem, Checkbox, Textarea, button } from '@nextui-org/react' import Link from 'next/link' import { get } from '@/lib/Axios' -import { queryStringFormatter } from '@/util/common-utils' +import { queryStringFormatter, isEmptyArray } from '@/util/common-utils' import dayjs from 'dayjs' import { useForm } from 'react-hook-form' export default function StuffDetail() { @@ -29,10 +29,10 @@ export default function StuffDetail() { windSpeed: '', //기준풍속 snowCover: '', //수직적설량 coldAreaChk: false, //한랭지대책시행 - surfaceType: '', //면조도구분(Ⅲ・Ⅳ / Ⅱ) + surfaceType: 'Ⅲ・Ⅳ', //면조도구분(Ⅲ・Ⅳ / Ⅱ) saltAreaChk: false, //염해지역용아이템사용 installHeight: '', //설치높이 - powerConTerms: '', //계약조건 + powerConTerms: '0', //계약조건(잉여 / 전량) remark: '', //메모 tempFlag: 'T', //임시저장(1) 저장(0) } @@ -42,6 +42,9 @@ export default function StuffDetail() { const form = { register, setValue, getValues, handleSubmit, resetField, control, watch } + const [prefCodeList, setPrefCodeList] = useState([]) //도도부현 코트 리스트 + const [prefValue, setPrefValue] = useState('') + const [receiveUser, setReceiveUser] = useState('') //담당자 const [name2, setName2] = useState('') //물건명 const [name3, setName3] = useState('') //물건명후리가나 @@ -74,18 +77,21 @@ export default function StuffDetail() { const [detailData, setDetailData] = useState({}) useEffect(() => { + get({ url: '/api/object/prefecture/list' }).then((res) => { + if (!isEmptyArray(res)) { + console.log('도도부현API 결과:::', res) + setPrefCodeList(res) + } + }) // console.log('상세화면진입:::::::::', searchParams.get('objectNo')) - console.log('물건번호::::', objectNo) + // console.log('물건번호::::', objectNo) if (objectNo) { - // console.log('상세::', objectNo) setEditMode('EDIT') if (objectNo.substring(0, 1) === 'R') { setIsFormValid(true) } - //일단 플랜번호 무조건 1로 - //API 호출 - get({ url: `/api/object/v1.0/object/${objectNo}/1` }).then((res) => { + get({ url: `/api/object/${objectNo}/detail` }).then((res) => { if (res != null) { // console.log('res:::::::', res) setDetailData(res) @@ -101,9 +107,7 @@ export default function StuffDetail() { // 우편번호 숫자만 체크 const _zipNo = watch('zipNo') useEffect(() => { - console.log('실시간이니:::::', _zipNo) if (_zipNo !== '' && _zipNo.length === 7 && !_zipNo.match(/\D/g)) { - console.log('벨리통과했군') setButtonValid(true) } else { setButtonValid(false) @@ -167,26 +171,29 @@ export default function StuffDetail() { setIsFormValid(Object.keys(errors).length === 0) } - // 우편번호 API + // 주소검색 API const onSearchPostNumber = () => { const params = { zipcode: _zipNo, } get({ url: `https://zipcloud.ibsnet.co.jp/api/search?${queryStringFormatter(params)}` }).then((res) => { - console.log('우편API RES::::::::', res) //7830060 if (res.status === 200) { - if (res.results?.length > 0) { - // setAddress1(res.results[0].address1) - // setAddress2(res.results[0].address2) - // setAddress3(res.results[0].address3) - // setPrefCode(res.results[0].prefcode) - // prefId: '', //도도부현 + console.log('res.results::', res.results) + if (res.results != null) { + console.log('res.results::', res.results) + // prefId: '', //도도부현 // address: '', //주소 + console.log('prefcode::', res.results[0].prefcode) + console.log('address::', res.results[0].address2 + res.results[0].address3) + setPrefValue(res.results[0].prefcode) form.setValue('prefId', res.results[0].prefcode) form.setValue('address', res.results[0].address2 + res.results[0].address3) } else { alert('등록된 우편번호에서 주소를 찾을 수 없습니다. 다시 입력해주세요.') + form.setValue('prefId', '') + form.setValue('address', '') + setPrefValue('') } } else { alert(res.message) @@ -218,11 +225,18 @@ export default function StuffDetail() { const _dispCompanyName = watch('dispCompanyName') const _objectStatusId = watch('objectStatusId') const _objectNameOmit = watch('objectNameOmit') - const _zipno = watch('zipno') + const _zipNo = watch('zipNo') + const _prefId = watch('prefId') + const _address = watch('address') + const _coldAreaChk = watch('coldAreaChk') console.log(_dispCompanyName) console.log(_objectStatusId) console.log(_objectNameOmit) - console.log(_zipno) + console.log(_zipNo) + console.log(_prefId) + console.log('prefValue::', prefValue) + console.log(_address) + console.log('_coldAreaChk::', _coldAreaChk) } //필수값 안넣었을때 @@ -285,11 +299,87 @@ export default function StuffDetail() {
+
+ {prefCodeList?.length > 0 && ( + + )} +
+
+ +
+
+ +
+
+ + {' '} + cm + { + form.setValue('coldAreaChk', e) + }} + {...form.register('coldAreaChk')} + > + 한랭지대책시행 + +
+
+ + + + + + { + form.setValue('saltAreaChk', e) + }} + > + 염해지역용아이템사용 + +
+
+ +
+
+ + + + + +
+
+ +
{t('join.sub3.qtCompNm')}{getMessage('join.sub3.qtCompNm')}
- {t('join.sub3.qtPostCd')}/{t('join.sub3.qtAddr')} + {getMessage('join.sub3.qtPostCd')}/{getMessage('join.sub3.qtAddr')}
{t('join.sub3.qtEmail')}{getMessage('join.sub3.qtEmail')}
{t('join.sub3.qtTelNo')}{getMessage('join.sub3.qtTelNo')}
{t('join.sub3.qtFax')}{getMessage('join.sub3.qtFax')}