{"remainingRequest":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\视频边缘计算管理平台\\TransFlow\\src\\views\\AnalysisMain.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\视频边缘计算管理平台\\TransFlow\\src\\views\\AnalysisMain.vue","mtime":1675837587627},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\视频边缘计算管理平台\\TransFlow\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"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\r\nimport editModal from \"@/views/bounced/maintenanceRemind\";\r\nimport {getGetShipjk,getDeleteShipjk,getApplication,getStopAlgorithm} from \"../api/index\";\r\nimport serverUrl from \"../config/apiurl.js\"\r\nimport axios from 'axios'\r\nimport mqttConfig from \"@/utils/mqttConfig.js\";\r\nvar mqtt; //mqtt 处理对象(全局变量)\r\nvar client;\r\nexport default {\r\n data(){\r\n return{\r\n receiveNews: \"\",\r\n topicSends:[],\r\n componentShow: \"\",\r\n numArr:[],\r\n currentDate: new Date(),\r\n closeStatus: null,\r\n dis:false,\r\n dialogFormVisible: false,\r\n videoTypeShow: false,\r\n loading:true,\r\n fileList: [],\r\n form: {\r\n radio:'',\r\n videoName:'测试视频01',\r\n city:'',\r\n videoStreamAddress:'',\r\n videoPath:''\r\n },\r\n formLabelWidth: '120px',\r\n formLabelWidth: '200px',\r\n videoTypeForm:{\r\n videoType:'实时视频'\r\n },\r\n videoList:[],\r\n fullscreenLoading: false\r\n }\r\n },\r\n mounted() {\r\n console.log(\"dialogFormVisible\",this.dialogFormVisible)\r\n this.getVideoList()\r\n this.createMqtt()\r\n },\r\n //离开当前页面后执行\r\ndestroyed: function () {\r\n// console.log(\"离开当前页\")\r\n// client.end();\r\n},\r\n methods: {\r\n /** 创建mqtt */\r\n createMqtt() {\r\n //创建链接,接收数据\r\n console.log(window.PubScribe,'********************');\r\n window.PubScribe(null,-1,this.realInfo);\r\n /*mqtt = new mqttConfig(this.topicSends);\r\n client = mqtt.createConnect();\r\n // client.subscribe(,, { qos: 0 })\r\n // client.subscribe('img'+this.videoList[i].num, { qos: 0 }, (err)=> {\r\n // if (!err) {\r\n // console.log(\"订阅成功\");\r\n // client.publish('msg_stream',JSON.stringify({\"msg_flag\":parseInt(-1)})) \r\n \r\n // } else {\r\n // console.log('消息订阅失败!')\r\n // }\r\n // }); \r\n // setTimeout(function() {\r\n client.subscribe(['hert','img0','img1','img2','img3','img4','img5','img6','img7'], { qos: 0 }, (err)=> {\r\n if (!err) {\r\n console.log(\"订阅图片成功\");\r\n // client.publish('msg_stream',JSON.stringify({\"msg_flag\":parseInt(-1)})) \r\n \r\n } else {\r\n console.log('消息订阅失败!')\r\n }\r\n }); \r\n // }, 5000);\r\n client.on(\"message\", (topic, message) => {\r\n //数据分类\r\n try {\r\n // this.receiveNews = this.receiveNews.concat(message);\r\n // this.realInfo(topic, this.receiveNews);\r\n this.realInfo(topic, message);\r\n } catch (error) {\r\n\r\n }\r\n });*/\r\n },\r\n //停止订阅mqtt\r\n disConnect() {\r\n // if (client != null) {\r\n // client.unsubscribe(this.topicSends);\r\n // client = null;\r\n // }\r\n },\r\n /** 实时数据分类 */\r\n realInfo(topic, message) {\r\n // console.log(\"topic\",topic)\r\n switch (topic) {\r\n // 接收托片\r\n case \"img0\":\r\n case \"img1\":\r\n case \"img2\":\r\n case \"img3\":\r\n case \"img4\":\r\n case \"img5\":\r\n case \"img6\":\r\n case \"img7\":\r\n case \"img8\":\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 // var newArr = []\r\n //msg为转换后的JSON数据\r\n console.log(\"msg\",msg)\r\n if(msg.rate=='low'){\r\n // console.log(\"msg\", msg) \r\n if(this.videoList.length!=0){\r\n for (let i = 0; i < this.videoList.length; i++) { \r\n if(msg.id==this.videoList[i].id){\r\n this.videoList[i].img ='data:image/png;base64,' + msg.pic\r\n } \r\n }\r\n }\r\n }\r\n \r\n // this.imgUrl3 = 'data:image/png;base64,' + msg.pic;\r\n // console.log(\"imageUrl\", imageUrl)\r\n \r\n } catch (error) {\r\n\r\n }\r\n break;\r\n case \"hert\":\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(\"hert\", msg) //msg为转换后的JSON数据\r\n if(msg==''){\r\n\r\n }\r\n \r\n } catch (error) {\r\n\r\n }\r\n break;\r\n }\r\n this.receiveNews = \"\";\r\n },\r\n informationInfo(data,item) {\r\n console.log(\"data\",data)\r\n if(data=='新增'){\r\n this.form={\r\n radio: '',\r\n videoName:'测试视频01',\r\n city:'',\r\n videoStreamAddress:'',\r\n videoPath:''\r\n },\r\n \r\n this.dialogFormVisible = true;\r\n }\r\n \r\n },\r\n open(item) {\r\n console.log(\"item\",item)\r\n this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n getDeleteShipjk({VideoId:item}).then(res=>{\r\n console.log(\"res\",res)\r\n this.$message({\r\n type: 'success',\r\n message: '删除成功!'\r\n });\r\n this.getVideoList()\r\n })\r\n \r\n }).catch(() => {\r\n this.$message({\r\n type: 'info',\r\n message: '已取消删除'\r\n }); \r\n });\r\n },\r\n commit(form){\r\n console.log(\"form\",form)\r\n let formData = new FormData();\r\n formData.append(\"VideoName\",form.videoName);\r\n formData.append(\"VideoType\",this.videoTypeForm.videoType);\r\n if(this.videoTypeForm.videoType=='离线视频'){\r\n formData.append(\"VideoPath\",form.videoStreamAddress);\r\n \r\n }else{\r\n formData.append(\"VideoStreamAddress\",form.videoStreamAddress);\r\n }\r\n axios({\r\n method: \"post\",\r\n url: serverUrl.dataUrl,\r\n data:formData\r\n }).then((res) => {\r\n console.log(\"提交按钮\",res)\r\n if(res.data.msg=='添加成功'){\r\n this.$message({\r\n message: res.data.msg,\r\n type: 'success'\r\n });\r\n this.getVideoList()\r\n }else{\r\n this.$message({\r\n message: res.data.msg,\r\n type: 'warning'\r\n });\r\n }\r\n\r\n this.dialogFormVisible = false;\r\n \r\n });\r\n \r\n },\r\n handleFileChange(e) {\r\n let inputDOM = this.$refs.inputer;\r\n this.file = inputDOM.files[0];// 通过DOM取文件数据\r\n\r\n },\r\n //应用\r\n applicationBtn(){\r\n getApplication().then(res=>{\r\n console.log(\"res\",res)\r\n if(res.data.code==200){\r\n const loading = this.$loading({\r\n lock: true,\r\n text: 'Loading',\r\n spinner: 'el-icon-loading',\r\n background: 'rgba(0, 0, 0, 0.7)'\r\n });\r\n setTimeout(() => {\r\n loading.close();\r\n this.getVideoList()\r\n this.$message({\r\n message: res.data.msg,\r\n type: 'success'\r\n });\r\n }, 5000); \r\n }\r\n })\r\n },\r\n //停止\r\n stopAlgorithmBtn(){\r\n getStopAlgorithm().then(res=>{\r\n console.log(\"res\",res)\r\n if(res.data.code==200){\r\n this.getVideoList()\r\n this.$message({\r\n message: res.data.msg,\r\n type: 'success'\r\n });\r\n }\r\n })\r\n },\r\n S4() {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n },\r\n guid() {\r\n return (this.S4() + this.S4() + \"-\" + this.S4() + \"-\" + this.S4() + \"-\" + this.S4() + \"-\" + this.S4() + this.S4() + this.S4());\r\n },\r\n load() {\r\n let size = this.file.size;//文件大小\r\n\r\n let maxZrea = 8; //设置每个分区大小 MB\r\n let bufferSize = maxZrea * (1024 * 1024);\r\n let fileStart = 0;\r\n let fileEnd = bufferSize;\r\n let arrFile = [];\r\n var loadingN = this.$loading({\r\n lock: true,\r\n text: '正在上传中',\r\n target: '.el-dialog',\r\n spinner: 'el-icon-loading',\r\n background: 'rgba(0, 0, 0, 0.7)'\r\n });\r\n while (fileStart < size) {\r\n var fileInfo = {\r\n File: this.file.slice(fileStart, fileEnd),\r\n Start: fileStart,\r\n End: fileEnd\r\n }\r\n arrFile.push(fileInfo);\r\n fileStart = fileEnd;\r\n fileEnd = fileStart + bufferSize;\r\n }\r\n let count = arrFile.length;\r\n let filename = this.file.name + \"~\" + this.guid();\r\n for (var i = 0; i < count; i++) {\r\n let formData = new FormData();//new一个formData事件\r\n formData.append(\"file\", arrFile[i].File); //将file属性添加到formData里\r\n var url = serverUrl.getSpareElementOrder+\"?Name=\" + filename + \"&Number=\" + i + \"&BufferSize=\" + bufferSize + \"&Count=\" + count + \"&Start=\" + arrFile[i].Start + \"&End=\" + arrFile[i].End + \"&Size=\" + size;\r\n axios.post(url, formData, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data;\",\r\n }\r\n }).then(r => {\r\n if (r.data.code!=200) {\r\n\r\n }else{ \r\n if(r.data.data==null){\r\n this.dis = true \r\n }else{\r\n this.dis = false\r\n loadingN.close();\r\n this.$message({\r\n message: r.data.msg,\r\n type: 'success'\r\n });\r\n this.form.videoStreamAddress=r.data.data\r\n }\r\n }\r\n }).catch(e => {\r\n console.log(e);\r\n });\r\n }\r\n },\r\n goToPage(id,num,name,type,status) {\r\n\r\n this.$router.push({path:'index',query: {id:id,num:num,name:name,type:type,status:status\r\n}})\r\n \r\n },\r\n //获取视频数据\r\n getVideoList(){\r\n getGetShipjk().then(res=>{\r\n console.log(\"res\",res)\r\n if(res.data.msg=='成功'){\r\n \r\n var arr = [];\r\n res.data.data.forEach((item)=>{\r\n arr.push({\r\n id: item.videoId, \r\n type: item.videoType,\r\n title: item.videoName,\r\n num:item.number,\r\n status:item.status,\r\n videoStreamAddress:item.videoStreamAddress,\r\n videoPath:item.videoPath,\r\n img: require('@/assets/img/AnalysisMain/img1.png'),\r\n });\r\n }) \r\n this.videoList=arr\r\n if(this.videoList.length=='0'){\r\n this.videoTypeShow = true\r\n }else{\r\n this.videoTypeShow = false\r\n }\r\n console.log(\"this.videoList\",this.videoList)\r\n }\r\n })\r\n },\r\n\r\n handleRemove(file, fileList) {\r\n console.log(file, fileList);\r\n },\r\n handlePreview(file) {\r\n console.log(file);\r\n },\r\n handleExceed(files, fileList) {\r\n this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);\r\n },\r\n beforeRemove(file, fileList) {\r\n return this.$confirm(`确定移除 ${ file.name }?`);\r\n },\r\n },\r\n \r\n\r\n components: {\r\n editModal\r\n },\r\n}\r\n",{"version":3,"sources":["AnalysisMain.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA","file":"AnalysisMain.vue","sourceRoot":"src/views","sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n\r\n"]}]}