fix(iot): 修复设备模拟器属性值类型转换
- 按物模型 dataSpecsList 还原 enum/bool 属性原始值类型 - 保持设备消息筛选和卡片分页与 vue3 + ep 源项目一致 - 更新 IoT bug 状态,归档 B144 并清空剩余 todopull/348/head
parent
617d50f68f
commit
1edf29abeb
|
|
@ -235,14 +235,40 @@ function getPropertyOptions(row: ThingModelApi.ThingModel) {
|
|||
return [];
|
||||
}
|
||||
|
||||
/** 获取物模型选项原始值 */
|
||||
function getMatchedPropertyOption(row: ThingModelApi.ThingModel, value: any) {
|
||||
return row.property?.dataSpecsList?.find(
|
||||
(item: any) => String(item.value) === String(value),
|
||||
);
|
||||
}
|
||||
|
||||
/** 按物模型数据类型转换属性值 */
|
||||
function normalizePropertyValue(row: ThingModelApi.ThingModel, value: any) {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
return undefined;
|
||||
}
|
||||
const dataType = getPropertyDataType(row);
|
||||
if (isNumberProperty(row)) {
|
||||
return Number(value);
|
||||
}
|
||||
if (
|
||||
[IoTDataSpecsDataTypeEnum.BOOL, IoTDataSpecsDataTypeEnum.ENUM].includes(
|
||||
dataType as any,
|
||||
)
|
||||
) {
|
||||
const option = getMatchedPropertyOption(row, value);
|
||||
if (option) {
|
||||
return option.value;
|
||||
}
|
||||
}
|
||||
if (dataType === IoTDataSpecsDataTypeEnum.BOOL) {
|
||||
if (String(value) === 'true') {
|
||||
return true;
|
||||
}
|
||||
if (String(value) === 'false') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -128,14 +128,40 @@ function getPropertyOptions(row: ThingModelApi.ThingModel) {
|
|||
return [];
|
||||
}
|
||||
|
||||
/** 获取物模型选项原始值 */
|
||||
function getMatchedPropertyOption(row: ThingModelApi.ThingModel, value: any) {
|
||||
return row.property?.dataSpecsList?.find(
|
||||
(item: any) => String(item.value) === String(value),
|
||||
);
|
||||
}
|
||||
|
||||
/** 按物模型数据类型转换属性值 */
|
||||
function normalizePropertyValue(row: ThingModelApi.ThingModel, value: any) {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
return undefined;
|
||||
}
|
||||
const dataType = getPropertyDataType(row);
|
||||
if (isNumberProperty(row)) {
|
||||
return Number(value);
|
||||
}
|
||||
if (
|
||||
[IoTDataSpecsDataTypeEnum.BOOL, IoTDataSpecsDataTypeEnum.ENUM].includes(
|
||||
dataType as any,
|
||||
)
|
||||
) {
|
||||
const option = getMatchedPropertyOption(row, value);
|
||||
if (option) {
|
||||
return option.value;
|
||||
}
|
||||
}
|
||||
if (dataType === IoTDataSpecsDataTypeEnum.BOOL) {
|
||||
if (String(value) === 'true') {
|
||||
return true;
|
||||
}
|
||||
if (String(value) === 'false') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue