|
@@ -25,9 +25,10 @@
|
|
|
//
|
|
|
// 1、配置设备字段(参考公司端综合设备管理-设备字段管理)
|
|
|
// 以压风机为例,设压风机设备的历史数据编码为forcFan_history。
|
|
|
- // 那么字段code中加$的字段将允许动态展示数据,例子如下:
|
|
|
+ // 那么字段code中需要把所有字段悉数配置,例子如下:
|
|
|
// 显示字段 字段code
|
|
|
- // 温度 $Temp
|
|
|
+ // 温度 forcFan1Temp
|
|
|
+ // 温度 forcFan2Temp
|
|
|
// 安装位置 name
|
|
|
//
|
|
|
// 2、配置数据字典(参考系统管理-数据字典),为上述设备配置子设备
|
|
@@ -41,10 +42,10 @@
|
|
|
// 同以压风机为例,需使用device-code(forcFan)、dict-code(forcFan_dict)。
|
|
|
//
|
|
|
// 4、其他内容说明
|
|
|
- // 同以压风机为例,当子设备没有数据是,此时展示的数据是:
|
|
|
- // 温度 安装位置
|
|
|
- // 取Temp 取name
|
|
|
- // 同以压风机为例,当子设备选择压风机1时,此时展示的数据是:
|
|
|
+ // 同以压风机为例,当子设备没有数据时,不进行过滤,此时展示的数据是:
|
|
|
+ // 温度 安装位置
|
|
|
+ // 取forcFan2Temp 取name
|
|
|
+ // 同以压风机为例,当子设备选择压风机1时,过滤压风机1相关的表头,此时展示的数据是:
|
|
|
// 温度 安装位置
|
|
|
// 取forcFan1Temp 取name
|
|
|
import { onMounted, ref, shallowRef } from 'vue';
|
|
@@ -101,7 +102,7 @@
|
|
|
const cols = getTableHeaderColumns(code);
|
|
|
if (cols.length) {
|
|
|
originColumns = cols;
|
|
|
- setColumns(cols);
|
|
|
+ updateColumns(dictOptions[0].value);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -118,16 +119,16 @@
|
|
|
* 更新表头,表头默认情况下需要和子设备联动
|
|
|
* @param prefix 子设备的值,即为表头取数据时字段的前缀
|
|
|
*/
|
|
|
- function updateColumns(prefix: string) {
|
|
|
- const cols = originColumns.map((col) => {
|
|
|
- const di = col.dataIndex as string;
|
|
|
- if (di && di.includes('$')) {
|
|
|
- return {
|
|
|
- ...col,
|
|
|
- dataIndex: di.replace('$', prefix),
|
|
|
- };
|
|
|
+ function updateColumns(prefix?: string) {
|
|
|
+ if (!prefix) return;
|
|
|
+ // 如果有子设备信息,筛选符合规范的表头
|
|
|
+ const cols = originColumns.filter(({ dataIndex }) => {
|
|
|
+ // 获取到子设备编码的前缀,如 forcFan 之于 forcFan1,如果表头以该前缀打头则进行过滤,否则放行
|
|
|
+ const [_, pfx] = prefix.match(/([A-Za-z]+)([0-9]+)/) || [];
|
|
|
+ if ((dataIndex as string).startsWith(pfx)) {
|
|
|
+ return (dataIndex as string).startsWith(prefix);
|
|
|
}
|
|
|
- return col;
|
|
|
+ return true;
|
|
|
});
|
|
|
setColumns(cols);
|
|
|
}
|
|
@@ -203,7 +204,7 @@
|
|
|
}) as Record<string, unknown>;
|
|
|
const code = (deviceInfo.value.deviceType || props.deviceCode.concat('*')) as string;
|
|
|
await fetchData(formData, code, deviceInfo.value);
|
|
|
- updateColumns(formData.deviceNum || '');
|
|
|
+ updateColumns(formData.deviceNum);
|
|
|
}
|
|
|
|
|
|
onMounted(async () => {
|