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>
相关推荐
多加点辣也没关系16 分钟前
JavaScript|第13章:原始类型的方法
开发语言·javascript·ecmascript
এ慕ོ冬℘゜23 分钟前
深入理解 JavaScript 事件体系:Window、鼠标与键盘事件详解
开发语言·javascript·okhttp
阿祖zu39 分钟前
企业 AI 转型之痛,个人提效十倍不止,组织效率仍止步不前?
前端·aigc·agent
摇滚侠2 小时前
SpringBoot3+Vue3 全套视频教程 45-51
前端·javascript·vue.js
触底反弹2 小时前
🔥 RAG 到底是怎么工作的?掰开揉碎了给你讲明白!
javascript·人工智能·后端
Hilaku2 小时前
前端大裁员背后的恐慌:我们还剩什么底牌?
前端·javascript·程序员
云空3 小时前
《Three.js 3D实例大全》
开发语言·javascript·3d·three.js
咖啡无伴侣3 小时前
unplugin-auto-import 使用详解+面试高频考点
前端·架构
搬砖记录员3 小时前
录屏文件打不开?H.265兼容性踩坑与4种实战方案
前端
明月_清风3 小时前
SEO 完全指南:从底层原理到实战应用场景
前端·seo