From 4af6e13db45bb20e6bd550be2c3d8f51687d4397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Mon, 26 May 2025 14:44:04 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=9A=A8chore:=20Sync=20Sass?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/styles/_modal.scss | 22 +++++++++++++++++++++- src/styles/_submodal.scss | 7 ++----- src/styles/_table.scss | 4 ++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/styles/_modal.scss b/src/styles/_modal.scss index 7b94f2b4..30c18715 100644 --- a/src/styles/_modal.scss +++ b/src/styles/_modal.scss @@ -2436,4 +2436,24 @@ $alert-color: #101010; } } } -} \ No newline at end of file +} + +// 2025-05-26 동선이동∙형 올림 내림 + +.moving-tab-radio-wrap{ + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 10px; +} +.moving-tab-content{ + padding: 10px; + border: 1px solid #3D3D3D; + margin-top: 15px; + .outline-form{ + span{ + width: auto; + margin-right: 23px; + } + } +} diff --git a/src/styles/_submodal.scss b/src/styles/_submodal.scss index 8f73eca9..fc40e486 100644 --- a/src/styles/_submodal.scss +++ b/src/styles/_submodal.scss @@ -374,10 +374,7 @@ // 1:1문의 .one-on-one{ .select-wrap{ - width: 250px; - } - .input-wrap{ - flex: 1 1 auto; + flex: 1; } &.btn-area{ padding-bottom: 0; @@ -388,7 +385,7 @@ border: 1px solid #eee; .drag-file-area{ margin-top: 0; - .file-list { + .file-list{ overflow-y: auto; max-height: 100px; } diff --git a/src/styles/_table.scss b/src/styles/_table.scss index 31b96bd9..a336104f 100644 --- a/src/styles/_table.scss +++ b/src/styles/_table.scss @@ -400,6 +400,10 @@ table{ font-weight: 400; } } + &.no-data{ + padding: 70px 0; + font-size: 14px; + } } tr{ background-color: transparent; From af627035cd2ba89daaec83f3697d61e7751a43b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Mon, 26 May 2025 14:44:41 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[938]=20:=20[=E3=80=90HANASYS=20DESIGN?= =?UTF-8?q?=E3=80=91=20=EB=B3=B5=EB=8F=84=20=EC=9E=85=EB=A0=A5=20=EC=9E=90?= =?UTF-8?q?=EB=A6=BF=EC=88=98=20=EC=83=81=ED=96=A5,=20=EC=9E=90=EB=A6=BF?= =?UTF-8?q?=EC=88=98=20=ED=95=98=ED=96=A5=EC=97=90=20=EB=8C=80=ED=95=B4?= =?UTF-8?q?=EC=84=9C=E3=80=80=E4=BC=8F=E5=9B=B3=E5=85=A5=E5=8A=9B=E3=80=80?= =?UTF-8?q?=E6=A1=81=E4=B8=8A=E3=81=92=E3=83=BB=E6=A1=81=E4=B8=8B=E3=81=92?= =?UTF-8?q?=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [작업내용] : 다국어 수정 및 퍼블 변경 --- .../modal/movement/type/FlowLine.jsx | 94 +++++++++--------- .../floor-plan/modal/movement/type/Updown.jsx | 95 +++++++++---------- src/locales/ja.json | 12 ++- src/locales/ko.json | 2 + 4 files changed, 96 insertions(+), 107 deletions(-) diff --git a/src/components/floor-plan/modal/movement/type/FlowLine.jsx b/src/components/floor-plan/modal/movement/type/FlowLine.jsx index 3c23a30a..337ec50b 100644 --- a/src/components/floor-plan/modal/movement/type/FlowLine.jsx +++ b/src/components/floor-plan/modal/movement/type/FlowLine.jsx @@ -32,61 +32,53 @@ export default function FlowLine({ FLOW_LINE_REF }) { <>
{getMessage('modal.movement.flow.line.info')}
-
-
-
-
- { - setType(FLOW_LINE_TYPE.DOWN_LEFT) - }} - /> - -
+
+ {getMessage('modal.movement.flow.line.position')} +
+ +
+
+
+
+
+ { + setType(FLOW_LINE_TYPE.DOWN_LEFT) + }} + /> +
-
-
-
- {} -
-
+
+ { + setType(FLOW_LINE_TYPE.UP_RIGHT) + }} + /> +
-
-
-
- { - setType(FLOW_LINE_TYPE.UP_RIGHT) - }} - /> - -
-
-
-
-
- -
- mm -
+
+ {getMessage('modal.movement.flow.line.movement')} +
+
+ mm
diff --git a/src/components/floor-plan/modal/movement/type/Updown.jsx b/src/components/floor-plan/modal/movement/type/Updown.jsx index 786c7017..356bb29a 100644 --- a/src/components/floor-plan/modal/movement/type/Updown.jsx +++ b/src/components/floor-plan/modal/movement/type/Updown.jsx @@ -29,61 +29,54 @@ export default function Updown({ UP_DOWN_REF }) { <>
{getMessage('modal.movement.flow.line.updown.info')}
-
-
-
-
- { - setType(UP_DOWN_TYPE.UP) - }} - /> - -
+
+ {getMessage('modal.movement.flow.line.position')} +
+ +
+
+
+
+
+ { + setType(UP_DOWN_TYPE.UP) + }} + /> +
-
-
-
- {} -
-
+
+ { + setType(UP_DOWN_TYPE.DOWN) + }} + /> +
-
-
-
- { - setType(UP_DOWN_TYPE.DOWN) - }} - /> - -
-
-
-
-
- -
- mm -
+
+ {getMessage('modal.movement.flow.line.movement')} +
+
+ mm
diff --git a/src/locales/ja.json b/src/locales/ja.json index 4ba19494..00599068 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -43,14 +43,16 @@ "plan.menu.roof.cover.roof.shape.setting": "屋根形状の設定", "plan.menu.roof.cover.roof.shape.passivity.setting": "屋根形状の手動設定", "plan.menu.roof.cover.eaves.kerava.edit": "軒・ケラバ変更", - "plan.menu.roof.cover.movement.shape.updown": "軒線移動・桁上げ下り", - "modal.movement.flow.line.move": "軒線の移動", + "plan.menu.roof.cover.movement.shape.updown": "棟線移動・桁上げ下げ", + "modal.movement.flow.line.move": "棟線移動", "modal.movement.flow.line.move.alert": "移動する数ない。", - "modal.movement.flow.line.updown": "桁上げ・下り", - "modal.movement.flow.line.updown.info": "桁の異なる辺を選択し、幅を指定します。", + "modal.movement.flow.line.updown": "桁上げ・下げ", + "modal.movement.flow.line.updown.info": "桁高の違う辺を選択し、 幅を指定してください", "modal.movement.flow.line.updown.up": "桁を上げる", "modal.movement.flow.line.updown.down": "桁数を下げる", - "modal.movement.flow.line.info": "軒線を選択して移動幅を指定します", + "modal.movement.flow.line.info": "棟線を選択し、 移動幅を指定してください。", + "modal.movement.flow.line.position": "位置値", + "modal.movement.flow.line.movement": "動き値", "modal.movement.flow.line.bottom.left": "高さ変更:下、左", "modal.movement.flow.line.top.right": "高さ変更:上、右", "plan.menu.roof.cover.outline.edit.offset": "外壁の編集とオフセット", diff --git a/src/locales/ko.json b/src/locales/ko.json index 0d2ecc83..efcabd1c 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -51,6 +51,8 @@ "modal.movement.flow.line.updown.up": "자릿수를 올리다", "modal.movement.flow.line.updown.down": "자릿수를 낮추다", "modal.movement.flow.line.info": "동선을 선택하고 이동 폭을 지정하십시오", + "modal.movement.flow.line.position": "위치값", + "modal.movement.flow.line.movement": "이동 수치", "modal.movement.flow.line.bottom.left": "높이변경 : 아래, 왼쪽", "modal.movement.flow.line.top.right": "높이변경 : 위, 오른쪽", "plan.menu.roof.cover.outline.edit.offset": "외벽선 편집 및 오프셋", From 50aa5ca556cd54634aea325e3001e13d635887fc Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Mon, 26 May 2025 15:57:27 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[1066]=20=EC=83=88=EB=A1=9C=EA=B3=A0?= =?UTF-8?q?=EC=B9=A8=20=EC=8B=9C,=20=EC=A7=80=EB=B6=95=EC=9E=AC=20?= =?UTF-8?q?=EB=AF=B8=ED=91=9C=EC=8B=9C=20=EC=98=A4=EB=A5=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/option/useCanvasSetting.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 5ae8c9ef..9f44e151 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -199,7 +199,11 @@ export function useCanvasSetting(executeEffect = true) { if (!executeEffect) { return } + if (roofMaterials.length === 0) { + return + } const selectedRoofMaterial = roofMaterials[0] + console.log('selectedRoofMaterial', selectedRoofMaterial) if (addedRoofs.length === 0) { const newAddedRoofs = [] From 5101fab02737f09c382039d946f932fab00d7483 Mon Sep 17 00:00:00 2001 From: ysCha Date: Mon, 26 May 2025 16:53:43 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[1004]=201:1=20=201)=20no=20data=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=202)=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EA=B0=80=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/community/Qna.jsx | 4 +- .../community/modal/QnaRegModal.jsx | 59 ++++++++++++++----- src/locales/ja.json | 1 + src/locales/ko.json | 1 + 4 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/components/community/Qna.jsx b/src/components/community/Qna.jsx index ed65637f..033f7424 100644 --- a/src/components/community/Qna.jsx +++ b/src/components/community/Qna.jsx @@ -195,9 +195,7 @@ export default function Qna() { )) ) : ( - - {getMessage('common.message.no.data')} - + {getMessage('common.message.no.data')} )} diff --git a/src/components/community/modal/QnaRegModal.jsx b/src/components/community/modal/QnaRegModal.jsx index ef40457b..c7e3b40b 100644 --- a/src/components/community/modal/QnaRegModal.jsx +++ b/src/components/community/modal/QnaRegModal.jsx @@ -27,6 +27,7 @@ export default function QnaRegModal({ setOpen, setReload, searchValue, selectPag const qnaTypeLgCodeRef = useRef(null) const qnaTypeMdCodeRef = useRef(null) const qnaTypeSmCodeRef = useRef(null) + const qstMail = useRef(null); const regUserNmRef = useRef(null) const regUserTelNoRef = useRef(null) const titleRef = useRef(null) @@ -65,6 +66,7 @@ let fileCheck = false; const initQnaReg = async () => { + qstMail.current.value = '' regUserNmRef.current.value = '' regUserTelNoRef.current.value = '' qnaTypeLgCodeRef.current.setValue(); @@ -148,7 +150,7 @@ let fileCheck = false; if(!fileCheck) return; fileUploadProps.uploadFiles.forEach((file) => { - console.log("file::::::::",file) + //console.log("file::::::::",file) formData.push(file) }) @@ -156,6 +158,16 @@ let fileCheck = false; fileCheck = false; } + const isValidEmail = (email) => { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + return emailRegex.test(email); + }; + + const isEmpty = (value) => { + return value === null || value === undefined || value.trim() === ""; + }; + + const handleQnaSubmit = async () => { //필수 체크 @@ -164,13 +176,22 @@ let fileCheck = false; let regUserNm = qnaData?.regUserNm??''; - if (regUserNm.trim().length === 0) { + if (!isValidEmail(qnaData.qstMail)) { + qstMail.current.focus(); + swalFire({ + title: getMessage('qna.reg.alert.require.qstMail'), + icon: 'warning', + }); + return; + } - regUserNmRef.current.value = ''; + + if (isEmpty(regUserNm)) { + regUserNmRef.current.value = ''; regUserNmRef.current.focus() swalFire({ - text: getMessage('qna.reg.alert.require.regUserNm'), - type: 'alert', + title: getMessage('qna.reg.alert.require.regUserNm'), + icon: 'warning', }) return false } @@ -178,35 +199,35 @@ let fileCheck = false; let qnaClsLrgCd = qnaData?.qnaClsLrgCd??''; let qnaClsMidCd = qnaData?.qnaClsMidCd??''; - if (qnaClsLrgCd.trim().length === 0 || qnaClsMidCd.trim().length === 0 ) { - (qnaClsLrgCd.trim().length === 0)?qnaTypeLgCodeRef.current.focus():qnaTypeMdCodeRef.current.focus() + if (isEmpty(qnaClsLrgCd) || isEmpty(qnaClsMidCd) ) { + (isEmpty(qnaClsLrgCd))?qnaTypeLgCodeRef.current.focus():qnaTypeMdCodeRef.current.focus() swalFire({ - text: getMessage('qna.reg.alert.select.type'), - type: 'alert', + title: getMessage('qna.reg.alert.select.type'), + icon: 'warning', }) return false } let title = qnaData?.title??''; - if (title.trim().length === 0) { + if (isEmpty(title)) { titleRef.current.value = ''; titleRef.current.focus() swalFire({ - text: getMessage('qna.reg.alert.require.title'), - type: 'alert', + title: getMessage('qna.reg.alert.require.title'), + icon: 'warning', }) return false } //console.log("5::::",qnaData) let contents = qnaData?.contents??''; - if (contents.trim().length === 0) { + if (isEmpty(contents)) { contentsRef.current.value = ''; contentsRef.current.focus() swalFire({ - text: getMessage('qna.reg.alert.require.contents'), - type: 'alert', + title: getMessage('qna.reg.alert.require.contents'), + icon: 'warning', }) return false } @@ -310,7 +331,13 @@ let fileCheck = false; {getMessage('qna.list.header.regNm')} E-Mail* - + setQnaData({...qnaData, qstMail: e.target.value })} + onBlur={(e) => setQnaData({ ...qnaData, qstMail: e.target.value })} /> + + {getMessage('qna.reg.header.regDt')} {dayjs(new Date()).format('YYYY-MM-DD')} diff --git a/src/locales/ja.json b/src/locales/ja.json index 00599068..d90cab69 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -612,6 +612,7 @@ "qna.reg.header.contents": "お問い合わせ内容", "qna.reg.header.fileList": "ファイル添付", "qna.reg.header.save": "保存", + "qna.reg.alert.require.qstMail": "無効なメール形式です。", "qna.reg.alert.require.regUserNm": "名前を入力してください。", "qna.reg.alert.select.type": "お問い合わせ区分を選択してください。", "qna.reg.alert.require.title": "タイトルを入力してください。", diff --git a/src/locales/ko.json b/src/locales/ko.json index efcabd1c..67176ee8 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -612,6 +612,7 @@ "qna.reg.header.contents": "문의정보", "qna.reg.header.fileList": "파일첨부", "qna.reg.header.save": "저장", + "qna.reg.alert.require.qstMail": "올바르지 않은 이메일 형식입니다.", "qna.reg.alert.require.regUserNm": "이름을 입력하세요.", "qna.reg.alert.select.type": "문의구분을 선택하세요.", "qna.reg.alert.require.title": "제목을 입력하세요.",