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>
相关推荐
小张成长计划..4 分钟前
前端6:CSS3 2D转换,CSS3动画,CSS3 3D转换
前端·3d·css3
IT_陈寒9 分钟前
Vue3性能优化实战:这7个技巧让我的应用加载速度提升50%!
前端·人工智能·后端
西西学代码23 分钟前
Flutter---音效模式选择器
前端·html
TLucas25 分钟前
Layui连线题编辑器组件(ConnectQuestion)
前端·编辑器·layui
艾小码32 分钟前
告别页面呆板!这5个DOM操作技巧让你的网站活起来
前端·javascript
正在学习前端的---小方同学2 小时前
vue-easy-tree树状结构
前端·javascript·vue.js
毕业设计制作和分享4 小时前
springboot150基于springboot的贸易行业crm系统
java·vue.js·spring boot·后端·毕业设计·mybatis
键盘不能没有CV键6 小时前
【图片处理】✈️HTML转图片字体异常处理
前端·javascript·html
yantuguiguziPGJ6 小时前
WPF 联合 Web 开发调试流程梳理(基于 Microsoft.Web.WebView2)
前端·microsoft·wpf
大飞记Python7 小时前
部门管理|“编辑部门”功能实现(Django5零基础Web平台)
前端·数据库·python·django