|  |  |  | 
|---|
|  |  |  | <el-header>设备列表</el-header> | 
|---|
|  |  |  | <el-main style="background-color: #ffffff;"> | 
|---|
|  |  |  | <div class="device-tree-main-box"> | 
|---|
|  |  |  | <el-tree :props="defaultProps" :load="loadNode" lazy @node-click="handleNodeClick"@node-contextmenu="handleContextMenu" style="min-width: 100%; display:inline-block !important;"> | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | props: ['clickEvent', 'contextMenuEvent'], | 
|---|
|  |  |  | props: ['device', 'onlyCatalog', 'clickEvent', 'contextMenuEvent'], | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | handleNodeClick(data,node,element) { | 
|---|
|  |  |  | console.log("点击事件") | 
|---|
|  |  |  | console.log(data) | 
|---|
|  |  |  | let deviceNode = this.$refs.gdTree.getNode(data.userData.deviceId) | 
|---|
|  |  |  | if(typeof (this.clickEvent) == "function") { | 
|---|
|  |  |  | this.clickEvent(data.userData) | 
|---|
|  |  |  | 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(event, data.userData) | 
|---|
|  |  |  | this.contextMenuEvent(deviceNode.data.userData, event, data.userData, data.type === 2) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | loadNode: function(node, resolve){ | 
|---|
|  |  |  | console.log(this.device) | 
|---|
|  |  |  | if (node.level === 0) { | 
|---|
|  |  |  | 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([]) | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, (error)=>{ | 
|---|
|  |  |  | 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) => { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (node.level === 1) { | 
|---|
|  |  |  | this.deviceService.getAllChannel(true, node.data.id, (catalogData) => { | 
|---|
|  |  |  | this.deviceService.getAllChannel(false, node.data.id, (channelData) => { | 
|---|
|  |  |  | let data = catalogData.concat(channelData) | 
|---|
|  |  |  | this.channelDataHandler(data, resolve) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }else if (node.level > 1){ | 
|---|
|  |  |  | this.deviceService.getAllSubChannel(true, node.data.deviceId, node.data.id, (catalogData)=>{ | 
|---|
|  |  |  | this.deviceService.getAllSubChannel(false, node.data.deviceId, node.data.id, (channelData)=>{ | 
|---|
|  |  |  | let data = catalogData.concat(channelData) | 
|---|
|  |  |  | this.channelDataHandler(data, resolve) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | channelDataHandler: function (data, resolve) { | 
|---|
|  |  |  | if (data.length > 0) { | 
|---|
|  |  |  | let nodeList = [] | 
|---|
|  |  |  | for (let i = 0; i < data.length; i++) { | 
|---|
|  |  |  | for (let i = 0; i <data.length; i++) { | 
|---|
|  |  |  | let item = data[i]; | 
|---|
|  |  |  | let type = 3; | 
|---|
|  |  |  | if (data[i].subCount > 0) { | 
|---|
|  |  |  | if (item.id.length <= 10) { | 
|---|
|  |  |  | type = 2; | 
|---|
|  |  |  | }else if (data[i].ptztype === 1 ) { // 1-球机;2-半球;3-固定枪机;4-遥控枪机 | 
|---|
|  |  |  | type = 4; | 
|---|
|  |  |  | }else if (data[i].ptztype === 2) { | 
|---|
|  |  |  | type = 5; | 
|---|
|  |  |  | }else if (data[i].ptztype === 3 || data[i].ptztype === 4) { | 
|---|
|  |  |  | type = 6; | 
|---|
|  |  |  | }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: data[i].name || data[i].channelId, | 
|---|
|  |  |  | isLeaf: data[i].subCount === 0, | 
|---|
|  |  |  | id: data[i].channelId, | 
|---|
|  |  |  | deviceId: data[i].deviceId, | 
|---|
|  |  |  | name: item.name || item.basicData.channelId, | 
|---|
|  |  |  | isLeaf: type !== 2, | 
|---|
|  |  |  | id: item.id, | 
|---|
|  |  |  | deviceId: item.deviceId, | 
|---|
|  |  |  | type: type, | 
|---|
|  |  |  | online: data[i].status === 1, | 
|---|
|  |  |  | hasGPS: data[i].longitude*data[i].latitude !== 0, | 
|---|
|  |  |  | userData: data[i] | 
|---|
|  |  |  | online: item.basicData.status === 1, | 
|---|
|  |  |  | hasGPS: item.basicData.longitude*item.basicData.latitude !== 0, | 
|---|
|  |  |  | userData: item.basicData | 
|---|
|  |  |  | } | 
|---|
|  |  |  | nodeList.push(node); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | resolve([]) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | reset: function (){ | 
|---|
|  |  |  | this.$forceUpdate(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | destroyed() { | 
|---|