feat: 添加设备列表排序功能,支持房号、配置版本和固件版本排序
This commit is contained in:
@@ -144,6 +144,7 @@ if (Nres.Status==200) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("roomtypeInfoNodeinfo")
|
console.log("roomtypeInfoNodeinfo")
|
||||||
console.log(this.data.roomtypeInfoNodeinfo)
|
console.log(this.data.roomtypeInfoNodeinfo)
|
||||||
this.LoopDebugging(null)
|
this.LoopDebugging(null)
|
||||||
@@ -394,7 +395,7 @@ if (Nres.Status==200) {
|
|||||||
|
|
||||||
if ( element2[0] == addrtype[0][0]) {
|
if ( element2[0] == addrtype[0][0]) {
|
||||||
li= myMap[index2][1]
|
li= myMap[index2][1]
|
||||||
li.push([element.ModalAddress,element.Name,addrtype[0][1]])
|
li.push([element.ModalAddress,element.Name,addrtype[0][1],element.addrindex])
|
||||||
myMap[index2][1]=li
|
myMap[index2][1]=li
|
||||||
addrtypelist=false
|
addrtypelist=false
|
||||||
break
|
break
|
||||||
@@ -403,7 +404,7 @@ if (Nres.Status==200) {
|
|||||||
|
|
||||||
if (addrtypelist) {
|
if (addrtypelist) {
|
||||||
li=[]
|
li=[]
|
||||||
li.push([element.ModalAddress,element.Name,addrtype[0][1]])
|
li.push([element.ModalAddress,element.Name,addrtype[0][1],element.addrindex])
|
||||||
myMap.push([addrtype[0][0],li])
|
myMap.push([addrtype[0][0],li])
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -412,6 +413,7 @@ if (Nres.Status==200) {
|
|||||||
|
|
||||||
roomtypeInfoNodeinfo=myMap.sort((a, b) => a[0] - b[0])
|
roomtypeInfoNodeinfo=myMap.sort((a, b) => a[0] - b[0])
|
||||||
//获取房间在线状态 roomstart
|
//获取房间在线状态 roomstart
|
||||||
|
|
||||||
console.log(roomtypeInfoNodeinfo)
|
console.log(roomtypeInfoNodeinfo)
|
||||||
|
|
||||||
|
|
||||||
@@ -421,6 +423,7 @@ if (Nres.Status==200) {
|
|||||||
this.setData({
|
this.setData({
|
||||||
roomtypeInfoNodeinfo:roomtypeInfoNodeinfo
|
roomtypeInfoNodeinfo:roomtypeInfoNodeinfo
|
||||||
})
|
})
|
||||||
|
|
||||||
console.log(this.data.roomtypeInfoNode)
|
console.log(this.data.roomtypeInfoNode)
|
||||||
},
|
},
|
||||||
GetloopType(loopaddr){
|
GetloopType(loopaddr){
|
||||||
@@ -503,6 +506,7 @@ if (Nres.Status==200) {
|
|||||||
let iset = await this.ControlStatusMainCircuit(id, narry, devarr)
|
let iset = await this.ControlStatusMainCircuit(id, narry, devarr)
|
||||||
if (iset) {
|
if (iset) {
|
||||||
roomtypeInfoNodeinfo[index][1][nindex][2] = narry
|
roomtypeInfoNodeinfo[index][1][nindex][2] = narry
|
||||||
|
|
||||||
this.setData({
|
this.setData({
|
||||||
roomtypeInfoNodeinfo: roomtypeInfoNodeinfo
|
roomtypeInfoNodeinfo: roomtypeInfoNodeinfo
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
<view class="bg-white ">
|
<view class="bg-white ">
|
||||||
<!-- <view style="text-align: left;font-weight: bold">播放测试:</view> -->
|
<!-- <view style="text-align: left;font-weight: bold">播放测试:</view> -->
|
||||||
<!-- <view style="text-align: left;font-weight: bold">播放测试:</view> -->
|
<view style="text-align: left;font-weight: bold; color: blue;">播放测试:</view>
|
||||||
<view class="Ncu-bar bg-white flex">
|
<view class="Ncu-bar bg-white flex">
|
||||||
<button bindtap="GetshowinfoClick" class="cu-btn round1 ulg margin-5" style="font-weight: bold;">播放欢迎词</button>
|
<button bindtap="GetshowinfoClick" class="cu-btn round1 ulg margin-5" style="font-weight: bold;">播放欢迎词</button>
|
||||||
<!-- <view style="text-align: left;font-weight: bold" class=" margin-xs radius ">音量:</view> -->
|
<!-- <view style="text-align: left;font-weight: bold" class=" margin-xs radius ">音量:</view> -->
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
<view class="bg-white " wx:for="{{roomtypeInfoNodeinfo}}" wx:for-item="row" wx:for-index="rowIndex">
|
<view class="bg-white " wx:for="{{roomtypeInfoNodeinfo}}" wx:for-item="row" wx:for-index="rowIndex">
|
||||||
|
|
||||||
<view class=" bg-white " wx:if="{{row[0]===1}}" >
|
<view class=" bg-white " wx:if="{{row[0]===1}}" >
|
||||||
<!-- <view style="text-align: left;font-weight: bold">设置设备开关状态:</view> -->
|
<view style="text-align: left;font-weight: bold; color: blue;">设置设备开关状态:</view>
|
||||||
<view class="Ncu-bar bg-white flex-sub" wx:for="{{row[1].length/4 }}" wx:for-index="colIndex" >
|
<view class="Ncu-bar bg-white flex-sub" wx:for="{{row[1].length/4 }}" wx:for-index="colIndex" >
|
||||||
<view class="Ncu-bar bg-white" wx:if="{{colIndex*4<row[1].length}}">
|
<view class="Ncu-bar bg-white" wx:if="{{colIndex*4<row[1].length}}">
|
||||||
<button id="1" class="cu-btn round1 margin-3 vlg" data-value="1" data-index="{{row[1][colIndex*4][0]}}" bindtap="SetDeviceSwitchStatus" wx:if="{{colIndex*4<row[1].length}}" style="background-color: {{row[1][colIndex*4][2][0][2]===0 ? '#E6E6E6 ':'#39b54a'}};" >{{row[1][colIndex*4][3]}}_{{row[1][colIndex*4][1]}}</button>
|
<button id="1" class="cu-btn round1 margin-3 vlg" data-value="1" data-index="{{row[1][colIndex*4][0]}}" bindtap="SetDeviceSwitchStatus" wx:if="{{colIndex*4<row[1].length}}" style="background-color: {{row[1][colIndex*4][2][0][2]===0 ? '#E6E6E6 ':'#39b54a'}};" >{{row[1][colIndex*4][3]}}_{{row[1][colIndex*4][1]}}</button>
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="bg-white" wx:if="{{row[0]===23}}">
|
<view class="bg-white" wx:if="{{row[0]===23}}">
|
||||||
<!-- <view style="text-align: left;font-weight: bold">设置调光亮度:</view> -->
|
<view style="text-align: left;font-weight: bold; color: blue">设置调光亮度:</view>
|
||||||
<view class="bg-white" wx:for="{{row[1].length}}" wx:for-index="DimIndex" >
|
<view class="bg-white" wx:for="{{row[1].length}}" wx:for-index="DimIndex" >
|
||||||
<view class="Ncu-bar bg-white">
|
<view class="Ncu-bar bg-white">
|
||||||
<view class="flex-twice">{{row[1][DimIndex][3]}}_{{row[1][DimIndex][1]}}</view>
|
<view class="flex-twice">{{row[1][DimIndex][3]}}_{{row[1][DimIndex][1]}}</view>
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
<view class="ControlLine"></view>
|
<view class="ControlLine"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bg-white" wx:if="{{row[0]===52}}">
|
<view class="bg-white" wx:if="{{row[0]===52}}">
|
||||||
<!-- <view style="text-align: left;font-weight: bold">色温控制:</view> -->
|
<view style="text-align: left;font-weight: bold; color: blue">色温控制:</view>
|
||||||
<view class="Ncu-bar bg-white">
|
<view class="Ncu-bar bg-white">
|
||||||
<view class="action margin-0 flex-twice text-green " >开关</view>
|
<view class="action margin-0 flex-twice text-green " >开关</view>
|
||||||
<view class="action margin-0 flex-xis text-green solid-left" >色温</view>
|
<view class="action margin-0 flex-xis text-green solid-left" >色温</view>
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
<view class="ControlLine"></view>
|
<view class="ControlLine"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bg-white" wx:if="{{row[0]===5}}">
|
<view class="bg-white" wx:if="{{row[0]===5}}">
|
||||||
<!-- <view style="text-align: left;font-weight: bold">设置设备开停关状态:</view> -->
|
<view style="text-align: left;font-weight: bold; color: blue">设置设备开停关状态:</view>
|
||||||
<view class="bg-white" wx:for="{{row[1].length}}" wx:for-index="coloIndex">
|
<view class="bg-white" wx:for="{{row[1].length}}" wx:for-index="coloIndex">
|
||||||
<view class="Ncu-bar bg-white">
|
<view class="Ncu-bar bg-white">
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
<view class="ControlLine"></view>
|
<view class="ControlLine"></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bg-white" wx:if="{{row[0]===7}}">
|
<view class="bg-white" wx:if="{{row[0]===7}}">
|
||||||
<!-- <view style="text-align: left;font-weight: bold">设置温控设备状态:</view> -->
|
<view style="text-align: left;font-weight: bold; color: blue">设置温控设备状态:</view>
|
||||||
<view class=" bg-white" wx:for="{{row[1].length}}" wx:for-index="coloIndex">
|
<view class=" bg-white" wx:for="{{row[1].length}}" wx:for-index="coloIndex">
|
||||||
|
|
||||||
<view class="Ncu-bar bg-white">
|
<view class="Ncu-bar bg-white">
|
||||||
|
|||||||
@@ -54,6 +54,9 @@ Page({
|
|||||||
CurrentUpgradeDev:'', //当前升级设备
|
CurrentUpgradeDev:'', //当前升级设备
|
||||||
CurrentUpgradeDevStart:'',//当前升级设备状态
|
CurrentUpgradeDevStart:'',//当前升级设备状态
|
||||||
UpgradeAllCount:0,
|
UpgradeAllCount:0,
|
||||||
|
RoomNumberSort: false,
|
||||||
|
ConfigVersionSort: false,
|
||||||
|
FirmwareVersionSort: false,
|
||||||
//MAC绑定相关
|
//MAC绑定相关
|
||||||
selHosts: null,
|
selHosts: null,
|
||||||
code: null,
|
code: null,
|
||||||
@@ -951,6 +954,7 @@ Page({
|
|||||||
devlist[nindex].UpgradeProgress = "";
|
devlist[nindex].UpgradeProgress = "";
|
||||||
devlist[nindex].Model =_this.removeNullCharsAndInvisibleChars(devlist[nindex].Model)
|
devlist[nindex].Model =_this.removeNullCharsAndInvisibleChars(devlist[nindex].Model)
|
||||||
}
|
}
|
||||||
|
devlist = this.applyDevlistSort(devlist)
|
||||||
}
|
}
|
||||||
const Nres = await GetRoomType({
|
const Nres = await GetRoomType({
|
||||||
HotelID:app.globalData.HotelId
|
HotelID:app.globalData.HotelId
|
||||||
@@ -1000,6 +1004,133 @@ if (Nres.Status==200) {
|
|||||||
return "NULL"
|
return "NULL"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
sortDevlistByRoomNumber(devlist) {
|
||||||
|
if (!Array.isArray(devlist)) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
return devlist.slice().sort((left, right) => {
|
||||||
|
const leftRoom = String(left && left.RoomNumber != null ? left.RoomNumber : '')
|
||||||
|
const rightRoom = String(right && right.RoomNumber != null ? right.RoomNumber : '')
|
||||||
|
const leftNumber = Number(leftRoom)
|
||||||
|
const rightNumber = Number(rightRoom)
|
||||||
|
|
||||||
|
const leftIsNumber = Number.isFinite(leftNumber)
|
||||||
|
const rightIsNumber = Number.isFinite(rightNumber)
|
||||||
|
|
||||||
|
if (leftIsNumber && rightIsNumber) {
|
||||||
|
return leftNumber - rightNumber
|
||||||
|
}
|
||||||
|
|
||||||
|
return leftRoom.localeCompare(rightRoom, 'zh-Hans-CN', { numeric: true, sensitivity: 'base' })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
sortDevlistByConfigVersion(devlist) {
|
||||||
|
if (!Array.isArray(devlist)) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
return devlist.slice().sort((left, right) => {
|
||||||
|
const leftConfig = String(left && left.ConfigVersion != null ? left.ConfigVersion : '')
|
||||||
|
const rightConfig = String(right && right.ConfigVersion != null ? right.ConfigVersion : '')
|
||||||
|
const leftPrefix = leftConfig.split('_')[0]
|
||||||
|
const rightPrefix = rightConfig.split('_')[0]
|
||||||
|
const leftNumber = Number(leftPrefix)
|
||||||
|
const rightNumber = Number(rightPrefix)
|
||||||
|
|
||||||
|
const leftIsNumber = Number.isFinite(leftNumber)
|
||||||
|
const rightIsNumber = Number.isFinite(rightNumber)
|
||||||
|
|
||||||
|
if (leftIsNumber && rightIsNumber) {
|
||||||
|
return leftNumber - rightNumber
|
||||||
|
}
|
||||||
|
|
||||||
|
if (leftIsNumber) {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rightIsNumber) {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return leftPrefix.localeCompare(rightPrefix, 'zh-Hans-CN', { numeric: true, sensitivity: 'base' })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
sortDevlistByFirmwareVersion(devlist) {
|
||||||
|
if (!Array.isArray(devlist)) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
return devlist.slice().sort((left, right) => {
|
||||||
|
const leftName = String(left && (left.VersionName || left.Version || left.Gfilename || left.FirmwareName) != null ? (left.VersionName || left.Version || left.Gfilename || left.FirmwareName) : '')
|
||||||
|
const rightName = String(right && (right.VersionName || right.Version || right.Gfilename || right.FirmwareName) != null ? (right.VersionName || right.Version || right.Gfilename || right.FirmwareName) : '')
|
||||||
|
const leftParts = leftName.split('_')
|
||||||
|
const rightParts = rightName.split('_')
|
||||||
|
const leftKey = leftParts.length >= 3 ? leftParts[2] : ''
|
||||||
|
const rightKey = rightParts.length >= 3 ? rightParts[2] : ''
|
||||||
|
const leftNumber = Number(leftKey)
|
||||||
|
const rightNumber = Number(rightKey)
|
||||||
|
|
||||||
|
const leftIsNumber = Number.isFinite(leftNumber)
|
||||||
|
const rightIsNumber = Number.isFinite(rightNumber)
|
||||||
|
|
||||||
|
if (leftIsNumber && rightIsNumber) {
|
||||||
|
return leftNumber - rightNumber
|
||||||
|
}
|
||||||
|
|
||||||
|
if (leftIsNumber) {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rightIsNumber) {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return String(leftKey).localeCompare(String(rightKey), 'zh-Hans-CN', { numeric: true, sensitivity: 'base' })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
applyDevlistSort(devlist) {
|
||||||
|
if (this.data.RoomNumberSort) {
|
||||||
|
return this.sortDevlistByRoomNumber(devlist)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.data.ConfigVersionSort) {
|
||||||
|
return this.sortDevlistByConfigVersion(devlist)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.data.FirmwareVersionSort) {
|
||||||
|
return this.sortDevlistByFirmwareVersion(devlist)
|
||||||
|
}
|
||||||
|
|
||||||
|
return Array.isArray(devlist) ? devlist.slice() : []
|
||||||
|
},
|
||||||
|
RoomNumberSortTap() {
|
||||||
|
const devlist = this.sortDevlistByRoomNumber(this.data.devlist)
|
||||||
|
this.setData({
|
||||||
|
RoomNumberSort: true,
|
||||||
|
ConfigVersionSort: false,
|
||||||
|
FirmwareVersionSort: false,
|
||||||
|
devlist
|
||||||
|
}, () => { this.updateCounts && this.updateCounts(); })
|
||||||
|
},
|
||||||
|
ConfigVersionSortTap() {
|
||||||
|
const devlist = this.sortDevlistByConfigVersion(this.data.devlist)
|
||||||
|
this.setData({
|
||||||
|
RoomNumberSort: false,
|
||||||
|
ConfigVersionSort: true,
|
||||||
|
FirmwareVersionSort: false,
|
||||||
|
devlist
|
||||||
|
}, () => { this.updateCounts && this.updateCounts(); })
|
||||||
|
},
|
||||||
|
FirmwareVersionSortTap() {
|
||||||
|
const devlist = this.sortDevlistByFirmwareVersion(this.data.devlist)
|
||||||
|
this.setData({
|
||||||
|
RoomNumberSort: false,
|
||||||
|
ConfigVersionSort: false,
|
||||||
|
FirmwareVersionSort: true,
|
||||||
|
devlist
|
||||||
|
}, () => { this.updateCounts && this.updateCounts(); })
|
||||||
},
|
},
|
||||||
updateCounts() {
|
updateCounts() {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ bindtouchend="handleTouchEnd" style="margin-bottom: 30rpx;">
|
|||||||
<view style="font-size: 32rpx;justify-content:start" >{{item.RoomNumber}}</view>
|
<view style="font-size: 32rpx;justify-content:start" >{{item.RoomNumber}}</view>
|
||||||
<view style="font-size: 20rpx;justify-content:start; color: {{(!item.MAC && item.Status !== 1) ? '#FF3B30' : '#666666'}};" >
|
<view style="font-size: 20rpx;justify-content:start; color: {{(!item.MAC && item.Status !== 1) ? '#FF3B30' : '#666666'}};" >
|
||||||
{{item.MAC || (item.Status !== 1 ? '点击扫码绑定主机' : '')}}
|
{{item.MAC || (item.Status !== 1 ? '点击扫码绑定主机' : '')}}
|
||||||
|
<br/>长按输入MAC地址绑定主机
|
||||||
</view>
|
</view>
|
||||||
<!-- 升级进度显示(若当前正在升级此房间) -->
|
<!-- 升级进度显示(若当前正在升级此房间) -->
|
||||||
<view wx:if="{{CurrentUpgradeDev == item.RoomNumber}}" class="upgrade-badge">升级: {{CurrentUpgradeDevStart}}</view>
|
<view wx:if="{{CurrentUpgradeDev == item.RoomNumber}}" class="upgrade-badge">升级: {{CurrentUpgradeDevStart}}</view>
|
||||||
@@ -123,16 +124,16 @@ bindtouchend="handleTouchEnd" style="margin-bottom: 30rpx;">
|
|||||||
|
|
||||||
<!-- 排序卡片 -->
|
<!-- 排序卡片 -->
|
||||||
<view class=" flex align-center " style="height: 40rpx;background: aquamarine; justify-content:flex-end; padding-right:12rpx;" >
|
<view class=" flex align-center " style="height: 40rpx;background: aquamarine; justify-content:flex-end; padding-right:12rpx;" >
|
||||||
<view style="display:flex; align-items:center; margin-left:12rpx;">
|
<view style="display:flex; align-items:center; margin-left:12rpx;" bindtap="RoomNumberSortTap">
|
||||||
<checkbox checked="{{Allcheckbox}}"></checkbox>
|
<checkbox checked="{{RoomNumberSort}}"></checkbox>
|
||||||
<text style="margin-left:6rpx;">房号排序</text>
|
<text style="margin-left:6rpx;">房号排序</text>
|
||||||
</view>
|
</view>
|
||||||
<view style="display:flex; align-items:center; margin-left:12rpx;">
|
<view style="display:flex; align-items:center; margin-left:12rpx;" bindtap="FirmwareVersionSortTap">
|
||||||
<checkbox checked="{{Allcheckbox}}"></checkbox>
|
<checkbox checked="{{FirmwareVersionSort}}"></checkbox>
|
||||||
<text style="margin-left:6rpx;">固件版本排序</text>
|
<text style="margin-left:6rpx;">固件版本排序</text>
|
||||||
</view>
|
</view>
|
||||||
<view style="display:flex; align-items:center; margin-left:12rpx;">
|
<view style="display:flex; align-items:center; margin-left:12rpx;" bindtap="ConfigVersionSortTap">
|
||||||
<checkbox checked="{{Allcheckbox}}"></checkbox>
|
<checkbox checked="{{ConfigVersionSort}}"></checkbox>
|
||||||
<text style="margin-left:6rpx;">配置版本排序</text>
|
<text style="margin-left:6rpx;">配置版本排序</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user