@@ -18,7 +28,7 @@ export default function TriangleDormer() {
@@ -29,7 +39,7 @@ export default function TriangleDormer() {
@@ -40,7 +50,7 @@ export default function TriangleDormer() {
@@ -58,13 +68,15 @@ export default function TriangleDormer() {
{getMessage('commons.east')}
{getMessage('commons.south')}
{getMessage('commons.west')}
-
-
-
-
+
+
+
+
>
)
-}
+})
+
+export default TriangleDormer
diff --git a/src/components/floor-plan/modal/placementSurface/PlacementSurfaceSetting.jsx b/src/components/floor-plan/modal/placementSurface/PlacementSurfaceSetting.jsx
index d2c3022a..e667667e 100644
--- a/src/components/floor-plan/modal/placementSurface/PlacementSurfaceSetting.jsx
+++ b/src/components/floor-plan/modal/placementSurface/PlacementSurfaceSetting.jsx
@@ -4,17 +4,29 @@ import { useEffect, useState, useRef } from 'react'
import Image from 'next/image'
import PlacementSurface from '@/components/floor-plan/modal/placementSurface/PlacementSurface'
import { useSurfaceShapeBatch } from '@/hooks/surface/useSurfaceShapeBatch'
+import { useRecoilValue } from 'recoil'
+import { canvasState } from '@/store/canvasAtom'
+import { POLYGON_TYPE } from '@/common/common'
export default function PlacementSurfaceSetting({ setShowPlacementSurfaceSettingModal }) {
const { getMessage } = useMessage()
-
const [selectedType, setSelectedType] = useState()
const [rotate, setRotate] = useState(0)
const [xInversion, setXInversion] = useState(false)
const [yInversion, setYInversion] = useState(false)
+ const canvas = useRecoilValue(canvasState)
const { applySurfaceShape } = useSurfaceShapeBatch()
+ const surfaceShapePolygons = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
+
+ //오브젝트 배치에서 넘어오면 면형상 선택 가능
+ useEffect(() => {
+ surfaceShapePolygons.forEach((obj) => {
+ obj.set({ selectable: true })
+ })
+ }, [])
+
const surfaceRefs = {
length1: useRef(null),
length2: useRef(null),
diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx
index 9a0a73c5..cedf1975 100644
--- a/src/components/management/Stuff.jsx
+++ b/src/components/management/Stuff.jsx
@@ -15,6 +15,7 @@ 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 '@/styles/grid.scss'
import { sessionStore } from '@/store/commonAtom'
@@ -24,9 +25,9 @@ export default function Stuff() {
const stuffSearchParams = useRecoilValue(stuffSearchState)
const [stuffSearch, setStuffSearch] = useRecoilState(stuffSearchState)
const { getMessage } = useMessage()
- const [curPage, setCurPage] = useState(1) //현재 페이지 번호
- const [defaultSize, setDefaultSize] = useState(100) //페이지 당 게시물 수
- const [gridCount, setGridCount] = useState(0) //총 갯수
+ const [pageNo, setPageNo] = useState(1) //현재 페이지 번호
+ const [pageSize, setPageSize] = useState(100) //페이지 당 게시물 수
+ const [totalCount, setTotalCount] = useState(0) //총 갯수
const [defaultSortType, setDefaultSortType] = useState('R')
const globalLocaleState = useRecoilValue(globalLocaleStore)
@@ -62,10 +63,6 @@ export default function Stuff() {
const [gridProps, setGridProps] = useState({
gridData: [],
isPageable: false,
- // sets 10 rows per page (default is 100)
- // paginationPageSize: 100,
- // allows the user to select the page size from a predefined list of page sizes
- // paginationPageSizeSelector: [100, 200, 300, 400],
gridColumns: [
{
field: 'lastEditDatetime',
@@ -228,56 +225,42 @@ export default function Stuff() {
// 진입시 그리드 데이터 조회
useEffect(() => {
if (isObjectNotEmpty(sessionState)) {
+ //물건 메뉴 눌러서 최초 진입 sessionState
if (stuffSearchParams?.code === 'S') {
const params = {
- schObjectNo: '',
- schAddress: '',
- schObjectName: '',
- schSaleStoreName: '',
- schReceiveUser: '',
- schDispCompanyName: '',
- schDateType: 'U',
+ schObjectNo: stuffSearchParams?.schObjectNo,
+ schAddress: stuffSearchParams?.schAddress,
+ schObjectName: stuffSearchParams?.schObjectName,
+ schSaleStoreName: stuffSearchParams?.schSaleStoreName,
+ schReceiveUser: stuffSearchParams?.schReceiveUser,
+ schDispCompanyName: stuffSearchParams?.schDispCompanyName,
+ schDateType: stuffSearchParams.schDateType,
schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'),
schToDt: dayjs(new Date()).format('YYYY-MM-DD'),
- startRow: (curPage - 1) * defaultSize + 1,
- endRow: curPage * defaultSize,
+ startRow: (pageNo - 1) * pageSize + 1,
+ endRow: pageNo * pageSize,
schSelSaleStoreId: '',
- schSortType: 'R',
+ schSortType: stuffSearchParams.schSortType,
}
async function fetchData() {
- //api에 넘길값 startRow, endRow
- // let startRow
- // let endRow
- // startRow = (curPage - 1) * size + 1
- // endRow = curPage * size
- // console.log('startrow::', startRow)
- // console.log('endRow::', endRow)
-
- // let curPage
- // let totalpage
- // let totalCount
- // let size
- // let pageCount
-
- // console.log('화면진입 세션정보::::::::::', sessionState)
- // const apiUrl = `/api/object/list?saleStoreId=201TES01&${queryStringFormatter(params)}`
- // const apiUrl = `/api/object/list?saleStoreId=X167&${queryStringFormatter(params)}`
- const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(params)}`
+ // const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(params)}`
+ const apiUrl = `/api/object/list?saleStoreId=T01&${queryStringFormatter(params)}`
await get({
url: apiUrl,
}).then((res) => {
if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
- setGridCount(res[0].totCnt)
+ setTotalCount(res[0].totCnt)
}
})
}
fetchData()
} else {
+ //메인화면에서 진입
const params = {
- schObjectNo: '',
+ schObjectNo: stuffSearchParams.schObjectNo,
schAddress: '',
schObjectName: '',
schSaleStoreName: '',
@@ -286,30 +269,13 @@ export default function Stuff() {
schDateType: 'U',
schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'),
schToDt: dayjs(new Date()).format('YYYY-MM-DD'),
- startRow: (curPage - 1) * defaultSize + 1,
- endRow: curPage * defaultSize,
+ startRow: (pageNo - 1) * pageSize + 1,
+ endRow: pageNo * pageSize,
schSelSaleStoreId: '',
schSortType: 'R',
}
async function fetchData() {
- //api에 넘길값 startRow, endRow
- // let startRow
- // let endRow
- // startRow = (curPage - 1) * size + 1
- // endRow = curPage * size
- // console.log('startrow::', startRow)
- // console.log('endRow::', endRow)
-
- // let curPage
- // let totalpage
- // let totalCount
- // let size
- // let pageCount
-
- // console.log('화면진입 세션정보::::::::::', sessionState)
- // const apiUrl = `/api/object/list?saleStoreId=201TES01&${queryStringFormatter(params)}`
- // const apiUrl = `/api/object/list?saleStoreId=X167&${queryStringFormatter(params)}`
const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(params)}`
await get({
@@ -317,34 +283,36 @@ export default function Stuff() {
}).then((res) => {
if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
- setGridCount(res[0].totCnt)
+ setTotalCount(res[0].totCnt)
}
})
}
fetchData()
}
}
- }, [sessionState])
+ }, [pageNo, sessionState])
useEffect(() => {
if (stuffSearchParams?.code === 'E') {
- //console.log('조회누름::::::::', stuffSearchParams)
- stuffSearchParams.startRow = (curPage - 1) * defaultSize + 1
- stuffSearchParams.endRow = curPage * defaultSize
+ //console.log('조회누름::::::::', stuffSearchParams, sessionState)
+ // stuffSearchParams.startRow = (pageNo - 1) * pageSize + 1
+ // stuffSearchParams.endRow = pageNo * pageSize
+ stuffSearchParams.startRow = 1
+ stuffSearchParams.endRow = 1 * pageSize
stuffSearchParams.schSortType = defaultSortType
+
+ setPageNo(1)
+
async function fetchData() {
- // console.log('조회누름 세션정보:::::::::::::', sessionState)
- // const apiUrl = `/api/object/list?saleStoreId=201TES01&${queryStringFormatter(stuffSearchParams)}`
- // const apiUrl = `/api/object/list?saleStoreId=X167&${queryStringFormatter(stuffSearchParams)}`
- const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
+ const apiUrl = `/api/object/list?saleStoreId=T01&${queryStringFormatter(stuffSearchParams)}`
+ // const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
await get({ url: apiUrl }).then((res) => {
- // console.log('검색조건 변경 조회 API결과:::::::', res)
if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
- setGridCount(res[0].totCnt)
+ setTotalCount(res[0].totCnt)
} else {
setGridProps({ ...gridProps, gridData: [], count: 0 })
- setGridCount(0)
+ setTotalCount(0)
}
})
}
@@ -354,53 +322,58 @@ export default function Stuff() {
//페이지 갯수 변경 이벤트
const onChangePerPage = (e) => {
- let startRow = (curPage - 1) * e.target.value + 1
+ let startRow = (1 - 1) * e.target.value + 1
stuffSearchParams.startRow = startRow
- stuffSearchParams.endRow = curPage * e.target.value
- setDefaultSize(e.target.value)
+ stuffSearchParams.endRow = 1 * e.target.value
+ setPageSize(e.target.value)
setStuffSearch({
...stuffSearch,
code: 'S',
startRow: startRow,
- endRow: curPage * e.target.value,
+ endRow: 1 * e.target.value,
})
- // console.log('페이지 갯수 변경 때 셋팅된 검색조건:::', stuffSearchParams)
- // console.log('페이지 갯수 변경 때 sessionState:::', sessionState)
- // const apiUrl = `/api/object/list?saleStoreId=201TES01&${queryStringFormatter(stuffSearchParams)}`
- // const apiUrl = `/api/object/list?saleStoreId=X167&${queryStringFormatter(stuffSearchParams)}`
- const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
+
+ setPageNo(1)
+ // const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
+ const apiUrl = `/api/object/list?saleStoreId=T01&${queryStringFormatter(stuffSearchParams)}`
get({ url: apiUrl }).then((res) => {
if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
- setGridCount(res[0].totCnt)
+ setTotalCount(res[0].totCnt)
} else {
setGridProps({ ...gridProps, gridData: [], count: 0 })
- setGridCount(0)
+ setTotalCount(0)
}
})
}
//최근 등록일 수정일 정렬 이벤트
const onChangeSortType = (e) => {
+ let startRow = (1 - 1) * pageSize + 1
+ stuffSearchParams.startRow = startRow
+ stuffSearchParams.endRow = 1 * pageSize
+
stuffSearchParams.schSortType = e.target.value
- // console.log('셋팅된 검색조건:::', stuffSearchParams)
setDefaultSortType(e.target.value)
setStuffSearch({
...stuffSearch,
code: 'S',
+ startRow: startRow,
+ endRow: 1 * pageSize,
schSortType: e.target.value,
})
- // console.log('정렬 변경시 세션정보::::::::::::', sessionState)
- // const apiUrl = `/api/object/list?saleStoreId=201TES01&${queryStringFormatter(stuffSearchParams)}`
- // const apiUrl = `/api/object/list?saleStoreId=X167&${queryStringFormatter(stuffSearchParams)}`
- const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
+
+ setPageNo(1)
+
+ const apiUrl = `/api/object/list?saleStoreId=T01&${queryStringFormatter(stuffSearchParams)}`
+ // const apiUrl = `/api/object/list?saleStoreId=${sessionState?.storeId}&${queryStringFormatter(stuffSearchParams)}`
get({ url: apiUrl }).then((res) => {
if (!isEmptyArray(res)) {
setGridProps({ ...gridProps, gridData: res, count: res[0].totCnt })
- setGridCount(res[0].totCnt)
+ setTotalCount(res[0].totCnt)
} else {
setGridProps({ ...gridProps, gridData: [], count: 0 })
- setGridCount(0)
+ setTotalCount(0)
}
})
}
@@ -413,6 +386,20 @@ export default function Stuff() {
}
}, [globalLocaleState])
+ // 페이징 현재페이지 변경
+ const handleChangePage = (page) => {
+ stuffSearchParams.code = 'S'
+
+ setStuffSearch({
+ ...stuffSearch,
+ code: 'S',
+ startRow: (page - 1) * pageSize + 1,
+ endRow: page * pageSize,
+ })
+
+ setPageNo(page)
+ }
+
return (
<>
{/* 퍼블시작 */}
@@ -423,7 +410,7 @@ export default function Stuff() {
-
전체
- {convertNumberToPriceDecimal(gridCount)}
+ {convertNumberToPriceDecimal(totalCount)}
-
선택
@@ -450,7 +437,9 @@ export default function Stuff() {
diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx
index 9b8bfd4a..7167fc63 100644
--- a/src/components/management/StuffDetail.jsx
+++ b/src/components/management/StuffDetail.jsx
@@ -488,7 +488,7 @@ export default function StuffDetail() {
|
- 물건구분/물건명 *
+ {getMessage('stuff.detail.objectStatusId')} *
|
@@ -529,7 +529,9 @@ export default function StuffDetail() {
{getMessage('stuff.detail.saleStoreId')}
*
-
+
+ {getMessage('stuff.detail.tooltip.saleStoreId')}
+
|
@@ -553,7 +555,9 @@ export default function StuffDetail() {
|
{getMessage('stuff.detail.otherSaleStoreId')}
-
+
+ {getMessage('stuff.detail.tooltip.saleStoreId')}
+
|
@@ -568,18 +572,6 @@ export default function StuffDetail() {
isDisabled={form.watch('saleStoreId') !== '' ? false : true}
isClearable={true}
/>
- {/* */}
-
+
{/*
diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx
index 8bd739b4..a8f86718 100644
--- a/src/components/management/StuffSearchCondition.jsx
+++ b/src/components/management/StuffSearchCondition.jsx
@@ -323,7 +323,7 @@ export default function StuffSearchCondition() {
setStuffSearch({ ...stuffSearch, code: 'S', schDateType: e.target.value })
}}
/>
-
+
diff --git a/src/components/management/popup/FindAddressPopQGrid.jsx b/src/components/management/popup/FindAddressPopQGrid.jsx
index 83544a5a..b9d1bb90 100644
--- a/src/components/management/popup/FindAddressPopQGrid.jsx
+++ b/src/components/management/popup/FindAddressPopQGrid.jsx
@@ -31,10 +31,6 @@ export default function FindAddressPopGrid(props) {
gridData ? setRowData(gridData) : ''
}, [gridData])
- const rowSelection = useMemo(() => {
- return { mode: 'singleRow', enableClickSelection: true }
- }, [])
-
const onGridReady = useCallback(
(params) => {
setGridApi(params.api)
@@ -57,7 +53,7 @@ export default function FindAddressPopGrid(props) {
rowData={rowData}
columnDefs={colDefs}
defaultColDef={defaultColDef}
- rowSelection={rowSelection}
+ rowSelection={'singleRow'}
pagination={isPageable}
onSelectionChanged={onSelectionChanged}
/>
diff --git a/src/components/management/popup/PlanRequestPopQGrid.jsx b/src/components/management/popup/PlanRequestPopQGrid.jsx
index 8f29cdbe..b7dca164 100644
--- a/src/components/management/popup/PlanRequestPopQGrid.jsx
+++ b/src/components/management/popup/PlanRequestPopQGrid.jsx
@@ -31,10 +31,6 @@ export default function PlanRequestPopQGrid(props) {
gridData ? setRowData(gridData) : ''
}, [gridData])
- const rowSelection = useMemo(() => {
- return { mode: 'singleRow', enableClickSelection: true }
- }, [])
-
const onGridReady = useCallback(
(params) => {
setGridApi(params.api)
@@ -51,7 +47,7 @@ export default function PlanRequestPopQGrid(props) {
rowData={rowData}
columnDefs={colDefs}
defaultColDef={defaultColDef}
- rowSelection={rowSelection}
+ rowSelection={'singleRow'}
pagination={isPageable}
// onSelectionChanged={onSelectionChanged}
/>
diff --git a/src/components/myInfo/UserInfoModal.jsx b/src/components/myInfo/UserInfoModal.jsx
index 9f8b0721..7643913c 100644
--- a/src/components/myInfo/UserInfoModal.jsx
+++ b/src/components/myInfo/UserInfoModal.jsx
@@ -8,7 +8,7 @@ export default function UserInfoModal({ userId, userInfoModal, setUserInfoModal
const { getMessage } = useMessage()
// api 조회 관련
- const { get, promisePatch } = useAxios()
+ const { get, promisePatch, promisePost } = useAxios()
const [info, setInfo] = useState({
userId: '',
name: '',
@@ -25,6 +25,7 @@ export default function UserInfoModal({ userId, userInfoModal, setUserInfoModal
const [showPwd, setShowPwd] = useState(false)
const [chkChgPwd, setChkChgPwd] = useState(false)
const [chgPwd, setChgPwd] = useState('')
+ const pwdInput = useRef()
const chgPwdInput = useRef()
useEffect(() => {
@@ -54,7 +55,7 @@ export default function UserInfoModal({ userId, userInfoModal, setUserInfoModal
const handleChangePassword = async () => {
if (chgPwd === '') {
chgPwdInput.current.focus()
- return alert(getMessage('myinfo.message.validation.password1'))
+ return alert(getMessage('myinfo.message.validation.password4'))
}
if (password === chgPwd) {
chgPwdInput.current.focus()
@@ -73,6 +74,8 @@ export default function UserInfoModal({ userId, userInfoModal, setUserInfoModal
if (res.data.result.resultCode === 'S') {
alert(getMessage('myinfo.message.save'))
setChkChgPwd(false)
+ setPassword(chgPwd)
+ setChgPwd('')
} else {
alert(res.data.result.resultMsg)
}
@@ -83,6 +86,40 @@ export default function UserInfoModal({ userId, userInfoModal, setUserInfoModal
})
}
+ // 비밀번호 변경 버튼 클릭 시,
+ const checkPasswordProcess = async (e) => {
+ if (password === '') {
+ pwdInput.current.focus()
+ return alert(getMessage('myinfo.message.validation.password1'))
+ }
+
+ const param = {
+ loginId: userId,
+ pwd: password,
+ }
+ await promisePost({ url: '/api/login/v1.0/login', data: param })
+ .then((res) => {
+ if (res) {
+ if (res.data.result.resultCode === 'S') {
+ setChkChgPwd(true)
+ setTimeout(() => {
+ chgPwdInput.current.focus()
+ }, 10)
+ } else {
+ alert(getMessage('myinfo.message.password.error'))
+ setChkChgPwd(false)
+ setChgPwd('')
+ setTimeout(() => {
+ pwdInput.current.focus()
+ }, 10)
+ }
+ }
+ })
+ .catch((error) => {
+ alert(error.response.data.message)
+ })
+ }
+
return (
<>
@@ -141,6 +178,7 @@ export default function UserInfoModal({ userId, userInfoModal, setUserInfoModal
{
setPassword(e.target.value)
}}
@@ -151,11 +189,8 @@ export default function UserInfoModal({ userId, userInfoModal, setUserInfoModal
| |