diff --git a/src/components/common/CustomTable.tsx b/src/components/common/CustomTable.tsx index d832616..caafe36 100644 --- a/src/components/common/CustomTable.tsx +++ b/src/components/common/CustomTable.tsx @@ -463,6 +463,7 @@ export default function EnhancedTable({ originalRows, headCells, type }) { const newData = { title: target.category, orderIdx: newOrderIdx, + type: target.type, description1: target.description1, description2: target.description2, }; @@ -478,48 +479,6 @@ export default function EnhancedTable({ originalRows, headCells, type }) { return target[0]; }; - // const handleDragEnd = async (result) => { - // console.log(result); - // const { source, destination } = result; - - // if (!destination) return; - - // // Copy the current rows - // const updatedRows = [...rows]; - - // // Remove the dragged item from source and insert it into destination - // const [movedRow] = updatedRows.splice(source.index, 1); - // updatedRows.splice(destination.index, 0, movedRow); - - // if (source.index === destination.index) return; - // else if (source.index > destination.index) { - // let target = rows[source.index]; - // let newOrderIdx = rows[destination.index].orderIdx; - - // updateNewOrderIdx(target, newOrderIdx); - - // for (let i = destination.index; i < source.index; ++i) { - // target = rows[i]; - // if (target) { - // newOrderIdx = rows[i + 1].orderIdx; - // updateNewOrderIdx(target, newOrderIdx); - // } - // } - // } else if (source.index < destination.index) { - // let target = rows[source.index]; - // let newOrderIdx = rows[destination.index].orderIdx; - // updateNewOrderIdx(target, newOrderIdx); - - // for (let i = destination.index; i > source.index; --i) { - // target = rows[i]; - // if (target) { - // newOrderIdx = rows[i - 1].orderIdx; - // updateNewOrderIdx(target, newOrderIdx); - // } - // } - // } - // setRows(updatedRows); - // }; const handleDragEnd = async (result) => { const { source, destination } = result; @@ -592,6 +551,7 @@ export default function EnhancedTable({ originalRows, headCells, type }) { draggableId={type + row?.num} index={index} key={type + row?.num} + isDragDisabled={type !== '마일리지 카테고리'} > {(provided, snapshot) => { return ( @@ -599,7 +559,7 @@ export default function EnhancedTable({ originalRows, headCells, type }) { {...provided.draggableProps} {...provided.dragHandleProps} style={{ - cursor: 'move', + cursor: type === '마일리지 카테고리' ? 'move' : 'pointer', ...provided.draggableProps.style, // react-beautiful-dnd에서 제공하는 기본 스타일 }} ref={provided.innerRef} diff --git a/src/components/common/Table/SelectedItemsDeleteIcon.tsx b/src/components/common/Table/SelectedItemsDeleteIcon.tsx index b89c9fc..21b9137 100644 --- a/src/components/common/Table/SelectedItemsDeleteIcon.tsx +++ b/src/components/common/Table/SelectedItemsDeleteIcon.tsx @@ -28,6 +28,27 @@ export default function SelectedItemsDeleteIcon({ type }: ISelectedItemsDeleteIc return `${res.data.list.map((item) => item.semesterName + ' ')} \n 등 ${ res.data.list.length }개의 학기에서 사용 중이기 때문에 삭제할 수 없습니다. 하위 항목을 먼저 삭제해주세요. `; + case '마일리지 학기별 항목': + return `${res.data.count} 곳에서 사용 중입니다. \n ${res.data.list.map( + (item) => + ' [ ' + + item.semesterItem.semesterName + + ' ] ' + + item.item.name + + ' - ' + + item.studentName + + ' ( ' + + item.sid + + ' ) ' + )} \n 등 ${ + res.data.list.length + }명의 학생이 등록 되어 있기 때문에 삭제할 수 없습니다. 하위 항목을 먼저 삭제해주세요. `; + case '학생 관리': + return `${res.data.count} 곳에 등록되어 있는 학생입니다. \n ${res.data.list.map( + (item) => ' [ ' + item.semesterItem.semesterName + ' ] ' + item.item.name + )} \n 등 ${ + res.data.count + }곳에 학생이 등록 되어 있기 때문에 삭제할 수 없습니다. 하위 항목을 먼저 삭제해주세요. `; } }; @@ -37,6 +58,10 @@ export default function SelectedItemsDeleteIcon({ type }: ISelectedItemsDeleteIc return `/api/mileage/items/categories/${id}`; case '마일리지 글로벌 항목': return `/api/mileage/semesters/items/${id}`; + case '마일리지 학기별 항목': + return `/api/mileage/records/semesterItems/${id}`; + case '학생 관리': + return `/api/mileage/records/students/${id}`; } };