feat: 신규 canvas plan 생성 시 복제 여부 선택 로직 추가
This commit is contained in:
parent
0bc97221a2
commit
7a548fbcce
@ -21,7 +21,7 @@ export default function CanvasLayout() {
|
|||||||
|
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
const { swalFire } = useSwal()
|
const { swalFire } = useSwal()
|
||||||
const { getCanvasByObjectNo, delCanvasById, checkModifiedCanvasPlan, saveCanvas } = usePlan()
|
const { getCanvasByObjectNo, delCanvasById, checkModifiedCanvasPlan, saveCanvas, currentCanvasData } = usePlan()
|
||||||
|
|
||||||
const handleCurrentPlan = (newCurrentId) => {
|
const handleCurrentPlan = (newCurrentId) => {
|
||||||
// console.log('currentPlan newCurrentId: ', newCurrentId)
|
// console.log('currentPlan newCurrentId: ', newCurrentId)
|
||||||
@ -84,12 +84,25 @@ export default function CanvasLayout() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const addNewPlan = () => {
|
const addEmptyPlan = () => {
|
||||||
setPlans([...plans, { id: planNum, name: `Plan ${planNum + 1}`, objectNo: `${objectNo}` }])
|
setPlans([...plans, { id: planNum, name: `Plan ${planNum + 1}`, objectNo: `${objectNo}` }])
|
||||||
handleCurrentPlan(planNum)
|
handleCurrentPlan(planNum)
|
||||||
setPlanNum(planNum + 1)
|
setPlanNum(planNum + 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const addCopyPlan = () => {
|
||||||
|
const copyPlan = {
|
||||||
|
id: planNum,
|
||||||
|
name: `Plan ${planNum + 1}`,
|
||||||
|
objectNo: `${objectNo}`,
|
||||||
|
userId: sessionState.userId,
|
||||||
|
canvasStatus: currentCanvasData(),
|
||||||
|
}
|
||||||
|
setPlans((plans) => [...plans, copyPlan])
|
||||||
|
handleCurrentPlan(planNum)
|
||||||
|
setPlanNum(planNum + 1)
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!currentCanvasPlan) {
|
if (!currentCanvasPlan) {
|
||||||
getCanvasByObjectNo(sessionState.userId, objectNo).then((res) => {
|
getCanvasByObjectNo(sessionState.userId, objectNo).then((res) => {
|
||||||
@ -100,7 +113,7 @@ export default function CanvasLayout() {
|
|||||||
handleCurrentPlan(res.at(-1).id) // last 데이터에 포커싱
|
handleCurrentPlan(res.at(-1).id) // last 데이터에 포커싱
|
||||||
setPlanNum(res.length)
|
setPlanNum(res.length)
|
||||||
} else {
|
} else {
|
||||||
addNewPlan()
|
addEmptyPlan()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -128,9 +141,27 @@ export default function CanvasLayout() {
|
|||||||
</button>
|
</button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
<button className="plane-add" onClick={addNewPlan}>
|
{plans.length < 10 && (
|
||||||
<span></span>
|
<button
|
||||||
</button>
|
className="plane-add"
|
||||||
|
onClick={() =>
|
||||||
|
JSON.parse(currentCanvasData()).objects.length > 0
|
||||||
|
? swalFire({
|
||||||
|
html: `${currentCanvasPlan.name} 을 복제하시겠습니까?`,
|
||||||
|
type: 'confirm',
|
||||||
|
confirmFn: () => {
|
||||||
|
addCopyPlan()
|
||||||
|
},
|
||||||
|
denyFn: () => {
|
||||||
|
addEmptyPlan()
|
||||||
|
},
|
||||||
|
})
|
||||||
|
: addEmptyPlan()
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<span></span>
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<CanvasFrame plan={plans.find((plan) => plan.isCurrent === true)} />
|
<CanvasFrame plan={plans.find((plan) => plan.isCurrent === true)} />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -72,6 +72,11 @@ export function usePlan() {
|
|||||||
// }, 1000)
|
// }, 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const currentCanvasData = () => {
|
||||||
|
removeMouseLines()
|
||||||
|
return addCanvas()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 실시간 캔버스 상태와 DB에 저장된 캔버스 상태를 비교하여 수정 여부를 판단
|
* 실시간 캔버스 상태와 DB에 저장된 캔버스 상태를 비교하여 수정 여부를 판단
|
||||||
*/
|
*/
|
||||||
@ -231,6 +236,7 @@ export function usePlan() {
|
|||||||
return {
|
return {
|
||||||
canvas,
|
canvas,
|
||||||
removeMouseLines,
|
removeMouseLines,
|
||||||
|
currentCanvasData,
|
||||||
saveCanvas,
|
saveCanvas,
|
||||||
addCanvas,
|
addCanvas,
|
||||||
checkModifiedCanvasPlan,
|
checkModifiedCanvasPlan,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user