浏览代码

添加报警信息;大屏修改

dongjh 1 年之前
父节点
当前提交
b8d89ff30d

+ 155 - 0
src/views/modules_guAn/guanalarm/index.vue

@@ -0,0 +1,155 @@
+<template>
+  <a-card :bordered="false">
+
+    <!-- 左侧面板 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="12">
+          <a-col :md="7" :sm="8">
+            <a-form-item label="点位名" :labelCol="{span: 6}" :wrapperCol="{span: 14, offset: 1}">
+              <a-input placeholder="请输入点位名" v-model="queryParam.tagname"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="7" :sm="8">
+            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+
+      <a-table
+        ref="table"
+        rowKey="id"
+        size="middle"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        @change="handleTableChange">
+      </a-table>
+
+    </div>
+  </a-card>
+</template>
+
+<script>
+  import { filterObj } from '@/utils/util';
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
+  import { UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types"
+  import Vue from 'vue'
+
+  export default {
+    name: "guantest",
+    mixins:[JeecgListMixin],
+    data() {
+      return {
+        description: '这是报警信息页面',
+        visible: false,
+        // 查询条件
+        queryParam: {
+          tagname: "",
+        },
+        // 表头
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key: 'rowIndex',
+            width: 120,
+            align: "center",
+            customRender: function (t, r, index) {
+              return parseInt(index) + 1;
+            }
+          },
+          {
+            title: '点名称',
+            align: "left",
+            dataIndex: 'tagname',
+          },
+          {
+            title: '报警描述',
+            align: "left",
+            dataIndex: 'description',
+          },
+          {
+            title: '记录时间',
+            align: "left",
+            dataIndex: 'logtime',
+          },
+          {
+            title: '警报等级',
+            align: "left",
+            dataIndex: 'priority',
+          },
+          {
+            title: '动作',
+            align: "left",
+            dataIndex: 'action',
+          },
+          {
+            title: '恢复时间',
+            align: "left",
+            dataIndex: 'restoretime',
+          },
+        ],
+        dict: "",
+        labelCol: {
+          xs: {span: 8},
+          sm: {span: 5},
+        },
+        wrapperCol: {
+          xs: {span: 16},
+          sm: {span: 19},
+        },
+        url: {
+          list: "/guan/alarm/list",
+          delete: "/guan/alarm/delete",
+          exportXlsUrl: "/guan/alarm/exportXls",
+          importExcelUrl: "/guan/alarm/importExcel",
+        },
+      }
+    },
+    computed: {
+      importExcelUrl: function () {
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      }
+    },
+    methods: {
+      getQueryParams() {
+        var param = Object.assign({}, this.queryParam, this.isorter);
+        param.field = this.getQueryField();
+        param.pageNo = this.ipagination.current;
+        param.pageSize = this.ipagination.pageSize;
+        if (this.superQueryParams) {
+          param['superQueryParams'] = encodeURI(this.superQueryParams)
+          param['superQueryMatchType'] = this.superQueryMatchType
+        }
+        return filterObj(param);
+      },
+    add() {
+      this.edit(this.modelDefault)
+    },
+    edit(record) {
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+      // 重置字典类型搜索框的内容
+      searchReset() {
+        var that = this;
+        that.queryParam.testname = "";
+        that.loadData(this.ipagination.current);
+      },
+    },
+    watch: {
+      // openKeys(val) {
+      //   console.log('openKeys', val)
+      // },
+    },
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

+ 28 - 1
src/views/modules_guAn/visualization/index.vue

@@ -81,6 +81,8 @@ import TestStatusInfo from './modules/TestStatusInfo.vue'
 import { getAction } from '@/api/manage'
 import store from '@/store'
 import Vue from 'vue'
+import signMd5Utils from '@/utils/encryption/signMd5Utils'
+import { axios } from '@/utils/request'
   import { ACCESS_TOKEN } from '@/store/mutation-types'
 
 export default {
@@ -104,7 +106,6 @@ export default {
       eqRealData: [],
       yuzhiData: [],
       curveData: [],
-      newAlarmData: [],
       websock: null,
       newAlarmData: null,
     }
@@ -118,6 +119,8 @@ export default {
     this.initWebSocket()
     // 数据获取
     // this.getData()
+    // 打开当前页面即数据获取
+    this.getDashBoardData();
   },
   mounted () {
   },
@@ -129,7 +132,28 @@ export default {
           this.eqRealData = res.result
         }
       })
+    },
+    getInfo(url,parameter){
+      let sign = signMd5Utils.getSign(url, parameter);
+      //将签名和时间戳,添加在请求接口 Header
+      // update-begin--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
+      let signHeader = {"X-Sign": sign,"X-TIMESTAMP": signMd5Utils.getTimestamp()};
+      // update-end--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
 
+      return axios({
+        timeout: 50000,
+        url: url,
+        method: 'get',
+        params: parameter,
+        headers: signHeader
+      })
+    },
+    getDashBoardData(){
+      this.getInfo(`/datacoll/webaccess/getDashBoardData`).then(res=>{      
+        const redata = JSON.parse(res.result)
+        console.log(redata);
+        this.initData(redata);
+      })
     },
     // 点击报警按钮触发弹窗
     clickAlarmBtn(){
@@ -163,6 +187,9 @@ export default {
       console.log("-----接收消息-------",e);
       const redata = JSON.parse(e.data)
       console.log(redata);
+      this.initData(redata);
+    },
+    initData(redata) {
       // 接收数据之后操作
       this.eqRealData = redata['设备实时值']
       this.curveData = redata['设备历史值']

+ 5 - 4
src/views/modules_guAn/visualization/modules/EquipmentInfo.vue

@@ -159,10 +159,11 @@ export default {
     },
     alarmData: {
       handler(newValue, oldValue){
-        // console.log(newValue, oldValue)
-        var hasAlarm = newValue && newValue.length>0
-        this.information = hasAlarm ? newValue[0].Name : '暂无数据'
-        this.alarmTime = hasAlarm ?  newValue[0].Time : ''
+        console.log(newValue, oldValue)
+        var hasAlarm = newValue
+        var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric' }; 
+        this.information = hasAlarm ? newValue.tagname : '暂无数据'
+        this.alarmTime = hasAlarm ?  new Date(newValue.logtime.time).toLocaleDateString('zh-CN', options) : ''
       },
       immediate: true,
       deep: true