function formatThingsModel(data) { data.monitorList = []; // 物模型格式化 for (let i = 0; i < data.thingsModels.length; i++) { if (data.thingsModels[i].dataType.type == "array") { if (data.thingsModels[i].dataType.arrayType == "object") { for (let k = 0; k < data.thingsModels[i].dataType.arrayParams.length; k++) { for (let j = 0; j < data.thingsModels[i].dataType.arrayParams[k].length; j++) { // 数组元素中参数ID添加前缀,例如:array_00_ let index = k > 9 ? String(k) : '0' + k; let prefix = 'array_' + index + '_'; data.thingsModels[i].dataType.arrayParams[k][j].id = prefix + data.thingsModels[i].dataType.arrayParams[k][j].id; // 图表分类放置 if (data.thingsModels[i].dataType.arrayParams[k][j].isMonitor == 1) { data.thingsModels[i].dataType.arrayParams[k][j].name = "[" + data.thingsModels[i].name + (k + 1) + "] " + data.thingsModels[i].dataType.arrayParams[k][j].name; data.thingsModels[i].dataType.arrayParams[k][j].dataType.arrayType = "object"; data.monitorList.push(data.thingsModels[i].dataType.arrayParams[k][j]); data.thingsModels[i].dataType.arrayParams[k].splice(j--, 1); } } } } else { // 字符串拆分为物模型数组 model=id/name/type/isReadonly/value/shadow let values = data.thingsModels[i].value != "" ? data.thingsModels[i].value.split(',') : []; let shadows = data.thingsModels[i].shadow != "" ? data.thingsModels[i].shadow.split(',') : []; for (let j = 0; j < data.thingsModels[i].dataType.arrayCount; j++) { if (!data.thingsModels[i].dataType.arrayModel) { data.thingsModels[i].dataType.arrayModel = []; } // 数组里面的ID需要添加前缀和索引,例如:array_00_temperature let index = j > 9 ? String(j) : '0' + j; let prefix = 'array_' + index + '_'; data.thingsModels[i].dataType.arrayModel[j] = { id: prefix + data.thingsModels[i].id, name: data.thingsModels[i].name, type: data.thingsModels[i].type, isReadonly: data.thingsModels[i].isReadonly, value: values[j] ? values[j] : "", shadow: shadows[j] ? shadows[j] : "" } } } } else if (data.thingsModels[i].dataType.type == "object") { for (let j = 0; j < data.thingsModels[i].dataType.params.length; j++) { // 图表分类放置 if (data.thingsModels[i].dataType.params[j].isMonitor == 1) { data.thingsModels[i].dataType.params[j].name = "[" + data.thingsModels[i].name + "] " + data.thingsModels[i].dataType.params[j].name; data.monitorList.push(data.thingsModels[i].dataType.params[j]); data.thingsModels[i].dataType.params.splice(j--, 1); } } } else if (data.thingsModels[i].isMonitor == 1) { data.monitorList.push(data.thingsModels[i]); // 使用i--解决索引变更问题 data.thingsModels.splice(i--, 1); } } } export { formatThingsModel }