From c113f192b6f7ccfcd1caf7eb8dd112ef6ed429b5 Mon Sep 17 00:00:00 2001 From: basssy Date: Mon, 6 Jan 2025 16:57:50 +0900 Subject: [PATCH 1/7] =?UTF-8?q?QCAST3=20=EB=A9=94=EC=9D=B8=ED=99=94?= =?UTF-8?q?=EB=A9=B4,=20=EC=83=81=EB=8B=A8=20=EB=A9=94=EB=89=B4=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=EC=8B=9C=20=EB=AC=BC=EA=B1=B4=20=EB=A6=AC=EC=BD=94?= =?UTF-8?q?=EC=9D=BC=20=EC=B4=88=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/header/Header.jsx | 41 ++++++++++++++++++++++------ src/components/main/MainContents.jsx | 19 ++++++++++--- src/components/main/ProductItem.jsx | 6 ++-- src/components/management/Stuff.jsx | 1 - src/locales/ja.json | 1 + src/locales/ko.json | 1 + 6 files changed, 53 insertions(+), 16 deletions(-) diff --git a/src/components/header/Header.jsx b/src/components/header/Header.jsx index 2e2e98cd..384bc732 100644 --- a/src/components/header/Header.jsx +++ b/src/components/header/Header.jsx @@ -130,12 +130,20 @@ export default function Header(props) { } } - // Home 클릭시 물건 리코일 비우기 - const moveHome = () => { - setStuffSearch({ - ...stuffSearch, - code: 'DELETE', - }) + // 물건메뉴 이외 클릭시 물건 리코일 비우기 + const removeStuffRecoil = (menu) => { + //menu.id 0 HOME + //menu.id 3 신규물건등록 + //menu.id 4 물건리스트 + //menu.id 5 공지사항 + //menu.id 6 FAQ + //menu.id 7 자료실 + if (menu.id === 0 || menu.id === 5 || menu.id === 6 || menu.id === 7) { + setStuffSearch({ + ...stuffSearch, + code: 'DELETE', + }) + } } const getMenuTemplate = (menus) => { @@ -152,7 +160,8 @@ export default function Header(props) { key={`${menu.id}`} href={menu.url} onClick={() => { - moveHome() + // moveHome() + removeStuffRecoil(menu) }} > {getMessage(menu.name)} @@ -169,7 +178,13 @@ export default function Header(props) { onMouseEnter={(e) => ToggleonMouse(e, 'add', 'li > ul')} onMouseLeave={(e) => ToggleonMouse(e, 'remove', 'li > ul')} > - + { + removeStuffRecoil(m) + }} + > {getMessage(m.name)} @@ -190,7 +205,15 @@ export default function Header(props) {

- + { + setStuffSearch({ + ...stuffSearch, + code: 'DELETE', + }) + }} + >

- +
) : ( - )} @@ -1514,7 +1528,7 @@ export default function StuffDetail() { )) || null}
-
@@ -1751,7 +1765,7 @@ export default function StuffDetail() {
-
{getMessage('stuff.detail.btn.addressPop.guide')}
@@ -1841,7 +1855,7 @@ export default function StuffDetail() { > {getMessage('stuff.detail.standardWindSpeedIdSpan')} - @@ -1963,11 +1977,11 @@ export default function StuffDetail() {
{!isFormValid ? ( - ) : ( - )} @@ -1995,10 +2009,10 @@ export default function StuffDetail() { {getMessage('stuff.detail.btn.moveList')} - -
@@ -2007,11 +2021,11 @@ export default function StuffDetail() { <>
{!isFormValid ? ( - ) : ( - )} @@ -2045,12 +2059,13 @@ export default function StuffDetail() { onClick={() => { form.setValue('planReqNo', '') }} + style={{ display: showButton }} > ) : null}
{managementState?.tempFlg === '1' ? ( <> - @@ -2306,7 +2321,7 @@ export default function StuffDetail() {
-
{getMessage('stuff.detail.btn.addressPop.guide')}
@@ -2401,7 +2416,7 @@ export default function StuffDetail() { > {getMessage('stuff.detail.standardWindSpeedIdSpan')} - @@ -2571,10 +2586,10 @@ export default function StuffDetail() { {getMessage('stuff.detail.btn.moveList')} - - @@ -2583,11 +2598,11 @@ export default function StuffDetail() { <>
{!isFormValid ? ( - ) : ( - )} From 7240886a97c190f0242babe78c577c2310f40f71 Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 7 Jan 2025 09:45:23 +0900 Subject: [PATCH 4/7] =?UTF-8?q?T01=20=EC=9E=91=EC=84=B1=20=EB=AC=BC?= =?UTF-8?q?=EA=B1=B4=20T01=EC=95=84=EB=8B=8C=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=B2=84=ED=8A=BC=20=EC=BB=A8?= =?UTF-8?q?=ED=8A=B8=EB=A1=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/management/StuffDetail.jsx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index 284849b6..7698ceff 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -268,10 +268,9 @@ export default function StuffDetail() { display: 'none', } } - //createUser가 T01인데 로그인사용자가 T01이 아니면 버튼숨기기 if (managementState?.createUser === 'T01' && session?.userId !== 'T01') { //createUser가 T01인데 로그인사용자가 T01이 아니면 버튼숨기기 - setShowButton('none') + buttonStyle = { display: 'none' } } return ( <> @@ -327,11 +326,9 @@ export default function StuffDetail() { if (res.status === 200) { // console.log(res.data.createUser) // console.log(session) - if (res?.data?.createUser === 'T01') { - if (session?.userId !== 'T01') { - //createUser가 T01인데 로그인사용자가 T01이 아니면 버튼숨기기 - setShowButton('none') - } + if (res?.data?.createUser === 'T01' && session?.userId !== 'T01') { + //createUser가 T01인데 로그인사용자가 T01이 아니면 버튼숨기기 + setShowButton('none') } if (isObjectNotEmpty(res.data)) { From afa3e367b27b8bb5ece764d5c1a8180e2b647c69 Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 7 Jan 2025 09:52:08 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=ED=94=8C=EB=9E=9C=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EB=8D=94=EB=B8=94=ED=81=B4=EB=A6=AD=20=EC=8B=9C,?= =?UTF-8?q?=20=EB=8F=84=EB=A9=B4=EC=9E=91=EC=84=B1=ED=99=94=EB=A9=B4?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/management/StuffDetail.jsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index 7698ceff..640957d1 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -1465,13 +1465,13 @@ export default function StuffDetail() { // 그리드 더블 클릭 const getCellDoubleClicked = (params) => { - // if (params?.column?.colId !== 'estimateDate') { - // if (params?.data?.planNo && params?.data?.objectNo) { - // let objectNo = params?.data?.objectNo - // let planNo = params?.data?.planNo - // router.push(`/floor-plan?pid=${planNo}&objectNo=${objectNo}`) - // } - // } + if (params?.column?.colId !== 'estimateDate') { + if (params?.data?.planNo && params?.data?.objectNo) { + let objectNo = params?.data?.objectNo + let planNo = params?.data?.planNo + router.push(`/floor-plan?pid=${planNo}&objectNo=${objectNo}`) + } + } } return ( From d7b179638b3aa3383d853b7bea220eddf4c655da Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Tue, 7 Jan 2025 10:05:34 +0900 Subject: [PATCH 6/7] =?UTF-8?q?=EC=A7=80=EB=B6=95=EB=A9=B4=20=ED=95=A0?= =?UTF-8?q?=EB=8B=B9=20=EC=8B=9C=20index=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/roofcover/useRoofAllocationSetting.js | 17 ++++++++++++----- src/store/settingAtom.js | 4 +--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/hooks/roofcover/useRoofAllocationSetting.js b/src/hooks/roofcover/useRoofAllocationSetting.js index 0840dc2d..05a76e9b 100644 --- a/src/hooks/roofcover/useRoofAllocationSetting.js +++ b/src/hooks/roofcover/useRoofAllocationSetting.js @@ -108,15 +108,18 @@ export function useRoofAllocationSetting(id) { // 지붕재 오른쪽 마우스 클릭 후 단일로 지붕재 변경 필요한 경우 const handleSaveContext = () => { + const newRoofList = currentRoofList.map((roof, idx) => { + return { ...roof, index: idx } + }) setBasicSetting((prev) => { return { ...prev, - selectedRoofMaterial: currentRoofList.find((roof) => roof.selected), + selectedRoofMaterial: newRoofList.find((roof) => roof.selected), } }) - setRoofList(currentRoofList) - const selectedRoofMaterial = currentRoofList.find((roof) => roof.selected) + setRoofList(newRoofList) + const selectedRoofMaterial = newRoofList.find((roof) => roof.selected) setSurfaceShapePattern(currentObject, roofDisplay.column, false, selectedRoofMaterial) closeAll() } @@ -180,14 +183,18 @@ export function useRoofAllocationSetting(id) { canvas.remove(wallLine) }) + const newRoofList = currentRoofList.map((roof, idx) => { + return { ...roof, index: idx } + }) + setBasicSetting((prev) => { return { ...prev, - selectedRoofMaterial: currentRoofList.find((roof) => roof.selected), + selectedRoofMaterial: newRoofList.find((roof) => roof.selected), } }) - setRoofList(currentRoofList) + setRoofList(newRoofList) const roofs = canvas.getObjects().filter((obj) => obj.name === 'roof') diff --git a/src/store/settingAtom.js b/src/store/settingAtom.js index 1b837fdd..305bcb57 100644 --- a/src/store/settingAtom.js +++ b/src/store/settingAtom.js @@ -224,9 +224,7 @@ export const roofMaterialsAtom = atom({ export const selectedRoofMaterialSelector = selector({ key: 'selectedRoofMaterialSelector', get: ({ get }) => { - const addedRoofs = get(addedRoofsState) - - return addedRoofs.find((roof) => roof.selected) + return get(basicSettingState).selectedRoofMaterial }, }) From f50c39dfbd91f6211cf7b5ccdf47000ffccdd86a Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 7 Jan 2025 10:46:42 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=EB=AC=BC=EA=B1=B4=20=EC=A0=80=EC=9E=A5?= =?UTF-8?q?=EC=8B=9C=20=EB=8B=B4=EB=8B=B9=EC=9E=90=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=9E=90=EB=A6=AC=EC=88=98=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/main/MainContents.jsx | 8 +++++--- src/components/management/StuffDetail.jsx | 15 +++++++++++++-- src/locales/ja.json | 1 + src/locales/ko.json | 1 + 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/components/main/MainContents.jsx b/src/components/main/MainContents.jsx index 09aeb046..df50bd40 100644 --- a/src/components/main/MainContents.jsx +++ b/src/components/main/MainContents.jsx @@ -85,6 +85,7 @@ export default function MainContents() { } } + console.log('qcastState:::', qcastState?.businessCharger) return (
@@ -106,8 +107,8 @@ export default function MainContents() { >
{dayjs(row.lastEditDatetime).format('YYYY.MM.DD HH:mm:ss')} - {row.objectNo} - {row.objectName} + {row.tempFlg === '0' ? row.objectNo : getMessage('stuff.gridData.tempObjectNo')} + {row.objectName ? row.objectName : '-'} {row.saleStoreName}
@@ -115,7 +116,8 @@ export default function MainContents() { })} ) : ( - + <> + // )} diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index 640957d1..f31bbcaa 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -1307,12 +1307,16 @@ export default function StuffDetail() { delete params_sort.workNo delete params_sort.workName - // console.log(JSON.stringify(detail_sort) === JSON.stringify(params_sort)) - // console.log(Object.entries(detail_sort).toString() === Object.entries(params_sort).toString()) if (Object.entries(detail_sort).toString() === Object.entries(params_sort).toString()) { return alert(getMessage('stuff.detail.noChgData')) } + if (params?.receiveUser !== '') { + if (params?.receiveUser.trim().length > 10) { + return alert(getMessage('stuff.detail.tempSave.message2')) + } + } + if (editMode === 'NEW') { await promisePost({ url: apiUrl, data: params }) .then((res) => { @@ -1384,6 +1388,13 @@ export default function StuffDetail() { params.saleStoreLevel = session.storeLvl } + // 담당자 자리수 체크 + if (params?.receiveUser !== '') { + if (params?.receiveUser.trim().length > 10) { + return alert(getMessage('stuff.detail.tempSave.message2')) + } + } + const apiUrl = '/api/object/save-object' if (objectNo) { await promisePut({ url: apiUrl, data: params }) diff --git a/src/locales/ja.json b/src/locales/ja.json index f1532f56..27794f3e 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -665,6 +665,7 @@ "stuff.detail.tooltip.saleStoreId": "販売代理店または販売代理店IDを1文字以上入力してください", "stuff.detail.tooltip.surfaceType": "塩害地域の定義は各メーカーの設置マニュアルをご確認ください", "stuff.detail.tempSave.message1": "一時保存されました。商品番号を取得するには、必須項目をすべて入力してください。", + "stuff.detail.tempSave.message2": "担当者は10桁以下で入力してください.", "stuff.detail.confirm.message1": "販売店情報を変更すると、設計依頼文書番号が削除されます。変更しますか?", "stuff.detail.delete.message1": "仕様が確定したものは削除できません。", "stuff.detail.planList.title": "プランリスト", diff --git a/src/locales/ko.json b/src/locales/ko.json index 4d0f393c..b7a64b03 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -675,6 +675,7 @@ "stuff.detail.tooltip.saleStoreId": "판매대리점 또는 판매대리점ID를 1자 이상 입력하세요", "stuff.detail.tooltip.surfaceType": "염해지역 정의는 각 메이커의 설치 메뉴얼을 확인해주십시오", "stuff.detail.tempSave.message1": "임시저장 되었습니다. 물건번호를 획득하려면 필수 항목을 모두 입력해 주십시오.", + "stuff.detail.tempSave.message2": "담당자는 10자리 이하로 입력해 주십시오.", "stuff.detail.confirm.message1": "판매점 정보를 변경하면, 설계의뢰 문서번호가 삭제됩니다. 변경하시겠습니까?", "stuff.detail.delete.message1": "사양이 확정된 물건은 삭제할 수 없습니다.", "stuff.detail.planList.title": "플랜리스트",