当前位置:首页 > VUE

vue ztree实现拖拽

2026-01-18 09:36:19VUE

实现 Vue 中 ZTree 的拖拽功能

在 Vue 项目中实现 ZTree 的拖拽功能,通常需要结合 jQuery 的 ZTree 插件。以下是具体实现方法:

安装依赖

确保项目中已引入 jQuery 和 ZTree 相关资源:

npm install jquery ztree

或在 HTML 中直接引入 CDN 链接:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/zTree.v3/3.5.48/css/zTreeStyle/zTreeStyle.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/zTree.v3/3.5.48/js/jquery.ztree.core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zTree.v3/3.5.48/js/jquery.ztree.exedit.min.js"></script>

初始化 ZTree 配置

在 Vue 组件的 mounted 钩子中初始化 ZTree,并启用拖拽功能:

mounted() {
  const setting = {
    edit: {
      enable: true,
      showRemoveBtn: false,
      showRenameBtn: false
    },
    view: {
      selectedMulti: false
    },
    callback: {
      beforeDrop: this.beforeDrop,
      onDrop: this.onDrop
    }
  };

  const zNodes = [
    { id: 1, pId: 0, name: "父节点1", open: true },
    { id: 11, pId: 1, name: "子节点1" },
    { id: 12, pId: 1, name: "子节点2" }
  ];

  $.fn.zTree.init($("#treeDemo"), setting, zNodes);
}

处理拖拽事件

实现拖拽前后的回调函数:

methods: {
  beforeDrop(treeId, treeNodes, targetNode, moveType) {
    // 返回 true 允许拖拽,false 禁止拖拽
    return true;
  },
  onDrop(event, treeId, treeNodes, targetNode, moveType) {
    // 拖拽完成后的逻辑
    console.log("拖拽完成", treeNodes);
  }
}

模板结构

在 Vue 模板中添加 ZTree 容器:

<template>
  <div>
    <ul id="treeDemo" class="ztree"></ul>
  </div>
</template>

样式调整

确保 ZTree 容器有明确的高度:

vue ztree实现拖拽

.ztree {
  height: 400px;
  overflow-y: scroll;
}

注意事项

  1. 拖拽功能依赖 jquery.ztree.exedit.min.js,必须引入该文件。
  2. 若拖拽无效,检查是否设置了 edit.enable: true
  3. 可通过 setting.edit.drag 配置拖拽范围(如 { inner: true } 限制同级拖拽)。

通过以上步骤,即可在 Vue 中实现 ZTree 的节点拖拽功能。

标签: 拖拽vue
分享给朋友:

相关文章

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现flbook

vue实现flbook

Vue 实现类似 Flbook 的翻页效果 要实现类似 Flbook 的翻页效果,可以使用 Vue 结合 CSS 动画和 JavaScript 事件处理。以下是实现方法: 安装依赖 需要安装 vue…

vue cli 实现

vue cli 实现

Vue CLI 实现步骤 安装 Vue CLI 确保 Node.js 版本在 8.9 或以上。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 创建新项目 使…

vue实现checkbox

vue实现checkbox

Vue 实现 Checkbox 在 Vue 中实现 Checkbox 可以通过原生 HTML 的 <input type="checkbox"> 或使用 Vue 的 v-model 指令绑…

vue实现tab

vue实现tab

Vue 实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 v-if 和 v-show 指令 通过绑定 v-if 或 v-show 来…

vue实现转盘抽奖

vue实现转盘抽奖

Vue 实现转盘抽奖 基本思路 转盘抽奖的核心是通过 CSS 动画实现旋转效果,Vue 负责控制旋转逻辑和数据绑定。关键点包括转盘扇形区域的绘制、旋转动画的触发与停止、中奖结果的判定。 实现步骤 H…