module.exports = { updateDeviceList: updateDeviceList, } ///更新列表排序 function updateDeviceList(deviceList, isInit, closeAllBlue) { const strings = require('../strings'); if (strings.isEmpty(deviceList)) { return []; } const app = getApp(); const store = require('../store'); var finalList = []; if (isInit) { deviceList[0].state = "offline"; } /// 让所有蓝牙设备离线 if (closeAllBlue) { deviceList.forEach(element => { if (element.connectType != 3) { element.state = "offline"; } }); } ///挑选出第一个在线设备 var isFirstOnline = false; if (deviceList[0].state == "online") { isFirstOnline = true; finalList.push(deviceList[0]); } ///区分在线和离线 for (var i = isFirstOnline ? 1 : 0; i < deviceList.length; i++) { if (isInit) { deviceList[i].state = "offline"; } } var onLineList = []; var onNoLineList = []; ///添加在线的 for (var i = isFirstOnline ? 1 : 0; i < deviceList.length; i++) { var device = deviceList[i]; if (device.state == "online") { onLineList.push(device) } } ///添加离线的 for (var i = isFirstOnline ? 1 : 0; i < deviceList.length; i++) { var device = deviceList[i]; if (device.state != "online") { onNoLineList.push(device) } } // 区分在线wifi和蓝牙 wifi在前 离线在后 var onLineWifiList = []; var onLineBlueList = []; ///添加在线wifi onLineList.forEach(element => { if (element.connectType == 3) { onLineWifiList.push(element); } }); ///添加在线蓝牙 onLineList.forEach(element => { if (element.connectType != 3) { onLineBlueList.push(element) } }); finalList = finalList.concat(onLineWifiList); finalList = finalList.concat(onLineBlueList); ///只需要蓝牙和wifi在线的 var mDeviceList = [] mDeviceList = mDeviceList.concat(onLineWifiList); mDeviceList = mDeviceList.concat(onLineBlueList); app.globalData.mDeviceList = mDeviceList; ///区分离线wifi和蓝牙 wifi在前 离线在后 var onNoLineWifiList = []; var onNoLineBlueList = []; ///添加离线wifi onNoLineList.forEach(element => { if (element.connectType == 3) { onNoLineWifiList.push(element) } }); ///添加离线蓝牙 onNoLineList.forEach(element => { if (element.connectType != 3) { onNoLineBlueList.push(element) } }); finalList = finalList.concat(onNoLineWifiList); finalList = finalList.concat(onNoLineBlueList); store.setStore("deviceList", finalList); return finalList; };