{"remainingRequest":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\src\\views\\acs\\monitor\\device\\XJDeviceMonitor.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\src\\views\\acs\\monitor\\device\\XJDeviceMonitor.vue","mtime":1732871026613},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1732872824662},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1732872825017},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1732872824662},{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1732872825835}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { crud } from '@crud/crud'\r\n\r\nexport default {\r\n name: 'XJDeviceMonitor',\r\n components: {},\r\n mixins: [crud()],\r\n props: {\r\n dialogShow: {\r\n type: Boolean,\r\n default: false\r\n },\r\n openParam: {\r\n type: Object\r\n }\r\n },\r\n dicts: [],\r\n data() {\r\n return {\r\n dialogVisible: false,\r\n form: {\r\n heartbeat: '',\r\n mode: '',\r\n error: '',\r\n error_num: '',\r\n ready_time: '',\r\n running_time: '',\r\n error_time: '',\r\n temperature: '',\r\n material: '',\r\n lack_material: '',\r\n feeding_qty: '',\r\n blanking_qty: '',\r\n qualified_qty: '',\r\n unqualified_qty: '',\r\n finish: '',\r\n task: '',\r\n pause: ''\r\n },\r\n device_code: '',\r\n device_name: '',\r\n rules: {\r\n }\r\n }\r\n },\r\n watch: {\r\n dialogShow: {\r\n handler(newValue) {\r\n this.dialogVisible = newValue\r\n }\r\n }\r\n },\r\n methods: {\r\n open() {\r\n this.webSocket()\r\n },\r\n close() {\r\n this.$emit('AddChanged')\r\n },\r\n setForm(data) {\r\n this.dialogVisible = true\r\n this.form = data.data\r\n this.device_code = data.device_code\r\n this.device_name = data.device_name\r\n // this.form = row\r\n },\r\n webSocket() {\r\n const that = this\r\n if (typeof (WebSocket) === 'undefined') {\r\n this.$notify({\r\n title: '提示',\r\n message: '当前浏览器无法接收实时报警信息,请使用谷歌浏览器!',\r\n type: 'warning',\r\n duration: 0\r\n })\r\n } else {\r\n const id = 'xj_device_monitor'\r\n // 获取token保存到vuex中的用户信息,此处仅适用于本项目,注意删除或修改\r\n // 实例化socket,这里我把用户名传给了后台,使后台能判断要把消息发给哪个用户,其实也可以后台直接获取用户IP来判断并推送\r\n\r\n // const wsUri = process.env.VUE_APP_WS_API + '/webSocket/' + id\r\n const wsUri = window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/' + id\r\n this.socket = new WebSocket(wsUri)\r\n // 监听socket打开\r\n this.socket.onopen = function() {\r\n console.log('浏览器WebSocket已打开')\r\n // that.socket.send('测试客户端发送消息')\r\n }\r\n\r\n // 监听socket消息接收\r\n this.socket.onmessage = function(msg) {\r\n const list = JSON.parse(msg.data).msg.detail\r\n // console.log(list)\r\n\r\n for (const item of list) {\r\n const obj = JSON.parse(JSON.stringify(item))\r\n if (obj.device_code === that.device_code) {\r\n that.form = obj.data\r\n }\r\n }\r\n }\r\n\r\n // 监听socket错误\r\n this.socket.onerror = function() {\r\n that.$notify({\r\n title: '错误',\r\n message: '服务器错误,无法接收实时报警信息',\r\n type: 'error',\r\n duration: 0\r\n })\r\n }\r\n // 监听socket关闭\r\n this.socket.onclose = function() {\r\n console.log('WebSocket已关闭')\r\n }\r\n }\r\n }\r\n }\r\n}\r\n",null]}