el-tree按照用户勾选的顺序记录节点

el-tree按照用户勾选的顺序记录节点

在 Element UI 的 el-tree 组件中,默认情况下获取的选中节点数组是没有顺序的。如果你需要按照用户勾选的顺序记录节点,可以通过以下方法实现:

html 复制代码
<template>
  <el-tree
    ref="tree"
    :data="data"
    show-checkbox
    node-key="id"
    @check-change="handleCheckChange"
  ></el-tree>
  <div>勾选顺序: {{ checkedOrder.join(', ') }}</div>
</template>

<script>
export default {
  data() {
    return {
      data: [
        // 你的树数据
      ],
      checkedOrder: [], // 存储勾选顺序
      checkedSet: new Set() // 用于快速判断节点是否已记录
    };
  },
  methods: {
    handleCheckChange(node, checked) {
      if (checked) {
        // 如果是勾选且尚未记录
        if (!this.checkedSet.has(node.id)) {
          this.checkedOrder.push(node.id);
          this.checkedSet.add(node.id);
        }
      } else {
        // 如果是取消勾选
        const index = this.checkedOrder.indexOf(node.id);
        if (index > -1) {
          this.checkedOrder.splice(index, 1);
          this.checkedSet.delete(node.id);
        }
      }
    },
    getCheckedNodesInOrder() {
      // 按照勾选顺序获取节点
      return this.checkedOrder.map(id => {
        return this.$refs.tree.getNode(id).data;
      });
    }
  }
};
</script>
相关推荐
程序员黑豆1 小时前
鸿蒙应用开发:一次开发多端部署之响应式布局完全指南
前端·harmonyos
小月土星2 小时前
2.0 React Router 前端路由深度解析:从传统后端路由到现代 SPA 的完整演进
前端
To_OC3 小时前
LC 35 搜索插入位置:二分查找谁都会,边界条件谁写谁懵
javascript·算法·leetcode
码哥DFS3 小时前
二叉树的直径
开发语言·javascript·算法
badhope3385 小时前
当所有AI都在抄同一份作业:前端模板的趋同、困局与破局
前端·ai·ai编程·前端开发·tailwind·ui设计
光影少年5 小时前
RN的Fabric 渲染流程
运维·前端·javascript·react native·react.js·fabric
__zRainy__6 小时前
React开始:直接在网站中使用React.js
前端·react.js·前端框架
用户059540174467 小时前
大模型长记忆评测踩坑实录:2000条错位记忆,让我排查了整整3小时
前端·css
码林鼠7 小时前
webpack的基本配置
前端·webpack·node.js
用户938515635077 小时前
React Router 进阶:路由守卫、登录鉴权与状态传递
前端·javascript·全栈