Compare commits

..

25 Commits

Author SHA1 Message Date
72cded314b Merge pull request 'dev' (#85) from dev into dev-deploy
Reviewed-on: #85
2025-05-29 16:45:27 +09:00
a17d547252 Merge pull request 'qna selectbox hidden 처리, alert변경' (#84) from feature/ysCha into dev
Reviewed-on: #84
2025-05-29 16:44:28 +09:00
df323ffb38 qna selectbox hidden 처리, alert변경 2025-05-29 16:42:34 +09:00
313be228be [1072] : [伏図入力の"屋根形状の手動設定"について]
[작업내용] : 메뉴 삭제
2025-05-29 16:37:30 +09:00
da69eaa00a Import configuration module in useRefFiles hook for enhanced background image management. 2025-05-29 16:27:09 +09:00
1cd24aeca9 Refactor image upload process: set fixed ContentType for uploaded images and convert Base64 to Blob for file handling in useRefFiles hook. 2025-05-29 15:55:53 +09:00
1fe86746c1 지붕 흐름방향 수정 2025-05-29 15:47:49 +09:00
2c475ddbdd Merge pull request 'Remove unused environment configuration display from Main component.' (#82) from feature/chore-env into dev
Reviewed-on: #82
2025-05-29 15:39:12 +09:00
5e8542efe5 Remove unused environment configuration display from Main component. 2025-05-29 15:38:46 +09:00
63930d0966 Merge pull request 'Update environment configuration files to include NEXT_PUBLIC_RUN_MODE for development, local.dev, local, and production environments. Adjust package.json script to rename build command for local development.' (#81) from feature/chore-env into dev
Reviewed-on: #81
2025-05-29 15:28:23 +09:00
772cccce89 Update environment configuration files to include NEXT_PUBLIC_RUN_MODE for development, local.dev, local, and production environments. Adjust package.json script to rename build command for local development. 2025-05-29 15:27:52 +09:00
81b9d659f6 Merge pull request 'Fix local development script in package.json to reference the correct .env.local.dev file.' (#80) from feature/chore-env into dev
Reviewed-on: #80
2025-05-29 15:14:07 +09:00
3594e96a87 Fix local development script in package.json to reference the correct .env.local.dev file. 2025-05-29 15:13:36 +09:00
272ff4f93f 텍스트 모드시 config 창은 안닫히도록 수정 2025-05-29 15:00:34 +09:00
a47db47489 Merge pull request 'Add local environment configuration for development: create .env.local.dev file and update package.json with new build script for local development.' (#79) from feature/chore-env into dev
Reviewed-on: #79
2025-05-29 14:55:59 +09:00
3034e66c4f Add local environment configuration for development: create .env.local.dev file and update package.json with new build script for local development. 2025-05-29 14:55:37 +09:00
09e5b17fe4 Merge pull request 'Add local development ecosystem configuration for Next.js application.' (#78) from feature/chore-env into dev
Reviewed-on: #78
2025-05-29 14:48:40 +09:00
2ed020bbcc Add local development ecosystem configuration for Next.js application. 2025-05-29 14:48:11 +09:00
112de1f7b4 Merge pull request 'Update startscript to use local development command for consistency with new environment configuration.' (#77) from feature/chore-env into dev
Reviewed-on: #77
2025-05-29 14:41:35 +09:00
c4e5aa1b01 Update startscript to use local development command for consistency with new environment configuration. 2025-05-29 14:41:03 +09:00
bb76dc9ad4 Merge pull request 'Add local development configuration: introduce config.local.dev.js and update config export logic in config.export.js. Enhance package.json with a new local:dev script for environment management.' (#76) from feature/chore-env into dev
Reviewed-on: #76
2025-05-29 14:39:25 +09:00
ada62ae8ec Add local development configuration: introduce config.local.dev.js and update config export logic in config.export.js. Enhance package.json with a new local:dev script for environment management. 2025-05-29 14:38:20 +09:00
febea389c9 Merge pull request 'Refactor environment configuration: update package.json scripts to use env-cmd for different environments and replace process.env.NEXT_PUBLIC_API_HOST_URL with Config().baseUrl in API calls across multiple components.' (#75) from feature/chore-env into dev
Reviewed-on: #75
2025-05-29 13:09:32 +09:00
3dc205cb46 Refactor environment configuration: update package.json scripts to use env-cmd for different environments and replace process.env.NEXT_PUBLIC_API_HOST_URL with Config().baseUrl in API calls across multiple components. 2025-05-29 13:05:47 +09:00
b8bbaba37f Update environment configuration: change API host URL to production and set development port to 5010 2025-05-29 11:17:23 +09:00
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 })