<template> <div class="page"> <LayoutTable :data="tableData" :config="tableConfig"> <el-tag slot="table-body-head" style="margin:5px" type="success">当前在线设备总计:{{tableData.onlineCount}}个</el-tag> <el-tag slot="table-body-head" style="margin:5px" type="danger">当前离线设备总计:{{tableData.offlineCount}}个</el-tag> <el-tag v-for='($label, $value) in tableData.offlineDeviceType' :key='$value' :label="$value" slot="table-body-head" style="margin:5px" type="danger">{{$value}}离线设备:{{$label}}个</el-tag> </LayoutTable> <dialog-show ref="dialogform" @ok="getData" /> </div> </template> <script> /** 表单弹出框模式需引入 */ import dialogShow from "./dialogshow"; import table from "@/assets/mixins/table"; export default { name: "Device", components: { dialogShow }, mixins: [table], created() { // let _this = this; // const getsocketData = (e) => { // // 创建接收消息函数 // const data = e && e.detail.data; // let obj = JSON.parse(data); // if (obj.type == "SEND_TO_ALL_REQUEST") { // let msg = ""; // let content = JSON.parse(obj.body.content); // if (content.deviceOnlineStatus == 1) { // console.log(_this.tableData.dict) // msg = _this.tableData.dict.deviceType[content.deviceType]+ "设备:" + content.deviceCode + " 上线!"; // } else { // msg = _this.tableData.dict.deviceType[content.deviceType]+"设备:" + content.deviceCode + " 离线!"; // } // _this.$notify({ // title: "警告", // message: msg, // type: "warning", // duration: 8000, // }); // _this.getData(); // } // console.log(data); // }; // this.getsocketData = getsocketData; // // 注册监听事件 // window.addEventListener("onmessageWS", getsocketData,false); }, methods: { /** 重写新增方法 */ toAdd(row) { this.$refs.dialogform.add(row); }, /** 重写编辑方法 */ toEdit(row) { this.$refs.dialogform.edit(row); }, /** 重写查看方法 */ toView(row) { this.$refs.dialogform.view(row); }, }, data() { return { config: { getsocketData: null, search: [ { name: 'deviceNum', type: 'text', label: '设备编号', }, { name: 'deviceOnlineStatus', type: 'select', label: '在线状态', }, { name: 'deviceType', type: 'select', label: '设备类型', }, ], columns: [ { type: "selection", width: 60 }, // { label: "设备名称", prop: "deviceName" }, { label: "设备编码", prop: "deviceCode" }, { label: "设备类型", prop: "deviceType", formatter: this.formatter }, { label: "在线状态 ", prop: "deviceOnlineStatus", formatter: this.formatterYES, }, { label: "最近上线时间", prop: "onlineTime", formatter: this.formatterDate, }, { label: "操作", width: 240, formatter: (row) => { return ( <table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> ); }, }, ], }, }; }, }; </script>