|  | @@ -427,3 +427,193 @@ function registerEvent() {
 | 
	
		
			
				|  |  |                  exitFps();
 | 
	
		
			
				|  |  |                  restarRotate();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            checkBtnActives(['#mapBg', '#sceneSetting']);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    window.onresize = function () {
 | 
	
		
			
				|  |  | +        if (!checkFull()) {
 | 
	
		
			
				|  |  | +            //要执行的动作
 | 
	
		
			
				|  |  | +            if (fullScreenState == true) {
 | 
	
		
			
				|  |  | +                $('.btn-full-screen').css('display', 'block');
 | 
	
		
			
				|  |  | +                $('.btn-narrow').css('display', 'none');
 | 
	
		
			
				|  |  | +                $('#fullScreen span').text('全屏');
 | 
	
		
			
				|  |  | +                fullScreenState = false;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//====设备闪烁提示====
 | 
	
		
			
				|  |  | +function flash(objArray) {
 | 
	
		
			
				|  |  | +    objArray.forEach(function (obj) {
 | 
	
		
			
				|  |  | +        obj.on('update', function () {
 | 
	
		
			
				|  |  | +            obj.style.color = '#FFF000'
 | 
	
		
			
				|  |  | +            obj.style.opacity = 0.5 + 0.5 * Math.sin(2 * app.elapsedTime / 500);
 | 
	
		
			
				|  |  | +        }, '每帧改变透明度');
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function queryDeviceStatus(evt) {
 | 
	
		
			
				|  |  | +    objArray = evt.data;
 | 
	
		
			
				|  |  | +    // objArray.forEach(function (deviceobj) {
 | 
	
		
			
				|  |  | +    //     obj = app.query("#" + deviceobj.ownerCode)[0];
 | 
	
		
			
				|  |  | +    //     obj.on('update', function () {
 | 
	
		
			
				|  |  | +    //         obj.style.color = '#FF0000'
 | 
	
		
			
				|  |  | +    //         obj.style.opacity = 0.5 + 0.5 * Math.sin(2 * app.elapsedTime / 500);
 | 
	
		
			
				|  |  | +    //     }, '每帧改变透明度');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // })
 | 
	
		
			
				|  |  | +    obj = app.query("#" + objArray)[0];
 | 
	
		
			
				|  |  | +    obj.on('update', function () {
 | 
	
		
			
				|  |  | +        obj.style.color = '#FF0000'
 | 
	
		
			
				|  |  | +        obj.style.opacity = 0.5 + 0.5 * Math.sin(2 * app.elapsedTime / 500);
 | 
	
		
			
				|  |  | +    }, '每帧改变透明度');
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function reset(objArray) {
 | 
	
		
			
				|  |  | +    objArray.forEach(function (obj) {
 | 
	
		
			
				|  |  | +        obj.style.opacity = 1.0;
 | 
	
		
			
				|  |  | +        obj.style.color = null;
 | 
	
		
			
				|  |  | +        obj.off('update', null, '每帧改变透明度');
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +var timer = null;
 | 
	
		
			
				|  |  | +function getTabledata(d) {
 | 
	
		
			
				|  |  | +    var ygArray = [];
 | 
	
		
			
				|  |  | +    d.forEach(function (d) {
 | 
	
		
			
				|  |  | +        var deviceInfo = {
 | 
	
		
			
				|  |  | +            "设备编号": d.ownerCode,
 | 
	
		
			
				|  |  | +            "设备名称": d.ownerName,
 | 
	
		
			
				|  |  | +            "安装位置": d.unitinfo,
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        ygArray.push(deviceInfo)
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    // 表格数据//创建对象 book
 | 
	
		
			
				|  |  | +    var tableData = {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 列标题
 | 
	
		
			
				|  |  | +        props: ['设备编号', '设备名称', '安装位置'],
 | 
	
		
			
				|  |  | +        // 列数据
 | 
	
		
			
				|  |  | +        items: ygArray
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +    return tableData;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function createPerson(name, age, family) {
 | 
	
		
			
				|  |  | +    var o = new Object();
 | 
	
		
			
				|  |  | +    o.name = name;
 | 
	
		
			
				|  |  | +    o.age = age;
 | 
	
		
			
				|  |  | +    o.family = family;
 | 
	
		
			
				|  |  | +    o.say = function () {
 | 
	
		
			
				|  |  | +        alert(this.name);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return o;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function destroyPanel() {
 | 
	
		
			
				|  |  | +    var mydiv = document.getElementById('mydiv')
 | 
	
		
			
				|  |  | +    mydiv.remove();
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//====================
 | 
	
		
			
				|  |  | +function updateData(obj) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /** ******************* 以下为websoket数据对接 ********************/
 | 
	
		
			
				|  |  | +    // 对接自有websoket服务器
 | 
	
		
			
				|  |  | +    if (!webSocket) {
 | 
	
		
			
				|  |  | +        // 如果网站是 https 则对应 wss
 | 
	
		
			
				|  |  | +        // 如果网站是 http 则对应 ws 即可
 | 
	
		
			
				|  |  | +        webSocket = new WebSocket('ws://101.133.214.75:8080/Device_Manager/socket');
 | 
	
		
			
				|  |  | +        // 建立 websocket 连接成功触发事件
 | 
	
		
			
				|  |  | +        webSocket.onopen = function () {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        // 接收服务端数据时触发事件
 | 
	
		
			
				|  |  | +        webSocket.onmessage = function (evt) {
 | 
	
		
			
				|  |  | +            queryDeviceStatus(evt);
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +        webSocket.onclose = function (evt) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            webSocket = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//接收父级页面数据
 | 
	
		
			
				|  |  | +function userListener(data) {
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    buildingStore = data.data;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 监听用户页面传回的数据 并调用 ThingJS 页面方法
 | 
	
		
			
				|  |  | +window.addEventListener('message', function (e) {
 | 
	
		
			
				|  |  | +    var _this=this;
 | 
	
		
			
				|  |  | +    var array;
 | 
	
		
			
				|  |  | +    var data = e.data;
 | 
	
		
			
				|  |  | +    var funcName = data.funcName;
 | 
	
		
			
				|  |  | +    var param = data.param;
 | 
	
		
			
				|  |  | +    var company_code = e.data.param.company_code
 | 
	
		
			
				|  |  | +    // 调用 ThingJS 页面方法
 | 
	
		
			
				|  |  | +    window[funcName](param);
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    //请求场景url的json文件
 | 
	
		
			
				|  |  | +    $.ajax({
 | 
	
		
			
				|  |  | +        type: "GET",
 | 
	
		
			
				|  |  | +        url:'/uploads/wechat/163607/file/杨浦16/park.json',
 | 
	
		
			
				|  |  | +        dataType: "json",
 | 
	
		
			
				|  |  | +        success: function (data) {
 | 
	
		
			
				|  |  | +            for(let i = 0; i < data.array.length; i++){
 | 
	
		
			
				|  |  | +                if(company_code === data.array[i].id){
 | 
	
		
			
				|  |  | +                    campusUrl = data.array[i]
 | 
	
		
			
				|  |  | +                    _this.changeScene(campusUrl);
 | 
	
		
			
				|  |  | +                    _this.createWidgets();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//父级页面数据处理
 | 
	
		
			
				|  |  | +function cleanObj(arr, key) {
 | 
	
		
			
				|  |  | +    var map = {},
 | 
	
		
			
				|  |  | +        dest = [];
 | 
	
		
			
				|  |  | +    for (var i = 0; i < arr.length; i++) {
 | 
	
		
			
				|  |  | +        var ai = arr[i];
 | 
	
		
			
				|  |  | +        if (!map[ai.min_level]) {
 | 
	
		
			
				|  |  | +            dest.push({
 | 
	
		
			
				|  |  | +                min_level: ai.min_level,
 | 
	
		
			
				|  |  | +                item: [ai]
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            map[ai.min_level] = ai;
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            for (var j = 0; j < dest.length; j++) {
 | 
	
		
			
				|  |  | +                var dj = dest[j];
 | 
	
		
			
				|  |  | +                if (dj.min_level == ai.min_level) {
 | 
	
		
			
				|  |  | +                    dj.item.push(ai);
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return dest;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +function uniq(array) {
 | 
	
		
			
				|  |  | +    var temp = []; //一个新的临时数组
 | 
	
		
			
				|  |  | +    for (var i = 0; i < array.length; i++) {
 | 
	
		
			
				|  |  | +        if (temp.indexOf(array[i]) == -1) {
 | 
	
		
			
				|  |  | +            temp.push(array[i]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return temp;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +//设备点位标识
 | 
	
		
			
				|  |  | +// function createDeviceElement(deviceType, floorNum) {
 | 
	
		
			
				|  |  | +//     removeMark();
 | 
	
		
			
				|  |  | +//     let data = cleanObj(buildingStore);
 | 
	
		
			
				|  |  | +//     for (var i = 0; i < data.length; i++) {
 | 
	
		
			
				|  |  | +//         if (data[i].min_level == floorNum) {
 | 
	
		
			
				|  |  | +//             let arry = data[i].item;
 | 
	
		
			
				|  |  | +//             for (var q = 0; q < arry.length; q++) {
 | 
	
		
			
				|  |  | +//                 if (arry[q].dwtype == deviceType) {
 | 
	
		
			
				|  |  | +//                     let devicename = arry[q].device_name;
 | 
	
		
			
				|  |  | +//                     let dwtype = arry[q].dwtype;
 | 
	
		
			
				|  |  | +//                     var ownercode = arry[q].owner_code
 | 
	
		
			
				|  |  | +//                     var textAndPictureMarkerHtml =
 | 
	
		
			
				|  |  | +//                         `<div  class="textAndPictureMarker" onclick="deviceIcon_click('${dwtype}','${floorNum}','${ownercode}')" style="position: absolute;">
 |