You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

713 lines
28 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<!-- <el-form-item label="计量设备编号" prop="monitorCode">-->
<!-- <el-input v-model="queryParams.monitorCode" placeholder="请输入计量设备编号" clearable-->
<!-- @keyup.enter.native="handleQuery" />-->
<!-- </el-form-item>-->
<el-form-item label="计量设备名称" prop="monitorName">
<el-input v-model="queryParams.monitorName" placeholder="请输入计量设备名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="能源类型" prop="monitorType">
<el-select v-model="queryParams.monitorType" placeholder="请选择能源类型">
<el-option v-for="item in energyTypeList" :key="item.energyTypeId" :label="item.energyName"
:value="item.energyTypeId"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="计量设备位置" prop="monitorAddr">-->
<!-- <el-input v-model="queryParams.monitorAddr" placeholder="请输入计量设备位置" clearable-->
<!-- @keyup.enter.native="handleQuery" />-->
<!-- </el-form-item>-->
<el-form-item label="计量设备状态" prop="monitorStatus">
<el-select v-model="queryParams.monitorStatus" placeholder="请选择计量设备状态" clearable>
<el-option v-for="dict in dict.type.monitor_status" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<!-- <el-form-item label="采集设备编号" prop="collectDeviceId">-->
<!-- <el-input v-model="queryParams.collectDeviceId" placeholder="请输入采集设备编号" clearable-->
<!-- @keyup.enter.native="handleQuery" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否虚拟" prop="isAmmeter">-->
<!-- <el-select v-model="queryParams.isAmmeter" placeholder="请选择是否虚拟" clearable>-->
<!-- <el-option v-for="dict in dict.type.is_ammeter" :key="dict.value" :label="dict.label" :value="dict.value" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['ems/base:baseMonitorInfo:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-sort" size="mini" @click="toggleExpandAll">展开/折叠</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-if="refreshTable" v-loading="loading" :data="baseMonitorInfoList" row-key="objId"
:default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
<el-table-column label="父级编号" prop="parentId" v-if="columns[0].visible" />
<el-table-column label="计量设备编号" align="center" prop="monitorCode" v-if="columns[1].visible" />
<el-table-column label="计量设备名称" align="center" prop="monitorName" v-if="columns[2].visible" />
<!-- <el-table-column label="能源类型" align="center" prop="monitorType" v-if="columns[4].visible">
<template slot-scope="scope">
{{ dict.type.monitor_type.find(e=>e.value == scope.row.monitorType).label}}
</template>
</el-table-column> -->
<el-table-column label="能源类型" align="center" prop="energyName" v-if="columns[3].visible">
</el-table-column>
<el-table-column label="计量设备位置" align="center" prop="monitorAddr" v-if="columns[4].visible" />
<el-table-column label="计量设备状态" align="center" prop="monitorStatus" v-if="columns[5].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.monitor_status" :value="scope.row.monitorStatus" />
</template>
</el-table-column>
<el-table-column label="采集设备编号" align="center" prop="collectDeviceId" v-if="columns[6].visible" />
<el-table-column label="等级" align="center" prop="grade" v-if="columns[7].visible" />
<el-table-column label="传感器仪表" align="center" prop="meterTypeId" v-if="columns[8].visible" />
<el-table-column label="修正值" align="center" prop="correctValue" v-if="columns[9].visible" />
<el-table-column label="是否虚拟" align="center" prop="isAmmeter" v-if="columns[10].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.is_ammeter" :value="scope.row.isAmmeter" />
</template>
</el-table-column>
<el-table-column label="通断复位" align="center" prop="isKeyMonitor" v-if="columns[11].visible" />
<el-table-column label="是否断路" align="center" prop="isCircuit" v-if="columns[12].visible" />
<el-table-column label="创建人" align="center" prop="createBy" v-if="columns[13].visible" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180" v-if="columns[14].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="更新人" align="center" prop="updateBy" v-if="columns[15].visible" />
<el-table-column label="更新时间" align="center" prop="updateTime" width="180" v-if="columns[16].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="公摊表类型" align="center" prop="publicShareType" v-if="columns[17].visible" />
<el-table-column label="表具层级" align="center" prop="monitorHierarchy" v-if="columns[18].visible" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="240">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ems/base:baseMonitorInfo:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)"
v-hasPermi="['ems/base:baseMonitorInfo:add']">新增</el-button>
<el-button size="mini" type="text" icon="el-icon-setting" @click="handleThreshold(scope.row)"
v-hasPermi="['ems/record:recordAlarmRule:list']"
v-if="scope.row.isAmmeter !== '0'">阈值</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['ems/base:baseMonitorInfo:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 添加或修改计量设备信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="父级编号" prop="parentId">
<treeselect v-model="form.parentId" :options="baseMonitorInfoOptions" :normalizer="normalizer"
placeholder="请选择父级编号" />
</el-form-item>
<el-form-item label="计量设备编号" prop="monitorCode">
<el-input v-model="form.monitorCode" placeholder="请输入计量设备编号" />
</el-form-item>
<el-form-item label="计量设备名称" prop="monitorName">
<el-input v-model="form.monitorName" placeholder="请输入计量设备名称" />
</el-form-item>
<el-form-item label="能源类型" prop="monitorType">
<el-select v-model="form.monitorType" placeholder="请选择能源类型">
<el-option v-for="item in energyTypeList" :key="item.energyTypeId" :label="item.energyName"
:value="item.energyTypeId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="计量设备位置" prop="monitorAddr">
<el-input v-model="form.monitorAddr" placeholder="请输入计量设备位置" />
</el-form-item>
<el-form-item label="计量设备状态" prop="monitorStatus">
<el-radio-group v-model="form.monitorStatus">
<el-radio v-for="dict in dict.type.monitor_status" :key="dict.value"
:label="parseInt(dict.value)">{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="采集设备编号" prop="collectDeviceId">
<el-input v-model="form.collectDeviceId" placeholder="请输入采集设备编号" />
</el-form-item>
<!-- <el-form-item label="等级" prop="grade">-->
<!-- <el-input v-model="form.grade" placeholder="请输入等级" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="传感器仪表" prop="meterTypeId">-->
<!-- <el-input v-model="form.meterTypeId" placeholder="请输入传感器仪表" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="修正值" prop="correctValue">-->
<!-- <el-input v-model="form.correctValue" placeholder="请输入修正值" />-->
<!-- </el-form-item>-->
<el-form-item label="是否虚拟" prop="isAmmeter">
<el-radio-group v-model="form.isAmmeter">
<el-radio v-for="dict in dict.type.is_ammeter" :key="dict.value"
:label="dict.value">{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="通断复位" prop="isKeyMonitor">-->
<!-- <el-input v-model="form.isKeyMonitor" placeholder="请输入通断复位" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否断路" prop="isCircuit">-->
<!-- <el-input v-model="form.isCircuit" placeholder="请输入是否断路" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="公摊表类型" prop="publicShareType">-->
<!-- <el-input v-model="form.publicShareType" placeholder="请输入公摊表类型" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="表具层级" prop="monitorHierarchy">-->
<!-- <el-input v-model="form.monitorHierarchy" placeholder="请输入表具层级" />-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 阈值管理对话框 -->
<el-dialog :title="thresholdTitle" :visible.sync="thresholdOpen" width="1200px" append-to-body>
<div class="threshold-container">
<!-- 设备信息展示 -->
<el-card class="device-info-card" shadow="never">
<div slot="header" class="clearfix">
<span>设备信息</span>
</div>
<el-row :gutter="20">
<el-col :span="8">
<div class="info-item">
<span class="label">设备编号:</span>
<span class="value">{{ currentDevice.monitorCode }}</span>
</div>
</el-col>
<el-col :span="8">
<div class="info-item">
<span class="label">设备名称:</span>
<span class="value">{{ currentDevice.monitorName }}</span>
</div>
</el-col>
<el-col :span="8">
<div class="info-item">
<span class="label">能源类型</span>
<span class="value">{{ getMonitorTypeLabel(currentDevice.monitorType) }}</span>
</div>
</el-col>
</el-row>
</el-card>
<!-- 阈值规则管理 -->
<el-card class="threshold-rules-card" shadow="never">
<div slot="header" class="clearfix">
<span>阈值规则管理</span>
<el-button style="float: right; padding: 3px 0" type="text" @click="handleAddThreshold">
<i class="el-icon-plus"></i> 新增规则
</el-button>
</div>
<!-- 规则列表 -->
<el-table v-loading="thresholdLoading" :data="thresholdRuleList" size="small">
<el-table-column label="规则名称" align="center" prop="ruleName" />
<el-table-column label="触发规则" align="center" prop="triggerRule">
<template slot-scope="scope">
<dict-tag :options="dict.type.trigger_rule" :value="scope.row.triggerRule" />
</template>
</el-table-column>
<el-table-column label="监测字段" align="center" prop="monitorField" v-if="showMonitorField">
<template slot-scope="scope">
<dict-tag :options="dict.type.monitor_field" :value="scope.row.monitorField" />
</template>
</el-table-column>
<el-table-column label="触发阈值量" align="center" prop="triggerValue" />
<el-table-column label="备注" align="center" prop="cause" show-overflow-tooltip />
<el-table-column label="操作" align="center" width="120">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleEditThreshold(scope.row)">
修改
</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDeleteThreshold(scope.row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="thresholdOpen = false">关 闭</el-button>
</div>
</el-dialog>
<!-- 阈值规则编辑对话框 -->
<el-dialog :title="thresholdFormTitle" :visible.sync="thresholdFormOpen" width="500px" append-to-body>
<el-form ref="thresholdForm" :model="thresholdForm" :rules="thresholdRules" label-width="120px">
<el-form-item label="规则名称" prop="ruleName">
<el-input v-model="thresholdForm.ruleName" placeholder="请输入规则名称" />
</el-form-item>
<el-form-item label="触发规则" prop="triggerRule">
<el-radio-group v-model="thresholdForm.triggerRule">
<el-radio v-for="dict in dict.type.trigger_rule" :key="dict.value"
:label="parseInt(dict.value)">{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="监测字段" prop="monitorField" v-if="showMonitorFieldInForm">
<el-select v-model="thresholdForm.monitorField" placeholder="请选择监测字段">
<el-option v-for="dict in dict.type.monitor_field" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="触发阈值量" prop="triggerValue">
<el-input-number v-model="thresholdForm.triggerValue" placeholder="请输入触发阈值量" :precision="2" />
</el-form-item>
<el-form-item label="备注" prop="cause">
<el-input v-model="thresholdForm.cause" type="textarea" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitThresholdForm">确 定</el-button>
<el-button @click="thresholdFormOpen = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listBaseMonitorInfo, getBaseMonitorInfo, delBaseMonitorInfo, addBaseMonitorInfo, updateBaseMonitorInfo } from "@/api/ems/base/baseMonitorInfo";
import { listRecordAlarmRule, getRecordAlarmRule, delRecordAlarmRule, addRecordAlarmRule, updateRecordAlarmRule } from '@/api/ems/record/recordAlarmRule';
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { getBaseEnergyTypeList } from '@/api/ems/base/baseEnergyType'
export default {
name: "BaseMonitorInfo",
dicts: ['is_ammeter', 'monitor_status', 'monitor_type', 'trigger_rule', 'monitor_field'],
components: {
Treeselect
},
data() {
return {
// 遮罩层
loading: true,
// 显示搜索条件
showSearch: true,
// 计量设备信息表格数据
baseMonitorInfoList: [],
// 计量设备信息树选项
baseMonitorInfoOptions: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 是否展开,默认全部展开
isExpandAll: true,
// 重新渲染表格状态
refreshTable: true,
// 查询参数
queryParams: {
parentId: null,
monitorCode: null,
monitorName: null,
energyType: null,
monitorAddr: null,
monitorType: null,
monitorStatus: null,
collectDeviceId: null,
ancestors: null,
grade: null,
meterTypeId: null,
correctValue: null,
pt: null,
ct: null,
isAmmeter: null,
isKeyMonitor: null,
isCircuit: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
publicShareType: null,
monitorHierarchy: null
},
// 表单参数
form: {},
// 表单校验
rules: {
objId: [
{ required: true, message: "自增标识不能为空", trigger: "blur" }
],
monitorCode: [
{ required: true, message: "计量设备编号不能为空", trigger: "blur" }
],
monitorType: [
{ required: true, message: '能源类型不能为空', trigger: 'blur' }
],
monitorName: [
{ required: true, message: "计量设备名称不能为空", trigger: "blur" }
],
},
columns: [
// { key: 0, label: `自增标识`, visible: false },
{ key: 0, label: `父级编号`, visible: false },
{ key: 1, label: `计量设备编号`, visible: true },
{ key: 2, label: `计量设备名称`, visible: true },
{ key: 3, label: `能源类型`, visible: true },
{ key: 4, label: `计量设备位置`, visible: true },
// { key: 5, label: `计量设备类型`, visible: true },
{ key: 5, label: `计量设备状态`, visible: true },
{ key: 6, label: `采集设备编号`, visible: false },
{ key: 7, label: `等级`, visible: false },
{ key: 8, label: `传感器仪表`, visible: false },
{ key: 9, label: `修正值`, visible: false },
// { key: 12, label: `PT值`, visible: false },
// { key: 13, label: `CT值`, visible: false },
{ key: 10, label: `是否虚拟`, visible: true },
{ key: 11, label: `通断复位`, visible: false },
{ key: 12, label: `是否断路`, visible: false },
{ key: 13, label: `创建人`, visible: false },
{ key: 14, label: `创建时间`, visible: false },
{ key: 15, label: `更新人`, visible: false },
{ key: 16, label: `更新时间`, visible: false },
{ key: 17, label: `公摊表类型`, visible: false },
{ key: 18, label: `表具层级`, visible: false },
],
//能源类型选项
energyTypeList: [],
// 阈值管理相关数据
thresholdOpen: false,
thresholdTitle: "",
thresholdLoading: false,
thresholdRuleList: [],
currentDevice: {},
// 阈值规则表单相关
thresholdFormOpen: false,
thresholdFormTitle: "",
thresholdForm: {},
thresholdRules: {
ruleName: [
{ required: true, message: "规则名称不能为空", trigger: "blur" }
],
triggerRule: [
{ required: true, message: "触发规则不能为空", trigger: "change" }
],
triggerValue: [
{ required: true, message: "触发阈值量不能为空", trigger: "blur" }
]
},
};
},
computed: {
// 是否显示监测字段列(仅温湿度设备和振动设备显示)
showMonitorField() {
return this.currentDevice.monitorType === 6 || this.currentDevice.monitorType === 10;
},
// 表单中是否显示监测字段
showMonitorFieldInForm() {
return this.currentDevice.monitorType === 6 || this.currentDevice.monitorType === 10;
}
},
created() {
getBaseEnergyTypeList({}).then(response => {
this.energyTypeList = response.data
})
this.getList()
},
methods: {
/** 获取能源类型标签 - 增加容错处理 */
getMonitorTypeLabel(monitorType) {
if (!monitorType || !this.dict.type.monitor_type) {
return '未设置';
}
const typeItem = this.dict.type.monitor_type.find(e => e.value == monitorType);
return typeItem ? typeItem.label : '未知类型';
},
/** 查询计量设备信息列表 */
getList() {
this.loading = true;
listBaseMonitorInfo(this.queryParams).then(response => {
this.baseMonitorInfoList = this.handleTree(response.data, "objId", "parentId");
this.loading = false;
});
},
/** 转换计量设备信息数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.objId,
label: node.monitorName,
children: node.children
};
},
/** 查询计量设备信息下拉树结构 */
getTreeselect() {
listBaseMonitorInfo().then(response => {
this.baseMonitorInfoOptions = [];
const data = { objId: 0, monitorName: '顶级节点', children: [] };
data.children = this.handleTree(response.data, "objId", "parentId");
this.baseMonitorInfoOptions.push(data);
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
objId: null,
parentId: null,
monitorCode: null,
monitorName: null,
energyType: null,
monitorAddr: null,
monitorType: null,
monitorStatus: null,
collectDeviceId: null,
ancestors: null,
grade: null,
meterTypeId: null,
correctValue: null,
pt: null,
ct: null,
isAmmeter: null,
isKeyMonitor: null,
isCircuit: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
publicShareType: null,
monitorHierarchy: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd(row) {
this.reset();
this.getTreeselect();
if (row != null && row.objId) {
this.form.parentId = row.objId;
} else {
this.form.parentId = 0;
}
this.open = true;
this.title = "添加计量设备信息";
},
/** 展开/折叠操作 */
toggleExpandAll() {
this.refreshTable = false;
this.isExpandAll = !this.isExpandAll;
this.$nextTick(() => {
this.refreshTable = true;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.getTreeselect();
if (row != null) {
this.form.parentId = row.parentId;
}
getBaseMonitorInfo(row.objId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改计量设备信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.objId != null) {
updateBaseMonitorInfo(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
// this.form.monitorType = 4;
addBaseMonitorInfo(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
this.$modal.confirm('是否确认删除计量设备信息编号为"' + row.objId + '"的数据项?').then(function () {
return delBaseMonitorInfo(row.objId);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 阈值管理按钮操作 */
handleThreshold(row) {
this.currentDevice = { ...row };
this.thresholdTitle = `设备阈值管理 - ${row.monitorName}`;
this.thresholdOpen = true;
this.getThresholdRuleList();
},
/** 获取设备的阈值规则列表 */
getThresholdRuleList() {
this.thresholdLoading = true;
const queryParams = {
monitorId: this.currentDevice.monitorCode,
pageNum: 1,
pageSize: 1000
};
listRecordAlarmRule(queryParams).then(response => {
this.thresholdRuleList = response.rows || [];
this.thresholdLoading = false;
}).catch(() => {
this.thresholdLoading = false;
});
},
/** 新增阈值规则 */
handleAddThreshold() {
this.resetThresholdForm();
this.thresholdForm.monitorId = this.currentDevice.monitorCode;
this.thresholdFormTitle = "新增阈值规则";
this.thresholdFormOpen = true;
},
/** 编辑阈值规则 */
handleEditThreshold(row) {
this.resetThresholdForm();
getRecordAlarmRule(row.objId).then(response => {
this.thresholdForm = { ...response.data };
this.thresholdFormTitle = "修改阈值规则";
this.thresholdFormOpen = true;
});
},
/** 删除阈值规则 */
handleDeleteThreshold(row) {
this.$modal.confirm(`是否确认删除规则"${row.ruleName}"`).then(() => {
return delRecordAlarmRule(row.objId);
}).then(() => {
this.getThresholdRuleList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 提交阈值规则表单 */
submitThresholdForm() {
this.$refs["thresholdForm"].validate(valid => {
if (valid) {
// 确保设备编号正确设置
this.thresholdForm.monitorId = this.currentDevice.monitorCode;
if (this.thresholdForm.objId != null) {
updateRecordAlarmRule(this.thresholdForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.thresholdFormOpen = false;
this.getThresholdRuleList();
});
} else {
addRecordAlarmRule(this.thresholdForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.thresholdFormOpen = false;
this.getThresholdRuleList();
});
}
}
});
},
/** 重置阈值规则表单 */
resetThresholdForm() {
this.thresholdForm = {
objId: null,
ruleId: null,
ruleName: null,
monitorId: null,
collectTime: null,
energyType: null,
triggerRule: null,
monitorField: null,
timeRange: null,
triggerValue: null,
notifyUser: null,
cause: null
};
this.$nextTick(() => {
if (this.$refs.thresholdForm) {
this.$refs.thresholdForm.clearValidate();
}
});
},
}
};
</script>
<style scoped>
.threshold-container {
padding: 0;
}
.device-info-card {
margin-bottom: 20px;
}
.device-info-card .el-card__body {
padding: 15px;
}
.threshold-rules-card .el-card__body {
padding: 15px;
}
.info-item {
margin-bottom: 10px;
}
.info-item .label {
font-weight: bold;
color: #606266;
}
.info-item .value {
color: #303133;
margin-left: 5px;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
}
.clearfix:after {
clear: both;
}
</style>