Merge pull request 'dev' (#85) from dev into dev-deploy

Reviewed-on: #85
This commit is contained in:
ysCha 2025-05-29 16:45:27 +09:00
commit 72cded314b
9 changed files with 39 additions and 17 deletions

View File

@ -14,6 +14,7 @@ import { sessionStore } from '@/store/commonAtom'
import { isObjectNotEmpty } from '@/util/common-utils' import { isObjectNotEmpty } from '@/util/common-utils'
import BoardDetailModal from './community/modal/BoardDetailModal' import BoardDetailModal from './community/modal/BoardDetailModal'
import Config from '@/config/config.export'
export default function MainPage() { export default function MainPage() {
const [sessionState, setSessionState] = useRecoilState(sessionStore) const [sessionState, setSessionState] = useRecoilState(sessionStore)

View File

@ -13,6 +13,7 @@ import { QcastContext } from '@/app/QcastProvider'
import { useAxios } from '@/hooks/useAxios' import { useAxios } from '@/hooks/useAxios'
import { globalLocaleStore } from '@/store/localeAtom' import { globalLocaleStore } from '@/store/localeAtom'
import { e } from 'mathjs' import { e } from 'mathjs'
import { set } from 'react-hook-form'
export default function QnaRegModal({ setOpen, setReload, searchValue, selectPageBlock }) { export default function QnaRegModal({ setOpen, setReload, searchValue, selectPageBlock }) {
@ -24,6 +25,7 @@ export default function QnaRegModal({ setOpen, setReload, searchValue, selectPag
const [qnaData, setQnaData] = useState([]) const [qnaData, setQnaData] = useState([])
const [closeMdFlg, setCloseMdFlg] = useState(true) const [closeMdFlg, setCloseMdFlg] = useState(true)
const [closeSmFlg, setCloseSmFlg] = useState(true) const [closeSmFlg, setCloseSmFlg] = useState(true)
const [hideSmFlg, setHideSmFlg] = useState(false)
const qnaTypeLgCodeRef = useRef(null) const qnaTypeLgCodeRef = useRef(null)
const qnaTypeMdCodeRef = useRef(null) const qnaTypeMdCodeRef = useRef(null)
const qnaTypeSmCodeRef = useRef(null) const qnaTypeSmCodeRef = useRef(null)
@ -71,7 +73,7 @@ let fileCheck = false;
regUserTelNoRef.current.value = '' regUserTelNoRef.current.value = ''
qnaTypeLgCodeRef.current.setValue(); qnaTypeLgCodeRef.current.setValue();
qnaTypeMdCodeRef.current.setValue(); qnaTypeMdCodeRef.current.setValue();
qnaTypeSmCodeRef.current.setValue(); qnaTypeSmCodeRef.current?.setValue();
titleRef.current.value = '' titleRef.current.value = ''
contentsRef.current.value = '' contentsRef.current.value = ''
@ -112,7 +114,7 @@ let fileCheck = false;
setQnaData({ ...qnaData, qnaClsLrgCd:e.clCode}) setQnaData({ ...qnaData, qnaClsLrgCd:e.clCode})
setCloseMdFlg(false) setCloseMdFlg(false)
qnaTypeMdCodeRef.current.setValue(); qnaTypeMdCodeRef.current.setValue();
qnaTypeSmCodeRef.current.setValue(); qnaTypeSmCodeRef.current?.setValue();
} }
} }
@ -131,10 +133,20 @@ let fileCheck = false;
} }
}) })
setQnaTypeSmCodeList(codeList)
setQnaData({ ...qnaData, qnaClsMidCd: e.clCode }) setQnaData({ ...qnaData, qnaClsMidCd: e.clCode })
setCloseSmFlg(false) setCloseSmFlg(false)
qnaTypeSmCodeRef.current.setValue(); setQnaTypeSmCodeList(codeList)
qnaTypeSmCodeRef.current?.setValue();
if(codeList.length > 0) {
setHideSmFlg(false)
}else{
setHideSmFlg(true)
}
} }
@ -393,6 +405,7 @@ let fileCheck = false;
/> />
</div> </div>
<div className="select-wrap" > <div className="select-wrap" >
{!hideSmFlg && (
<Select name="" ref={qnaTypeSmCodeRef} <Select name="" ref={qnaTypeSmCodeRef}
options={qnaTypeSmCodeList} options={qnaTypeSmCodeList}
placeholder="Select" placeholder="Select"
@ -401,8 +414,8 @@ let fileCheck = false;
getOptionValue={(x) => x.clCode} getOptionValue={(x) => x.clCode}
isClearable={false} isClearable={false}
isSearchable={false} isSearchable={false}
isDisabled={closeSmFlg} isDisabled={closeSmFlg}
/> />)}
</div> </div>
</div> </div>
<div className="input-wrap mt5"> <div className="input-wrap mt5">

View File

@ -22,7 +22,7 @@ export function useCommonUtils() {
const lengthTextFont = useRecoilValue(fontSelector('lengthText')) const lengthTextFont = useRecoilValue(fontSelector('lengthText'))
const commonTextFont = useRecoilValue(fontSelector('commonText')) const commonTextFont = useRecoilValue(fontSelector('commonText'))
const [commonUtils, setCommonUtilsState] = useRecoilState(commonUtilsState) const [commonUtils, setCommonUtilsState] = useRecoilState(commonUtilsState)
const { addPopup, closeAll } = usePopup() const { addPopup, closeAll, targetClose } = usePopup()
const { drawDirectionArrow, addLengthText } = usePolygon() const { drawDirectionArrow, addLengthText } = usePolygon()
const { applyDormers } = useObjectBatch({}) const { applyDormers } = useObjectBatch({})
@ -38,8 +38,9 @@ export function useCommonUtils() {
const commonTextMode = () => { const commonTextMode = () => {
let textbox let textbox
closeAll()
if (commonUtils.text) { if (commonUtils.text) {
targetClose('other')
setTimeout(() => { setTimeout(() => {
commonTextKeyEvent() commonTextKeyEvent()
addCanvasMouseEventListener('mouse:down', (event) => { addCanvasMouseEventListener('mouse:down', (event) => {

View File

@ -5,6 +5,7 @@ import { usePlan } from '../usePlan'
import { POLYGON_TYPE } from '@/common/common' import { POLYGON_TYPE } from '@/common/common'
import { QcastContext } from '@/app/QcastProvider' import { QcastContext } from '@/app/QcastProvider'
import { useContext } from 'react' import { useContext } from 'react'
import Config from '@/config/config.export'
/** /**
* 이미지 로더 hook * 이미지 로더 hook
@ -80,7 +81,7 @@ export function useImgLoader() {
/** 이미지 크롭 요청 */ /** 이미지 크롭 요청 */
const result = await post({ const result = await post({
// url: `${process.env.NEXT_PUBLIC_API_HOST_URL}/image/canvas`, // url: `${process.env.NEXT_PUBLIC_API_HOST_URL}/image/canvas`,
url: `${process.env.NEXT_PUBLIC_API_HOST_URL}/api/image/canvas`, url: `${Config().baseUrl}/api/image/canvas`,
data: formData, data: formData,
}) })
console.log('🚀 ~ handleCanvasToPng ~ result:', result) console.log('🚀 ~ handleCanvasToPng ~ result:', result)

View File

@ -1100,7 +1100,7 @@ export const usePolygon = () => {
}) })
// blue로 생성된 것들은 대표라인이 될 수 없음. // blue로 생성된 것들은 대표라인이 될 수 없음.
// representLines = representLines.filter((line) => line.stroke !== 'blue') representLines = representLines.filter((line) => line.stroke !== 'blue')
// representLines중 가장 긴 line을 찾는다. // representLines중 가장 긴 line을 찾는다.
representLines.forEach((line) => { representLines.forEach((line) => {
if (!representLine) { if (!representLine) {

View File

@ -128,11 +128,17 @@ export function usePopup() {
} }
} }
const targetClose = (type) => {
popup[type] = []
setPopup({ ...popup, [type]: [] })
}
return { return {
popup, popup,
addPopup, addPopup,
closePopup, closePopup,
closePopups, closePopups,
closeAll, closeAll,
targetClose,
} }
} }

View File

@ -617,7 +617,7 @@
"qna.reg.alert.select.type": "お問い合わせ区分を選択してください。", "qna.reg.alert.select.type": "お問い合わせ区分を選択してください。",
"qna.reg.alert.require.title": "タイトルを入力してください。", "qna.reg.alert.require.title": "タイトルを入力してください。",
"qna.reg.alert.require.contents": "内容を入力してください。", "qna.reg.alert.require.contents": "内容を入力してください。",
"qna.reg.confirm.save": "1:1お問い合わせを登録しますか? <br/>Hanwha Japan 担当者にお問い合わせメールが送信されます。", "qna.reg.confirm.save": "お問い合わせを登録しますか? <br/>Hanwha Japan 担当者にお問い合わせメールが送信されます。",
"qna.reg.alert.save": "保存されました。", "qna.reg.alert.save": "保存されました。",
"qna.reg.alert.saveFail": "保存に失敗しました。", "qna.reg.alert.saveFail": "保存に失敗しました。",
"qna.list.header.regNm": "登録者", "qna.list.header.regNm": "登録者",

View File

@ -37,11 +37,11 @@ export const subMenusState = atom({
// 지붕덮개 // 지붕덮개
{ id: 0, name: 'plan.menu.roof.cover.outline.drawing', menu: MENU.ROOF_COVERING.EXTERIOR_WALL_LINE }, { id: 0, name: 'plan.menu.roof.cover.outline.drawing', menu: MENU.ROOF_COVERING.EXTERIOR_WALL_LINE },
{ id: 1, name: 'plan.menu.roof.cover.roof.shape.setting', menu: MENU.ROOF_COVERING.ROOF_SHAPE_SETTINGS }, { id: 1, name: 'plan.menu.roof.cover.roof.shape.setting', menu: MENU.ROOF_COVERING.ROOF_SHAPE_SETTINGS },
{ // {
id: 2, // id: 2,
name: 'plan.menu.roof.cover.roof.shape.passivity.setting', // name: 'plan.menu.roof.cover.roof.shape.passivity.setting',
menu: MENU.ROOF_COVERING.ROOF_SHAPE_PASSIVITY_SETTINGS, // menu: MENU.ROOF_COVERING.ROOF_SHAPE_PASSIVITY_SETTINGS,
}, // },
{ id: 3, name: 'plan.menu.roof.cover.auxiliary.line.drawing', menu: MENU.ROOF_COVERING.HELP_LINE_DRAWING }, { id: 3, name: 'plan.menu.roof.cover.auxiliary.line.drawing', menu: MENU.ROOF_COVERING.HELP_LINE_DRAWING },
{ id: 4, name: 'plan.menu.roof.cover.eaves.kerava.edit', menu: MENU.ROOF_COVERING.EAVES_KERAVA_EDIT }, { id: 4, name: 'plan.menu.roof.cover.eaves.kerava.edit', menu: MENU.ROOF_COVERING.EAVES_KERAVA_EDIT },
{ id: 5, name: 'plan.menu.roof.cover.movement.shape.updown', menu: MENU.ROOF_COVERING.MOVEMENT_SHAPE_UPDOWN }, { id: 5, name: 'plan.menu.roof.cover.movement.shape.updown', menu: MENU.ROOF_COVERING.MOVEMENT_SHAPE_UPDOWN },

View File

@ -1,2 +1,2 @@
var exec = require('child_process').exec var exec = require('child_process').exec
exec('yarn dev -p 5000', { windowsHide: true }) exec('yarn local:dev -p 5000', { windowsHide: true })