取消
@@ -118,13 +118,15 @@ const node = ref({});
watch(
() => node.value,
(n) => {
- console.log(n);
+ if (n?.data.class_id) {
+ getTableRows();
+ }
},
{ deep: true }
);
const dataTable = ref(null);
const state = reactive({
- stateOptions: [
+ isEnabledOptions: [
{
name: "全部",
value: "",
@@ -134,27 +136,27 @@ const state = reactive({
value: 1,
},
{
- name: "停用",
+ name: "禁用",
value: 2,
},
], // 状态
headers: [
{
label: "指标名称",
- prop: "indicator_name",
+ prop: "metric_name",
width: 200,
},
{
label: "是否启用",
- prop: "state",
+ prop: "is_enabled",
},
{
label: "创建人",
- prop: "created_user",
+ prop: "created_by",
},
{
label: "创建时间",
- prop: "created_time",
+ prop: "created_at",
width: 160,
},
{
@@ -166,11 +168,11 @@ const state = reactive({
],
filter: {
notice_method: "", // 通知方式
- state: "", // 状态
+ is_enabled: "", // 状态
time: [],
- search: "",
+ metric_name: "",
page: 1,
- limit: 10,
+ page_size: 10,
},
tableRows: [], // 表格数据
selected: [], //选择数据
@@ -184,11 +186,11 @@ const changePage = (page) => {
getTableRows();
}; // 改变页码
const changeSize = (size) => {
- state.filter.limit = size;
+ state.filter.page_size = size;
changePage(1);
}; // 改变每页条数
const changeSearch = (val) => {
- state.filter.search = val;
+ state.filter.metric_name = val;
changePage(1);
};
const filterAction = () => {
@@ -196,50 +198,40 @@ const filterAction = () => {
};
const filterClear = () => {
state.filter = {
- state: "", // 状态
+ is_enabled: "", // 状态
time: [],
- search: "",
+ metric_name: "",
page: 1,
- limit: 10,
+ page_size: 10,
};
changePage(1);
};
const selectable = (row, index) => {
- return row.state === 0;
+ return row.is_enabled === 2;
};
const getTableRows = () => {
- let params = { ...state.filter };
- state.tableTotal = 23;
- state.tableRows = [
- {
- id: 1,
- indicator_name: "磁盘使用率",
- state: 1,
- created_user: "李四",
- created_time: "2020-01-01 00:00:00",
- },
- {
- id: 2,
- indicator_name: "磁盘使用率",
- state: 0,
- created_user: "李四",
- created_time: "2020-01-01 00:00:00",
- },
- {
- id: 3,
- indicator_name: "磁盘使用率",
- state: 1,
- created_user: "李四",
- created_time: "2020-01-01 00:00:00",
- },
- ];
+ let params = { ...state.filter, class_id: node.value.data.class_id };
+ // axios.get("/v1/api/metric_config/list", { params }).then((res) => {
+ axios.get("/v1/api/metric_config/list").then((res) => {
+ if (res.data.code == 200) {
+ state.tableRows =
+ res.data.data?.list?.map((e) => {
+ return {
+ ...e,
+ };
+ }) || [];
+ state.tableTotal = res.data.data.total_count;
+ }
+ });
};
const goDetail = (row) => {
router.push({
- path: "/forewarning/rule-set/detail",
+ path: "/forewarning/indicator-config/detail",
query: {
id: row.id,
- class_id: node.value.data.id,
+ class_id: node.value.data.class_id,
+ type_name: node.value.node.parent.data.class_name,
+ target_name: node.value.data.class_name,
},
});
}; // 查看详情
@@ -250,10 +242,10 @@ const deleteRow = (row) => {
state.actionRow = row;
state.delType = 1;
state.delDialog = true;
- console.log("删除");
+ // console.log("删除");
}; // 删除
const batchDelete = () => {
- console.log("批量删除");
+ // console.log("批量删除");
if (!state.selected || state.selected.length == 0) {
ElMessage.error("请先勾选要删除的数据");
return;
@@ -270,53 +262,63 @@ const delConfirm = () => {
return e.id;
});
}
- console.log(ids);
+ // console.log(ids);
state.delDialog = false;
- setTimeout(() => {
- clearSelected();
- changePage(1);
- }, 200);
+ axios
+ .delete("/v1/api/metric_config", {
+ data: {
+ ids,
+ },
+ })
+ .then((res) => {
+ if (res.data.code == 200) {
+ ElMessage.success("删除成功");
+ changePage(1);
+ clearSelected();
+ } else {
+ ElMessage.error(res.data.msg);
+ }
+ });
}; // 确定删除
const clearSelected = () => {
dataTable.value.clearTable();
}; // 清空
const addRule = () => {
- console.log("新增");
+ // console.log("新增");
router.push({
path: `/forewarning/indicator-config/add`,
query: {
- class_id: node.value.data.id,
+ class_id: node.value.data.class_id,
},
});
}; // 新增规则
const editRow = (row) => {
- console.log("编辑");
+ // console.log("编辑");
router.push({
path: `/forewarning/indicator-config/edit`,
query: {
id: row.id,
- class_id: node.value.data.id,
+ class_id: node.value.data.class_id,
},
});
}; // 编辑
-const stateChange = (row) => {
- console.log("更改状态");
- // axios
- // .put(`/xxx/xxx?id=${row.id}&state=${row.state}`)
- // .then((res) => {
- // if (res.data.code == 200) {
- // ElMessage.success(res.data.msg);
- // changePage(1);
- // } else {
- // ElMessage.error(res.data.data);
- // row.state = row.state == 0 ? 1 : 0;
- // }
- // });
+const stateChange = async (row) => {
+ await nextTick();
+ const params = {
+ id: row.id,
+ is_enabled: row.is_enabled,
+ };
+ axios.put("/v1/api/metric_config", params).then((res) => {
+ if (res.data.code == 200) {
+ ElMessage.success(`状态更新成功`);
+ getTableRows();
+ } else {
+ row.is_enabled = row.is_enabled == 1 ? 2 : 1;
+ ElMessage.error(res.data.msg);
+ }
+ });
};
-onBeforeMount(() => {
- getTableRows();
-});
-const { headers, tableRows, tableTotal, filter, noticeTypes, stateOptions, delDialog } = toRefs(state);
+const { headers, tableRows, tableTotal, filter, noticeTypes, isEnabledOptions, delDialog } = toRefs(state);
diff --git a/src/page/main/forewarning/rule-set/detail/index.vue b/src/page/main/forewarning/rule-set/detail/index.vue
index 7f702da8eade14bfa437f977da45e7e57e76f378..75b69f5e7222f41913d3868df8f500aeb0c167f1 100644
--- a/src/page/main/forewarning/rule-set/detail/index.vue
+++ b/src/page/main/forewarning/rule-set/detail/index.vue
@@ -63,11 +63,11 @@ const labelData = [
],
[
{
- label: "预警对象",
+ label: "预警分类",
prop: "warning_target",
},
{
- label: "预警分类",
+ label: "预警对象",
prop: "warning_type",
},
],
diff --git a/src/page/main/forewarning/rule-set/index.vue b/src/page/main/forewarning/rule-set/index.vue
index 8a974028df5ef7a7b9909d9a43dac30b45e61d80..8f863f4c2d8f11b9623d3294faa0297a4f285e3e 100644
--- a/src/page/main/forewarning/rule-set/index.vue
+++ b/src/page/main/forewarning/rule-set/index.vue
@@ -169,11 +169,11 @@ const state = reactive({
width: 200,
},
{
- label: "预警对象",
+ label: "预警分类",
prop: "warning_object",
},
{
- label: "预警分类",
+ label: "预警对象",
prop: "warning_type_name",
},
{
diff --git a/src/page/main/forewarning/rule-set/modules/add-form.vue b/src/page/main/forewarning/rule-set/modules/add-form.vue
index b3f9d11eb884150a21635ee4f87a07061b6ecec0..7476be5115ae2c93866d720b49ed00a8d4c01cee 100644
--- a/src/page/main/forewarning/rule-set/modules/add-form.vue
+++ b/src/page/main/forewarning/rule-set/modules/add-form.vue
@@ -28,20 +28,39 @@
@@ -205,25 +224,37 @@ defineExpose({
}
}
.duration {
+ flex: 1;
display: flex;
align-items: center;
- gap: 8px;
- :deep(.el-form-item__content) {
- display: flex;
- align-items: center;
- gap: 8px;
- > .el-input {
+ :deep(.el-form-item) {
+ flex: 1;
+ .el-input {
+ margin-right: 8px;
flex: 1;
- width: 80px;
}
- }
- .no-el-label {
- :deep(.el-form-item__content) {
- .el-select {
- width: 80px;
- }
+ .el-input-group__prepend {
+ width: 102px;
+ border-radius: 4px;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ .el-input-group__append {
+ width: 80px;
+ border-radius: 4px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
}
}
+ // :deep(.el-form-item__content) {
+ // display: flex;
+ // align-items: center;
+ // gap: 8px;
+ // > .el-input {
+ // flex: 1;
+ // width: 80px;
+ // }
+ // }
}
:deep(.el-switch__inner) {
.is-hide {
@@ -235,6 +266,26 @@ defineExpose({
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
+ .duration-append {
+ display: flex;
+ align-items: center;
+ color: #404a62;
+ }
+ .cycle-unit {
+ width: 60px;
+ height: 36px;
+ background-color: #f7f7f9;
+ border-radius: 0px 4px 4px 0px;
+ border: solid 1px #dadee7;
+ text-align: center;
+ border-left: 0;
+ }
+ .cycle-select {
+ :deep(.el-input__wrapper) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
}
}
.no-el-label {
diff --git a/src/page/main/forewarning/rule-set/modules/custom.vue b/src/page/main/forewarning/rule-set/modules/custom.vue
index e2f34e515c3865bc48df7e60049565a3b53ffd76..c4b425dacb32acf2bb9e0ec6654e89cf68465595 100644
--- a/src/page/main/forewarning/rule-set/modules/custom.vue
+++ b/src/page/main/forewarning/rule-set/modules/custom.vue
@@ -5,7 +5,7 @@
+ placeholder="请选择风险程度">
{};
diff --git a/src/page/main/forewarning/rule-set/modules/gateway.vue b/src/page/main/forewarning/rule-set/modules/gateway.vue
index b510074fc4c6c0b465d2264ee352591b309f044b..2481e8b8b33a072051d0c38bb8cece470291daf7 100644
--- a/src/page/main/forewarning/rule-set/modules/gateway.vue
+++ b/src/page/main/forewarning/rule-set/modules/gateway.vue
@@ -21,8 +21,11 @@
style="flex: 1"
v-model.number="state.form.ruleRows[$index].from"
placeholder="请输入"
- @input="changeWarningThresholdFrom($index)">
- ms
+ @input="inputNum($index, 'from')"
+ @blur="changeWarningThresholdFrom($index)">
+ {{
+ ruleTypeOptions[props.rule_type].unit
+ }}
-
@@ -32,8 +35,11 @@
v-model.number="state.form.ruleRows[$index].to"
placeholder="请输入"
clearable
- @input="changeWarningThresholdTo($index)">
-
ms
+ @input="inputNum($index, 'to')"
+ @blur="changeWarningThresholdTo($index)">
+
{{
+ ruleTypeOptions[props.rule_type].unit
+ }}
@@ -77,13 +83,62 @@