Compare commits
4 Commits
6fce84c002
...
02e9f9b9a3
| Author | SHA1 | Date | |
|---|---|---|---|
| 02e9f9b9a3 | |||
| 983b929d90 | |||
| e48d5ab2d8 | |||
| 320df0b3d4 |
@@ -275,8 +275,16 @@ export default {
|
|||||||
if (newVal && Object.keys(newVal).length > 0) {
|
if (newVal && Object.keys(newVal).length > 0) {
|
||||||
// 填充表单数据
|
// 填充表单数据
|
||||||
Object.keys(formData).forEach(key => {
|
Object.keys(formData).forEach(key => {
|
||||||
if (newVal[key] !== undefined) {
|
// 处理字段名映射
|
||||||
formData[key] = newVal[key];
|
let dataKey = key;
|
||||||
|
if (key === 'parentControllerId') {
|
||||||
|
dataKey = 'parent_id';
|
||||||
|
} else if (key === 'subType') {
|
||||||
|
dataKey = 'sub_type';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newVal[dataKey] !== undefined) {
|
||||||
|
formData[key] = newVal[dataKey];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -303,6 +311,14 @@ export default {
|
|||||||
}
|
}
|
||||||
}, { immediate: true });
|
}, { immediate: true });
|
||||||
|
|
||||||
|
// 监听visible属性变化,当对话框打开时重新加载区域主控列表
|
||||||
|
watch(() => props.visible, (newVal) => {
|
||||||
|
if (newVal) {
|
||||||
|
// 对话框打开时重新加载区域主控列表
|
||||||
|
loadAreaControllers();
|
||||||
|
}
|
||||||
|
}, { immediate: true });
|
||||||
|
|
||||||
// 组件挂载时加载区域主控列表
|
// 组件挂载时加载区域主控列表
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loadAreaControllers();
|
loadAreaControllers();
|
||||||
|
|||||||
@@ -35,7 +35,9 @@
|
|||||||
table-layout="auto"
|
table-layout="auto"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
default-expand-all
|
default-expand-all
|
||||||
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
|
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
|
||||||
|
:row-class-name="tableRowClassName"
|
||||||
|
:highlight-current-row="false">
|
||||||
<el-table-column width="40"></el-table-column>
|
<el-table-column width="40"></el-table-column>
|
||||||
<el-table-column prop="id" label="设备ID" min-width="80" />
|
<el-table-column prop="id" label="设备ID" min-width="80" />
|
||||||
<el-table-column prop="name" label="设备名称" min-width="120" />
|
<el-table-column prop="name" label="设备名称" min-width="120" />
|
||||||
@@ -163,7 +165,20 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
editDevice(device) {
|
editDevice(device) {
|
||||||
this.currentDevice = { ...device };
|
// 处理设备数据,确保正确传递给表单
|
||||||
|
const processedDevice = { ...device };
|
||||||
|
|
||||||
|
// 如果properties是字符串,则解析为对象
|
||||||
|
if (processedDevice.properties && typeof processedDevice.properties === 'string') {
|
||||||
|
try {
|
||||||
|
processedDevice.properties = JSON.parse(processedDevice.properties);
|
||||||
|
} catch (e) {
|
||||||
|
console.error('解析properties失败:', e);
|
||||||
|
processedDevice.properties = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.currentDevice = processedDevice;
|
||||||
this.isEdit = true;
|
this.isEdit = true;
|
||||||
this.dialogVisible = true;
|
this.dialogVisible = true;
|
||||||
},
|
},
|
||||||
@@ -193,6 +208,14 @@ export default {
|
|||||||
this.dialogVisible = false;
|
this.dialogVisible = false;
|
||||||
// 重新加载设备列表
|
// 重新加载设备列表
|
||||||
await this.loadDevices();
|
await this.loadDevices();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 为区域主控设备添加静态高亮样式
|
||||||
|
tableRowClassName({ row, rowIndex }) {
|
||||||
|
if (row.type === 'area_controller') {
|
||||||
|
return 'current-row';
|
||||||
|
}
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -235,6 +258,11 @@ export default {
|
|||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 确保区域主控设备始终高亮显示 */
|
||||||
|
:deep(.current-row) {
|
||||||
|
background-color: #f5f7fa !important;
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.device-list {
|
.device-list {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|||||||
@@ -29,8 +29,20 @@ http.interceptors.request.use(
|
|||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
http.interceptors.response.use(
|
http.interceptors.response.use(
|
||||||
response => {
|
response => {
|
||||||
// 可以在这里统一处理响应数据
|
// 统一处理响应数据,检查code字段
|
||||||
return response.data;
|
const data = response.data;
|
||||||
|
|
||||||
|
// 如果存在code字段且不在2000到3000之间,表示请求失败
|
||||||
|
if (data.code !== undefined && (data.code < 2000 || data.code >= 3000)) {
|
||||||
|
// 抛出错误,包含错误信息
|
||||||
|
const error = new Error(data.message || '请求失败');
|
||||||
|
error.code = data.code;
|
||||||
|
error.data = data;
|
||||||
|
return Promise.reject(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
// code在2000到3000之间或不存在code字段时,返回数据
|
||||||
|
return data;
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
// 统一错误处理
|
// 统一错误处理
|
||||||
|
|||||||
Reference in New Issue
Block a user