견적서 상세

This commit is contained in:
basssy 2024-11-14 09:35:08 +09:00
parent 08cced00e8
commit 408d7fb04b
2 changed files with 69 additions and 15 deletions

View File

@ -18,6 +18,7 @@ import Select, { components } from 'react-select'
import { convertNumberToPriceDecimal } from '@/util/common-utils'
import ProductFeaturesPop from './popup/ProductFeaturesPop'
export default function Estimate({ params }) {
const [itemChangeYn, setItemChangeYn] = useState(false)
const { session } = useContext(SessionContext)
const [objectNo, setObjectNo] = useState('') //
const [planNo, setPlanNo] = useState('') //
@ -268,17 +269,45 @@ export default function Estimate({ params }) {
//
const onChangeDisplayItem = (itemId, dispOrder) => {
console.log('아이템 자동완성:::::::', dispOrder)
const param = {
itemId: itemId,
}
const apiUrl = `/api/display-item/item-detail?${queryStringFormatter(param)}`
let updateList = []
let updates = {}
get({ url: apiUrl }).then((res) => {
console.log('제품상세 결과::::::::', res)
console.log('아이템상세정보:::::::', res)
updates.objectNo = objectNo
updates.planNo = planNo
updates.itemId = res.itemId
updates.itemNo = '' //
updates.itemName = res.itemName
updates.itemChangeFlg = '1' //1
updates.fileUploadFlg = res.fileUploadFlg
updates.unit = res.unit
updates.unitPrice = res.salePrice //unitPrice salePrice
updates.moduleFlg = res.moduleFlg
updates.pkgMaterialFlg = res.pkgMaterialFlg
updates.pnowW = res.pnowW
updates.salePrice = res.salePrice
updates.specification = res.specification
updates.unit = res.unit
updates.specialNoteCd = res.spnAttrCds
updates.itemGroup = res.itemGroup
updateList = state.itemList.map((item) => {
if (item.dispOrder === dispOrder) {
return { ...item, ...updates }
} else {
return item
}
})
setState({
itemList: updateList,
})
setItemChangeYn(true)
})
// setState({
// itemList: [{ itemNo: '123123123123' }],
// })
}
//
@ -302,8 +331,19 @@ export default function Estimate({ params }) {
})
setSelection(new Set())
setItemChangeYn(true)
}
useEffect(() => {
if (itemChangeYn) {
// console.log(' ', itemChangeYn)
// console.log('::::::::::', state.itemList)
}
// false ..
setItemChangeYn(false)
}, [itemChangeYn])
return (
<div className="sub-content estimate">
<div className="sub-content-inner">
@ -844,8 +884,6 @@ export default function Estimate({ params }) {
isClearable={true}
isDisabled={false}
value={displayItemList.filter(function (option) {
// console.log('???', option.itemId)
// console.log(' ???', item.itemId)
return option.itemId === item.itemId
})}
/>
@ -877,14 +915,30 @@ export default function Estimate({ params }) {
</td>
<td>
<div className="input-wrap" style={{ width: '100%' }}>
<input type="text" className="input-light al-r" defaultValue={item?.amount} />
<input
type="text"
className="input-light al-r"
defaultValue={convertNumberToPriceDecimal(item?.amount)}
onChange={(e) => {
//onChangeDisplayItem
console.log('수량변경::::::::', e.target.value)
}}
/>
</div>
</td>
<td>{item.unit}</td>
<td>
<div className="form-flex-wrap">
<div className="input-wrap mr5">
<input type="text" className="input-light al-r" defaultValue={convertNumberToPriceDecimal(item?.salePrice)} />
<input
type="text"
className="input-light al-r"
value={convertNumberToPriceDecimal(item?.salePrice)}
onChange={(e) => {
//onChangeDisplayItem
console.log('단가변경:::::::', e.target.value)
}}
/>
</div>
{/* <div className="btn-area">
<span className="tb_ico open_check">OPEN아이콘 처리</span>

View File

@ -29,8 +29,8 @@ const defaultEstimateData = {
}
// Helper functions
const updateItemInList = (itemList, itemId, updates) => {
return itemList.map((item) => (item.itemId === itemId ? { ...item, ...updates } : item))
const updateItemInList = (itemList, dispOrder, updates) => {
return itemList.map((item) => (item.dispOrder === dispOrder ? { ...item, ...updates } : item))
}
export const useEstimateController = (planNo) => {
@ -69,9 +69,9 @@ export const useEstimateController = (planNo) => {
}
}
const updateItem = (itemId, updates) => {
const updateItem = (dispOrder, updates) => {
setState({
itemList: updateItemInList(state.itemList, itemId, updates),
itemList: updateItemInList(state.itemList, dispOrder, updates),
})
}
@ -85,8 +85,8 @@ export const useEstimateController = (planNo) => {
planNo: planNo,
dispOrder: newItemDispOrder.toString(),
itemId: '', //제품번호
itemNo: '', //형명
itemName: '',
itemNo: '',
itemName: '', //형명
amount: '', //수량
unitPrice: '0',
unit: '', //단위