| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 | 
							- <template>
 
-   <div id="DeviceTree" style="width: 100%;height: 100%; background-color: #FFFFFF; overflow: auto">
 
-     <el-container>
 
-       <el-header>设备列表</el-header>
 
-       <el-main style="background-color: #ffffff;">
 
-         <div class="device-tree-main-box">
 
-           <el-tree ref="gdTree" :props="defaultProps" :load="loadNode" lazy @node-click="handleNodeClick"@node-contextmenu="handleContextMenu" node-key="id" style="min-width: 100%; display:inline-block !important;">
 
-             <span class="custom-tree-node" slot-scope="{ node, data }" style="width: 100%">
 
-               <span v-if="node.data.type === 0 && node.data.online" title="在线设备" class="device-online iconfont icon-jiedianleizhukongzhongxin2"></span>
 
-               <span v-if="node.data.type === 0 && !node.data.online " title="离线设备" class="device-offline iconfont icon-jiedianleizhukongzhongxin2"></span>
 
-               <span v-if="node.data.type === 2 && node.data.online" title="目录"  class="device-online iconfont icon-jiedianleilianjipingtai"></span>
 
-               <span v-if="node.data.type === 2 && !node.data.online" title="目录"  class="device-offline iconfont icon-jiedianleilianjipingtai"></span>
 
-               <span v-if="node.data.type === 3 && node.data.online " title="在线通道" class="device-online iconfont icon-shebeileijiankongdian"></span>
 
-               <span v-if="node.data.type === 3 && !node.data.online" title="在线通道" class="device-offline iconfont icon-shebeileijiankongdian"></span>
 
-               <span v-if="node.data.type === 4 && node.data.online " title="在线通道-球机" class="device-online iconfont icon-shebeileiqiuji"></span>
 
-               <span v-if="node.data.type === 4 && !node.data.online" title="在线通道-球机" class="device-offline iconfont icon-shebeileiqiuji"></span>
 
-               <span v-if="node.data.type === 5 && node.data.online " title="在线通道-半球" class="device-online iconfont icon-shebeileibanqiu"></span>
 
-               <span v-if="node.data.type === 5 && !node.data.online" title="在线通道-半球" class="device-offline iconfont icon-shebeileibanqiu"></span>
 
-               <span v-if="node.data.type === 6 && node.data.online " title="在线通道-枪机" class="device-online iconfont icon-shebeileiqiangjitongdao"></span>
 
-               <span v-if="node.data.type === 6 && !node.data.online" title="在线通道-枪机" class="device-offline iconfont icon-shebeileiqiangjitongdao"></span>
 
-               <span v-if="node.data.online" style="padding-left: 1px" class="device-online">{{ node.label }}</span>
 
-               <span v-if="!node.data.online" style="padding-left: 1px" class="device-offline">{{ node.label }}</span>
 
-               <span>
 
-                 <i v-if="node.data.hasGPS && node.data.online" style="color: #9d9d9d" class="device-online iconfont icon-dizhi"></i>
 
-                 <i v-if="node.data.hasGPS && !node.data.online" style="color: #9d9d9d" class="device-offline iconfont icon-dizhi"></i>
 
-               </span>
 
-             </span>
 
-           </el-tree>
 
-         </div>
 
-       </el-main>
 
-     </el-container>
 
-   </div>
 
- </template>
 
- <script>
 
- import DeviceService from "../service/DeviceService.js";
 
- export default {
 
-     name: 'DeviceTree',
 
-     data() {
 
-         return {
 
-           deviceService: new DeviceService(),
 
-           defaultProps: {
 
-             children: 'children',
 
-             label: 'name',
 
-             isLeaf: 'isLeaf'
 
-           }
 
-         };
 
-     },
 
-     props: ['device', 'onlyCatalog', 'clickEvent', 'contextMenuEvent'],
 
-     methods: {
 
-       handleNodeClick(data,node,element) {
 
-         let deviceNode = this.$refs.gdTree.getNode(data.userData.deviceId)
 
-         if(typeof (this.clickEvent) == "function") {
 
-           this.clickEvent(deviceNode.data.userData, data.userData, data.type === 2)
 
-         }
 
-       },
 
-       handleContextMenu(event,data,node,element) {
 
-         console.log("右键点击事件")
 
-         let deviceNode = this.$refs.gdTree.getNode(data.userData.deviceId)
 
-         if(typeof (this.contextMenuEvent) == "function") {
 
-           this.contextMenuEvent(deviceNode.data.userData, event, data.userData, data.type === 2)
 
-         }
 
-       },
 
-       loadNode: function(node, resolve){
 
-         console.log(this.device)
 
-         if (node.level === 0) {
 
-           if (this.device) {
 
-             let node = {
 
-               name: this.device.name || this.device.deviceId,
 
-               isLeaf: false,
 
-               id: this.device.deviceId,
 
-               type: this.device.online,
 
-               online: this.device.online === 1,
 
-               userData: this.device
 
-             }
 
-             resolve([node])
 
-           }else {
 
-             this.deviceService.getAllDeviceList((data)=>{
 
-               console.log(data)
 
-               if (data.length > 0) {
 
-                 let nodeList = []
 
-                 for (let i = 0; i < data.length; i++) {
 
-                   console.log(data[i].name)
 
-                   let node = {
 
-                     name: data[i].name || data[i].deviceId,
 
-                     isLeaf: false,
 
-                     id: data[i].deviceId,
 
-                     type: data[i].online,
 
-                     online: data[i].online === 1,
 
-                     userData: data[i]
 
-                   }
 
-                   nodeList.push(node);
 
-                 }
 
-                 resolve(nodeList)
 
-               }else {
 
-                 resolve([])
 
-               }
 
-             }, (list)=>{
 
-               console.log("设备加载完成")
 
-             }, (error)=>{
 
-             })
 
-           }
 
-         }else {
 
-           let channelArray = []
 
-           this.deviceService.getTree(node.data.userData.deviceId, node.data.id, this.onlyCatalog, catalogData =>{
 
-             console.log(catalogData)
 
-             channelArray = channelArray.concat(catalogData)
 
-             this.channelDataHandler(channelArray, resolve)
 
-           },(endCatalogData) => {
 
-           })
 
-         }
 
-       },
 
-       channelDataHandler: function (data, resolve) {
 
-         if (data.length > 0) {
 
-           let nodeList = []
 
-           for (let i = 0; i <data.length; i++) {
 
-             let item = data[i];
 
-             let type = 3;
 
-             if (item.id.length <= 10) {
 
-               type = 2;
 
-             }else {
 
-               if (item.id.length > 14) {
 
-                 let channelType = item.id.substring(10, 13)
 
-                 console.log("channelType: " + channelType)
 
-                 if (channelType === '215' || channelType === '216') {
 
-                   type = 2;
 
-                 }
 
-                 console.log(type)
 
-                 if (item.basicData.ptztype === 1 ) { // 1-球机;2-半球;3-固定枪机;4-遥控枪机
 
-                   type = 4;
 
-                 }else if (item.basicData.ptztype === 2) {
 
-                   type = 5;
 
-                 }else if (item.basicData.ptztype === 3 || item.basicData.ptztype === 4) {
 
-                   type = 6;
 
-                 }
 
-               }else {
 
-                 if (item.basicData.subCount > 0 || item.basicData.parental === 1) {
 
-                   type = 2;
 
-                 }
 
-               }
 
-             }
 
-             let node = {
 
-               name: item.name || item.basicData.channelId,
 
-               isLeaf: type !== 2,
 
-               id: item.id,
 
-               deviceId: item.deviceId,
 
-               type: type,
 
-               online: item.basicData.status === 1,
 
-               hasGPS: item.basicData.longitude*item.basicData.latitude !== 0,
 
-               userData: item.basicData
 
-             }
 
-             nodeList.push(node);
 
-           }
 
-           resolve(nodeList)
 
-         }else {
 
-           resolve([])
 
-         }
 
-       },
 
-       reset: function (){
 
-         this.$forceUpdate();
 
-       }
 
-     },
 
-     destroyed() {
 
-       // if (this.jessibuca) {
 
-       //   this.jessibuca.destroy();
 
-       // }
 
-       // this.playing = false;
 
-       // this.loaded = false;
 
-       // this.performance = "";
 
-     },
 
- }
 
- </script>
 
- <style>
 
- .device-tree-main-box{
 
-   text-align: left;
 
- }
 
- .device-online{
 
-   color: #252525;
 
- }
 
- .device-offline{
 
-   color: #727272;
 
- }
 
- </style>
 
 
  |