diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/task-form/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/task-form/index.vue index b3d24dc8c..e360dd93a 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/task-form/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/task-form/index.vue @@ -56,7 +56,7 @@ 编辑 复制 删除 - {{ element.disabled ? "启用" : "禁用" }} + {{ element.disabled ? "启用" : "禁用" }} @@ -88,6 +88,7 @@ import { CopyOutlined } from "@ant-design/icons-vue"; import VDraggable from "vuedraggable"; import { useUserStore } from "/@/store/modules/user"; import { useSettingStore } from "/@/store/modules/settings"; +import { filter } from "lodash-es"; export default { name: "PiTaskForm", components: { CopyOutlined, PiStepForm, VDraggable }, @@ -152,7 +153,11 @@ export default { }); }; - return { stepAdd, stepEdit, stepCopy, stepDelete, stepFormRef }; + const toggleDisabled = (task: any, step: any) => { + step.disabled = !!!step.disabled; + }; + + return { stepAdd, stepEdit, stepCopy, stepDelete, toggleDisabled, stepFormRef }; } /** @@ -162,7 +167,7 @@ export default { function useTaskForm() { const mode = ref("add"); const callback = ref(); - const currentTask = ref({ title: undefined, steps: [] }); + const currentTask = ref({ title: undefined, steps: [], disabled: false }); provide("currentTask", currentTask); const taskFormRef: Ref = ref(null); const taskDrawerVisible = ref(false); @@ -219,6 +224,15 @@ export default { console.error("表单验证失败:", e); return; } + const task: any = currentTask.value; + const allDisabled = filter(task.steps, (item: any) => { + return item.disabled; + }); + if (task.steps.length > 0 && task.steps.length === allDisabled.length) { + task.disabled = true; + } else { + task.disabled = false; + } callback.value("save", currentTask.value); taskDrawerClose(); diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue index 95a744b43..0b1bd4e00 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/index.vue @@ -109,7 +109,7 @@ - {{ task.title }} + {{ task.title }} @@ -883,6 +883,9 @@ export default defineComponent({ &.in-edit { margin-right: 28px; } + &.disabled{ + + } } .action {