1 line
64 KiB
JSON
1 line
64 KiB
JSON
{"remainingRequest":"D:\\Hjm项目\\TransFlow\\node_modules\\babel-loader\\lib\\index.js!D:\\Hjm项目\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\Hjm项目\\TransFlow\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\Hjm项目\\TransFlow\\src\\views\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\Hjm项目\\TransFlow\\src\\views\\index.vue","mtime":1672881376075},{"path":"D:\\Hjm项目\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\Hjm项目\\TransFlow\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"D:\\Hjm项目\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\Hjm项目\\TransFlow\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.typed.uint8-array\";\nimport \"core-js/modules/es6.regexp.to-string\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport mqtt from \"mqtt\"; // mqtt协议\n\nimport editModal from \"@/views/bounced/maintenanceRemind\";\nimport analysisConfiguration from \"@/views/bounced/analysisConfiguration\";\nimport dataBoard from \"@/views/bounced/dataBoard\";\nimport axios from 'axios';\nexport default {\n data: function data() {\n return {\n trajectory: false,\n //轨迹\n hideBoxShow: true,\n //隐藏箱子按钮显示隐藏\n closeStatus: null,\n modelOthers: false,\n componentShow: \"\",\n isShowBtn: true,\n //菜单按钮隐藏\n isShowBtn1: false,\n //菜单按钮显示\n inputVal: \"\",\n dialogFormVisible: false,\n areaComponent: false,\n indexModule: false,\n speed: false,\n form: {\n name: '',\n region: '',\n date1: '',\n date2: '',\n delivery: false,\n type: [],\n resource: '实时(触发)',\n desc: ''\n },\n areaComponentform: {\n name: '',\n region: '',\n date1: '',\n date2: '',\n delivery: false,\n type: [],\n resource: '实时(触发)',\n desc: ''\n },\n speedForm: {\n name: '',\n region: '',\n date1: '',\n date2: '',\n delivery: false,\n type: [],\n resource: '实时(触发)',\n desc: ''\n },\n // dateTime: this.$moment(new Date()).format(\"LL\"),\n nowTime: \"\",\n // weekday: this.$moment().format(\"dddd\"),\n ins: 0,\n imgUrl: '',\n imgUrl1: '',\n imgUrl2: '',\n imgUrl3: '',\n imgUrl4: '',\n imgUrl5: '',\n btnPic: [],\n Data: [{\n title: 'xx路口',\n url: ''\n }, {\n title: '数据看板',\n url: ''\n }, {\n title: '分析配置',\n url: ''\n }, {\n title: '分析配置',\n url: ''\n }],\n statusInfo: [{\n count: 15,\n name: \"穿梭车在线数量\",\n // icon: require(\"../assets/images/运行设备图标.png\"),\n color: \"#01A8FC\"\n }, {\n count: 26,\n name: \"任务数量\",\n // icon: require(\"../assets/images/故障设备图标.png\"),\n color: \"#FDA401\"\n }],\n messageInfo: [],\n orderList: [],\n enterList: [],\n stockInfo: [],\n perCent: 0,\n perCent1: 0,\n perCent2: 0,\n facToal: \"\",\n wbContent: '',\n // wxContent:'',\n inContent: '',\n outContent: '',\n containerDetails: \"\",\n locdesc: '',\n weatherItem: {},\n loadingShow1: true,\n carInfo: [],\n //小车信息\n carName: '',\n palletizerInfo: [],\n //码垛机信息\n palletizerName: '',\n destackerInfo: [],\n //拆垛机信息\n destackerName: '',\n hoistInfo: [],\n //提升机信息’\n hoistName: '',\n battaryStationInfo: [],\n //快换电池装置\n battaryStationName: \"\",\n conveyorInfo: [],\n //输送机信息\n conveyorName: \"\"\n };\n },\n mounted: function mounted() {// this.getMessage();\n // 消息提醒\n // getfacKeepRecord({ type: 0 }).then((res) => {\n // this.messageInfo = this.messageInfo.concat(res.data);\n // console.log(this.messageInfo, \",,qweqw\");\n // // this.messageInfo.push(res.data[1]) \n // });\n // this.getDataByMqtt()\n // this.getstatus();\n // this.getInhouse();\n // this.getOuthouse();\n // this.handleWather();\n // this.getDeviceStatusData()\n },\n created: function created() {\n this.testMqtt();\n },\n methods: {\n // 测试:mqtt测试\n testMqtt: function testMqtt() {\n this.getDataByMqtt(); // 小车订阅\n // for (let key in this.carId) {\n // this.getDataByMqtt(\n // // \"ws:ht.mqtt.umayle.com:2022/mqtt\",\n // \"ws:220.163.114.157:8083/mqtt\",\n // \"Car\" + key,\n // this.carId[key]\n // );\n // }\n // //输送机入库订阅\n // for (let i = 0; i < this.convoyorCIdGroup.length; i++) {\n // this.getDataByMqtt(\n // \"ws:220.163.114.157:8083/mqtt\",\n // \"InConvoyor\" + this.convoyorCIdGroup[i],\n // this.convoyorCIdGroup[i]\n // );\n // }\n // //输送机出库订阅\n // for (let i = 0; i < this.outConvoyorCIdGroup.length; i++) {\n // this.getDataByMqtt(\n // \"ws:220.163.114.157:8083/mqtt\",\n // \"OUTConvoyor\" + this.outConvoyorCIdGroup[i],\n // this.outConvoyorCIdGroup[i]\n // );\n // }\n // for (let key in this.BattaryArr) {\n // this.getDataByMqtt(\n // \"ws:220.163.114.157:8083/mqtt\",\n // \"Battary_Sation\" + key,\n // this.BattaryArr[key]\n // );\n // }\n // // 升降机订阅elvArr\n // for (let key in this.elvArr) {\n // this.getDataByMqtt(\n // \"ws:220.163.114.157:8083/mqtt\",\n // \"ELV\" + key,\n // this.elvArr[key]\n // );\n // }\n // // 拆码跺机订阅\n // for (let key in this.stampArr) {\n // this.getDataByMqtt(\n // \"ws:220.163.114.157:8083/mqtt\",\n // \"INCMD\" + key,\n // this.stampArr[key]\n // );\n // }\n },\n onSubmit: function onSubmit() {},\n //模型加载等待\n loadingShow: function loadingShow(data) {\n this.loadingShow1 = data;\n },\n // mqtt订阅(独立)\n getDataByMqtt: function getDataByMqtt(url, topic, cIdNum) {\n var _this = this;\n\n var clientId = \"test_id_\" + String(new Date().getTime()); // 用户名\n // const host = 'ws://49.234.27.18:10087/'; // 一个测试用url,改成给的,ws://broker.emqx.io:8083/mqtt\n\n var host = 'ws://172.16.1.168:10087/';\n var options = {\n // 配置\n // 测试:订阅本机IP\n // host: host,\n // port: port,\n // host:\"172.16.1.168:10086\",\n keepalive: 60,\n // 心跳时间,默认60s,设置为0禁用\n username: 'admin',\n // 用户名(可选)\n password: '123456',\n // 密码(可选)\n clientId: clientId,\n // 客户端ID,默认随机生成\n protocolId: \"MQTT\",\n protocolVersion: 4,\n clean: true,\n // false在离线时接收QoS1和2的消息\n reconnectPeriod: 2000,\n // 重连间隔,默认1000毫秒\n connectTimeout: 30 * 1000,\n // 收到CONNACK之前的等待时间\n will: {\n // 遗嘱消息(客户端严重断开连接时Broker将自动发送的消息)\n topic: \"img1\",\n // 要发布的主题\n payload: \"[MQTT-TEST] 遗嘱消息:连接异常断开!\",\n // 要发布的消息\n qos: 0,\n // QoS(Quality of Service),QoS0:只负责发,QoS1:保证消息至少送达1次,QoS2:保证消息到且仅到1次\n retain: false // 保留标志\n\n }\n };\n\n if (this.mqttClient == undefined) {\n this.mqttClient = mqtt.connect(host, options); // 连接\n // const client = mqtt.connect(host, options); // 连接\n // const client = mqtt.connect(host) // 连接\n // 错误回调\n\n console.log(\"this.mqttClient\", this.mqttClient);\n this.mqttClient.on(\"error\", function (err) {\n console.log(\"[MQTT-TEST] 连接错误:\", err);\n\n _this.mqttClient.end();\n }); // 重连回调\n\n this.mqttClient.on(\"reconnect\", function (reconnect) {\n console.log(\"[MQTT-TEST] 重连中……\", reconnect);\n }); // 连接回调\n\n this.mqttClient.on(\"connect\", function (connect) {\n console.log(\"[MQTT-TEST] 已连接的客户端ID: \", connect); // 订阅\n\n _this.mqttClient.subscribe('img0', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('img1', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('img2', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('img3', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('img4', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('img5', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('stream0', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('stream1', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('stream2', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('stream3', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('stream4', {\n qos: 0\n });\n\n _this.mqttClient.subscribe('stream5', {\n qos: 0\n });\n }); // 接收回调\n\n this.mqttClient.on(\"message\", function (topic, message, packet) {\n console.log(\"[MQTT-TEST] 已连接的客户端ID: \", message);\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds()); // 解析后端数据\n // let dataReceived = JSON.parse(message.toString());\n // console.log(\"[MQTT-TEST] 已连接的客户端ID: \",dataReceived);\n // try{\n // const utf8decoder = new TextDecoder()\n // const u8arr = new Uint8Array(message)\n // const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\n // const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\n // console.log(\"msg\",msg) //msg为转换后的JSON数据\n // this.imgUrl='data:image/png;base64,' + msg.pic;\n // console.log(\"imageUrl\",imageUrl)\n // }catch{\n // let imageType = 'arraybuffer';\n // const blob = new Blob([message], { type: imageType })\n // const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\n // console.log(\"imageUrl\",imageUrl)\n // }\n\n if (topic.indexOf(\"img0\") != -1) {\n try {\n var utf8decoder = new TextDecoder();\n var u8arr = new Uint8Array(message);\n var temp = utf8decoder.decode(u8arr); // 将二进制数据转为字符串\n\n var msg = JSON.parse(temp); //这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\n\n console.log(\"msg\", msg); //msg为转换后的JSON数据\n\n _this.imgUrl = 'data:image/png;base64,' + msg.pic;\n console.log(\"imageUrl\", imageUrl);\n } catch (_unused) {\n var imageType = 'arraybuffer';\n var blob = new Blob([message], {\n type: imageType\n });\n\n var _imageUrl = (window.URL || window.webkitURL).createObjectURL(blob);\n\n console.log(\"imageUrl\", _imageUrl);\n }\n } else if (topic.indexOf(\"img1\") != -1) {\n try {\n var _utf8decoder = new TextDecoder();\n\n var _u8arr = new Uint8Array(message);\n\n var _temp = _utf8decoder.decode(_u8arr); // 将二进制数据转为字符串\n\n\n var _msg = JSON.parse(_temp); //这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\n\n\n console.log(\"msg\", _msg); //msg为转换后的JSON数据\n\n _this.imgUrl1 = 'data:image/png;base64,' + _msg.pic;\n console.log(\"imageUrl\", imageUrl);\n } catch (_unused2) {\n var _imageType = 'arraybuffer';\n\n var _blob = new Blob([message], {\n type: _imageType\n });\n\n var _imageUrl2 = (window.URL || window.webkitURL).createObjectURL(_blob);\n\n console.log(\"imageUrl\", _imageUrl2);\n }\n } else if (topic.indexOf(\"img2\") != -1) {\n try {\n var _utf8decoder2 = new TextDecoder();\n\n var _u8arr2 = new Uint8Array(message);\n\n var _temp2 = _utf8decoder2.decode(_u8arr2); // 将二进制数据转为字符串\n\n\n var _msg2 = JSON.parse(_temp2); //这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\n\n\n console.log(\"msg\", _msg2); //msg为转换后的JSON数据\n\n _this.imgUrl2 = 'data:image/png;base64,' + _msg2.pic;\n console.log(\"imageUrl\", imageUrl);\n } catch (_unused3) {\n var _imageType2 = 'arraybuffer';\n\n var _blob2 = new Blob([message], {\n type: _imageType2\n });\n\n var _imageUrl3 = (window.URL || window.webkitURL).createObjectURL(_blob2);\n\n console.log(\"imageUrl\", _imageUrl3);\n }\n } else if (topic.indexOf(\"img3\") != -1) {\n try {\n var _utf8decoder3 = new TextDecoder();\n\n var _u8arr3 = new Uint8Array(message);\n\n var _temp3 = _utf8decoder3.decode(_u8arr3); // 将二进制数据转为字符串\n\n\n var _msg3 = JSON.parse(_temp3); //这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\n\n\n console.log(\"msg\", _msg3); //msg为转换后的JSON数据\n\n _this.imgUrl3 = 'data:image/png;base64,' + _msg3.pic;\n console.log(\"imageUrl\", imageUrl);\n } catch (_unused4) {\n var _imageType3 = 'arraybuffer';\n\n var _blob3 = new Blob([message], {\n type: _imageType3\n });\n\n var _imageUrl4 = (window.URL || window.webkitURL).createObjectURL(_blob3);\n\n console.log(\"imageUrl\", _imageUrl4);\n }\n } else if (topic.indexOf(\"img4\") != -1) {\n try {\n var _utf8decoder4 = new TextDecoder();\n\n var _u8arr4 = new Uint8Array(message);\n\n var _temp4 = _utf8decoder4.decode(_u8arr4); // 将二进制数据转为字符串\n\n\n var _msg4 = JSON.parse(_temp4); //这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\n\n\n console.log(\"msg\", _msg4); //msg为转换后的JSON数据\n\n _this.imgUrl4 = 'data:image/png;base64,' + _msg4.pic;\n console.log(\"imageUrl\", imageUrl);\n } catch (_unused5) {\n var _imageType4 = 'arraybuffer';\n\n var _blob4 = new Blob([message], {\n type: _imageType4\n });\n\n var _imageUrl5 = (window.URL || window.webkitURL).createObjectURL(_blob4);\n\n console.log(\"imageUrl\", _imageUrl5);\n }\n } else if (topic.indexOf(\"img5\") != -1) {\n try {\n var _utf8decoder5 = new TextDecoder();\n\n var _u8arr5 = new Uint8Array(message);\n\n var _temp5 = _utf8decoder5.decode(_u8arr5); // 将二进制数据转为字符串\n\n\n var _msg5 = JSON.parse(_temp5); //这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\n\n\n console.log(\"msg\", _msg5); //msg为转换后的JSON数据\n\n _this.imgUrl5 = 'data:image/png;base64,' + _msg5.pic;\n console.log(\"imageUrl\", imageUrl);\n } catch (_unused6) {\n var _imageType5 = 'arraybuffer';\n\n var _blob5 = new Blob([message], {\n type: _imageType5\n });\n\n var _imageUrl6 = (window.URL || window.webkitURL).createObjectURL(_blob5);\n\n console.log(\"imageUrl\", _imageUrl6);\n }\n } else if (topic.indexOf(\"stream0\") != -1) {\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds());\n } else if (topic.indexOf(\"stream0\") != -1) {\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds());\n } else if (topic.indexOf(\"stream1\") != -1) {\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds());\n } else if (topic.indexOf(\"stream2\") != -1) {\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds());\n } else if (topic.indexOf(\"stream3\") != -1) {\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds());\n } else if (topic.indexOf(\"stream4\") != -1) {\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds());\n } else if (topic.indexOf(\"stream5\") != -1) {\n console.log(\"[MQTT-TEST] \\u4ECE\\u4E3B\\u9898 \\\"\".concat(topic, \"\\\" \\u6536\\u5230\\u7684\\u5185\\u5BB9: \").concat(message.toString()), new Date(), new Date().getMilliseconds());\n }\n });\n }\n },\n handleSearch: function handleSearch() {\n this.modelOthers = true;\n this.$refs.htModels.finbBox(this.inputVal);\n console.log(this.$refs.htModels, 'asdasdasd');\n this.inputVal = '';\n },\n handleRow: function handleRow(val) {\n this.modelOthers = true;\n this.$refs.htModels.finbBox(val);\n },\n // 天气\n handleWather: function handleWather() {\n var _this2 = this;\n\n axios({\n url: 'https://restapi.amap.com/v3/weather/weatherInfo?key=bc2b906032fdd8a63cbd0790d656b1d7&city=620100',\n methods: ''\n }).then(function (res) {\n _this2.weatherItem = res.data.lives[0];\n console.log(_this2.weatherItem, 'asdsads');\n });\n },\n Onweather: function Onweather(name) {// switch (name) {\n // \t\t\t\tcase \"多云\":\n // \t\t\t\t\treturn require('../assets/weather/Cloudy .png');\n // \t\t\t\tcase \"阴\":\n // \t\t\t\t\treturn require('../assets/weather/Cloudy .png')\n // \t\t\t\tcase \"暴雨\":\n // \t\t\t\t\treturn require('../assets/weather/rainstorm.png')\n // \t\t\t\tcase \"冰雹\":\n // \t\t\t\t\treturn require('../assets/weather/hail.png')\n // \t\t\t\tcase \"大风\":\n // \t\t\t\t\treturn require('../assets/weather/gale.png')\n // \t\t\t\tcase \"大雪\":\n // \t\t\t\t\treturn require('../assets/weather/bigsnow.png')\n // \t\t\t\tcase \"大雨\":\n // \t\t\t\t\treturn require('../assets/weather/bigrain.png')\n // \t\t\t\tcase \"雷电\":\n // \t\t\t\t\treturn require('../assets/weather/thunder.png')\n // \t\t\t\tcase \"雷阵雨\":\n // \t\t\t\t\treturn require('../assets/weather/shower.png')\n // \t\t\t\tcase \"沙尘暴\":\n // \t\t\t\t\treturn require('../assets/weather/sand.png')\n // \t\t\t\tcase \"晴\":\n // \t\t\t\t\treturn require('../assets/weather/sun.png')\n // \t\t\t\tcase \"雾霾\":\n // \t\t\t\t\treturn require('../assets/weather/smog.png')\n // \t\t\t\tcase \"小雪\":\n // \t\t\t\t\treturn require('../assets/weather/snow.png')\n // \t\t\t\tcase \"小雨\":\n // \t\t\t\t\treturn require('../assets/weather/rain.png')\n // \t\t\t\tcase \"雪\":\n // \t\t\t\t\treturn require('../assets/weather/rainlitter.png')\n // \t\t\t\tcase \"多云\":\n // \t\t\t\t\treturn require('../assets/weather/night.png')\n // \t\t\t\tcase \"雨夹雪\":\n // \t\t\t\t\treturn require('../assets/weather/rainsnow.png')\n // \t\t\t\tcase \"月亮\":\n // \t\t\t\t\treturn require('../assets/weather/moon.png')\n // \t\t\t\tcase \"中雪\":\n // \t\t\t\t\treturn require('../assets/weather/mieddlesnow.png')\n // \t\t\t\tcase \"中雨\":\n // \t\t\t\t\treturn require('../assets/weather/middlerain.png')\n // \t\t\t}\n },\n //隐藏箱子\n hideBox: function hideBox() {\n this.$refs.htModels.handleFirstBox();\n }\n },\n components: {\n editModal: editModal,\n analysisConfiguration: analysisConfiguration,\n dataBoard: dataBoard\n }\n};",{"version":3,"sources":["index.vue"],"names":[],"mappings":"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","sourcesContent":["<template>\r\n <div class=\"content-box\">\r\n\r\n <div class=\"container\">\r\n <!-- <nav>\r\n <router-link :to=\"a.url\" :key=\"index\" v-for=\"(a,index) in Data\">{{a.title}}</router-link>\r\n <el-button type=\"primary\" @click=\"dialogFormVisible = true\">断面组件</el-button>\r\n </nav> -->\r\n <el-tabs type=\"border-card\">\r\n <el-tab-pane label=\"xx路口\">\r\n <div style=\"width:60%;height:100%;display:inline-block;border:1px soild #eee;padding:15px\">\r\n <img :src='imgUrl' width=\"100%\" height=\"100%\" />\r\n </div>\r\n <div style=\"width:20%;height:100%;display:inline-block;border:1px soild #eee;padding:15px;\">\r\n\r\n <el-button type=\"primary\" @click=\"dialogFormVisible = true\">断面组件</el-button>\r\n <el-button type=\"primary\" @click=\"areaComponent = true\">区域组件</el-button>\r\n <el-button type=\"primary\" @click=\"trajectory=true\">轨迹</el-button>\r\n <el-button type=\"primary\" @click=\"speed = true\">速度组件</el-button>\r\n <el-button type=\"primary\" @click=\"flow = true\">流量组件</el-button>\r\n <el-button type=\"primary\" @click=\"indexModule = true\">车头时距</el-button>\r\n <el-button type=\"primary\" @click=\"indexModule = true\">排队数</el-button>\r\n <el-button type=\"primary\" @click=\"indexModule = true\">检测数</el-button>\r\n <el-button type=\"primary\" @click=\"indexModule = true\">延误</el-button>\r\n <el-button type=\"primary\" @click=\"indexModule = true\">拥堵</el-button>\r\n\r\n </div>\r\n <div style=\"width:20%;height:100%;display:inline-block;border:1px soild #eee;padding:15px\">\r\n </div>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"数据看板\">\r\n <dataBoard></dataBoard>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"分析配置\">\r\n <analysisConfiguration></analysisConfiguration>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"分析状态\">\r\n <editModal></editModal>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"存储\">存储</el-tab-pane>\r\n </el-tabs>\r\n <!-- <div style=\"width:30%;height:300px;display:inline-block\">\r\n <img :src='imgUrl' width=\"100%\" height=\"100%\"/>\r\n </div> \r\n <div style=\"width:30%;height:300px;display:inline-block\">\r\n <img :src='imgUrl1' width=\"100%\" height=\"100%\"/>\r\n </div> \r\n <div style=\"width:30%;height:300px;display:inline-block\">\r\n <img :src='imgUrl2' width=\"100%\" height=\"100%\"/>\r\n </div> \r\n <div style=\"width:30%;height:300px;display:inline-block\">\r\n <img :src='imgUrl3' width=\"100%\" height=\"100%\"/>\r\n </div> \r\n <div style=\"width:30%;height:300px;display:inline-block\">\r\n <img :src='imgUrl4' width=\"100%\" height=\"100%\"/>\r\n </div> \r\n <div style=\"width:30%;height:300px;display:inline-block\">\r\n <img :src='imgUrl5' width=\"100%\" height=\"100%\"/>\r\n </div> -->\r\n\r\n </div>\r\n <div id=\"dialog\" class=\"margin-top: 0px !important;\">\r\n <el-dialog title=\"断面组件配置\" width=\"40%\" :visible.sync=\"dialogFormVisible\">\r\n <el-form ref=\"form\" :model=\"form\" label-width=\"80px\">\r\n <!-- <el-form-item label=\"实时性\">\r\n <el-radio-group v-model=\"form.resource\">\r\n <el-radio label=\"实时(触发)\"></el-radio>\r\n <el-radio label=\"间隔\"></el-radio>\r\n </el-radio-group>\r\n </el-form-item> -->\r\n <el-form-item label=\"断面名称\">\r\n <el-input v-model=\"form.name\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"断面方向\">\r\n <el-select v-model=\"form.region\" placeholder=\"请选择类型\">\r\n <el-option label=\"正向\" value=\"car\"></el-option>\r\n <el-option label=\"方向\" value=\"bus\"></el-option>\r\n <el-option label=\"双向\" value=\"kache\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n\r\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"onSubmit\">确认</el-button>\r\n <el-button @click=\"dialogFormVisible = false\">取消</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-dialog>\r\n <el-dialog title=\"区域组件配置\" width=\"40%\" :visible.sync=\"areaComponent\">\r\n <el-form ref=\"form\" :model=\"areaComponentform\" label-width=\"80px\">\r\n <el-form-item label=\"区域名称\">\r\n <el-input v-model=\"areaComponentform.name\"></el-input>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"onSubmit\">确认</el-button>\r\n <el-button @click=\"dialogFormVisible = false\">取消</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-dialog>\r\n <el-dialog title=\"速度组件配置\" width=\"40%\" :visible.sync=\"speed\">\r\n <el-form ref=\"form\" :model=\"speedForm\" label-width=\"80px\">\r\n <el-form-item label=\"速度组件名称\">\r\n <el-input v-model=\"speedForm.name\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"数值筛选\">\r\n <el-input v-model=\"speedForm.name\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"时间模式\">\r\n <el-select v-model=\"speedForm.region\" placeholder=\"请选择时间模式\">\r\n <el-option label=\"触发\" value=\"car\"></el-option>\r\n <el-option label=\"周期时刻\" value=\"bus\"></el-option>\r\n <el-option label=\"周期统计\" value=\"kache\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"展现形式\">\r\n <el-checkbox-group v-model=\"speedForm.region\">\r\n <el-checkbox label=\"数值\" name=\"type\"></el-checkbox>\r\n <el-checkbox label=\"表格\" name=\"type\"></el-checkbox>\r\n <el-checkbox label=\"时间曲线图\" name=\"type\"></el-checkbox>\r\n <el-checkbox label=\"均值图\" name=\"type\"></el-checkbox>\r\n </el-checkbox-group>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"onSubmit\">确认</el-button>\r\n <el-button @click=\"dialogFormVisible = false\">取消</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-dialog>\r\n <el-dialog title=\"轨迹\" width=\"40%\" :visible.sync=\"trajectory\">\r\n <el-form ref=\"form\" :model=\"speedForm\" label-width=\"80px\">\r\n <el-form-item label=\"轨迹\">\r\n <el-input v-model=\"speedForm.name\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"数值筛选\">\r\n <el-input v-model=\"speedForm.name\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"时间模式\">\r\n <el-select v-model=\"speedForm.region\" placeholder=\"请选择时间模式\">\r\n <el-option label=\"触发\" value=\"car\"></el-option>\r\n <el-option label=\"周期时刻\" value=\"bus\"></el-option>\r\n <el-option label=\"周期统计\" value=\"kache\"></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"展现形式\">\r\n <el-checkbox-group v-model=\"speedForm.region\">\r\n <el-checkbox label=\"数值\" name=\"type\"></el-checkbox>\r\n <el-checkbox label=\"表格\" name=\"type\"></el-checkbox>\r\n <el-checkbox label=\"时间曲线图\" name=\"type\"></el-checkbox>\r\n <el-checkbox label=\"均值图\" name=\"type\"></el-checkbox>\r\n </el-checkbox-group>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" @click=\"onSubmit\">确认</el-button>\r\n <el-button @click=\"dialogFormVisible = false\">取消</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </el-dialog>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n\r\nimport mqtt from \"mqtt\"; // mqtt协议\r\nimport editModal from \"@/views/bounced/maintenanceRemind\";\r\nimport analysisConfiguration from \"@/views/bounced/analysisConfiguration\";\r\nimport dataBoard from \"@/views/bounced/dataBoard\";\r\nimport axios from 'axios'\r\nexport default {\r\n data() {\r\n return {\r\n trajectory:false,//轨迹\r\n hideBoxShow: true, //隐藏箱子按钮显示隐藏\r\n closeStatus: null,\r\n modelOthers: false,\r\n componentShow: \"\",\r\n isShowBtn: true, //菜单按钮隐藏\r\n isShowBtn1: false, //菜单按钮显示\r\n inputVal: \"\",\r\n dialogFormVisible: false,\r\n areaComponent: false,\r\n indexModule: false,\r\n speed: false,\r\n form: {\r\n name: '',\r\n region: '',\r\n date1: '',\r\n date2: '',\r\n delivery: false,\r\n type: [],\r\n resource: '实时(触发)',\r\n desc: ''\r\n },\r\n areaComponentform: {\r\n name: '',\r\n region: '',\r\n date1: '',\r\n date2: '',\r\n delivery: false,\r\n type: [],\r\n resource: '实时(触发)',\r\n desc: ''\r\n },\r\n speedForm: {\r\n name: '',\r\n region: '',\r\n date1: '',\r\n date2: '',\r\n delivery: false,\r\n type: [],\r\n resource: '实时(触发)',\r\n desc: ''\r\n },\r\n // dateTime: this.$moment(new Date()).format(\"LL\"),\r\n nowTime: \"\",\r\n // weekday: this.$moment().format(\"dddd\"),\r\n ins: 0,\r\n imgUrl: '',\r\n imgUrl1: '',\r\n imgUrl2: '',\r\n imgUrl3: '',\r\n imgUrl4: '',\r\n imgUrl5: '',\r\n btnPic: [],\r\n Data: [\r\n {\r\n title: 'xx路口',\r\n url: ''\r\n },\r\n {\r\n title: '数据看板',\r\n url: ''\r\n },\r\n {\r\n title: '分析配置',\r\n url: ''\r\n },\r\n {\r\n title: '分析配置',\r\n url: ''\r\n }\r\n ],\r\n statusInfo: [\r\n {\r\n count: 15,\r\n name: \"穿梭车在线数量\",\r\n // icon: require(\"../assets/images/运行设备图标.png\"),\r\n color: \"#01A8FC\",\r\n },\r\n {\r\n count: 26,\r\n name: \"任务数量\",\r\n // icon: require(\"../assets/images/故障设备图标.png\"),\r\n color: \"#FDA401\",\r\n },\r\n ],\r\n messageInfo: [],\r\n orderList: [],\r\n enterList: [],\r\n stockInfo: [],\r\n perCent: 0,\r\n perCent1: 0,\r\n perCent2: 0,\r\n facToal: \"\",\r\n wbContent: '',\r\n // wxContent:'',\r\n inContent: '',\r\n outContent: '',\r\n containerDetails: \"\",\r\n locdesc: '',\r\n weatherItem: {},\r\n loadingShow1: true,\r\n carInfo: [], //小车信息\r\n carName: '',\r\n palletizerInfo: [], //码垛机信息\r\n palletizerName: '',\r\n destackerInfo: [], //拆垛机信息\r\n destackerName: '',\r\n hoistInfo: [], //提升机信息’\r\n hoistName: '',\r\n battaryStationInfo: [],//快换电池装置\r\n battaryStationName: \"\",\r\n conveyorInfo: [], //输送机信息\r\n conveyorName: \"\",\r\n };\r\n },\r\n mounted() {\r\n\r\n // this.getMessage();\r\n // 消息提醒\r\n\r\n // getfacKeepRecord({ type: 0 }).then((res) => {\r\n // this.messageInfo = this.messageInfo.concat(res.data);\r\n // console.log(this.messageInfo, \",,qweqw\");\r\n // // this.messageInfo.push(res.data[1]) \r\n // });\r\n // this.getDataByMqtt()\r\n // this.getstatus();\r\n // this.getInhouse();\r\n // this.getOuthouse();\r\n // this.handleWather();\r\n // this.getDeviceStatusData()\r\n },\r\n created() {\r\n this.testMqtt()\r\n\r\n },\r\n methods: {\r\n // 测试:mqtt测试\r\n testMqtt() {\r\n this.getDataByMqtt()\r\n // 小车订阅\r\n // for (let key in this.carId) {\r\n // this.getDataByMqtt(\r\n // // \"ws:ht.mqtt.umayle.com:2022/mqtt\",\r\n // \"ws:220.163.114.157:8083/mqtt\",\r\n // \"Car\" + key,\r\n // this.carId[key]\r\n // );\r\n // }\r\n // //输送机入库订阅\r\n // for (let i = 0; i < this.convoyorCIdGroup.length; i++) {\r\n // this.getDataByMqtt(\r\n // \"ws:220.163.114.157:8083/mqtt\",\r\n // \"InConvoyor\" + this.convoyorCIdGroup[i],\r\n // this.convoyorCIdGroup[i]\r\n // );\r\n // }\r\n\r\n // //输送机出库订阅\r\n // for (let i = 0; i < this.outConvoyorCIdGroup.length; i++) {\r\n // this.getDataByMqtt(\r\n // \"ws:220.163.114.157:8083/mqtt\",\r\n // \"OUTConvoyor\" + this.outConvoyorCIdGroup[i],\r\n // this.outConvoyorCIdGroup[i]\r\n // );\r\n // }\r\n\r\n // for (let key in this.BattaryArr) {\r\n // this.getDataByMqtt(\r\n // \"ws:220.163.114.157:8083/mqtt\",\r\n // \"Battary_Sation\" + key,\r\n // this.BattaryArr[key]\r\n // );\r\n // }\r\n // // 升降机订阅elvArr\r\n // for (let key in this.elvArr) {\r\n // this.getDataByMqtt(\r\n // \"ws:220.163.114.157:8083/mqtt\",\r\n // \"ELV\" + key,\r\n // this.elvArr[key]\r\n // );\r\n // }\r\n // // 拆码跺机订阅\r\n // for (let key in this.stampArr) {\r\n // this.getDataByMqtt(\r\n // \"ws:220.163.114.157:8083/mqtt\",\r\n // \"INCMD\" + key,\r\n // this.stampArr[key]\r\n // );\r\n // }\r\n },\r\n onSubmit() { },\r\n //模型加载等待\r\n loadingShow(data) {\r\n this.loadingShow1 = data\r\n },\r\n // mqtt订阅(独立)\r\n getDataByMqtt(url, topic, cIdNum) {\r\n const clientId = \"test_id_\" + String(new Date().getTime()); // 用户名\r\n // const host = 'ws://49.234.27.18:10087/'; // 一个测试用url,改成给的,ws://broker.emqx.io:8083/mqtt\r\n const host = 'ws://172.16.1.168:10087/';\r\n\r\n const options = {\r\n // 配置\r\n // 测试:订阅本机IP\r\n // host: host,\r\n // port: port,\r\n // host:\"172.16.1.168:10086\",\r\n keepalive: 60, // 心跳时间,默认60s,设置为0禁用\r\n username: 'admin', // 用户名(可选)\r\n password: '123456', // 密码(可选)\r\n clientId: clientId, // 客户端ID,默认随机生成\r\n protocolId: \"MQTT\",\r\n protocolVersion: 4,\r\n clean: true, // false在离线时接收QoS1和2的消息\r\n reconnectPeriod: 2000, // 重连间隔,默认1000毫秒\r\n connectTimeout: 30 * 1000, // 收到CONNACK之前的等待时间\r\n will: {\r\n // 遗嘱消息(客户端严重断开连接时Broker将自动发送的消息)\r\n topic: \"img1\", // 要发布的主题\r\n payload: \"[MQTT-TEST] 遗嘱消息:连接异常断开!\", // 要发布的消息\r\n qos: 0, // QoS(Quality of Service),QoS0:只负责发,QoS1:保证消息至少送达1次,QoS2:保证消息到且仅到1次\r\n retain: false, // 保留标志\r\n },\r\n };\r\n if (this.mqttClient == undefined) {\r\n this.mqttClient = mqtt.connect(host, options); // 连接\r\n // const client = mqtt.connect(host, options); // 连接\r\n // const client = mqtt.connect(host) // 连接\r\n // 错误回调\r\n console.log(\"this.mqttClient\", this.mqttClient)\r\n this.mqttClient.on(\"error\", (err) => {\r\n console.log(\"[MQTT-TEST] 连接错误:\", err);\r\n this.mqttClient.end();\r\n });\r\n // 重连回调\r\n this.mqttClient.on(\"reconnect\", (reconnect) => {\r\n console.log(\"[MQTT-TEST] 重连中……\", reconnect);\r\n });\r\n // 连接回调\r\n this.mqttClient.on(\"connect\", (connect) => {\r\n console.log(\"[MQTT-TEST] 已连接的客户端ID: \", connect);\r\n // 订阅\r\n this.mqttClient.subscribe('img0', { qos: 0 });\r\n this.mqttClient.subscribe('img1', { qos: 0 });\r\n this.mqttClient.subscribe('img2', { qos: 0 });\r\n this.mqttClient.subscribe('img3', { qos: 0 });\r\n this.mqttClient.subscribe('img4', { qos: 0 });\r\n this.mqttClient.subscribe('img5', { qos: 0 });\r\n this.mqttClient.subscribe('stream0', { qos: 0 });\r\n this.mqttClient.subscribe('stream1', { qos: 0 });\r\n this.mqttClient.subscribe('stream2', { qos: 0 });\r\n this.mqttClient.subscribe('stream3', { qos: 0 });\r\n this.mqttClient.subscribe('stream4', { qos: 0 });\r\n this.mqttClient.subscribe('stream5', { qos: 0 });\r\n\r\n });\r\n // 接收回调\r\n this.mqttClient.on(\"message\", (topic, message, packet) => {\r\n console.log(\"[MQTT-TEST] 已连接的客户端ID: \", message);\r\n\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n // 解析后端数据\r\n // let dataReceived = JSON.parse(message.toString());\r\n // console.log(\"[MQTT-TEST] 已连接的客户端ID: \",dataReceived);\r\n // try{\r\n // const utf8decoder = new TextDecoder()\r\n // const u8arr = new Uint8Array(message)\r\n // const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\r\n // const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\r\n // console.log(\"msg\",msg) //msg为转换后的JSON数据\r\n // this.imgUrl='data:image/png;base64,' + msg.pic;\r\n // console.log(\"imageUrl\",imageUrl)\r\n // }catch{\r\n // let imageType = 'arraybuffer';\r\n // const blob = new Blob([message], { type: imageType })\r\n // const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\r\n // console.log(\"imageUrl\",imageUrl)\r\n // }\r\n if (topic.indexOf(\"img0\") != -1) {\r\n try {\r\n const utf8decoder = new TextDecoder()\r\n const u8arr = new Uint8Array(message)\r\n const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\r\n const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\r\n console.log(\"msg\", msg) //msg为转换后的JSON数据\r\n this.imgUrl = 'data:image/png;base64,' + msg.pic;\r\n console.log(\"imageUrl\", imageUrl)\r\n } catch {\r\n let imageType = 'arraybuffer';\r\n const blob = new Blob([message], { type: imageType })\r\n const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\r\n console.log(\"imageUrl\", imageUrl)\r\n }\r\n } else if (topic.indexOf(\"img1\") != -1) {\r\n try {\r\n const utf8decoder = new TextDecoder()\r\n const u8arr = new Uint8Array(message)\r\n const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\r\n const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\r\n console.log(\"msg\", msg) //msg为转换后的JSON数据\r\n this.imgUrl1 = 'data:image/png;base64,' + msg.pic;\r\n console.log(\"imageUrl\", imageUrl)\r\n } catch {\r\n let imageType = 'arraybuffer';\r\n const blob = new Blob([message], { type: imageType })\r\n const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\r\n console.log(\"imageUrl\", imageUrl)\r\n }\r\n } else if (topic.indexOf(\"img2\") != -1) {\r\n try {\r\n const utf8decoder = new TextDecoder()\r\n const u8arr = new Uint8Array(message)\r\n const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\r\n const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\r\n console.log(\"msg\", msg) //msg为转换后的JSON数据\r\n this.imgUrl2 = 'data:image/png;base64,' + msg.pic;\r\n console.log(\"imageUrl\", imageUrl)\r\n } catch {\r\n let imageType = 'arraybuffer';\r\n const blob = new Blob([message], { type: imageType })\r\n const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\r\n console.log(\"imageUrl\", imageUrl)\r\n }\r\n } else if (topic.indexOf(\"img3\") != -1) {\r\n try {\r\n const utf8decoder = new TextDecoder()\r\n const u8arr = new Uint8Array(message)\r\n const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\r\n const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\r\n console.log(\"msg\", msg) //msg为转换后的JSON数据\r\n this.imgUrl3 = 'data:image/png;base64,' + msg.pic;\r\n console.log(\"imageUrl\", imageUrl)\r\n } catch {\r\n let imageType = 'arraybuffer';\r\n const blob = new Blob([message], { type: imageType })\r\n const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\r\n console.log(\"imageUrl\", imageUrl)\r\n }\r\n } else if (topic.indexOf(\"img4\") != -1) {\r\n try {\r\n const utf8decoder = new TextDecoder()\r\n const u8arr = new Uint8Array(message)\r\n const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\r\n const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\r\n console.log(\"msg\", msg) //msg为转换后的JSON数据\r\n this.imgUrl4 = 'data:image/png;base64,' + msg.pic;\r\n console.log(\"imageUrl\", imageUrl)\r\n } catch {\r\n let imageType = 'arraybuffer';\r\n const blob = new Blob([message], { type: imageType })\r\n const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\r\n console.log(\"imageUrl\", imageUrl)\r\n }\r\n } else if (topic.indexOf(\"img5\") != -1) {\r\n try {\r\n const utf8decoder = new TextDecoder()\r\n const u8arr = new Uint8Array(message)\r\n const temp = utf8decoder.decode(u8arr)\t// 将二进制数据转为字符串\r\n const msg = JSON.parse(temp)\t\t//这一步报错则返回的是二进制流图片,不报错则返回的是JSON的错误提示数据\r\n console.log(\"msg\", msg) //msg为转换后的JSON数据\r\n this.imgUrl5 = 'data:image/png;base64,' + msg.pic;\r\n console.log(\"imageUrl\", imageUrl)\r\n } catch {\r\n let imageType = 'arraybuffer';\r\n const blob = new Blob([message], { type: imageType })\r\n const imageUrl = (window.URL || window.webkitURL).createObjectURL(blob)\r\n console.log(\"imageUrl\", imageUrl)\r\n }\r\n } else if (topic.indexOf(\"stream0\") != -1) {\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n } else if (topic.indexOf(\"stream0\") != -1) {\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n } else if (topic.indexOf(\"stream1\") != -1) {\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n } else if (topic.indexOf(\"stream2\") != -1) {\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n } else if (topic.indexOf(\"stream3\") != -1) {\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n } else if (topic.indexOf(\"stream4\") != -1) {\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n } else if (topic.indexOf(\"stream5\") != -1) {\r\n console.log(\r\n `[MQTT-TEST] 从主题 \"${topic}\" 收到的内容: ${message.toString()}`,\r\n new Date(),\r\n new Date().getMilliseconds()\r\n );\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n },\r\n\r\n handleSearch() {\r\n this.modelOthers = true;\r\n this.$refs.htModels.finbBox(this.inputVal);\r\n console.log(this.$refs.htModels, 'asdasdasd');\r\n this.inputVal = ''\r\n },\r\n handleRow(val) {\r\n this.modelOthers = true;\r\n this.$refs.htModels.finbBox(val);\r\n },\r\n // 天气\r\n handleWather() {\r\n axios({ url: 'https://restapi.amap.com/v3/weather/weatherInfo?key=bc2b906032fdd8a63cbd0790d656b1d7&city=620100', methods: '' }).then(res => {\r\n this.weatherItem = res.data.lives[0]\r\n console.log(this.weatherItem, 'asdsads');\r\n })\r\n },\r\n Onweather(name) {\r\n // switch (name) {\r\n // \t\t\t\tcase \"多云\":\r\n // \t\t\t\t\treturn require('../assets/weather/Cloudy .png');\r\n // \t\t\t\tcase \"阴\":\r\n // \t\t\t\t\treturn require('../assets/weather/Cloudy .png')\r\n // \t\t\t\tcase \"暴雨\":\r\n // \t\t\t\t\treturn require('../assets/weather/rainstorm.png')\r\n // \t\t\t\tcase \"冰雹\":\r\n // \t\t\t\t\treturn require('../assets/weather/hail.png')\r\n // \t\t\t\tcase \"大风\":\r\n // \t\t\t\t\treturn require('../assets/weather/gale.png')\r\n // \t\t\t\tcase \"大雪\":\r\n // \t\t\t\t\treturn require('../assets/weather/bigsnow.png')\r\n // \t\t\t\tcase \"大雨\":\r\n // \t\t\t\t\treturn require('../assets/weather/bigrain.png')\r\n // \t\t\t\tcase \"雷电\":\r\n // \t\t\t\t\treturn require('../assets/weather/thunder.png')\r\n // \t\t\t\tcase \"雷阵雨\":\r\n // \t\t\t\t\treturn require('../assets/weather/shower.png')\r\n // \t\t\t\tcase \"沙尘暴\":\r\n // \t\t\t\t\treturn require('../assets/weather/sand.png')\r\n // \t\t\t\tcase \"晴\":\r\n // \t\t\t\t\treturn require('../assets/weather/sun.png')\r\n // \t\t\t\tcase \"雾霾\":\r\n // \t\t\t\t\treturn require('../assets/weather/smog.png')\r\n // \t\t\t\tcase \"小雪\":\r\n // \t\t\t\t\treturn require('../assets/weather/snow.png')\r\n // \t\t\t\tcase \"小雨\":\r\n // \t\t\t\t\treturn require('../assets/weather/rain.png')\r\n // \t\t\t\tcase \"雪\":\r\n // \t\t\t\t\treturn require('../assets/weather/rainlitter.png')\r\n // \t\t\t\tcase \"多云\":\r\n // \t\t\t\t\treturn require('../assets/weather/night.png')\r\n // \t\t\t\tcase \"雨夹雪\":\r\n // \t\t\t\t\treturn require('../assets/weather/rainsnow.png')\r\n // \t\t\t\tcase \"月亮\":\r\n // \t\t\t\t\treturn require('../assets/weather/moon.png')\r\n // \t\t\t\tcase \"中雪\":\r\n // \t\t\t\t\treturn require('../assets/weather/mieddlesnow.png')\r\n // \t\t\t\tcase \"中雨\":\r\n // \t\t\t\t\treturn require('../assets/weather/middlerain.png')\r\n // \t\t\t}\r\n },\r\n //隐藏箱子\r\n hideBox() {\r\n this.$refs.htModels.handleFirstBox();\r\n }\r\n },\r\n components: {\r\n editModal,\r\n analysisConfiguration,\r\n dataBoard\r\n },\r\n};\r\n</script>\r\n<style scoped>\r\n.el-form-item {\r\n margin-bottom: 15px;\r\n}\r\n</style>\r\n"],"sourceRoot":"src/views"}]} |