1 line
18 KiB
JSON
1 line
18 KiB
JSON
{"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\\index2.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\data\\hanguodoushan\\acs2\\nladmin-ui\\src\\views\\acs\\monitor\\device\\index2.vue","mtime":1732871026617},{"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//\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//\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\n// 导入draggable组件\r\nimport deviceCrud from '@/api/acs/device/device'\r\nimport draggable from 'vuedraggable'\r\nimport crud from '@/mixins/crud'\r\nimport actorCrud from '@/api/acs/stage/actor'\r\nimport XJDeviceMonitor from '@/views/acs/monitor/device/XJDeviceMonitor'\r\n\r\nexport default {\r\n name: 'MonitorDevice',\r\n // 注册draggable组件\r\n components: {\r\n draggable, XJDeviceMonitor\r\n },\r\n mixins: [crud],\r\n data() {\r\n return {\r\n stage_code: '',\r\n dialogFormVisible: false,\r\n dialogFormVisible1: false,\r\n dialogFormVisible2: false,\r\n dialogFormVisible3: false,\r\n dialogFormVisible4: false,\r\n arr2: [],\r\n currentItem: '',\r\n stageSelectList: [],\r\n deviceList: [],\r\n form: {\r\n index: 0,\r\n device_code: '',\r\n angle: 0,\r\n hasGoodStatus: null,\r\n barcode: '',\r\n suspended: null,\r\n material_type: '',\r\n requireSucess: '',\r\n fullrequireSucess: ''\r\n },\r\n grid_width: 1000\r\n }\r\n },\r\n created() {\r\n this.initArr2()\r\n this.webSocket()\r\n },\r\n methods: {\r\n clickDevice(item) {\r\n // debugger\r\n const index = item.index\r\n const clickObj = this.arr2[index]\r\n console.log(clickObj.data)\r\n if (!clickObj.img2 || clickObj.img2 === '1' || !item.data) {\r\n return\r\n }\r\n if (clickObj.data.is_click !== true) {\r\n return\r\n }\r\n if (clickObj.data.device_type === 'scanner') {\r\n this.dialogFormVisible1 = true\r\n } else {\r\n if (clickObj.data.driver_type === 'hailiang_engraving_cache') {\r\n this.dialogFormVisible3 = true\r\n } else if (clickObj.data.driver_type === 'hailiang_packer_station') {\r\n this.dialogFormVisible4 = true\r\n } else if (clickObj.data.driver_type === 'hailiang_xj_plc_test') {\r\n this.$refs.child1.setForm(clickObj)\r\n } else {\r\n this.dialogFormVisible = true\r\n }\r\n }\r\n this.form.angle = clickObj.angle\r\n this.form.index = clickObj.index\r\n this.form.device_code = clickObj.device_code\r\n this.form.hasGoodStatus = clickObj.data.hasGoods\r\n this.form.material_type = clickObj.data.material_type\r\n this.form.requireSucess = clickObj.data.requireSucess\r\n this.form.fullrequireSucess = clickObj.data.fullrequireSucess\r\n },\r\n hasGoods(item) {\r\n if (item.data && item.data.hasGoods > 0) {\r\n return true\r\n }\r\n return false\r\n },\r\n statusPic(item) {\r\n if (item.data && item.data.isOnline === true) {\r\n return true\r\n }\r\n return false\r\n },\r\n isError(item) {\r\n if (item.data && item.data.isError === true) {\r\n return true\r\n }\r\n return false\r\n },\r\n isErrorColor(item) {\r\n if (item.data && item.data.isError === true) {\r\n return 'error'\r\n }\r\n return 'normal'\r\n },\r\n changeCurrentTime(item) {\r\n this.currentItem = item.index\r\n },\r\n moveShow(item) {\r\n // debugger\r\n if (item.device_code && item.data) {\r\n const arr = [\r\n { name: '设备编号', value: item.device_code },\r\n { name: '设备名称', value: item.device_name }\r\n ]\r\n const data = item.data\r\n for (const val in data) {\r\n if (val === 'isOnline' || val === 'isError' || val === 'hasGoods') {\r\n continue\r\n }\r\n if (val === 'message' && data.isError === true) {\r\n const obj = { name: '设备信息', value: data[val] }\r\n arr.push(obj)\r\n }\r\n\r\n if (val === 'message' && data.isError === 'false') {\r\n const obj = { name: '异常信息', value: data[val] }\r\n arr.push(obj)\r\n }\r\n\r\n if (val === 'move') {\r\n const obj = { name: '光电信号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'mode') {\r\n const obj = { name: '模式', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'container_type') {\r\n const obj = { name: '托盘类型', value: data[val] }\r\n this.arr.push(obj)\r\n } else if (val === 'command') {\r\n const obj = { name: '作业状态', value: data[val] }\r\n this.arr.push(obj)\r\n } else if (val === 'prohibitInWarehouse') {\r\n const obj = { name: '禁止入库', value: data[val] }\r\n this.arr.push(obj)\r\n } else if (val === 'prohibitOutWarehouse') {\r\n const obj = { name: '禁止出库', value: data[val] }\r\n this.arr.push(obj)\r\n } else if (val === 'stopReceiveTask') {\r\n const obj = { name: '停止接收任务', value: data[val] }\r\n this.arr.push(obj)\r\n } else if (val === 'hand_barcode') {\r\n const obj = { name: '条码', value: data[val] }\r\n this.arr.push(obj)\r\n } else if (val === 'error') {\r\n const obj = { name: '报警', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'ip') {\r\n const obj = { name: 'IP地址', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'number') {\r\n const obj = { name: '托盘数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'qty') {\r\n const obj = { name: '数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'weight') {\r\n const obj = { name: '重量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'instruction_message') {\r\n const obj = { name: '指令信息', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'last_instruction_message') {\r\n const obj = { name: '上次指令信息', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'container') {\r\n const obj = { name: '载具号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'last_container') {\r\n const obj = { name: '上次载具号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'instruction_code') {\r\n const obj = { name: '指令号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'last_instruction_code') {\r\n const obj = { name: '上次指令号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'action') {\r\n const obj = { name: '动作信号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'io_action') {\r\n const obj = { name: '允许进出信号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'material') {\r\n const obj = { name: '物料', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'batch') {\r\n const obj = { name: '批次', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'requestSucess') {\r\n const obj = { name: '缺料请求成功', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'fullrequestSucess') {\r\n const obj = { name: '空箱请求成功', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'applySucess') {\r\n const obj = { name: '是否申请指令', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'message') {\r\n const obj = { name: '说明', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'empty_is_lack') {\r\n const obj = { name: '空箱位缺箱', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'empty_is_finish') {\r\n const obj = { name: '空位完成', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'full_ready_req_agv') {\r\n const obj = { name: '满箱位就绪,请求AGV', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'full_out') {\r\n const obj = { name: '满箱已运出满箱位', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'finish') {\r\n const obj = { name: '烘箱完成', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'countdown_house') {\r\n const obj = { name: '恒温倒计时(时)', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'countdown_min') {\r\n const obj = { name: '恒温倒计时(分)', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'countdown_sec') {\r\n const obj = { name: '恒温倒计时(秒)', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'door') {\r\n const obj = { name: '门状态', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'order_compel_finish') {\r\n const obj = { name: '订单强制完成', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'now_order_prod_num') {\r\n const obj = { name: '当前生产总量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'now_one_prod_num') {\r\n const obj = { name: '当前箱生产量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'task') {\r\n const obj = { name: '任务号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'full_number') {\r\n const obj = { name: '出料口满框数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'storage_stock_num') {\r\n const obj = { name: '储料仓库存数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'line_stock_num') {\r\n const obj = { name: '线体库存数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'order_prod_allnum') {\r\n const obj = { name: '订单生产总量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'order') {\r\n const obj = { name: '工单号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'storage_stock_num') {\r\n const obj = { name: '储料仓库存数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'line_stock_num') {\r\n const obj = { name: '线体库存数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'material_type') {\r\n const obj = { name: '产品编号', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'lack_req') {\r\n const obj = { name: '缺料请求', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'empty_req') {\r\n const obj = { name: '空箱请求', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'address') {\r\n const obj = { name: 'agv位置', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'phaseName') {\r\n const obj = { name: 'phase', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'full_req') {\r\n const obj = { name: '满箱请求', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'open_time') {\r\n const obj = { name: '开机时间', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'close_time') {\r\n const obj = { name: '关机时间', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'feeding_qty') {\r\n const obj = { name: '上料数量', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'error_num') {\r\n const obj = { name: '故障次数', value: data[val] }\r\n arr.push(obj)\r\n } else if (val === 'is_disable') {\r\n const obj = { name: '是否禁用', value: data[val] }\r\n arr.push(obj)\r\n }\r\n }\r\n return arr\r\n }\r\n },\r\n dialogSave() {\r\n deviceCrud.changeDeviceStatus(this.form).then(res => {\r\n this.notify('操作成功', 'success')\r\n this.dialogFormVisible = false\r\n this.dialogFormVisible3 = false\r\n this.dialogFormVisible4 = false\r\n this.initArr2()\r\n }).catch(err => {\r\n this.dialogFormVisible = false\r\n this.dialogFormVisible3 = false\r\n this.dialogFormVisible4 = false\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n statusSave() {\r\n deviceCrud.changeFenceStatus(this.form).then(res => {\r\n this.notify('操作成功', 'success')\r\n this.dialogFormVisible2 = false\r\n this.initArr2()\r\n }).catch(err => {\r\n this.dialogFormVisible2 = false\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n saveBarcode() {\r\n deviceCrud.saveBarcode(this.form).then(res => {\r\n this.notify('操作成功', 'success')\r\n this.dialogFormVisible1 = false\r\n this.initArr2()\r\n }).catch(err => {\r\n this.dialogFormVisible1 = false\r\n console.log(err.response.data.message)\r\n })\r\n },\r\n initArr2() {\r\n actorCrud.queryStageActor('SHDP').then(data => {\r\n if (data.detail.length > 0) {\r\n this.grid_width = data.form.grid_width\r\n this.arr2 = []\r\n for (let i = 0; i < data.form.grid_length; i++) {\r\n const a = { 'id': i, 'name': '', device_code: '', img: '', index: i, img2: '1', angle: '0' }\r\n this.arr2.push(a)\r\n }\r\n for (const i of data.detail) {\r\n const index = i.index\r\n this.arr2.splice(index, 1, i)\r\n }\r\n }\r\n }).catch(err => {\r\n console.log(err.response.data.message)\r\n })\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 = '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 index = item.index\r\n // that.arr2.splice(index, 1, item)\r\n\r\n if (item.data) {\r\n Object.assign(that.arr2[index].data, item.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]} |