你可以使用Vue的计算属性来实现这个逻辑。首先,你需要定义一个计算属性来处理数据的组合展示。在计算属性中,你可以使用map()方法来遍历原始数据,并根据generationType的值进行判断和处理。

下面是一个示例代码:

computed: {
  processedData() {
    // 遍历原始数据
    return this.data.map(item => {
      // 判断generationType的值
      if (item.generationType === '1') {
        // 多加一条数据,将conditionList的数据中的name字段拼接到该条数据中的conditionList数组中
        const combinedList = item.conditionList.flatMap(condition => {
          return this.data
            .filter(i => i.generationType === '2')
            .flatMap(i => i.conditionList.map(c => ({
              zjId: condition.zjId,
              zjName: `${condition.zjName}-${c.zjName}`
            })));
        });

        // 返回处理后的数据
        return {
          ...item,
          conditionList: [...item.conditionList, ...combinedList]
        };
      } else {
        return item;
      }
    });
  }
}

在上面的代码中,processedData是一个计算属性,它会返回处理后的数据。在计算属性中,我们使用map()方法来遍历原始数据,并根据generationType的值进行判断和处理。如果generationType的值为1,我们使用flatMap()方法来生成新的combinedList,将其他generationType为2的数据中的conditionList的数据拼接到该条数据中的conditionList数组中。最后,返回处理后的数据。

你可以在Vue模板中使用processedData来展示处理后的数据:

<div v-for="item in processedData" :key="item.dimension">
  <p>dimension: {{ item.dimension }}</p>
  <p>generationType: {{ item.generationType }}</p>
  <ul>
    <li v-for="condition in item.conditionList" :key="condition.zjId">
      zjId: {{ condition.zjId }}, zjName: {{ condition.zjName }}
    </li>
  </ul>
</div>

在上面的模板中,我们使用v-for指令来遍历processedData中的每一项,并展示对应的字段。

请注意,上面的代码仅为示例,你需要根据实际情况进行调整

vue2中拿到数据格式如下 conditionList zjId 12b945a22de56e7e6406b5070e71fb76 zjName 中级 zjId 12b945a22de56e7e6406b5070e71fb75 zjName 高级

原文地址: http://www.cveoy.top/t/topic/ishx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录