견적서 상세
This commit is contained in:
parent
08cced00e8
commit
408d7fb04b
@ -18,6 +18,7 @@ import Select, { components } from 'react-select'
|
|||||||
import { convertNumberToPriceDecimal } from '@/util/common-utils'
|
import { convertNumberToPriceDecimal } from '@/util/common-utils'
|
||||||
import ProductFeaturesPop from './popup/ProductFeaturesPop'
|
import ProductFeaturesPop from './popup/ProductFeaturesPop'
|
||||||
export default function Estimate({ params }) {
|
export default function Estimate({ params }) {
|
||||||
|
const [itemChangeYn, setItemChangeYn] = useState(false)
|
||||||
const { session } = useContext(SessionContext)
|
const { session } = useContext(SessionContext)
|
||||||
const [objectNo, setObjectNo] = useState('') //물건번호
|
const [objectNo, setObjectNo] = useState('') //물건번호
|
||||||
const [planNo, setPlanNo] = useState('') //플랜번호
|
const [planNo, setPlanNo] = useState('') //플랜번호
|
||||||
@ -268,17 +269,45 @@ export default function Estimate({ params }) {
|
|||||||
|
|
||||||
// 아이템 자동완성 검색시
|
// 아이템 자동완성 검색시
|
||||||
const onChangeDisplayItem = (itemId, dispOrder) => {
|
const onChangeDisplayItem = (itemId, dispOrder) => {
|
||||||
console.log('아이템 자동완성:::::::', dispOrder)
|
|
||||||
const param = {
|
const param = {
|
||||||
itemId: itemId,
|
itemId: itemId,
|
||||||
}
|
}
|
||||||
const apiUrl = `/api/display-item/item-detail?${queryStringFormatter(param)}`
|
const apiUrl = `/api/display-item/item-detail?${queryStringFormatter(param)}`
|
||||||
|
let updateList = []
|
||||||
|
let updates = {}
|
||||||
get({ url: apiUrl }).then((res) => {
|
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())
|
setSelection(new Set())
|
||||||
|
setItemChangeYn(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (itemChangeYn) {
|
||||||
|
// console.log('아이템에 뭔가 변화가 일어났어', itemChangeYn)
|
||||||
|
// console.log('아이템상태가져오기::::::::::', state.itemList)
|
||||||
|
}
|
||||||
|
|
||||||
|
//다시 false로 돌리기 여기서할지 가격정보 변경하는거 끝나고할지..
|
||||||
|
setItemChangeYn(false)
|
||||||
|
}, [itemChangeYn])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="sub-content estimate">
|
<div className="sub-content estimate">
|
||||||
<div className="sub-content-inner">
|
<div className="sub-content-inner">
|
||||||
@ -844,8 +884,6 @@ export default function Estimate({ params }) {
|
|||||||
isClearable={true}
|
isClearable={true}
|
||||||
isDisabled={false}
|
isDisabled={false}
|
||||||
value={displayItemList.filter(function (option) {
|
value={displayItemList.filter(function (option) {
|
||||||
// console.log('옵션값???', option.itemId)
|
|
||||||
// console.log('골랐을때 여기오지???', item.itemId)
|
|
||||||
return option.itemId === item.itemId
|
return option.itemId === item.itemId
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
@ -877,14 +915,30 @@ export default function Estimate({ params }) {
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div className="input-wrap" style={{ width: '100%' }}>
|
<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>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>{item.unit}</td>
|
<td>{item.unit}</td>
|
||||||
<td>
|
<td>
|
||||||
<div className="form-flex-wrap">
|
<div className="form-flex-wrap">
|
||||||
<div className="input-wrap mr5">
|
<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>
|
||||||
{/* <div className="btn-area">
|
{/* <div className="btn-area">
|
||||||
<span className="tb_ico open_check">OPEN아이콘 처리</span>
|
<span className="tb_ico open_check">OPEN아이콘 처리</span>
|
||||||
|
|||||||
@ -29,8 +29,8 @@ const defaultEstimateData = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Helper functions
|
// Helper functions
|
||||||
const updateItemInList = (itemList, itemId, updates) => {
|
const updateItemInList = (itemList, dispOrder, updates) => {
|
||||||
return itemList.map((item) => (item.itemId === itemId ? { ...item, ...updates } : item))
|
return itemList.map((item) => (item.dispOrder === dispOrder ? { ...item, ...updates } : item))
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useEstimateController = (planNo) => {
|
export const useEstimateController = (planNo) => {
|
||||||
@ -69,9 +69,9 @@ export const useEstimateController = (planNo) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateItem = (itemId, updates) => {
|
const updateItem = (dispOrder, updates) => {
|
||||||
setState({
|
setState({
|
||||||
itemList: updateItemInList(state.itemList, itemId, updates),
|
itemList: updateItemInList(state.itemList, dispOrder, updates),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,8 +85,8 @@ export const useEstimateController = (planNo) => {
|
|||||||
planNo: planNo,
|
planNo: planNo,
|
||||||
dispOrder: newItemDispOrder.toString(),
|
dispOrder: newItemDispOrder.toString(),
|
||||||
itemId: '', //제품번호
|
itemId: '', //제품번호
|
||||||
itemNo: '', //형명
|
itemNo: '',
|
||||||
itemName: '',
|
itemName: '', //형명
|
||||||
amount: '', //수량
|
amount: '', //수량
|
||||||
unitPrice: '0',
|
unitPrice: '0',
|
||||||
unit: '', //단위
|
unit: '', //단위
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user