Commit c4b5f9f0 authored by 张耀's avatar 张耀

feat:

优化逻辑
parent 5715b4e7
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
</template> </template>
<script setup> <script setup>
import { computed, onBeforeMount, reactive, ref, watch } from "vue"; import { computed, onBeforeMount, reactive, ref } from "vue";
import gapTitle from "@/components/gap-title.vue"; import gapTitle from "@/components/gap-title.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
const props = defineProps({ const props = defineProps({
...@@ -400,43 +400,29 @@ const createRule = (index = -1) => { ...@@ -400,43 +400,29 @@ const createRule = (index = -1) => {
const removeRule = (index) => { const removeRule = (index) => {
state.form.ruleRows.splice(index, 1); state.form.ruleRows.splice(index, 1);
}; };
watch( const info = () => {
() => props.form, if (!info) {
(f) => { createRule();
if (!f) { return;
createRule();
return;
}
state.form.warn_target = f.warn_target;
state.form.warn_type = f.warn_type;
state.form.warn_indicator = f.warn_indicator;
state.form.indicator_expression = f.indicator_expression;
state.form.rule_type = f.rule_type;
state.form.risk_level = f.risk_level;
state.form.ruleRows =
f?.ruleRows?.map((e) => {
return {
from: e.from,
to: e.to,
risk_level: e.risk_level,
};
}) || [];
if (state.form.ruleRows.length == 0) {
createRule();
}
},
{
deep: true,
immediate: true,
} }
); state.form.warn_target = props.form.warn_target;
// watch( state.form.warn_type = props.form.warn_type;
// () => state.form, state.form.warn_indicator = props.form.warn_indicator;
// (n) => { state.form.indicator_expression = props.form.indicator_expression;
// console.log(state.form); state.form.rule_type = props.form.rule_type;
// }, state.form.risk_level = props.form.risk_level;
// { deep: true } state.form.ruleRows =
// ); props.form?.ruleRows?.map((e) => {
return {
from: e.from,
to: e.to,
risk_level: e.risk_level,
};
}) || [];
if (state.form.ruleRows.length == 0) {
createRule();
}
};
const formatForm = computed(() => { const formatForm = computed(() => {
return { return {
...state.form, ...state.form,
...@@ -445,6 +431,7 @@ const formatForm = computed(() => { ...@@ -445,6 +431,7 @@ const formatForm = computed(() => {
}); });
onBeforeMount(() => { onBeforeMount(() => {
getRuleTypeOptions(); getRuleTypeOptions();
info();
}); });
defineExpose({ defineExpose({
Submit, Submit,
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</template> </template>
<script setup> <script setup>
import { computed, nextTick, reactive, ref, watch } from "vue"; import { computed, nextTick, onBeforeMount, reactive, ref } from "vue";
import gapTitle from "@/components/gap-title.vue"; import gapTitle from "@/components/gap-title.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
const props = defineProps({ const props = defineProps({
...@@ -303,33 +303,29 @@ const changeWarningThresholdTo = (index) => { ...@@ -303,33 +303,29 @@ const changeWarningThresholdTo = (index) => {
const removeRule = (index) => { const removeRule = (index) => {
state.form.ruleRows.splice(index, 1); state.form.ruleRows.splice(index, 1);
}; };
watch( const info = () => {
() => props.form, if (!props.form || props.form?.length == 0) {
(n) => { getRuleTypeOptions();
if (!n || n?.length == 0) { createRule();
getRuleTypeOptions(); return;
}
getRuleTypeOptions(() => {
state.form.ruleRows =
props.form?.map((e) => {
return {
from: e.from,
to: e.to,
risk_level: e.risk_level,
};
}) || [];
if (state.form.ruleRows.length == 0) {
createRule(); createRule();
return;
} }
getRuleTypeOptions(() => { });
state.form.ruleRows = };
n?.map((e) => { onBeforeMount(() => {
return { info();
from: e.from, });
to: e.to,
risk_level: e.risk_level,
};
}) || [];
if (state.form.ruleRows.length == 0) {
createRule();
}
});
},
{
deep: true,
immediate: true,
}
);
defineExpose({ defineExpose({
Submit, Submit,
form: state.form, form: state.form,
......
...@@ -71,7 +71,7 @@ const setParams = (res, { id }) => { ...@@ -71,7 +71,7 @@ const setParams = (res, { id }) => {
} }
}), }),
// // 预警规则(下拉) // // 预警规则(下拉)
// alert_rule_type: res.module_data.alert_rule_type, alert_rule_type: res.type_com_ref.alert_rule_type,
} }
} }
} }
...@@ -105,8 +105,6 @@ const setParams = (res, { id }) => { ...@@ -105,8 +105,6 @@ const setParams = (res, { id }) => {
} }
export const Save = (res, p, cb) => { export const Save = (res, p, cb) => {
let params = setParams(res, p); let params = setParams(res, p);
console.log('params: ', params);
return;
axios[p.id ? 'put' : 'post']('/v1/api/alert_rules', params).then(res => { axios[p.id ? 'put' : 'post']('/v1/api/alert_rules', params).then(res => {
if (res.data.code == 200) { if (res.data.code == 200) {
ElMessage.success(`${p.id ? '编辑' : '新增'}成功`) ElMessage.success(`${p.id ? '编辑' : '新增'}成功`)
......
...@@ -33,11 +33,7 @@ ...@@ -33,11 +33,7 @@
<div class="warning-scope-main"> <div class="warning-scope-main">
<div class="warn-scpoe-form" v-for="(item, index) in state.form.warning_scpoe_form" :key="index"> <div class="warn-scpoe-form" v-for="(item, index) in state.form.warning_scpoe_form" :key="index">
<el-form-item :label="item.chinese_name"> <el-form-item :label="item.chinese_name">
<el-select <el-select class="warn-scpoe-select" v-model="item.select" style="width: 114px">
class="warn-scpoe-select"
v-model="item.select"
style="width: 114px"
@change="changeSelect(index, item)">
<el-option v-for="(value, key) in selectRule" :key="key" :label="value" :value="key" /> <el-option v-for="(value, key) in selectRule" :key="key" :label="value" :value="key" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -67,8 +63,7 @@ ...@@ -67,8 +63,7 @@
:loading="item.loading" :loading="item.loading"
remote remote
:disabled="item.select == 'all'" :disabled="item.select == 'all'"
:remote-method="(query) => remoteMethod(query, index, item)" :remote-method="(query) => remoteMethod(query, index, item)">
multiple>
<el-option v-for="item in item.options" :key="item" :label="item" :value="item"> </el-option> <el-option v-for="item in item.options" :key="item" :label="item" :value="item"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -89,20 +84,13 @@ ...@@ -89,20 +84,13 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <component
ref="warn_type_com"
:is="warnTypeCom[formFormat.warn_type]"
:type="formFormat.warn_type"
:form="warn_type_com_form"
v-if="formFormat.warn_type"></component> -->
</el-form> </el-form>
</div> </div>
</template> </template>
<script setup> <script setup>
import { computed, nextTick, onMounted, reactive, ref, shallowReactive, watch } from "vue"; import { computed, nextTick, onMounted, reactive, ref, shallowReactive } from "vue";
import gapTitle from "@/components/gap-title.vue"; import gapTitle from "@/components/gap-title.vue";
// import CommonCom from "./common-com.vue";
import Gateway from "./gateway.vue"; import Gateway from "./gateway.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
...@@ -132,12 +120,6 @@ const riskLevelOptions = ref([ ...@@ -132,12 +120,6 @@ const riskLevelOptions = ref([
name: "低风险", name: "低风险",
}, },
]); ]);
// const warnTypeCom = shallowReactive({
// colony: CommonCom,
// node: CommonCom,
// group: CommonCom,
// gateway: Gateway,
// });
const props = defineProps({ const props = defineProps({
form: { form: {
type: Object, type: Object,
...@@ -148,13 +130,13 @@ const props = defineProps({ ...@@ -148,13 +130,13 @@ const props = defineProps({
default: false, default: false,
}, },
}); });
const changeSelect = (index, item) => { // const changeSelect = (index, item) => {
if (showSelect.includes(item.is_linked)) { // if (showSelect.includes(item.is_linked)) {
state.form.warning_scpoe_form[index].value = []; // state.form.warning_scpoe_form[index].value = [];
} else { // } else {
state.form.warning_scpoe_form[index].value = ""; // state.form.warning_scpoe_form[index].value = "";
} // }
}; // };
const validateValue = (rule, value, callback, item, index) => { const validateValue = (rule, value, callback, item, index) => {
if (!item.is_required || item.select == "all") return callback(); if (!item.is_required || item.select == "all") return callback();
if (item.value == "") { if (item.value == "") {
...@@ -207,17 +189,12 @@ const chooseWarnIndicator = () => { ...@@ -207,17 +189,12 @@ const chooseWarnIndicator = () => {
}); });
}; };
const remoteMethod = (query, index, item) => { const remoteMethod = (query, index, item) => {
console.log("query, index, item: ", query, index, item);
// if (!query) {
// state.form.warning_scpoe_form[index].options = [];
// return;
// }
state.form.warning_scpoe_form[index].loading = true; state.form.warning_scpoe_form[index].loading = true;
const params = { const params = {
// metric_name: item.metric_name, metric_name: item.metric_name,
metric_name: "grpc_client_handled_total", // metric_name: "grpc_client_handled_total",
// metric_label: item.metric_label, metric_label: item.metric_label,
metric_label: "grpc_method", // metric_label: "grpc_method",
value: query, value: query,
}; };
axios.get(`/v1/api/prometheus/value`, { params }).then((res) => { axios.get(`/v1/api/prometheus/value`, { params }).then((res) => {
...@@ -249,7 +226,7 @@ const formFormat = computed(() => { ...@@ -249,7 +226,7 @@ const formFormat = computed(() => {
warn_target, warn_target,
warn_type, warn_type,
isEmpty: isEmpty.value, isEmpty: isEmpty.value,
// module_data: module_data.value alert_rule_type: module_data.value,
}; };
if (!isEmpty.value) { if (!isEmpty.value) {
obj = { obj = {
...@@ -262,7 +239,6 @@ const formFormat = computed(() => { ...@@ -262,7 +239,6 @@ const formFormat = computed(() => {
const warningIndexOptions = ref({}); const warningIndexOptions = ref({});
const cascader_ref = ref(null); const cascader_ref = ref(null);
const changeWarnStaticType = async () => { const changeWarnStaticType = async () => {
// const { data } = cascader_ref.value.getCheckedNodes()[0];
let class_id = state.form.warn_type[1]; let class_id = state.form.warn_type[1];
let params = { page: 1, page_size: 10000000000000, class_id }; let params = { page: 1, page_size: 10000000000000, class_id };
getWarningIndicator(params); getWarningIndicator(params);
...@@ -308,22 +284,22 @@ const ruleHeaders = [ ...@@ -308,22 +284,22 @@ const ruleHeaders = [
}, },
]; ];
const rule_rows = computed(() => props.form?.ruleRows || []); const rule_rows = computed(() => props.form?.ruleRows || []);
watch( const info = () => {
() => props.form, console.log(1);
(n) => { state.form.warn_type =
if (!n) return; props.form.warn_target && props.form.warn_type ? [props.form.warn_target, props.form.warn_type] : [];
state.form.warn_type = n.warn_target && n.warn_type ? [n.warn_target, n.warn_type] : []; state.form.warn_indicator = props.form.warn_indicator;
state.form.warn_indicator = n.warn_indicator; alert_rule_type.value = props.form.rule_type || "1";
alert_rule_type.value = n.rule_type || "1"; let params = { page: 1, page_size: 10000000000000, class_id: props.form.warn_type };
let params = { page: 1, page_size: 10000000000000, class_id: n.warn_type }; getWarningIndicator(params, () => {
getWarningIndicator(params, () => { state.form.warning_scpoe_form = props.form?.warning_scpoe_form || [];
state.form.warning_scpoe_form = n?.warning_scpoe_form || []; });
}); };
},
{ deep: true, immediate: true }
);
onMounted(() => { onMounted(() => {
getStaticTypeOptions(); getStaticTypeOptions();
if (props.form) {
info();
}
}); });
defineExpose({ defineExpose({
Submit, Submit,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment