Merge branch 'dev' into dev-yj

This commit is contained in:
yjnoh 2024-09-11 15:06:07 +09:00
commit 26e0fdc3a9
6 changed files with 61 additions and 96 deletions

View File

@ -2,7 +2,7 @@
import { useEffect } from 'react'
import { useRecoilState, useRecoilValue } from 'recoil'
import { appMessageStore, globalLocaleState } from '@/store/localeAtom'
import { appMessageStore, globalLocaleStore } from '@/store/localeAtom'
import { LocaleProvider } from './LocaleProvider'
import { useCurrentLocale } from '@/locales/client'
import ServerError from './error'
@ -14,21 +14,21 @@ import JA from '@/locales/ja.json'
export default function LocaleLayout({ children }) {
const locale = useCurrentLocale()
const globalLocale = useRecoilValue(globalLocaleState)
const globalLocale = useRecoilValue(globalLocaleStore)
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)
}
// if (Object.keys(appMessageState).length === 0) {
if (globalLocale === 'ko') {
setAppMessageState(KO)
} else {
setAppMessageState(JA)
}
}, [])
// }
}, [globalLocale])
return (
<>

View File

@ -1,3 +1,24 @@
export const STEP = {
INITIAL_CANVAS_SETTING: 'initialCanvasSetting', // 배치면 초기설정
ROOF_COVERING: {
EXTERIOR_WALL_LINE: 'exteriorWallLine', // 외벽선 그리기
ROOF_SHAPE_SETTINGS: 'roofShapeSettings', // 지붕형상 설정
ROOF_SHAPE_EDITING: 'roofShapeEditing', // 지붕형상 편집
HELP_LINE_DRAWING: 'helpLineDrawing', // 보조선 그리기
}, // 지붕덮개
BATCH_CANVAS: {
BATCH_DRAWING: 'batchDrawing', // 배치면 그리기
SURFACE_SHAPE_BATCH: 'surfaceShapeBatch', // 면형상 배치
OBJECT_BATCH: 'objectBatch', // 오브젝트 배치
}, // 배치면
MODULE_CIRCUIT_SETTING: {
BASIC_SETTING: 'basicSetting', // 기본설정
CIRCUIT_TRESTLE_SETTING: 'circuitTrestleSetting', // 회로가대설정
}, // 모듈회로구성
ESTIMATE: 'estimate', // todo 견적서
POWER_GENERATION_SIMULATION: 'powerGenerationSimulation', // todo 발전 시뮬레이션
}
export const Mode = {
DRAW_LINE: 'drawLine', // 기준선 긋기모드`
EDIT: 'edit',

View File

@ -9,8 +9,7 @@ import { useAxios } from '@/hooks/useAxios'
import { get, post } from '@/lib/Axios'
export default function InitSettingsModal(props) {
const [objectNo, setObjectNo] = useState('test123240909002') //
const [lastRoofSeq, setLastRoofSeq] = useState(0) // roofSeq
const [objectNo, setObjectNo] = useState('test123240909003') //
const [open, setOpen] = useRecoilState(modalState)
const [canvasSetting, setCanvasSetting] = useRecoilState(canvasSettingState)
const [roofMaterials, setRoofMaterials] = useState([])
@ -18,7 +17,7 @@ export default function InitSettingsModal(props) {
roofDrawingSet: '1',
roofSizeSet: '1',
roofAngleSet: 'slope',
roofs: [],
roofs: [{ roofSeq: '1', roofType: '3', roofWidth: '200', roofHeight: '200', roofGap: '0', roofLayout: 'parallel' }],
})
const modelProps = {
@ -49,7 +48,8 @@ export default function InitSettingsModal(props) {
})
const roofsArray = res.some((item) => !item.roofSeq)
? null // roofsArray null .
? // roofsArray
[{ roofSeq: '1', roofType: '3', roofWidth: '200', roofHeight: '200', roofGap: '0', roofLayout: 'parallel' }]
: res.map((item) => ({
roofSeq: String(item.roofSeq),
roofType: String(item.roofType),
@ -69,14 +69,6 @@ export default function InitSettingsModal(props) {
//
setBasicSettings({ ...patternData })
// roofSeq
if (roofsArray == null) {
//roofs() lastRoofSeq 1
setLastRoofSeq(1)
} else {
setLastRoofSeq(roofsArray.length + 1)
}
})
if (!(Object.keys(canvasSetting).length === 0 && canvasSetting.constructor === Object)) {
@ -90,41 +82,8 @@ export default function InitSettingsModal(props) {
setBasicSettings(newBasicSetting)
}
//
const addRoofSetting = () => {
if (basicSetting.roofs != null && basicSetting.roofs.length === 4) {
alert('지붕재는 최대 4종까지 선택할 수 있습니다.')
return
}
//roofs null
if (basicSetting.roofs == null) {
basicSetting.roofs = []
}
//
const newRoofSettings = {
//roofSeq: basicSetting.roofs.length + 1,
roofSeq: lastRoofSeq, // roofSeq 1
roofType: '3',
roofWidth: '200',
roofHeight: '200',
roofGap: '0',
roofLayout: 'parallel',
}
setBasicSettings((prevState) => ({
...prevState,
roofs: [...prevState.roofs, newRoofSettings],
}))
setLastRoofSeq(newRoofSettings.roofSeq + 1) // roofSeq
}
//
const handleRoofSettings = (id, event) => {
console.log(id)
// roofs
const updatedRoofs = [...basicSetting.roofs]
@ -144,13 +103,6 @@ export default function InitSettingsModal(props) {
roofs: updatedRoofs,
}))
}
// const roof = basicSetting.roofs.map((roof, i) => (id === roof.roofSeq ? { ...roof, [event.target.name]: event.target.value } : roof))
// setBasicSettings((prevState) => ({
// ...prevState,
// roofs: [...roof],
// }))
}
//
@ -176,17 +128,6 @@ export default function InitSettingsModal(props) {
//await handleSelect()
}
// id targetId
const onRemove = async (targetId) => {
console.log(targetId)
setBasicSettings((prevState) => ({
...prevState,
roofs: prevState.roofs.filter((roof) => roof.roofSeq !== targetId),
}))
// setBasicSettings({ ...newRoofSettings }) // setData()
}
return (
<>
<div className="container mx-auto mt-10 p-6 bg-white shadow-lg rounded-lg">
@ -236,15 +177,7 @@ export default function InitSettingsModal(props) {
</RadioGroup>
</div>
</div>
<div className="flex space-x-4">지붕재 추가(단위 : mm)</div>
<div className="flex items-center mb-4">
<button className="px-3 py-1 bg-blue-500 text-white rounded mr-3" onClick={addRoofSetting}>
Add
</button>
<span className="text-sm text-gray-500"> 지붕재는 최대 4종까지 선택할 있습니다.</span>
</div>
<RadioGroup label="지붕재 추가(단위 : mm)" />
{/* Roofs Array Rendering */}
{basicSetting.roofs &&
basicSetting.roofs.map((roof, index) => {
@ -257,7 +190,7 @@ export default function InitSettingsModal(props) {
name="roofType"
onChange={(e) => handleRoofSettings(roof.roofSeq, e)}
items={roofMaterials}
defaultSelectedKeys={roof.roofType ? roof.roofType : ''}
defaultSelectedKeys={roof.roofType ? [roof.roofType] : []}
selectedKeys={roof.roofType}
value={roof.roofType}
>
@ -309,16 +242,6 @@ export default function InitSettingsModal(props) {
<Radio value="cascade">계단식</Radio>
</RadioGroup>
</div>
<div className="flex space-x-4">
<Button
size="sm"
onClick={() => {
onRemove(roof.roofSeq)
}}
>
삭제
</Button>
</div>
</div>
)
})}

View File

@ -5,18 +5,33 @@ import { setSession } from '@/lib/authActions'
import { redirect } from 'next/navigation'
import { useMessage } from '@/hooks/useMessage'
import { Button } from '@nextui-org/react'
import { Button, Switch } from '@nextui-org/react'
import { useRecoilState } from 'recoil'
import { globalLocaleStore } from '@/store/localeAtom'
import { modalContent, modalState } from '@/store/modalAtom'
import { useState } from 'react'
export default function Login(props) {
const { currentLocale } = props
const { getMessage } = useMessage()
const [globalLocaleState, setGlbalLocaleState] = useRecoilState(globalLocaleStore)
const [isSelected, setIsSelected] = useState(globalLocaleState === 'ko' ? true : false)
const handleSelected = () => {
if (isSelected) {
setGlbalLocaleState('ja')
} else {
setGlbalLocaleState('ko')
}
setIsSelected(!isSelected)
}
// login process
const loginProcess = async (formData) => {
const param = {
langCd: currentLocale,
// langCd: currentLocale
langCd: globalLocaleState,
lastEditUser: formData.get('id'),
loginId: formData.get('id'),
pwd: formData.get('password'),
@ -174,6 +189,12 @@ export default function Login(props) {
{getMessage('login.init_password.btn')}
</Button>
</p>
<div className="flex align-center mt-2">
<Switch isSelected={isSelected} onValueChange={handleSelected}>
{isSelected ? 'Current Locale: KO' : 'Current Locale: JA'}
</Switch>
</div>
</div>
</div>
</div>

View File

@ -95,7 +95,7 @@
"site.sub_name": "태양광 발전 시스템 도면관리 사이트",
"login": "로그인",
"login.init_password.btn": "비밀번호 초기화",
"login.init_password.btn": "비밀번호 초기화 ja",
"login.init_password.title": "비밀번호 초기화",
"login.init_password.sub_title": "비밀번호를 초기화할 아이디와 이메일 주소를 입력해 주세요.",
"login.init_password.complete_message": "비밀번호가 초기화 되었습니다. 초기화된 비밀번호는 아이디와 같습니다.",

View File

@ -1,6 +1,6 @@
import { atom } from 'recoil'
export const globalLocaleState = atom({
export const globalLocaleStore = atom({
key: 'globalLocaleState',
default: 'ko',
})