Merge branch 'qcast-pub' into dev

This commit is contained in:
김민식 2025-02-03 19:25:58 +09:00
commit 24f2b7acb0

View File

@ -9,6 +9,7 @@ import { useRecoilState, useRecoilValue } from 'recoil'
import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController'
import { canvasPopupStatusStore } from '@/store/canvasPopupStatusAtom'
import { useMasterController } from '@/hooks/common/useMasterController'
import { v4 as uuidv4 } from 'uuid'
export default function StepUp(props) {
const { getMessage } = useMessage()
@ -97,7 +98,7 @@ export default function StepUp(props) {
pcsItemList: formatPcsItemList(stepUps.pcsItemList),
selectedPcsItem: formatPcsItemList(stepUps.pcsItemList),
}))
console.log('🚀 ~ formatStepUpListData ~ formattedData:', formattedData)
// selectedValues
const initialSelectedValues = {}
formattedData.forEach((stepUp) => {
@ -173,11 +174,13 @@ export default function StepUp(props) {
// PCS
const formatSerQtyList = (serQtyList = []) => {
return serQtyList?.map((qty) => ({
code: uuidv4(),
serQty: qty.serQty ? qty.serQty : 0,
paralQty: qty.paralQty ? qty.paralQty : 0,
rmdYn: qty.rmdYn ? qty.rmdYn : 'N',
usePossYn: qty.usePossYn ? qty.usePossYn : 'Y',
roofSurfaceList: formatRoofSurfaceList(qty.roofSurfaceList),
selected: qty.rmdYn === 'Y',
}))
}
@ -209,75 +212,123 @@ export default function StepUp(props) {
}
//
const handleRowClick = (goodsNo, pcsIdx, serQtyIdx, serQty, paralQty) => {
const rowKey = `${goodsNo}_${pcsIdx}_${serQtyIdx}`
const pcsKey = `${goodsNo}_${pcsIdx}`
console.log('goodsNo >> ', goodsNo, serQty, paralQty)
// PCS
const pcsItem = stepUpListData.find((stepUp) => stepUp.pcsItemList.find((item) => item.goodsNo === goodsNo))?.pcsItemList[pcsIdx]
if (!pcsItem) {
console.error('PCS item not found:', { goodsNo, pcsIdx })
return
}
// -
const selectionData = {
goodsNo: goodsNo,
pcsInfo: {
itemId: pcsItem?.itemId,
goodsNo: pcsItem?.goodsNo,
pcsMkrCd: pcsItem?.pcsMkrCd,
pcsSerCd: pcsItem?.pcsSerCd,
},
allocation: {
serQty: serQty,
paralQty: paralQty,
},
}
//
setSelectedValues((prev) => ({
...prev,
[goodsNo]: {
...prev[goodsNo],
[pcsKey]: selectionData,
},
}))
//
if (props.onValuesSelected) {
props.onValuesSelected(selectionData)
}
setSelectedRows((prev) => {
// stepUpId
const currentStepUpSelections = prev[goodsNo] || {}
// ,
if (currentStepUpSelections[pcsKey] === rowKey) {
return prev
// const handleRowClick = (goodsNo, pcsIdx, serQtyIdx, serQty, paralQty) => {
const handleRowClick = (mainIdx, subIdx) => {
// const rowKey = `${goodsNo}_${pcsIdx}_${serQtyIdx}`
// const pcsKey = `${goodsNo}_${pcsIdx}`
// setSelectedRow(rowKey)
// item.selected = !item.selected\
let tempStepUpListData = [...stepUpListData]
let selectedData = {}
tempStepUpListData[0].pcsItemList[mainIdx].serQtyList.forEach((item, index) => {
if (index === subIdx) {
selectedData = item
}
item.selected = index === subIdx
})
setStepUpListData(tempStepUpListData)
console.log('🚀 ~ handleRowClick ~ tempStepUpListData:', tempStepUpListData)
console.log('🚀 ~ handleRowClick ~ selectedData:', selectedData)
return {
...prev,
[goodsNo]: {
...currentStepUpSelections,
[pcsKey]: rowKey,
},
}
selectedData.roofSurfaceList.forEach((roofSurface) => {
const targetSurface = canvas.getObjects().filter((obj) => obj.id === roofSurface.roofSurfaceId)[0]
const moduleIds = targetSurface.modules.map((module) => {
return module.id
})
console.log(moduleIds)
canvas
.getObjects()
.filter((obj) => moduleIds.includes(obj.parentId))
.map((text) => {
console.log('🚀 ~ handleRowClick ~ text:', text)
canvas.remove(text)
})
canvas.renderAll()
roofSurface.moduleList.forEach((module) => {
console.log('🚀 ~ handleRowClick ~ module:', module.uniqueId)
const targetModule = canvas.getObjects().filter((obj) => obj.id === module.uniqueId)[0]
const moduleCircuitText = new fabric.Text(module.circuit, {
left: targetModule.left + targetModule.width / 2,
top: targetModule.top + targetModule.height / 2,
fill: 'black',
fontSize: 20,
width: targetModule.width,
height: targetModule.height,
textAlign: 'center',
originX: 'center',
originY: 'center',
name: 'circuitNumber',
parentId: targetModule.id,
circuitInfo: module.pcsItemId,
})
targetModule.circuit = moduleCircuitText
targetModule.circuitNumber = module.circuit
canvas.add(moduleCircuitText)
})
})
// ,
setIsManualSelection((prev) => ({
...prev,
[goodsNo]: {
...prev[goodsNo],
[pcsKey]: true,
},
}))
canvas.renderAll()
// console.log('goodsNo >> ', goodsNo, serQty, paralQty)
// PCS
// const pcsItem = stepUpListData.find((stepUp) => stepUp.pcsItemList.find((item) => item.goodsNo === goodsNo))?.pcsItemList[pcsIdx]
// -
// const selectionData = {
// goodsNo: tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo,
// pcsInfo: {
// itemId: tempStepUpListData[mainIdx].pcsItemList[subIdx].itemId,
// goodsNo: tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo,
// pcsMkrCd: tempStepUpListData[mainIdx].pcsItemList[subIdx].pcsMkrCd,
// pcsSerCd: tempStepUpListData[mainIdx].pcsItemList[subIdx].pcsSerCd,
// },
// allocation: {
// serQty: tempStepUpListData[mainIdx].pcsItemList[subIdx].serQtyList[subIdx].serQty,
// paralQty: tempStepUpListData[mainIdx].pcsItemList[subIdx].serQtyList[subIdx]. paralQty,
// },
// }
// //
// setSelectedValues((prev) => ({
// ...prev,
// [tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo]: {
// ...prev[tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo],
// [pcsKey]: selectionData,
// },
// }))
// //
// if (props.onValuesSelected) {
// props.onValuesSelected(selectionData)
// }
// setSelectedRows((prev) => {
// // stepUpId
// const currentStepUpSelections = prev[goodsNo] || {}
// // ,
// if (currentStepUpSelections[pcsKey] === rowKey) {
// return prev
// }
// return {
// ...prev,
// [goodsNo]: {
// ...currentStepUpSelections,
// [pcsKey]: rowKey,
// },
// }
// })
// // ,
// setIsManualSelection((prev) => ({
// ...prev,
// [goodsNo]: {
// ...prev[goodsNo],
// [pcsKey]: true,
// },
// }))
}
//
@ -310,7 +361,7 @@ export default function StepUp(props) {
{/* 3개일때 className = by-max */}
{stepUpListData.map((stepUp, index) => (
<div key={index} className={`module-table-box ${stepUp.pcsItemList.length === 3 ? 'by-max' : ''}`}>
{stepUp?.pcsItemList.map((_, idx) => (
{stepUp?.pcsItemList.map((pcsItem, idx) => (
<div key={idx} className="module-table-inner">
<div className="mb-box">
<div className="circuit-table-tit">{stepUp.pcsItemList[idx].goodsNo}</div>
@ -323,19 +374,12 @@ export default function StepUp(props) {
</tr>
</thead>
<tbody>
{stepUp.pcsItemList[idx].serQtyList.map((item, serQtyIdx) => {
const rowKey = `${stepUp.pcsItemList[idx].goodsNo}_${idx}_${serQtyIdx}`
const pcsKey = `${stepUp.pcsItemList[idx].goodsNo}_${idx}`
{pcsItem.serQtyList.map((item, serQtyIdx) => {
return (
<tr
key={rowKey}
className={`${
(!isManualSelection[stepUp.pcsItemList[idx].goodsNo]?.[pcsKey] && item.rmdYn === 'Y') ||
(selectedRows[stepUp.pcsItemList[idx].goodsNo] && selectedRows[stepUp.pcsItemList[idx].goodsNo][pcsKey] === rowKey)
? 'on'
: ''
}`}
onClick={() => handleRowClick(stepUp.pcsItemList[idx].goodsNo, idx, serQtyIdx, item.serQty, item.paralQty)}
key={`row-${serQtyIdx}`}
className={`${item.selected ? 'on' : ''}`}
onClick={() => handleRowClick(idx, serQtyIdx)}
style={{ cursor: 'pointer' }}
>
<td className="al-r">{item.serQty}</td>