|
@@ -2,7 +2,8 @@
|
|
|
<div class="app-container">
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="18">
|
|
|
- <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="0" @submit.native.prevent>
|
|
|
+ <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="0"
|
|
|
+ @submit.native.prevent>
|
|
|
<el-form-item label="" prop="metricsName" style="margin-right:10px">
|
|
|
<el-input
|
|
|
v-model="queryParams.metricsName"
|
|
@@ -11,11 +12,21 @@
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="" prop="metricsClass" style="margin-right:10px">
|
|
|
- <el-select v-model="queryParams.metricsClass" placeholder="请选择指标分类">
|
|
|
+ <el-form-item label="" prop="metricsTypes" style="margin-right:10px">
|
|
|
+ <el-select v-model="queryParams.category" clearable placeholder="请选择指标分类">
|
|
|
<el-option :label="item.typeName" :value="item.typeId" v-for="item in typeListData" :key="item.typeId"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="" prop="metricsType" style="margin-right:10px">
|
|
|
+ <el-select v-model="queryParams.metricsType" clearable placeholder="请选择指标类型">
|
|
|
+ <el-option
|
|
|
+ v-for="dict in metrics_category"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
|
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
|
@@ -35,20 +46,27 @@
|
|
|
</el-row>
|
|
|
<el-table v-loading="loading" :data="defList" border>
|
|
|
<el-table-column label="指标ID" align="center" prop="metricsId" width="80"/>
|
|
|
+ <el-table-column label="指标名称" align="left" prop="metricsName" width="260"/>
|
|
|
+ <el-table-column label="指标分类" align="left" width="200">
|
|
|
+ <template #default="scope">
|
|
|
+ <span v-for="(item,i) in scope.row.metricsTypes" :key="`${scope.$index}_${item}`">
|
|
|
+ {{ item.typeName }}<span v-if="i!==scope.row.metricsTypes.length-1">、</span>
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="指标类型" align="left" prop="metricsType" width="150">
|
|
|
<template #default="scope">
|
|
|
<dict-tag :options="metrics_category" :value="scope.row.metricsType"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="指标名称" align="left" prop="metricsName" width="260"/>
|
|
|
- <el-table-column label="指标编码" align="left" prop="metricsCode" width="200"/>
|
|
|
+ <el-table-column label="指标编码" align="left" prop="metricsCode" width="200"/>
|
|
|
<el-table-column label="指标获取公式" align="left" prop="metricsExp"/>
|
|
|
<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
|
|
|
<template #default="scope">
|
|
|
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{mi}:{s}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="备注" align="left" prop="remark" width="200"/>
|
|
|
+ <el-table-column label="备注" align="left" prop="remark" width="200"/>
|
|
|
<el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="200">
|
|
|
<template #default="scope">
|
|
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['metrics:def:edit']">
|
|
@@ -88,16 +106,26 @@
|
|
|
<el-form-item label="指标编码" prop="metricsCode">
|
|
|
<el-input v-model="form.metricsCode" placeholder="请输入指标编码"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="指标分类" prop="metricsClass">
|
|
|
- <el-radio-group v-model="form.metricsClass" >
|
|
|
- <el-radio-button :label="item.typeName" :value="item.typeId" v-for="item in typeListData" :key="item.typeId"/>
|
|
|
- </el-radio-group>
|
|
|
+ <el-form-item label="指标分类" prop="metricsTypes">
|
|
|
+ <el-checkbox-group v-model="form.metricsTypes">
|
|
|
+ <el-checkbox :label="item.typeName" v-for="item in typeListData" :key="item.typeId"/>
|
|
|
+ </el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="指标获取公式" prop="metricsExp">
|
|
|
<el-input v-model="form.metricsExp" type="textarea" placeholder="请输入内容"/>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="告警-低" prop="alarmLow">
|
|
|
+ <el-input v-model="form.alarmLow" placeholder="请输入告警-低数值"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="告警-中" prop="alarmMid">
|
|
|
+ <el-input v-model="form.alarmMid" placeholder="请输入告警-中数值"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="告警-高" prop="alarmHigh">
|
|
|
+ <el-input v-model="form.alarmHigh" placeholder="请输入告警-高数值"/>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
- <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" show-word-limit maxlength="300" :autosize="{minRows: 4, maxRows: 6}" />
|
|
|
+ <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" show-word-limit maxlength="300"
|
|
|
+ :autosize="{minRows: 4, maxRows: 6}"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
@@ -112,7 +140,7 @@
|
|
|
|
|
|
<script setup name="Def">
|
|
|
import {addDef, delDef, getDef, listDef, updateDef} from "@/api/metrics/def";
|
|
|
-import { listType } from "@/api/metrics/type";
|
|
|
+import {listType} from "@/api/metrics/type";
|
|
|
import {onMounted} from "vue";
|
|
|
|
|
|
const {proxy} = getCurrentInstance();
|
|
@@ -145,7 +173,7 @@ const data = reactive({
|
|
|
updateBy: null,
|
|
|
updateTime: null,
|
|
|
remark: null,
|
|
|
- metricsClass:null,
|
|
|
+ category: null,
|
|
|
},
|
|
|
rules: {
|
|
|
metricsName: [
|
|
@@ -160,7 +188,7 @@ const data = reactive({
|
|
|
metricsType: [
|
|
|
{required: true, message: "指标类型不能为空", trigger: "change"}
|
|
|
],
|
|
|
- metricsClass:[
|
|
|
+ metricsTypes: [
|
|
|
{required: true, message: "指标分类不能为空", trigger: "change"}
|
|
|
]
|
|
|
}
|
|
@@ -168,6 +196,7 @@ const data = reactive({
|
|
|
|
|
|
const {queryParams, form, rules} = toRefs(data);
|
|
|
|
|
|
+
|
|
|
/** 查询指标定义列表 */
|
|
|
function getList() {
|
|
|
loading.value = true;
|
|
@@ -193,10 +222,10 @@ function cancel() {
|
|
|
reset();
|
|
|
}
|
|
|
|
|
|
-onMounted(()=>{
|
|
|
- listType({pageNum: 1,pageSize: 20}).then(res => {
|
|
|
- typeListData.value = res.rows;
|
|
|
- });
|
|
|
+onMounted(() => {
|
|
|
+ listType({pageNum: 1, pageSize: 20}).then(res => {
|
|
|
+ typeListData.value = res.rows;
|
|
|
+ });
|
|
|
})
|
|
|
|
|
|
// 表单重置
|
|
@@ -211,7 +240,11 @@ function reset() {
|
|
|
createTime: null,
|
|
|
updateBy: null,
|
|
|
updateTime: null,
|
|
|
- remark: null
|
|
|
+ remark: null,
|
|
|
+ alarmHigh: null,
|
|
|
+ alarmLow: null,
|
|
|
+ alarmMid: null,
|
|
|
+ metricsTypes: []
|
|
|
};
|
|
|
proxy.resetForm("defRef");
|
|
|
}
|
|
@@ -244,6 +277,7 @@ function handleUpdate(row) {
|
|
|
const _metricsId = row.metricsId || ids.value
|
|
|
getDef(_metricsId).then(response => {
|
|
|
form.value = response.data;
|
|
|
+ form.value.metricsTypes = form.value.metricsTypes.map(p => p.typeName)
|
|
|
open.value = true;
|
|
|
title.value = "修改指标定义";
|
|
|
});
|
|
@@ -253,14 +287,23 @@ function handleUpdate(row) {
|
|
|
function submitForm() {
|
|
|
proxy.$refs["defRef"].validate(valid => {
|
|
|
if (valid) {
|
|
|
+ const pDate = {...form.value}
|
|
|
+ let metricsTypesIds = []
|
|
|
+ typeListData.value.forEach(item => {
|
|
|
+ if (pDate.metricsTypes.includes(item.typeName)) {
|
|
|
+ metricsTypesIds.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ pDate.metricsTypes = metricsTypesIds
|
|
|
+
|
|
|
if (form.value.metricsId != null) {
|
|
|
- updateDef(form.value).then(response => {
|
|
|
+ updateDef(pDate).then(response => {
|
|
|
proxy.$modal.msgSuccess("修改成功");
|
|
|
open.value = false;
|
|
|
getList();
|
|
|
});
|
|
|
} else {
|
|
|
- addDef(form.value).then(response => {
|
|
|
+ addDef(pDate).then(response => {
|
|
|
proxy.$modal.msgSuccess("新增成功");
|
|
|
open.value = false;
|
|
|
getList();
|