diff --git a/main/manager-web/src/views/DeviceManagement.vue b/main/manager-web/src/views/DeviceManagement.vue
index 35238371..55f781fa 100644
--- a/main/manager-web/src/views/DeviceManagement.vue
+++ b/main/manager-web/src/views/DeviceManagement.vue
@@ -74,7 +74,7 @@
- {{ isAllSelected ? '取消全选' : '全选' }}
+ {{ isCurrentPageAllSelected ? '取消全选' : '全选' }}
验证码绑定
@@ -128,8 +128,6 @@ export default {
return {
addDeviceDialogVisible: false,
manualAddDeviceDialogVisible: false,
- selectedDevices: [],
- isAllSelected: false,
searchKeyword: "",
activeSearchKeyword: "",
currentAgentId: this.$route.query.agentId || '',
@@ -160,6 +158,11 @@ export default {
pageCount() {
return Math.ceil(this.filteredDeviceList.length / this.pageSize);
},
+ // 计算当前页是否全选
+ isCurrentPageAllSelected() {
+ return this.paginatedDeviceList.length > 0 &&
+ this.paginatedDeviceList.every(device => device.selected);
+ },
visiblePages() {
const pages = [];
const maxVisible = 3;
@@ -205,16 +208,15 @@ export default {
},
handleSelectAll() {
- this.isAllSelected = !this.isAllSelected;
+ const shouldSelectAll = !this.isCurrentPageAllSelected;
this.paginatedDeviceList.forEach(row => {
- row.selected = this.isAllSelected;
+ row.selected = shouldSelectAll;
});
- this.selectedDevices = this.paginatedDeviceList.filter(device => device.selected);
},
deleteSelected() {
- this.selectedDevices = this.paginatedDeviceList.filter(device => device.selected);
- if (this.selectedDevices.length === 0) {
+ const selectedDevices = this.paginatedDeviceList.filter(device => device.selected);
+ if (selectedDevices.length === 0) {
this.$message.warning({
message: '请至少选择一条记录',
showClose: true
@@ -222,12 +224,12 @@ export default {
return;
}
- this.$confirm(`确认要解绑选中的 ${this.selectedDevices.length} 台设备吗?`, '警告', {
+ this.$confirm(`确认要解绑选中的 ${selectedDevices.length} 台设备吗?`, '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
- const deviceIds = this.selectedDevices.map(device => device.device_id);
+ const deviceIds = selectedDevices.map(device => device.device_id);
this.batchUnbindDevices(deviceIds);
});
},
@@ -250,8 +252,6 @@ export default {
showClose: true
});
this.fetchBindDevices(this.currentAgentId);
- this.selectedDevices = [];
- this.isAllSelected = false;
})
.catch(error => {
this.$message.error({
@@ -355,7 +355,8 @@ export default {
isEdit: false,
_submitting: false,
otaSwitch: device.autoUpdate === 1,
- rawBindTime: new Date(device.createDate).getTime()
+ rawBindTime: new Date(device.createDate).getTime(),
+ selected: false
};
})
.sort((a, b) => a.rawBindTime - b.rawBindTime);