|
|
@@ -128,7 +128,11 @@
|
|
|
<el-icon><Edit /></el-icon>
|
|
|
<span>修改计划</span>
|
|
|
</div>
|
|
|
- <div class="context-menu-item" @click="handleCancelPlan">
|
|
|
+ <div
|
|
|
+ class="context-menu-item"
|
|
|
+ :class="{ 'disabled': (currentTask as PipeTaskItem)?.status !== 100 }"
|
|
|
+ @click="handleCancelPlan"
|
|
|
+ >
|
|
|
<el-icon><Delete /></el-icon>
|
|
|
<span>取消计划</span>
|
|
|
</div>
|
|
|
@@ -228,6 +232,7 @@
|
|
|
class="delete-btn"
|
|
|
type="danger"
|
|
|
link
|
|
|
+ v-if="task.status === 100"
|
|
|
@click.stop="handleDeleteTask(task)"
|
|
|
>
|
|
|
<el-icon><Delete /></el-icon>
|
|
|
@@ -678,6 +683,11 @@ onUnmounted(() => {
|
|
|
|
|
|
// 处理单个计划删除
|
|
|
const handleDeleteTask = (task: PipeTaskItem) => {
|
|
|
+ // 检查状态是否为已排期(100)
|
|
|
+ if (task.status !== 100) {
|
|
|
+ ElMessage.warning('仅允许删除"已排期"状态的记录')
|
|
|
+ return
|
|
|
+ }
|
|
|
handleDeleteSelected([task])
|
|
|
}
|
|
|
|
|
|
@@ -686,6 +696,13 @@ const handleDeleteSelected = async (tasksToDelete?: PipeTaskItem[]) => {
|
|
|
const tasks = tasksToDelete || selectedTasks.value
|
|
|
if (tasks.length === 0) return
|
|
|
|
|
|
+ // 过滤出非已排期状态的任务
|
|
|
+ const nonScheduledTasks = tasks.filter(task => task.status !== 100)
|
|
|
+ if (nonScheduledTasks.length > 0) {
|
|
|
+ ElMessage.warning('仅允许删除"已排期"状态的记录')
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
await ElMessageBox.confirm(
|
|
|
`确认删除选中的计划吗?`,
|
|
|
@@ -749,6 +766,13 @@ const handleEditPlan = () => {
|
|
|
// 取消计划
|
|
|
const handleCancelPlan = () => {
|
|
|
if (currentTask.value) {
|
|
|
+ const task = currentTask.value as PipeTaskItem
|
|
|
+ // 检查状态是否为已排期(100)
|
|
|
+ if (task.status !== 100) {
|
|
|
+ ElMessage.warning('仅允许删除"已排期"状态的记录')
|
|
|
+ contextMenuVisible.value = false
|
|
|
+ return
|
|
|
+ }
|
|
|
handleDeleteSelected([currentTask.value])
|
|
|
contextMenuVisible.value = false
|
|
|
}
|
|
|
@@ -1178,6 +1202,16 @@ watch(() => queryParams.value.type, (newType) => {
|
|
|
background-color: var(--el-fill-color-light);
|
|
|
}
|
|
|
|
|
|
+ &.disabled {
|
|
|
+ opacity: 0.5;
|
|
|
+ cursor: not-allowed;
|
|
|
+ color: var(--el-text-color-placeholder);
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ background-color: transparent;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
.el-icon {
|
|
|
font-size: 16px;
|
|
|
}
|