export function mapToTextValueNew()

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
}