feat():修复预警信息

dev.saas
ruyaxie 2024-09-23 23:17:04 +08:00
parent c3899c4f3c
commit 3d4a8ea200
6 changed files with 147 additions and 35 deletions

View File

@ -42,4 +42,12 @@ export function delCar(id) {
method: 'delete'
})
}
// 查询所有车辆类型
export function getSysType() {
return request({
url: '/car/sysType/list' ,
method: 'get'
})
}

View File

@ -34,3 +34,11 @@ export function addValue(data) {
data: data
})
}
// 根据报文模版类型Id查询数据
export function findByTemplateValue(id) {
return request({
url: 'car/messageValue/templateId/'+id,
method: 'POST'
})
}

View File

@ -1,5 +1,13 @@
import request from '@/utils/request'
// //根据车辆类型
// export function findBySysTypeId(id) {
// return request({
// url: 'car/sysType/findBySysTypeId/' + id,
// method: "POST"
// })
// }
// 查询预警策略列表
export function listStrategy(query) {
return request({
@ -41,4 +49,12 @@ export function delStrategy(id) {
url: '/warn/strategy/' + id,
method: 'delete'
})
}

View File

@ -169,11 +169,7 @@
<el-form-item label="车辆类型id" prop="carTypeId">
<el-input v-model="formList.carTypeId" placeholder="请输入车辆类型id" />
</el-form-item>
<el-form-item label="策略名称" prop="strategyName">
<el-input v-model="formList.strategyName" placeholder="请输入策略名称" />
</el-form-item>
<el-form-item label="报文模版id" prop="msgId">
<!-- <el-input v-model="formList.msgId" placeholder="请输入报文模版id" />-->
<el-select v-model="formList.msgId" placeholder="请选择报文模版id">
<el-option
v-for="item in templateList"
@ -183,6 +179,9 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="策略名称" prop="strategyName">
<el-input v-model="formList.strategyName" placeholder="请输入策略名称" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitAddForm"> </el-button>

View File

@ -9,7 +9,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="策略id" prop="strategyId">
<el-form-item label="策略名称" prop="strategyId">
<el-input
v-model="queryParams.strategyId"
placeholder="请输入策略id"
@ -17,14 +17,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="报文数据类型id" prop="msgTypeId">
<el-input
v-model="queryParams.msgTypeId"
placeholder="请输入报文数据类型id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="滑窗时间" prop="slideTime">
<el-input
v-model="queryParams.slideTime"
@ -150,27 +142,47 @@
<!-- 添加或修改预警规则对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="策略名称" prop="strategyId">
<el-select v-model="form.strategyId" placeholder="请选择策略模版id" @change="getFindByTemplateValue">
<el-option
v-for="item in strategyList"
:key="item.id"
:label="item.strategyName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="规则名称" prop="ruleName">
<el-input v-model="form.ruleName" placeholder="请输入规则名称" />
</el-form-item>
<el-form-item label="策略id" prop="strategyId">
<el-input v-model="form.strategyId" placeholder="请输入策略id" />
</el-form-item>
<el-form-item label="报文数据类型id" prop="msgTypeId">
<el-input v-model="form.msgTypeId" placeholder="请输入报文数据类型id" />
<el-select v-model="form.messageId" placeholder="请选择报文数据名称">
<el-option
ref="multipleTable"
tooltip-effect="dark"
v-for="item in templateValueList"
:key="item.messageId"
:label="item.messageCode"
:value="item.messageId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="滑窗时间" prop="slideTime">
<el-input v-model="form.slideTime" placeholder="请输入滑窗时间" />
<el-slider v-model="form.slideTime" :min="1" :max="1000"></el-slider>
<el-input-number v-model="form.slideTime" :min="1" :max="1000"></el-input-number>
</el-form-item>
<el-form-item label="滑窗频率" prop="slideFrequency">
<el-input v-model="form.slideFrequency" placeholder="请输入滑窗频率" />
</el-form-item>
<el-form-item label="最大值" prop="maxValue">
<el-input v-model="form.maxValue" placeholder="请输入最大值" />
</el-form-item>
<el-form-item label="最小值" prop="minValue">
<el-input v-model="form.minValue" placeholder="请输入最小值" />
<el-select v-model="form.slideFrequency" placeholder="请选择滑窗频率">
<el-option value="1:2">1:2</el-option>
<el-option value="1:5">1:5</el-option>
<el-option value="1:10">1:10</el-option>
<el-option value="1:20">1:20</el-option>
<el-option value="1:30">1:30</el-option>
<el-option value="1:60">1:60</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -182,6 +194,8 @@
<script>
import { listRule, getRule, delRule, addRule, updateRule } from "/src/api/platform/rule";
import { listStrategy} from "@/api/platform/strategy";
import {valueList} from "@/api/car/message/template";
export default {
name: "Rule",
@ -201,6 +215,21 @@ export default {
total: 0,
//
ruleList: [],
//
sysTypeList :[],
//
templateValueList:[],
//
templateList :[],
//Id
templateId : null,
//Id
sysTypeId: null,
//
strategyList : [],
//
strategy: {},
//
title: "",
//
@ -277,7 +306,22 @@ export default {
this.reset();
this.open = true;
this.title = "添加预警规则";
this.findInformation();
},
findInformation(){
/** 策略信息 **/
listStrategy().then(res=>{
this.strategyList = res.data.rows;
})
},
getFindByTemplateValue(val){
const { msgId } = this.strategyList.find(strategy => strategy.id === val)
valueList({messageTemplateId:msgId}).then(res=>{
this.templateValueList = res.data
})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
@ -287,6 +331,7 @@ export default {
this.open = true;
this.title = "修改预警规则";
});
this.findInformation();
},
/** 提交按钮 */
submitForm() {

View File

@ -80,7 +80,7 @@
<el-table v-loading="loading" :data="strategyList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="策略id" align="center" prop="id" />
<el-table-column label="车辆类型id" align="center" prop="carTypeId" />
<el-table-column label="车辆类型id" align="center" prop="sysTypeId" />
<el-table-column label="策略名称" align="center" prop="strategyName" />
<el-table-column label="报文模版id" align="center" prop="msgId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -114,15 +114,29 @@
<!-- 添加或修改预警策略对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="车辆类型id" prop="carTypeId">
<el-input v-model="form.carTypeId" placeholder="请输入车辆类型id" />
<el-form-item label="车辆类型id" prop="sysTypeId">
<el-select v-model="form.sysTypeId" placeholder="请选择报文模版id" @change="leaveSysType(form.sysTypeId)">
<el-option
v-for="item in sysTypeList"
:key="item.sysTypeId"
:label="item.sysTypeName"
:value="item.sysTypeId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="报文模版id" prop="msgId">
<el-select v-model="form.msgId" placeholder="请选择报文模版id">
<el-option
v-for="item in templateList"
:key="item.messageTemplateId"
:label="item.messageTemplateName"
:value="item.messageTemplateId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="策略名称" prop="strategyName">
<el-input v-model="form.strategyName" placeholder="请输入策略名称" />
</el-form-item>
<el-form-item label="报文模版id" prop="msgId">
<el-input v-model="form.msgId" placeholder="请输入报文模版id" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -134,6 +148,8 @@
<script>
import { listStrategy, getStrategy, delStrategy, addStrategy, updateStrategy } from "/src/api/platform/strategy";
import {getSysType} from "@/api/car/car";
import {templateList} from "@/api/car/message/template";
export default {
name: "Strategy",
@ -161,21 +177,28 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
carTypeId: null,
sysTypeId: null,
strategyName: null,
msgId: null
},
//
form: {},
//
rules: {
}
rules: {},
//
templateList :[],
//
sysTypeList : []
};
},
created() {
this.getList();
},
methods: {
/** 根据选中的车辆类型选择报文信息 **/
leaveSysType(sysTypeId){
this.templateList.messageTemplateId =sysTypeId;
},
/** 查询预警策略列表 */
getList() {
this.loading = true;
@ -194,7 +217,7 @@ export default {
reset() {
this.form = {
id: null,
carTypeId: null,
sysTypeId: null,
strategyName: null,
msgId: null
};
@ -221,6 +244,18 @@ export default {
this.reset();
this.open = true;
this.title = "添加预警策略";
this.findInformation();
},
findInformation(){
/** 获取车辆类型 **/
getSysType().then(res=>{
this.sysTypeList = res.data.rows;
});
/** 获取报文类型模版 **/
templateList().then(res=>{
this.templateList = res.data;
})
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -231,6 +266,7 @@ export default {
this.open = true;
this.title = "修改预警策略";
});
this.findInformation();
},
/** 提交按钮 */
submitForm() {