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 [];
|
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) {
|
function normalizePropertyValue(row: ThingModelApi.ThingModel, value: any) {
|
||||||
if (value === undefined || value === null || value === '') {
|
if (value === undefined || value === null || value === '') {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
const dataType = getPropertyDataType(row);
|
||||||
if (isNumberProperty(row)) {
|
if (isNumberProperty(row)) {
|
||||||
return Number(value);
|
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;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,14 +128,40 @@ function getPropertyOptions(row: ThingModelApi.ThingModel) {
|
||||||
return [];
|
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) {
|
function normalizePropertyValue(row: ThingModelApi.ThingModel, value: any) {
|
||||||
if (value === undefined || value === null || value === '') {
|
if (value === undefined || value === null || value === '') {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
const dataType = getPropertyDataType(row);
|
||||||
if (isNumberProperty(row)) {
|
if (isNumberProperty(row)) {
|
||||||
return Number(value);
|
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;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue