diff --git a/src/app/intro/page.jsx b/src/app/intro/page.jsx
deleted file mode 100644
index ebf1081b..00000000
--- a/src/app/intro/page.jsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import Intro from '@/components/Intro'
-import { initCheck } from '@/util/session-util'
-
-export default async function IntroPage() {
- return (
- <>
-
- 저작자·발명가·과학기술자와 예술가의 권리는 법률로써 보호한다. 이 헌법은 1988년 2월 25일부터 시행한다. 다만, 이 헌법을 시행하기 위하여 필요한
- 법률의 제정·개정과 이 헌법에 의한 대통령 및 국회의원의 선거 기타 이 헌법시행에 관한 준비는 이 헌법시행 전에 할 수 있다.
-
-
- 국가는 주택개발정책등을 통하여 모든 국민이 쾌적한 주거생활을 할 수 있도록 노력하여야 한다. 통신·방송의 시설기준과 신문의 기능을 보장하기
- 위하여 필요한 사항은 법률로 정한다.
-
-
- 국회에서 의결된 법률안은 정부에 이송되어 15일 이내에 대통령이 공포한다. 선거에 관한 경비는 법률이 정하는 경우를 제외하고는 정당 또는
- 후보자에게 부담시킬 수 없다.
-
- >
- )
-
- useEffect(() => {
- async function fetchData() {
- // const response = await fetch('https://www.ag-grid.com/example-assets/space-mission-data.json')
- // const data = await response.json()
- const data = await get({ url: 'https://www.ag-grid.com/example-assets/space-mission-data.json' })
- setGridProps({ ...gridProps, gridData: data })
- }
- fetchData()
- }, [])
-
- return (
- <>
-
{/* 물건번호, 견적서번호, 등록일, 변경일시 시작 */}
- {/*
)
diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx
index 8c97347d..58b1c002 100644
--- a/src/components/management/Stuff.jsx
+++ b/src/components/management/Stuff.jsx
@@ -9,13 +9,11 @@ import { useRecoilValue, useRecoilState, useSetRecoilState, useResetRecoilState
import { stuffSearchState } from '@/store/stuffAtom'
import { queryStringFormatter, isEmptyArray } from '@/util/common-utils'
import dayjs from 'dayjs'
-import { isObjectNotEmpty } from '@/util/common-utils'
import { convertNumberToPriceDecimal } from '@/util/common-utils'
import { appMessageStore, globalLocaleStore } from '@/store/localeAtom'
import KO from '@/locales/ko.json'
import JA from '@/locales/ja.json'
import QPagination from '../common/pagination/QPagination'
-import { sessionStore } from '@/store/commonAtom'
import { SessionContext } from '@/app/SessionProvider'
export default function Stuff() {
@@ -192,7 +190,9 @@ export default function Stuff() {
})
}
- fetchData()
+ if (stuffSearch.schSelSaleStoreId !== '') {
+ fetchData()
+ }
} else if (stuffSearchParams?.code === 'M') {
const params = {
saleStoreId: session?.storeId,
diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx
index 9a455216..61cdc1df 100644
--- a/src/components/management/StuffDetail.jsx
+++ b/src/components/management/StuffDetail.jsx
@@ -11,7 +11,6 @@ import { isEmptyArray, isNotEmptyArray, isObjectNotEmpty } from '@/util/common-u
import { useMessage } from '@/hooks/useMessage'
import { useForm } from 'react-hook-form'
import { useRecoilValue, useSetRecoilState } from 'recoil'
-import { sessionStore } from '@/store/commonAtom'
import { SessionContext } from '@/app/SessionProvider'
import FindAddressPop from './popup/FindAddressPop'
import PlanRequestPop from './popup/PlanRequestPop'
@@ -28,7 +27,6 @@ export default function StuffDetail() {
const [selOptions, setSelOptions] = useState('') //선택한 1차점
const [otherSelOptions, setOtherSelOptions] = useState('') //선택한 1차점외
- const sessionState = useRecoilValue(sessionStore)
const { session } = useContext(SessionContext)
const router = useRouter()
@@ -320,12 +318,11 @@ export default function StuffDetail() {
let firstList
let otherList
let favList
- // if (sessionState?.storeId === 'T01') {
if (session?.storeId === 'T01') {
url = `/api/object/saleStore/${session?.storeId}/firstList?userId=${session?.userId}`
} else {
if (session.storeLvl === '1') {
- url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}`
+ url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${session?.userId}`
} else {
url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${session?.userId}`
}
@@ -400,7 +397,6 @@ export default function StuffDetail() {
}
})
}
- // }, [objectNo, sessionState])
}, [objectNo, session])
useEffect(() => {
@@ -1279,9 +1275,7 @@ export default function StuffDetail() {
//1차점 or 2차점 안고르고 임시저장하면
if (params.saleStoreId == '') {
- // params.saleStoreId = sessionState.storeId
params.saleStoreId = session.storeId
- // params.saleStoreLevel = sessionState.storeLvl
params.saleStoreLevel = session.storeLvl
}
@@ -1445,7 +1439,6 @@ export default function StuffDetail() {
- {/* {sessionState?.storeId === 'T01' && ( */}
{session?.storeId === 'T01' && (
<>
@@ -1479,7 +1472,6 @@ export default function StuffDetail() {
>
)}
- {/* {sessionState?.storeId !== 'T01' && sessionState?.storeLvl === '1' && ( */}
{session?.storeId !== 'T01' && session?.storeLvl === '1' && (
<>
@@ -1511,7 +1503,6 @@ export default function StuffDetail() {
>
)}
- {/* {sessionState?.storeId !== 'T01' && sessionState?.storeLvl !== '1' && ( */}
{session?.storeId !== 'T01' && session?.storeLvl !== '1' && (
<>
diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx
index 1d40b61a..7bd8f456 100644
--- a/src/components/management/StuffSearchCondition.jsx
+++ b/src/components/management/StuffSearchCondition.jsx
@@ -12,7 +12,6 @@ import { isEmptyArray } from '@/util/common-utils'
import dayjs from 'dayjs'
import Link from 'next/link'
import SingleDatePicker from '../common/datepicker/SingleDatePicker'
-import { sessionStore } from '@/store/commonAtom'
import { useMessage } from '@/hooks/useMessage'
import { isObjectNotEmpty } from '@/util/common-utils'
@@ -20,7 +19,6 @@ import { SessionContext } from '@/app/SessionProvider'
export default function StuffSearchCondition() {
const { session } = useContext(SessionContext)
- const sessionState = useRecoilValue(sessionStore)
const setAppMessageState = useSetRecoilState(appMessageStore)
const globalLocaleState = useRecoilValue(globalLocaleStore)
const { getMessage } = useMessage()
@@ -163,7 +161,7 @@ export default function StuffSearchCondition() {
} else {
if (session.storeLvl === '1') {
//T01아닌 1차점일때
- url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${sessionState?.userId}`
+ url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${session?.userId}`
} else {
url = `/api/object/saleStore/${session?.storeId}/list?firstFlg=1&userId=${session?.userId}`
}
@@ -323,6 +321,12 @@ export default function StuffSearchCondition() {
useEffect(() => {
setStartDate(stuffSearch?.schFromDt ? stuffSearch.schFromDt : dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'))
setEndDate(stuffSearch?.schToDt ? stuffSearch.schToDt : dayjs(new Date()).format('YYYY-MM-DD'))
+ setObjectNo(stuffSearch.schObjectNo ? stuffSearch.schObjectNo : objectNo)
+ setSaleStoreName(stuffSearch.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName)
+ setAddress(stuffSearch.schAddress ? stuffSearch.schAddress : address)
+ setobjectName(stuffSearch.schObjectName ? stuffSearch.schObjectName : objectName)
+ setDispCompanyName(stuffSearch.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName)
+ setReceiveUser(stuffSearch.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser)
}, [stuffSearch])
useEffect(() => {
@@ -385,7 +389,7 @@ export default function StuffSearchCondition() {
ref={objectNoRef}
className="input-light"
defaultValue={stuffSearch?.schObjectNo ? stuffSearch.schObjectNo : objectNo}
- onChange={(e) => {
+ onChange={() => {
setObjectNo(objectNoRef.current.value)
}}
onKeyUp={handleByOnKeyUp}
@@ -400,7 +404,7 @@ export default function StuffSearchCondition() {
ref={saleStoreNameRef}
className="input-light"
defaultValue={stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName}
- onChange={(e) => {
+ onChange={() => {
setSaleStoreName(saleStoreNameRef.current.value)
}}
onKeyUp={handleByOnKeyUp}
@@ -415,7 +419,7 @@ export default function StuffSearchCondition() {
ref={addressRef}
className="input-light"
defaultValue={stuffSearch?.schAddress ? stuffSearch.schAddress : address}
- onChange={(e) => {
+ onChange={() => {
setAddress(addressRef.current.value)
}}
onKeyUp={handleByOnKeyUp}
@@ -430,7 +434,7 @@ export default function StuffSearchCondition() {
ref={dispCompanyNameRef}
className="input-light"
defaultValue={stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName}
- onChange={(e) => {
+ onChange={() => {
setDispCompanyName(dispCompanyNameRef.current.value)
}}
onKeyUp={handleByOnKeyUp}
@@ -447,7 +451,7 @@ export default function StuffSearchCondition() {
ref={objectNameRef}
className="input-light"
defaultValue={stuffSearch?.schObjectName ? stuffSearch.schObjectName : objectName}
- onChange={(e) => {
+ onChange={() => {
setobjectName(objectNameRef.current.value)
}}
onKeyUp={handleByOnKeyUp}
@@ -462,7 +466,7 @@ export default function StuffSearchCondition() {
className="input-light"
ref={receiveUserRef}
defaultValue={stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser}
- onChange={(e) => {
+ onChange={() => {
setReceiveUser(receiveUserRef.current.value)
}}
onKeyUp={handleByOnKeyUp}
diff --git a/src/hooks/floorPlan/estimate/useEstimateController.js b/src/hooks/floorPlan/estimate/useEstimateController.js
index 87fa15ca..2b92a14a 100644
--- a/src/hooks/floorPlan/estimate/useEstimateController.js
+++ b/src/hooks/floorPlan/estimate/useEstimateController.js
@@ -1,9 +1,11 @@
import { useAxios } from '@/hooks/useAxios'
-import { useEffect, useReducer, useState } from 'react'
+import { useContext, useEffect, useReducer, useState } from 'react'
import { useRecoilState, useRecoilValue } from 'recoil'
import { globalLocaleStore } from '@/store/localeAtom'
import { estimateState, floorPlanObjectState } from '@/store/floorPlanObjectAtom'
import { isObjectNotEmpty } from '@/util/common-utils'
+import { SessionContext } from '@/app/SessionProvider'
+
const reducer = (prevState, nextState) => {
return { ...prevState, ...nextState }
}
@@ -41,6 +43,7 @@ const defaultEstimateData = {
unit: '',
},
],
+ fileList: [],
}
// Helper functions
@@ -51,14 +54,14 @@ const updateItemInList = (itemList, itemId, updates) => {
}
export const useEstimateController = (planNo) => {
+ const { session } = useContext(SessionContext)
const globalLocaleState = useRecoilValue(globalLocaleStore)
const objectRecoil = useRecoilValue(floorPlanObjectState)
const [estimateData, setEstimateData] = useRecoilState(estimateState)
- const { get, post } = useAxios(globalLocaleState)
+ const { get, post, promisePost } = useAxios(globalLocaleState)
const [isLoading, setIsLoading] = useState(false)
- const { promisePost } = useAxios()
const [state, setState] = useReducer(reducer, defaultEstimateData)
useEffect(() => {
@@ -123,12 +126,32 @@ export const useEstimateController = (planNo) => {
}
useEffect(() => {
- setEstimateData({ ...state })
+ setEstimateData({ ...state, userId: session.userId })
+ //sapSalesStoreCd 추가예정 필수값
+ // setEstimateData({ ...state, userId: session.userId, sapSalesStoreCd : session.sapSalesStoreCd })
}, [state])
//견적서 저장
const handleEstimateSubmit = async () => {
console.log('::담긴 estimateData:::', estimateData)
+ //1. 첨부파일 저장
+ const formData = new FormData()
+ formData.append('file', estimateData.fileList)
+ formData.append('objectNo', estimateData.objectNo)
+ formData.append('planNo', estimateData.planNo)
+ formData.append('category', '10')
+ formData.append('userId', estimateData.userId)
+ for (const value of formData.values()) {
+ console.log('formData::', value)
+ }
+
+ await promisePost({ url: '/api/file/fileUpload', data: formData }).then((res) => {
+ console.log('파일저장::::::::::', res)
+ })
+
+ //2. 상세데이터 저장
+
+ console.log('상세저장시작!!')
return
try {
const result = await promisePost({
diff --git a/src/hooks/roofcover/useRoofShapeSetting.js b/src/hooks/roofcover/useRoofShapeSetting.js
index 2823415d..21948de0 100644
--- a/src/hooks/roofcover/useRoofShapeSetting.js
+++ b/src/hooks/roofcover/useRoofShapeSetting.js
@@ -170,6 +170,7 @@ export function useRoofShapeSetting(id) {
//기존 wallLine 삭제
let outerLines
+ let direction
switch (shapeNum) {
case 1: {
@@ -196,6 +197,7 @@ export function useRoofShapeSetting(id) {
// 서쪽
initLineSetting()
outerLines = canvas.getObjects().filter((obj) => obj.name === 'outerLine')
+ direction = 'west'
outerLines.forEach((line) => {
setWestAndEastRoof(line)
@@ -240,6 +242,7 @@ export function useRoofShapeSetting(id) {
case 6: {
initLineSetting()
outerLines = canvas.getObjects().filter((obj) => obj.name === 'outerLine')
+ direction = 'east'
outerLines.forEach((line) => {
setWestAndEastRoof(line)
@@ -285,6 +288,7 @@ export function useRoofShapeSetting(id) {
case 7: {
initLineSetting()
outerLines = canvas.getObjects().filter((obj) => obj.name === 'outerLine')
+ direction = 'south'
outerLines.forEach((line) => {
setSouthAndNorthRoof(line)
@@ -329,6 +333,7 @@ export function useRoofShapeSetting(id) {
case 8: {
initLineSetting()
outerLines = canvas.getObjects().filter((obj) => obj.name === 'outerLine')
+ direction = 'north'
outerLines.forEach((line) => {
setSouthAndNorthRoof(line)
@@ -389,7 +394,7 @@ export function useRoofShapeSetting(id) {
canvas.remove(obj)
})
- const polygon = addPolygonByLines(outerLines, { name: POLYGON_TYPE.WALL })
+ const polygon = addPolygonByLines(outerLines, { name: POLYGON_TYPE.WALL, direction })
polygon.lines = [...outerLines]
addPitchTextsByOuterLines()
diff --git a/src/hooks/useMode.js b/src/hooks/useMode.js
index 1b91fb7e..703b622d 100644
--- a/src/hooks/useMode.js
+++ b/src/hooks/useMode.js
@@ -1754,6 +1754,9 @@ export function useMode() {
return { x1: point.x, y1: point.y }
}),
)
+ if (wall.direction) {
+ roof.direction = wall.direction
+ }
roof.name = POLYGON_TYPE.ROOF
roof.setWall(wall)
diff --git a/src/util/qpolygon-utils.js b/src/util/qpolygon-utils.js
index a45fa6aa..e9d12a9b 100644
--- a/src/util/qpolygon-utils.js
+++ b/src/util/qpolygon-utils.js
@@ -1340,6 +1340,7 @@ export const splitPolygonWithLines = (polygon) => {
})
const newRoofs = removeDuplicatePolygons(roofs)
+
newRoofs.forEach((roofPoint, index) => {
let defense, pitch
const polygonLines = [...polygon.lines]
@@ -1378,7 +1379,8 @@ export const splitPolygonWithLines = (polygon) => {
}
})
- const direction = representLine.direction
+ const direction = newRoofs.length === 1 ? polygon.direction : representLine.direction
+ const polygonDirection = polygon.direction
switch (direction) {
case 'top':
@@ -1406,7 +1408,7 @@ export const splitPolygonWithLines = (polygon) => {
originY: 'center',
selectable: true,
defense: defense,
- direction: defense,
+ direction: newRoofs.length === 1 ? polygonDirection : defense,
pitch: pitch,
})
diff --git a/src/util/session-util.js b/src/util/session-util.js
deleted file mode 100644
index 6f818e43..00000000
--- a/src/util/session-util.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { checkSession } from '@/lib/user'
-import { redirect } from 'next/navigation'
-
-export const initCheck = async () => {
- const { session } = await checkSession()
-
- if (!session.isLoggedIn) {
- redirect('/login')
- }
-
- return session
-}
|