需求:点击一个按钮,弹出一个模态框,这个模态框有两个tab,tab中是各种报警条件,这些报警条件是从数据库中动态取出的,数据库中数据变更后,这个界面也要变更,我们可以查看和编辑这些报警条件。底部“确定”按钮点击的时候,会同时将这两个tab中的内容都保存到数据库中去,数据录入要验证输入的格式。
对于熟练的人来说,实现其实很简单,但是对于没有经验的人来说,如果按照官网给的那些简单实例来做,你会发现,出现一些奇怪的问题,诸如,文本框不能编辑内容,表单验证无效等。感觉elementUI官网的示例太过于粗浅,无法适应实际工作中的许多需求场景。
界面效果如下图所示:
分析:用到的组件:el-dialog、el-tabs
AlarmSet.vue代码:
<template> <div> <div class="alarm-set" v-loading="winLoading"> <el-tabs v-model="activeName" type="border-card" v-if="alarmTmplData.length>0"> <el-tab-pane label="制冷站" name="coldSet"> <ColdSet ref="coldSet" :alarmTmplData="alarmTmplData" @onSubmit="coldSetSummit" :showAlarmSetWin.sync="showAlarmSetWin" ></ColdSet> </el-tab-pane> <el-tab-pane label="末端" name="endSet"> <EndSet ref="endSet" :alarmTmplData="alarmTmplData" @onSubmit="endSetSummit" :showAlarmSetWin.sync="showAlarmSetWin" ></EndSet> </el-tab-pane> </el-tabs> </div> <div slot="footer" class="dialog-footer"> <div style="display: inline-block"> <el-button type="primary" @click="onSubmit" :loading="btnLoading">确 定</el-button> <el-button @click="isHide">取 消</el-button> </div> </div> </div> </template> <script> import ColdSet from "./ColdSet"; import EndSet from "./EndSet"; import mixinsOption from "@/mixins/mixin-options"; import { alarmService } from "@/services/cold-station-service"; // import { alarmConditionData } from "@/mock/json.js"; export default { mixins: [mixinsOption], props: { showAlarmSetWin: { type: Boolean, default: false }, alarmTmpl: { type: Object, default: {} } }, components: { ColdSet, EndSet }, data() { return { alarmConditionData: [], //报警条件数据 activeName: "coldSet", alarmTmplData: [], coldConditionData: [], //冷站报警条件数据 endConditionData: [], //末端报警条件数据 isColdValid: false, isEndValid: false, btnLoading: false }; }, watch: { showAlarmSetWin: { handler(val) { console.log("showAlarmSetWin", val); if (val) { this.initData(); } }, immediate: true } }, methods: { //初始化数据 initData() { this.$store.commit("base/setWinLoading", true); console.log("initData"); alarmService .getConditionList({ groupNumber: this.groupNumber, projectNumber: this.projectNumber }) .then(res => { if (res.code === 200) { this.alarmConditionData = res.data; this.createAlarmTmplData(res.data); } this.$store.commit("base/setWinLoading", false); }); }, //构造报警模板数据 createAlarmTmplData(conditionData) { let res = []; this.alarmTmplData = this.alarmTmpl.data; if (this.alarmTmpl) { this.alarmTmplData.forEach(n => { // debugger; n.descr = eval(n.descr); let item = conditionData.find(m => m.tempId == n.id); if (item) { n["alarmLevel"] = item.alarmLevel; n["suggestion"] = item.suggestion; n["firstVal"] = item.firstVal; n["secondVal"] = item.secondVal; n["fourthVal"] = item.fourthVal; n["thirdVal"] = item.thirdVal; n["status"] = item.status; } }); } // console.log("this.alarmTmplData :>> ", this.alarmTmplData); }, //确定操作 onSubmit() { this.$refs["coldSet"].onSubmit(); this.$refs["endSet"].onSubmit(); if (this.isColdValid && this.isEndValid) { this.btnLoading = true; let list = this.coldConditionData .concat(this.endConditionData) .map(m => { return { tempId: m.id, alarmLevel: m.alarmLevel, firstVal: m.firstVal, secondVal: m.secondVal, thirdVal: m.thirdVal, fourthVal: m.fourthVal, status: m.status, suggestion: m.suggestion }; }); alarmService .batchEdit({ projectNumber: this.projectNumber, groupNumber: this.groupNumber, list: list }) .then(res => { if (res.code === 200) { this.$message({ message: "操作成功!", type: "success", duration: this.$baseConfig.messageDuration }); } this.btnLoading = false; }) .catch(() => { this.btnLoading = false; }); } }, coldSetSummit(val, isValid) { if (isValid) { this.isColdValid = isValid; this.coldConditionData = val; } }, endSetSummit(val, isValid) { if (isValid) { this.isEndValid = isValid; this.endConditionData = val; } }, //取消 isHide() { this.$emit("update:showAlarmSetWin", false); } } }; </script> <style lang="scss" scoped> .alarm-set { height: 600px; /deep/ .el-tabs--border-card { height: 100%; } /deep/ .el-tabs__content { height: calc(100% - 60px); } } </style>
重写elementUI组件样式,可以使用/deep/ 进行样式穿透覆写。
关于表单验证:由于是动态生成的表单,所以不能按照官网提供的示例来做。
el-form中不指定验证规则,而是在el-form-item中指定,如下:
:prop="`list.${rowIndex}.${fieldArr[2*index+index+1]}`" :rules="rules.numberRule"
表单数据ruleForm中要对数据进行初始化,否则会无法自动识别数据变化,建议采用深拷贝的形式
考虑到冷站和末端这两个组件中的代码可以复用,抽取公共js文件set-mixin.js,然后通过mixins引入,这个类似于组合,还有一种继承是通过extends来实现。
分析界面虽然是动态的,但是总共只有几种类型,分别是:1个文本框,2个文本框,没有文本框。他们都带有建议信息这一行,所以可以用几个v-if来区分。
import { alarmLevelOptions, fieldArr } from '@/enum/alarm-enum.js'; import Regexps from '@/utils/regexp.js'; import mixinsOption from '@/mixins/mixin-options'; export default { props: { alarmTmplData: { type: Array, default: () => { return []; }, }, showAlarmSetWin: { type: Boolean, default: false, }, }, mixins: [mixinsOption], data() { return { levelOptions: alarmLevelOptions(), ruleForm: { list: [], }, rules: { numberRule: [ { pattern: Regexps.commonNumber, message: '仅支持3位数和带1位小数', trigger: 'blur', }, ], suggestion: [ { max: 10, message: '长度不能超过10个字符', trigger: 'blur' }, ], }, fieldArr, tmplData: [], }; }, computed: { activeNames() { let activeNames = this.tmplData .filter((f) => f.descParamType != 0) .map((n) => { return n.id; }); console.log('activeNames :>> ', activeNames); return activeNames; }, }, methods: { initData(type) { console.log('initData', type); if (this.alarmTmplData.length > 0) { this.tmplData = this.alarmTmplData.filter((n) => n.sys == type); this.ruleForm.list = JSON.parse(JSON.stringify(this.tmplData)); // console.log('条件设置initData :>> ', this.ruleForm.list); } }, }, };
ColdSet.vue代码:
<template> <div> <el-form :model="ruleForm" ref="ruleForm"> <el-collapse v-model="activeNames"> <el-collapse-item :name="item.id" v-for="(item,rowIndex) in ruleForm.list" :key="item.id"> <template slot="title"> <div class="header"> <el-checkbox v-model="item.status" :true-label="0" :false-label="1">{{item.name}}</el-checkbox> <el-select v-model="item.alarmLevel" size="small"> <el-option v-for="item in levelOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </div> </template> <div class="content vertical"> <div class="row one" v-if="item.descParamType==1"> <div class="item" v-for="(subItem,index) in item.descr" :key="index"> <label>{{subItem}}</label> <el-form-item label="大于" :prop="`list.${rowIndex}.${fieldArr[index]}`" :rules="rules.numberRule" > <el-input v-model="item[`${fieldArr[index]}`]" size="small"></el-input> </el-form-item> </div> </div> <template v-if="item.descParamType==2"> <div class="row two" v-for="(subItem,index) in item.descr" :key="index"> <div class="item"> <label>{{subItem}}</label> <el-form-item label="大于" :prop="`list.${rowIndex}.${fieldArr[2*index+index]}`" :rules="rules.numberRule" > <el-input v-model="item[`${fieldArr[2*index+index]}`]" size="small" ></el-input> </el-form-item> <el-form-item label="或小于" :prop="`list.${rowIndex}.${fieldArr[2*index+index+1]}`" :rules="rules.numberRule" > <el-input v-model="item[`${fieldArr[2*index+index+1]}`]" size="small" ></el-input> </el-form-item> </div> </div> </template> <div class="row one"> <el-form-item label="建议信息" :prop="`list.${rowIndex}.suggestion`" :rules="rules.suggestion" > <el-input v-model="item.suggestion" class="max-width" size="small" placeholder="请尽快处理" ></el-input> </el-form-item> </div> </div> </el-collapse-item> </el-collapse> </el-form> </div> </template> <script> import { alarmLevelOptions, fieldArr } from "@/enum/alarm-enum.js"; import Regexps from "@/utils/regexp.js"; import { validateVal } from "@/utils/validate-utils.js"; import { alarmService } from "@/services/cold-station-service"; import setMixin from "./set-mixin"; export default { mixins: [setMixin], watch: { showAlarmSetWin: { handler(val) { console.log("showAlarmSetWin cold :>> ", val); if (val) { this.initData(1); }
}, immediate: true } }, methods: { onSubmit() { console.log("冷站确定 :>> "); this.$refs["ruleForm"].validate(valid => { if (valid) { console.log("验证成功"); this.$emit("onSubmit", this.ruleForm.list, true); } }); } } }; </script> <style lang="scss" scoped> @import "./set.scss"; </style>
EndSet.vue:
<template> <div> <el-form :model="ruleForm" ref="ruleForm"> <el-collapse v-model="activeNames"> <el-collapse-item :name="item.id" v-for="(item,rowIndex) in ruleForm.list" :key="item.id"> <template slot="title"> <div class="header"> <el-checkbox v-model="item.status" :true-label="0" :false-label="1">{{item.name}}</el-checkbox> <el-select v-model="item.alarmLevel" size="small"> <el-option v-for="item in levelOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </div> </template> <div class="content vertical"> <div class="row two" v-if="item.descParamType==1"> <div class="item" v-for="(subItem,index) in item.descr" :key="index"> <label>{{subItem}}</label> <el-form-item label="大于" :prop="`list.${rowIndex}.${fieldArr[index]}`" :rules="rules.numberRule" v-if="index==0" > <el-input v-model="item[fieldArr[index]]" size="small"></el-input> </el-form-item> </div> </div> <div class="row two" v-if="item.descParamType==2"> <div class="item" v-for="(subItem,index) in item.descr" :key="index"> <label>{{subItem}}</label> <el-form-item label="大于" :prop="`list.${rowIndex}.${fieldArr[2*index+index]}`" :rules="rules.numberRule" > <el-input v-model="item[fieldArr[2*index+index]]" size="small"></el-input> </el-form-item> <el-form-item label="或小于" :prop="`list.${rowIndex}.${fieldArr[2*index+index+1]}`" :rules="rules.numberRule" > <el-input v-model="item[fieldArr[2*index+index+1]]" size="small"></el-input> </el-form-item> </div> </div> <div class="row two" v-if="item.descParamType==3"> <div class="item"> <el-form-item :label="subItem" :prop="`list.${rowIndex}.${fieldArr[index]}`" :rules="rules.numberRule" v-for="(subItem,index) in item.descr" :key="index" > <el-input v-model="item[fieldArr[index]]" size="small"></el-input> </el-form-item> </div> </div> <template v-if="item.descParamType==4"> <div class="row one" v-for="(subItem,index) in item.descr" :key="index"> <div class="item">{{subItem}}</div> <div class="item"> <el-form-item :label="index==0?'小于':'大于'" :prop="`list.${rowIndex}.${fieldArr[index]}`" :rules="rules.numberRule" > <el-input v-model="item[fieldArr[index]]" size="small"></el-input> </el-form-item> </div> </div> </template> <!-- <div class="row multi-row" v-if="item.descParamType==4"> multi-item </div>--> <div class="row one"> <el-form-item label="建议信息" :prop="`list.${rowIndex}.suggestion`" :rules="rules.suggestion" > <el-input v-model="item.suggestion" class="max-width" size="small" placeholder="请尽快处理" ></el-input> </el-form-item> </div> </div> </el-collapse-item> </el-collapse> </el-form> </div> </template> <script> import setMixin from "./set-mixin"; import { alarmService } from "@/services/cold-station-service"; export default { mixins: [setMixin], watch: { showAlarmSetWin: { handler(val) { console.log("showAlarmSetWin end:>> ", val); if (val) { this.initData(2); }
}, immediate: true } }, methods: { onSubmit() { console.log("末端确定 :>> "); this.$refs["ruleForm"].validate(valid => { if (valid) { console.log("验证成功"); this.$emit("onSubmit", this.ruleForm.list, true); } }); } } }; </script> <style lang="scss" scoped> @import "./set.scss"; </style>
由于要两个tab中都验证通过时,才提交表单,所以两个表单都要验证,只有都验证通过时在提交表单,提交表单之前,要合并表单数据再统一提交。父组件调用子组件的方法 this.$refs["coldSet"].onSubmit();
考虑到弹窗组件的性能问题,我们可以通过将显示标识以 :showAlarmSetWin.sync="showAlarmSetWin"这样的形式传递给子组件,(注意,要加sync关键字)子组件监听showAlarmSetWin,当弹窗显示时,加载数据并初始化,并设置属性:immediate: true,让弹窗第一次执行时也加载数据。
{ "data": [{ "id": 246, "tempId": "1", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 247, "tempId": "2", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 248, "tempId": "3", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 249, "tempId": "4", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 250, "tempId": "5", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 251, "tempId": "6", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 252, "tempId": "7", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 253, "tempId": "8", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 254, "tempId": "9", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 255, "tempId": "10", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 256, "tempId": "11", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 257, "tempId": "12", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 258, "tempId": "13", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 259, "tempId": "14", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 260, "tempId": "15", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 261, "tempId": "16", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 262, "tempId": "50", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 263, "tempId": "51", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 264, "tempId": "52", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 265, "tempId": "53", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 266, "tempId": "54", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 267, "tempId": "55", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 268, "tempId": "56", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 269, "tempId": "57", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 270, "tempId": "58", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 271, "tempId": "59", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 272, "tempId": "60", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 273, "tempId": "61", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 274, "tempId": "62", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 275, "tempId": "63", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 276, "tempId": "64", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 277, "tempId": "65", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 278, "tempId": "66", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 279, "tempId": "67", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 280, "tempId": "68", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 281, "tempId": "69", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 282, "tempId": "101", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 283, "tempId": "102", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 84.0, "secondVal": 16.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 284, "tempId": "103", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 59.0, "secondVal": 49.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 285, "tempId": "104", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 34.0, "secondVal": 22.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 286, "tempId": "105", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 92.0, "secondVal": 66.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 287, "tempId": "106", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 55.0, "secondVal": 29.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 288, "tempId": "107", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 86.0, "secondVal": 81.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 289, "tempId": "108", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 67.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 290, "tempId": "109", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 85.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 291, "tempId": "110", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 16.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 292, "tempId": "111", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 92.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 293, "tempId": "112", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": "请尽快安排人检查", "firstVal": 10.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 294, "tempId": "113", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 44.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 295, "tempId": "114", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": "请尽快安排人检查", "firstVal": 61.0, "secondVal": 35.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 296, "tempId": "115", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 48.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 297, "tempId": "116", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 298, "tempId": "117", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 299, "tempId": "118", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 76.0, "secondVal": 23.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 300, "tempId": "119", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 64.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 301, "tempId": "120", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 302, "tempId": "121", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 73.0, "secondVal": 15.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 303, "tempId": "122", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 90.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 304, "tempId": "201", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 305, "tempId": "202", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 306, "tempId": "203", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 307, "tempId": "204", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 32.0, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 308, "tempId": "205", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 309, "tempId": "206", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 310, "tempId": "207", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 311, "tempId": "208", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 312, "tempId": "209", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 313, "tempId": "210", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 314, "tempId": "211", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 315, "tempId": "212", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 316, "tempId": "213", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 317, "tempId": "214", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 318, "tempId": "215", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 319, "tempId": "216", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 320, "tempId": "217", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 321, "tempId": "218", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 322, "tempId": "219", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 323, "tempId": "220", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 36.0, "secondVal": 11.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 324, "tempId": "221", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": 66.0, "secondVal": 59.0, "thirdVal": null, "fourthVal": null, "status": 0 }, { "id": 325, "tempId": "222", "projectNumber": "440300A088", "groupNumber": "G1", "alarmLevel": 1, "suggestion": null, "firstVal": null, "secondVal": null, "thirdVal": null, "fourthVal": null, "status": 0 }], "code": 200, "msg": "成功", "errors": null }
模板数据列表格式:
{ "data": [{ "id": "1", "name": "制冷机启动失败", "sys": 1, "type": 1, "descr": "[\"制冷机组设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "10", "name": "冷冻泵故障", "sys": 1, "type": 1, "descr": "[\"冷冻水泵设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "101", "name": "冷冻水供水温度不在合理范围", "sys": 1, "type": 3, "descr": "[\"冷冻水供水温度\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "102", "name": "冷却塔出水温度温度不在合理范围", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷却水回水温度-室外湿球温度(℃)\",\"或当室外湿球温度<17℃时,冷却水回水温度设定值(℃)\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "103", "name": "冷冻供回水温差(压差)不在合理范围", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷冻水温差(℃)\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "104", "name": "冷却供回水温差不在合理范围", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷却水温差(℃)\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "105", "name": "电流负载限制", "sys": 1, "type": 3, "descr": "[\"冷水机组电流负载率\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "106", "name": "冷凝温度限制", "sys": 1, "type": 3, "descr": "[\"冷凝器出水温度(℃)\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "107", "name": "蒸发温度限制", "sys": 1, "type": 3, "descr": "[\"蒸发器出水温度(℃)\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "108", "name": "蒸发器内水压力超限", "sys": 1, "type": 3, "descr": "[\"蒸发器冷媒压力(Mpa)\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "109", "name": "蒸发器内水流量超限", "sys": 1, "type": 3, "descr": "[\"冷冻水流量/当前制冷机的额定流量*制冷剂运行台数\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "11", "name": "冷却泵启动失败", "sys": 1, "type": 1, "descr": "[\"冷却水泵设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "110", "name": "冷凝器内水压力超限", "sys": 1, "type": 3, "descr": "[\"冷机冷凝器冷媒压力(Mpa)\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "111", "name": "冷凝器内水流量超限", "sys": 1, "type": 3, "descr": "[\"冷却水流量/当前制冷机的额定流量*制冷机运行台数\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "112", "name": "冷冻水侧小温差过高", "sys": 1, "type": 3, "descr": "[\"正常运行时段,蒸发器出水温度-冷媒温度(℃)\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "113", "name": "冷却水侧小温差过高", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷凝器冷媒温度-出水温度(℃)\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "114", "name": "冷冻水流量超限", "sys": 1, "type": 3, "descr": "[\"冷冻泵流量/额定流量\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "115", "name": "冷冻泵功率超限", "sys": 1, "type": 3, "descr": "[\"冷冻泵功率/额定功率\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "116", "name": "冷冻泵频率超限", "sys": 1, "type": 3, "descr": "[\"冷冻泵运行频率不在配置的上下限范围内\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "117", "name": "冷冻水温差超限", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷冻水温差在(3,7)范围内\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "118", "name": "冷却泵流量超限", "sys": 1, "type": 3, "descr": "[\"冷却泵流量/额定流量\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "119", "name": "冷却泵功率超限", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷却泵功率/额定功率\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "12", "name": "冷却泵停止失败", "sys": 1, "type": 1, "descr": "[\"冷却水泵设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "120", "name": "冷却塔频率超限", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷却塔频率不在配置的上下限范围\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "121", "name": "冷却回水温度超限", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷却回水温度\"]", "descParamType": 2, "hasSuge": 1, "runTime": 0 }, { "id": "122", "name": "冷却塔功率超限", "sys": 1, "type": 3, "descr": "[\"正常运行时段,冷却塔功率/额定功率\"]", "descParamType": 1, "hasSuge": 1, "runTime": 0 }, { "id": "13", "name": "冷却泵故障", "sys": 1, "type": 1, "descr": "[\"冷却水泵设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "14", "name": "冷却塔启动失败", "sys": 1, "type": 1, "descr": "[\"冷却塔风机故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "15", "name": "冷却塔停止失败", "sys": 1, "type": 1, "descr": "[\"冷却塔风机故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "16", "name": "冷却塔故障", "sys": 1, "type": 1, "descr": "[\"冷却塔风机故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "2", "name": "制冷机停止失败", "sys": 1, "type": 1, "descr": "[\"制冷机组设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "201", "name": "室内温度传感器需要校核", "sys": 2, "type": 4, "descr": "[\"每日6点,当前末端温度反馈值与其他末端温度反馈值相差2℃以上\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "202", "name": "工作时间前过早开启空调末端", "sys": 2, "type": 2, "descr": "[\"工作时间前过早开启空调末端\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "203", "name": "室外温度高而新风阀未关闭", "sys": 2, "type": 2, "descr": "[\"室外温度高而新风阀未关闭\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "204", "name": "室外温度低而新风阀未开启", "sys": 2, "type": 2, "descr": "[\"非营业时间,风柜设定温度-室外湿球温度(℃)\",\"新风阀未开启\"]", "descParamType": 1, "hasSuge": 1, "runTime": 3 }, { "id": "205", "name": "空调风机变频器自动控制未启用", "sys": 2, "type": 2, "descr": "[\"当前时间<关机时间,室外湿球温度>24且风柜温度人工设定\",\"或室外湿球温度在[5,24]且风柜温度人工设定\",\"或室外湿球温度<5且风柜(风盘)温度人工设定\"]", "descParamType": 4, "hasSuge": 1, "runTime": 2 }, { "id": "206", "name": "室内CO2过高", "sys": 2, "type": 3, "descr": "[\"室内CO2(PPM)\",\"持续时间(min)\"]", "descParamType": 3, "hasSuge": 1, "runTime": 2 }, { "id": "207", "name": "空调末端风机故障", "sys": 2, "type": 1, "descr": "[\"空调末端风机故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "208", "name": "空调末端新风阀故障", "sys": 2, "type": 1, "descr": "[\"空调末端新风阀故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "209", "name": "空调末端回风阀故障", "sys": 2, "type": 1, "descr": "[\"空调末端回风阀故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "210", "name": "空调末端水阀故障", "sys": 2, "type": 1, "descr": "[\"空调末端水阀故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "211", "name": "风柜开启失败", "sys": 2, "type": 1, "descr": "[\"风柜开启失败\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "212", "name": "风柜停止失败", "sys": 2, "type": 1, "descr": "[\"风柜停止失败\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "213", "name": "风盘开启失败", "sys": 2, "type": 1, "descr": "[\"风盘开启失败\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "214", "name": "风盘停止失败", "sys": 2, "type": 1, "descr": "[\"风盘停止失败\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "215", "name": "时序配置异常", "sys": 2, "type": 2, "descr": "[\"时序配置异常\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "216", "name": "末端设备为手动模式", "sys": 2, "type": 2, "descr": "[\"末端设备为手动模式\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "217", "name": "风柜故障报警", "sys": 2, "type": 1, "descr": "[\"风柜故障报警\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "218", "name": "风盘故障报警", "sys": 2, "type": 1, "descr": "[\"风盘故障报警\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "219", "name": "风柜频率超限", "sys": 2, "type": 3, "descr": "[\"风柜频率超限\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "220", "name": "室内温度不在合理范围", "sys": 2, "type": 3, "descr": "[\"风柜回风温度(℃)\"]", "descParamType": 2, "hasSuge": 1, "runTime": 2 }, { "id": "221", "name": "末端水力不平衡", "sys": 2, "type": 2, "descr": "[\"营业时间内,风柜回风温度(℃)\"]", "descParamType": 2, "hasSuge": 1, "runTime": 2 }, { "id": "222", "name": "风柜频率超限", "sys": 2, "type": 3, "descr": "[\"风柜频率CAB_FRQ不在配置的上下限范围\"]", "descParamType": 0, "hasSuge": 1, "runTime": 2 }, { "id": "3", "name": "制冷机故障", "sys": 1, "type": 1, "descr": "[\"制冷机组设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "4", "name": "制冷机冷冻侧阀门启动失败", "sys": 1, "type": 1, "descr": "[\"制冷机组设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "5", "name": "制冷机冷冻侧阀门停止失败", "sys": 1, "type": 1, "descr": "[\"制冷机组设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "50", "name": "水力不平衡", "sys": 1, "type": 2, "descr": "[\"触发冰爽模式\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "51", "name": "非变频自动运行", "sys": 1, "type": 2, "descr": "[\"设备工频启停或频率手动设定\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "52", "name": "全自动或一键启动失败", "sys": 1, "type": 2, "descr": "[\"全自动模式、一键启动模式无法生效\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "53", "name": "过早开制冷站设备", "sys": 1, "type": 2, "descr": "[\"营业时间前过早开制冷站设备\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "54", "name": "停业后未及时停止制冷站设备", "sys": 1, "type": 2, "descr": "[\"停业后未及时停止制冷站设备\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "55", "name": "低温未启用全新风策略", "sys": 1, "type": 2, "descr": "[\"天气温度低而制冷站运行\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "56", "name": "制冷机加减载不合理", "sys": 1, "type": 2, "descr": "[\"手动模式下,执行制冷机的加减载\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "57", "name": "制冷机加减载失败", "sys": 1, "type": 2, "descr": "[\"制冷机加减载失败\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "58", "name": "冷水机组冷冻水旁通", "sys": 1, "type": 2, "descr": "[\"正常运行时段,运行状态-停止状态的冷机蒸发器进水温度<1\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "59", "name": "冷水机组冷却水旁通", "sys": 1, "type": 2, "descr": "[\"正常运行时段,运行状态-停止状态的冷机冷凝器进水温度<1\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "6", "name": "制冷机冷却侧阀门启动失败", "sys": 1, "type": 1, "descr": "[\"制冷机组设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "60", "name": "制冷机频繁启停机", "sys": 1, "type": 2, "descr": "[\"设备启停记录中,同一设备的启动和停止时间间隔<30min\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "61", "name": "冷却泵频繁启停机", "sys": 1, "type": 2, "descr": "[\"设备启停记录中,同一设备的启动和停止时间间隔<30min\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "62", "name": "冷冻泵频繁启停机", "sys": 1, "type": 2, "descr": "[\"设备启停记录中,同一设备的启动和停止时间间隔<30min\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "63", "name": "冷却塔频繁启停机", "sys": 1, "type": 2, "descr": "[\"设备启停记录中,同一设备的启动和停止时间间隔<30min\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "64", "name": "未启用控制模式", "sys": 1, "type": 2, "descr": "[\"冷冻泵运行频率为手动设定或工频运行\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "65", "name": "冷却塔集水盘溢流", "sys": 1, "type": 2, "descr": "[\"冷却塔液位COT1_WL>后台配置中的液位上限\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "66", "name": "冷却塔集水盘干涸", "sys": 1, "type": 2, "descr": "[\"冷却塔液位COT1_WL<后台配置中的液位下限\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "67", "name": "冷却塔启停机不及时", "sys": 1, "type": 2, "descr": "[\"冷却塔在主机停机后5min以外关闭\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "68", "name": "冷却塔未启用控制模式", "sys": 1, "type": 2, "descr": "[\"冷却塔运行频率为手动设定或工频运行\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "69", "name": "冷却泵启停机不及时", "sys": 1, "type": 2, "descr": "[\"冷却泵在主机启动前2min以外启动,或冷却泵在主机停机后5min以外关闭\"]", "descParamType": 0, "hasSuge": 1, "runTime": 1 }, { "id": "7", "name": "制冷机冷却侧阀门停止失败", "sys": 1, "type": 1, "descr": "[\"制冷机组设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "8", "name": "冷冻泵启动失败", "sys": 1, "type": 1, "descr": "[\"冷冻水泵设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }, { "id": "9", "name": "冷冻泵停止失败", "sys": 1, "type": 1, "descr": "[\"冷冻水泵设备故障\"]", "descParamType": 0, "hasSuge": 1, "runTime": 0 }], "code": 200, "msg": "成功", "errors": null }
总共两个接口,一个加载模板,一个加载数据,模板数据只第一次进入到页面的时候调用,数据是每次打开弹窗都要调用。