물건화면 , 메인화면 수정적용

This commit is contained in:
basssy 2024-10-25 16:26:07 +09:00
parent 1387c8aa0b
commit 45b0063b8b
8 changed files with 31 additions and 7 deletions

View File

@ -136,7 +136,7 @@ export default function MainContents() {
})} })}
</ul> </ul>
) : ( ) : (
<MainSkeleton /> <MainSkeleton count={6} />
)} )}
</ProductItem> </ProductItem>
<ProductItem num={2} name={getMessage('main.content.notice')}> <ProductItem num={2} name={getMessage('main.content.notice')}>
@ -147,7 +147,9 @@ export default function MainContents() {
<div className="notice-title">{recentNoticeList[0]?.title}</div> <div className="notice-title">{recentNoticeList[0]?.title}</div>
<div className="notice-contents">{recentNoticeList[0]?.contents}</div> <div className="notice-contents">{recentNoticeList[0]?.contents}</div>
</> </>
) : null} ) : (
<MainSkeleton count={5} />
)}
</div> </div>
</ProductItem> </ProductItem>
</div> </div>
@ -168,7 +170,9 @@ export default function MainContents() {
) )
})} })}
</> </>
) : null} ) : (
<MainSkeleton count={2} />
)}
</ul> </ul>
</ProductItem> </ProductItem>
<ProductItem num={4} name={'Data Download'}> <ProductItem num={4} name={'Data Download'}>

View File

@ -1,11 +1,14 @@
import React from 'react' import React from 'react'
import { useCallback, useEffect, useMemo, useState } from 'react' import { useCallback, useEffect, useMemo, useState } from 'react'
import { AgGridReact } from 'ag-grid-react' import { AgGridReact } from 'ag-grid-react'
import { useMessage } from '@/hooks/useMessage'
import 'ag-grid-community/styles/ag-grid.css' import 'ag-grid-community/styles/ag-grid.css'
import 'ag-grid-community/styles/ag-theme-quartz.css' import 'ag-grid-community/styles/ag-theme-quartz.css'
export default function StuffQGrid(props) { export default function StuffQGrid(props) {
const { getMessage } = useMessage()
const { gridData, gridColumns, isPageable = true, count, gridRef } = props const { gridData, gridColumns, isPageable = true, count, gridRef } = props
/** /**
* 데이터를 설정할 useState을 사용하여 렌더링 전반에 걸쳐 일관된 배열 참조를 유지하는 것이 좋습니다 * 데이터를 설정할 useState을 사용하여 렌더링 전반에 걸쳐 일관된 배열 참조를 유지하는 것이 좋습니다
@ -95,7 +98,7 @@ export default function StuffQGrid(props) {
onSelectionChanged={onSelectionChanged} onSelectionChanged={onSelectionChanged}
onCellDoubleClicked={onCellDoubleClicked} onCellDoubleClicked={onCellDoubleClicked}
pagination={isPageable} pagination={isPageable}
overlayNoRowsTemplate={'<span className="ag-overlay-loading-center">물건 목록이 없습니다.</span>'} overlayNoRowsTemplate={`<span className="ag-overlay-loading-center">${getMessage('stuff.grid.noData')}</span>`}
getRowClass={getRowClass} getRowClass={getRowClass}
autoSizeAllColumns={true} autoSizeAllColumns={true}
/> />

View File

@ -1,11 +1,14 @@
import React from 'react' import React from 'react'
import { useCallback, useEffect, useMemo, useState } from 'react' import { useCallback, useEffect, useMemo, useState } from 'react'
import { AgGridReact } from 'ag-grid-react' import { AgGridReact } from 'ag-grid-react'
import { useMessage } from '@/hooks/useMessage'
import 'ag-grid-community/styles/ag-grid.css' import 'ag-grid-community/styles/ag-grid.css'
import 'ag-grid-community/styles/ag-theme-quartz.css' import 'ag-grid-community/styles/ag-theme-quartz.css'
export default function FindAddressPopGrid(props) { export default function FindAddressPopGrid(props) {
const { getMessage } = useMessage()
const { gridData, gridColumns, isPageable = true } = props const { gridData, gridColumns, isPageable = true } = props
const [rowData, setRowData] = useState(null) const [rowData, setRowData] = useState(null)
@ -46,7 +49,7 @@ export default function FindAddressPopGrid(props) {
} }
return ( return (
<div className="ag-theme-quartz" style={{ height: 500 }}> <div className="ag-theme-quartz" style={{ height: 400 }}>
<AgGridReact <AgGridReact
onGridReady={onGridReady} onGridReady={onGridReady}
rowBuffer={rowBuffer} rowBuffer={rowBuffer}
@ -56,6 +59,7 @@ export default function FindAddressPopGrid(props) {
rowSelection={'singleRow'} rowSelection={'singleRow'}
pagination={isPageable} pagination={isPageable}
onSelectionChanged={onSelectionChanged} onSelectionChanged={onSelectionChanged}
overlayNoRowsTemplate={`<span className="ag-overlay-loading-center">${getMessage('stuff.grid.noData')}</span>`}
/> />
</div> </div>
) )

View File

@ -253,6 +253,12 @@ export default function PlanRequestPop(props) {
} }
}, [commonCode]) }, [commonCode])
//
const handleKeyUp = (e) => {
let input = e.target
input.value = input.value.replace(/[^0-9]/g, '')
}
return ( return (
<div className="modal-popup"> <div className="modal-popup">
<div className="modal-dialog big"> <div className="modal-dialog big">
@ -301,6 +307,7 @@ export default function PlanRequestPop(props) {
type="text" type="text"
className="input-light" className="input-light"
value={schPlanReqNo} value={schPlanReqNo}
onKeyUp={handleKeyUp}
onChange={(e) => { onChange={(e) => {
setSchPlanReqNo(e.target.value) setSchPlanReqNo(e.target.value)
}} }}

View File

@ -1,11 +1,14 @@
import React from 'react' import React from 'react'
import { useCallback, useEffect, useMemo, useState } from 'react' import { useCallback, useEffect, useMemo, useState } from 'react'
import { AgGridReact } from 'ag-grid-react' import { AgGridReact } from 'ag-grid-react'
import { useMessage } from '@/hooks/useMessage'
import 'ag-grid-community/styles/ag-grid.css' import 'ag-grid-community/styles/ag-grid.css'
import 'ag-grid-community/styles/ag-theme-quartz.css' import 'ag-grid-community/styles/ag-theme-quartz.css'
export default function PlanRequestPopQGrid(props) { export default function PlanRequestPopQGrid(props) {
const { getMessage } = useMessage()
const { gridData, gridColumns, isPageable = true } = props const { gridData, gridColumns, isPageable = true } = props
const [rowData, setRowData] = useState(null) const [rowData, setRowData] = useState(null)
@ -56,6 +59,7 @@ export default function PlanRequestPopQGrid(props) {
rowSelection={'singleRow'} rowSelection={'singleRow'}
pagination={isPageable} pagination={isPageable}
onSelectionChanged={onSelectionChanged} onSelectionChanged={onSelectionChanged}
overlayNoRowsTemplate={`<span className="ag-overlay-loading-center">${getMessage('stuff.grid.noData')}</span>`}
/> />
</div> </div>
) )

View File

@ -1,13 +1,13 @@
import Skeleton from 'react-loading-skeleton' import Skeleton from 'react-loading-skeleton'
import 'react-loading-skeleton/dist/skeleton.css' import 'react-loading-skeleton/dist/skeleton.css'
export default function MainSkeleton() { export default function MainSkeleton({ count }) {
return ( return (
<> <>
<div className="mb-6"> <div className="mb-6">
<Skeleton height={`50px`} /> <Skeleton height={`50px`} />
</div> </div>
<Skeleton count={5} /> <Skeleton count={count} />
</> </>
) )
} }

View File

@ -587,6 +587,7 @@
"stuff.detail.planGridHeader.management": "管理", "stuff.detail.planGridHeader.management": "管理",
"stuff.detail.planGrid.btn1": "見積書の照会", "stuff.detail.planGrid.btn1": "見積書の照会",
"stuff.detail.planGrid.btn2": "Excel", "stuff.detail.planGrid.btn2": "Excel",
"stuff.grid.noData": "照会されたデータがありません",
"length": "長さ", "length": "長さ",
"height": "高さ", "height": "高さ",
"output": "出力", "output": "出力",

View File

@ -592,6 +592,7 @@
"stuff.detail.planGridHeader.management": "관리", "stuff.detail.planGridHeader.management": "관리",
"stuff.detail.planGrid.btn1": "견적서 조회", "stuff.detail.planGrid.btn1": "견적서 조회",
"stuff.detail.planGrid.btn2": "Excel", "stuff.detail.planGrid.btn2": "Excel",
"stuff.grid.noData": "조회된 데이터가 없습니다",
"length": "길이", "length": "길이",
"height": "높이", "height": "높이",
"output": "출력", "output": "출력",