feat: 添加设备列表排序功能,支持房号、配置版本和固件版本排序
This commit is contained in:
@@ -144,6 +144,7 @@ if (Nres.Status==200) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
console.log("roomtypeInfoNodeinfo")
|
||||
console.log(this.data.roomtypeInfoNodeinfo)
|
||||
this.LoopDebugging(null)
|
||||
@@ -394,7 +395,7 @@ if (Nres.Status==200) {
|
||||
|
||||
if ( element2[0] == addrtype[0][0]) {
|
||||
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
|
||||
addrtypelist=false
|
||||
break
|
||||
@@ -403,7 +404,7 @@ if (Nres.Status==200) {
|
||||
|
||||
if (addrtypelist) {
|
||||
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])
|
||||
}
|
||||
|
||||
@@ -412,6 +413,7 @@ if (Nres.Status==200) {
|
||||
|
||||
roomtypeInfoNodeinfo=myMap.sort((a, b) => a[0] - b[0])
|
||||
//获取房间在线状态 roomstart
|
||||
|
||||
console.log(roomtypeInfoNodeinfo)
|
||||
|
||||
|
||||
@@ -421,6 +423,7 @@ if (Nres.Status==200) {
|
||||
this.setData({
|
||||
roomtypeInfoNodeinfo:roomtypeInfoNodeinfo
|
||||
})
|
||||
|
||||
console.log(this.data.roomtypeInfoNode)
|
||||
},
|
||||
GetloopType(loopaddr){
|
||||
@@ -503,6 +506,7 @@ if (Nres.Status==200) {
|
||||
let iset = await this.ControlStatusMainCircuit(id, narry, devarr)
|
||||
if (iset) {
|
||||
roomtypeInfoNodeinfo[index][1][nindex][2] = narry
|
||||
|
||||
this.setData({
|
||||
roomtypeInfoNodeinfo: roomtypeInfoNodeinfo
|
||||
})
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
<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; color: blue;">播放测试:</view>
|
||||
<view class="Ncu-bar bg-white flex">
|
||||
<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> -->
|
||||
@@ -91,7 +91,7 @@
|
||||
<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 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" 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>
|
||||
@@ -106,7 +106,7 @@
|
||||
</view>
|
||||
|
||||
<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="Ncu-bar bg-white">
|
||||
<view class="flex-twice">{{row[1][DimIndex][3]}}_{{row[1][DimIndex][1]}}</view>
|
||||
@@ -117,7 +117,7 @@
|
||||
<view class="ControlLine"></view>
|
||||
</view>
|
||||
<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="action margin-0 flex-twice text-green " >开关</view>
|
||||
<view class="action margin-0 flex-xis text-green solid-left" >色温</view>
|
||||
@@ -165,7 +165,7 @@
|
||||
<view class="ControlLine"></view>
|
||||
</view>
|
||||
<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="Ncu-bar bg-white">
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
<view class="ControlLine"></view>
|
||||
</view>
|
||||
<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="Ncu-bar bg-white">
|
||||
|
||||
@@ -54,6 +54,9 @@ Page({
|
||||
CurrentUpgradeDev:'', //当前升级设备
|
||||
CurrentUpgradeDevStart:'',//当前升级设备状态
|
||||
UpgradeAllCount:0,
|
||||
RoomNumberSort: false,
|
||||
ConfigVersionSort: false,
|
||||
FirmwareVersionSort: false,
|
||||
//MAC绑定相关
|
||||
selHosts: null,
|
||||
code: null,
|
||||
@@ -951,6 +954,7 @@ Page({
|
||||
devlist[nindex].UpgradeProgress = "";
|
||||
devlist[nindex].Model =_this.removeNullCharsAndInvisibleChars(devlist[nindex].Model)
|
||||
}
|
||||
devlist = this.applyDevlistSort(devlist)
|
||||
}
|
||||
const Nres = await GetRoomType({
|
||||
HotelID:app.globalData.HotelId
|
||||
@@ -1000,6 +1004,133 @@ if (Nres.Status==200) {
|
||||
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() {
|
||||
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: 20rpx;justify-content:start; color: {{(!item.MAC && item.Status !== 1) ? '#FF3B30' : '#666666'}};" >
|
||||
{{item.MAC || (item.Status !== 1 ? '点击扫码绑定主机' : '')}}
|
||||
<br/>长按输入MAC地址绑定主机
|
||||
</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 style="display:flex; align-items:center; margin-left:12rpx;">
|
||||
<checkbox checked="{{Allcheckbox}}"></checkbox>
|
||||
<view style="display:flex; align-items:center; margin-left:12rpx;" bindtap="RoomNumberSortTap">
|
||||
<checkbox checked="{{RoomNumberSort}}"></checkbox>
|
||||
<text style="margin-left:6rpx;">房号排序</text>
|
||||
</view>
|
||||
<view style="display:flex; align-items:center; margin-left:12rpx;">
|
||||
<checkbox checked="{{Allcheckbox}}"></checkbox>
|
||||
<view style="display:flex; align-items:center; margin-left:12rpx;" bindtap="FirmwareVersionSortTap">
|
||||
<checkbox checked="{{FirmwareVersionSort}}"></checkbox>
|
||||
<text style="margin-left:6rpx;">固件版本排序</text>
|
||||
</view>
|
||||
<view style="display:flex; align-items:center; margin-left:12rpx;">
|
||||
<checkbox checked="{{Allcheckbox}}"></checkbox>
|
||||
<view style="display:flex; align-items:center; margin-left:12rpx;" bindtap="ConfigVersionSortTap">
|
||||
<checkbox checked="{{ConfigVersionSort}}"></checkbox>
|
||||
<text style="margin-left:6rpx;">配置版本排序</text>
|
||||
</view>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user