vue a-table 实现指定字段相同数据合并行

vue a-table 实现相同数据合并行

实现效果

代码实现

cloums数据格式

javascript 复制代码
const getColumns = function () {
  return [
    {
      title: "分类",
      dataIndex: "checked",
      width: "150px",
      customRender: (text, row, index) => {
        return {
          children:"文字",//合并行的标题
          attrs: {
            // 合并行 含col字段则合并,其他的必须设置为0!!
            rowSpan: row.col ? row.col : 0,
          },
        };
      },
    },
  ];
}

数据源格式

我们这里把相同的checked字段值进行合并

javascript 复制代码
[
  {
      "id": "65d45",
      "checked": "档案管理"
  },
  {
      "id": "65346",
      "checked": "档案管理"
  },
  {
      "id": "6514d",
      "checked": "动态监控"
  },
  {
      "id": "65d83",
      "checked": "动态监控"
  }
]

合并代码

javascript 复制代码
export const dealList = (arr) => {
  const list = arr
    .filter((item) => item.checked)
    .map((item) => {
      return {
        ...item,
        col: 0,
      };
    })
    .sort(function (a, b) {
      return (a.checked + "").localeCompare(b.checked + "");
    });
  // sort进行排序,方便计算
  const colList = [];
  arr.map((o) => {
    const arr = indexcount(list, o.checked);
    colList.push({
      col: arr.length,
      idex: arr[0],
    });
  });
  list.map((o, index) => {
    colList.map((m) => {
      if (index === m.idex) {
        o.col = m.col;
      }
    });
  });
  return list;
};
// 出现次数
function indexcount(arr, item) {
  var arr1 = [];
  for (var i = 0; i < arr.length; i++) {
    if (arr[i].checked == item) {
      arr1.push(i);
    }
  }
  return arr1;
}
相关推荐
你也向往长安城吗5 分钟前
推荐一个三维导航库:three-pathfinding-3d
javascript·算法
karrigan14 分钟前
async/await 的优雅外衣下:Generator 的核心原理与 JavaScript 执行引擎的精细管理
javascript
wycode22 分钟前
Vue2实践(3)之用component做一个动态表单(二)
前端·javascript·vue.js
wycode1 小时前
Vue2实践(2)之用component做一个动态表单(一)
前端·javascript·vue.js
第七种黄昏1 小时前
Vue3 中的 ref、模板引用和 defineExpose 详解
前端·javascript·vue.js
我是哈哈hh2 小时前
【Node.js】ECMAScript标准 以及 npm安装
开发语言·前端·javascript·node.js
张元清2 小时前
电商 Feeds 流缓存策略:Temu vs 拼多多的技术选择
前端·javascript·面试
pepedd8642 小时前
还在开发vue2老项目吗?本文带你梳理vue版本区别
前端·vue.js·trae
pepedd8643 小时前
浅谈js拷贝问题-解决拷贝数据难题
前端·javascript·trae
@大迁世界3 小时前
useCallback 的陷阱:当 React Hooks 反而拖了后腿
前端·javascript·react.js·前端框架·ecmascript