in src/datasource.ts [188:224]
export function mapToTextValueNew(frames: any): MetricFindValue[] {
if(!frames || !Array.isArray(frames) || frames?.length === 0 ) {
return []
}
const TextValues: MetricFindValue[] = [];
for(const frame of frames) {
if(frame.data?.values?.length > 0) {
const fieldsValues = frame.data.values
// 如果只有两列 默认第一列为text
if(fieldsValues.length === 2) {
for(let i = 0; i < fieldsValues[0].length; i++) {
TextValues.push({ text: fieldsValues[0][i], value: fieldsValues[1][i] });
}
} else {
for(let rowIndx = 0; rowIndx < fieldsValues[0].length; rowIndx++) {
// 保存之前的逻辑
const columnBaseItem = fieldsValues[0][rowIndx] // 默认都是用第一项来处理
if(columnBaseItem && columnBaseItem.text && columnBaseItem.value) {
TextValues.push({ text: columnBaseItem.text, value: columnBaseItem.value });
} else if (_.isObject(columnBaseItem)){
TextValues.push({ text: safeJsonStringify(columnBaseItem), value: rowIndx });
} else {
// 把每一项的值拼接起来
const resValue = fieldsValues.reduce((str: string, field: any[]) => str += field[rowIndx] + " " , '')
TextValues.push({ text: resValue?.trim?.(), value: resValue?.trim?.() });
}
}
}
}
}
return TextValues
}