From 85b0c4af449f6f052f64058eb053b8e3f1109104 Mon Sep 17 00:00:00 2001 From: zhangjun1 Date: Tue, 4 Jul 2023 10:52:06 +0800 Subject: [PATCH] =?UTF-8?q?[feat](=E4=BB=BB=E5=8A=A1=E7=AE=A1=E7=90=86):?= =?UTF-8?q?=20=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A570%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bg-ui/bg-code-editor.vue | 4 +- .../task-manage/add/base-info.vue | 11 +- .../task-manage/add/finish.vue | 10 +- .../task-manage/add/index.vue | 121 ++++++++++++++- .../task-manage/add/use-content.vue | 29 ++-- .../task-manage/detail/index.vue | 140 ++++++++++++------ .../auto-maintenance/task-manage/index.vue | 86 +++++++---- src/services/helper.js | 13 ++ 8 files changed, 318 insertions(+), 96 deletions(-) diff --git a/src/bg-ui/bg-code-editor.vue b/src/bg-ui/bg-code-editor.vue index 7ecb6c6..1101ebb 100644 --- a/src/bg-ui/bg-code-editor.vue +++ b/src/bg-ui/bg-code-editor.vue @@ -143,9 +143,9 @@ const { content } = toRefs(states); right: 0 !important; } /* 光标颜色 */ -.vue-ace-editor :deep() .ace_cursor { +/* .vue-ace-editor :deep() .ace_cursor { color: #fff; -} +} */ .vue-ace-editor-disable :deep() .ace_scrollbar-v { width: 6px !important; right: 2px; diff --git a/src/page/main/auto-maintenance/task-manage/add/base-info.vue b/src/page/main/auto-maintenance/task-manage/add/base-info.vue index cf1ccd4..cbe5637 100644 --- a/src/page/main/auto-maintenance/task-manage/add/base-info.vue +++ b/src/page/main/auto-maintenance/task-manage/add/base-info.vue @@ -2,7 +2,12 @@
- + {}, }, + isEdit: { + type: Boolean, + default: false, + }, }); const ruleFormRef = ref(null); diff --git a/src/page/main/auto-maintenance/task-manage/add/finish.vue b/src/page/main/auto-maintenance/task-manage/add/finish.vue index 408c061..eb4cf38 100644 --- a/src/page/main/auto-maintenance/task-manage/add/finish.vue +++ b/src/page/main/auto-maintenance/task-manage/add/finish.vue @@ -2,11 +2,11 @@
-

新增成功

-

新增失败

+

{{ ["新增", "编辑", "复制"][props.finishType] }}成功

+

{{ ["新增", "编辑", "复制"][props.finishType] }}失败

返回列表 - 继续新增 + {{ props.finishType == 1 ? "重新提交" : "继续新增" }}
@@ -24,6 +24,10 @@ const props = defineProps({ type: Boolean, default: true, }, + finishType: { + type: Number, + default: 0, + }, }); const emit = defineEmits(["clear"]); diff --git a/src/page/main/auto-maintenance/task-manage/add/index.vue b/src/page/main/auto-maintenance/task-manage/add/index.vue index 1fb4d36..7472725 100644 --- a/src/page/main/auto-maintenance/task-manage/add/index.vue +++ b/src/page/main/auto-maintenance/task-manage/add/index.vue @@ -42,10 +42,28 @@
- - - - + + + +
取消 @@ -104,6 +122,9 @@ const state = reactive({ useData: ["yaml", "json"], useText: "", isSave: true, + status: true, + pageType: 0, //0新增,1编辑,2复制 + loadComponents: false, //控制子组件的加载 }); const cancel = () => { @@ -131,11 +152,55 @@ const saveTask = async () => { .save() .then(() => { step.value = 3; - //todo:掉接口保存,并获取状态 + if (state.pageType == 0 || state.pageType == 2) { + postTask(); + } else if (state.pageType == 1) { + editTask(); + } }) .catch(() => {}); }; +const editTask = () => { + axios + .put(`/v1/api/automated_mainten/task_manage/edit`, { + task_name: state.data.name, + task_desc: state.data.desc, + yaml_desc: state.data.useText, + yaml_url: JSON.stringify(state.data.doc_file), + host_group_id: state.data.pcName, + }) + .then((res) => { + if (res.data.code == 200) { + state.status = true; + ElMessage.success("保存成功"); + } else { + state.status = false; + ElMessage.error(res.data.msg); + } + }); +}; + +const postTask = () => { + axios + .post(`/v1/api/automated_mainten/task_manage/add`, { + task_name: state.data.name, + task_desc: state.data.desc, + yaml_desc: state.data.useText, + yaml_url: JSON.stringify(state.data.doc_file), + host_group_id: state.data.pcName, + }) + .then((res) => { + if (res.data.code == 200) { + state.status = true; + ElMessage.success("保存成功"); + } else { + state.status = false; + ElMessage.error(res.data.msg); + } + }); +}; + const useScript = async () => { //填写完成才可以进行执行 await useContentRef.value @@ -167,9 +232,53 @@ const clearData = () => { useContentRef.value.clear(); state.data = {}; step.value = 1; + state.loadComponents = false; + init(); }; -onBeforeMount(() => {}); +const getDetails = () => { + axios + .get(`/v1/api/automated_mainten/task_manage/details`, { + params: { + id: route.query.id, + }, + }) + .then((res) => { + if (res.data.code == 200) { + let data = res.data.data; + state.data = { + name: data.task_name, + desc: data.task_desc, + useText: data.yaml_desc, + doc_file: data.yaml_url ? JSON.parse(data.yaml_url) : [], + pcName: data.host_group_id, + }; + //复制,名字置空 + if (state.pageType == 2) { + state.data.name = ""; + } + state.loadComponents = true; + } + }); +}; + +const init = () => { + if (route.path.indexOf("edit") > -1) { + state.pageType = 1; + } else if (route.path.indexOf("copy") > -1) { + state.pageType = 2; + } + if (state.pageType !== 0) { + getDetails(); + } else { + state.loadComponents = true; + } +}; + +onBeforeMount(() => { + state.loadComponents = false; + init(); +});