1.2.10 • Published 2 years ago

ele-tree-transfer v1.2.10

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

tree-transfer

树形穿梭框

简介

树形穿梭框组件,基于 vue + element-ui,使用场景:经营类目、部门选择等场景。使用前请先确认安装并注册 element-ui。

安装

npm install ele-tree-transfer -S

挂载方式

1. 局部挂载:

import { TreeTransfer } from "ele-tree-transfer";

export default {
  components: {
    TreeTransfer,
  },
}

2. 全局挂载:

在 main.js 文件中加入代码:

import TreeTransfer from "ele-tree-transfer";

Vue.use(TreeTransfer);

快速启动

<template>
  <div id="app">
    <tree-transfer
      v-model="model"
      ref="treeTransfer"
      node-key="id"
      default-expand-all
      show-checkbox
      search
      showCheckAll
      showCheckNum
      nodeCheck
      :props="props"
      :data="data"
    >
      <!-- 自定义节点内容 -->
      <template #leftText="{ node }">
        <span>{{ node.label }}</span>
      </template>
      <template #rightText="{ node }">
        <span>{{ node.label }}</span>
      </template>
    </tree-transfer>
    <div class="buttons">
      <el-button @click="selected('left')">左侧全选</el-button>
      <el-button @click="cancel('left')">左侧反选</el-button>
      <el-button @click="selected('right')">右侧全选</el-button>
      <el-button @click="cancel('right')">右侧反选</el-button>
      <el-button @click="getValue">获取v-model绑定值</el-button>
      <el-button @click="empty">清空v-model</el-button>
    </div>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      props: {
        label: "label",
        value: "id",
        children: "children",
        disabled: "disabled",
      },
      data: [
        {
          id: 1,
          label: "一级 1",
          children: [
            {
              id: 4,
              label: "二级 1-1",
            },
          ],
        },
        {
          id: 2,
          label: "一级 2",
          children: [
            {
              id: 5,
              label: "二级 2-1",
            },
            {
              id: 6,
              label: "二级 2-2",
            },
            {
              id: 20,
              label: "二级 2-3",
            },
          ],
        },
        {
          id: 3,
          label: "一级 3",
          children: [
            {
              id: 7,
              label: "二级 3-1",
            },
            {
              id: 8,
              label: "二级 3-2",
              disabled: false,
            },
          ],
        },
      ],
      model: [5, 6, 8],
    };
  },
  methods: {
    selected(loca) {
      this.$refs.treeTransfer.changeTreeChecked(true, loca);
    },
    cancel(loca) {
      this.$refs.treeTransfer.changeTreeChecked(false, loca);
    },
    move(flag) {
      this.$refs.treeTransfer[flag === "right" ? "rightMove" : "leftMove"]();
    },
    getValue() {
      console.log(this.model);
    },
    empty() {
      this.model = [];
    },
  },
};
</script>

<style scoped>
.buttons {
  margin-top: 10px;
}
</style>

使用文档

注:未标注的参数与方法,请参照element-ui tree组件。

序号参数说明类型默认值补充
1width宽度String100%-
2height高度String40vh-
3props同 el-tree 属性 propsObject{label: "label",children: "children",disabled: "disabled",value: "value",isLeaf: () => {}}-
4checkedDisabled选中节点后是否禁用该节点Booleantrue选中禁用
5titles自定义列表标题同 el-transfer 组件 titlesArray"列表 1", "列表 2"-
6nodeKey唯一标识Stringid-
7checkedKeys默认勾选的节点数组Array[]-
8placeholder搜索提示文字Array"请输入内容", "请输入内容"-
9search是否可搜索Booleanfalse默认不显示搜索
10inputLength搜索输入长度Number50-
11data展示数据Array[]-
12checkedBox是否展示多选框Booleantrue-
13expandAll是否默认展开所有节点Booleantrue-
14checkStrictly是否遵循父子节点不关联Booleanfalse-
15accordion是否开启手风琴模式Booleanfalse-
16nodeCheck对底层节点添加点击节点本身选中当前节点Booleanfalse只支持最底层节点
17lazy是否开启懒加载Booleanfalse-
18load懒加载回调Function--
19selectMax限制可选中数量String/Number50-
20isAcross是否不允许跨一级添加 默认允许Booleanfalse-
21isSuperior是否开启父节点选中子节点禁用规则Booleanfalse-
22isMostJunior过滤上级节点,只保存最下级节点Booleanfalse-
23expandLevelKeys默认展开到多少级,懒加载时需手动调用 defaultExpand 方法Object{level: 0,key: "level"}懒加载数据庞大时不推荐使用
24showCheckAll表头是否显示全选框Booleanfalse-
25showCheckNum表头是否显示总数以及勾选数量Booleanfalse-
26buttonTexts自定义按钮文案Array[]-
27headerPosition表头标题显示位置Stringleftleft 左,center 居中
28draggable是否开启拖拽节点功能Booleanfalse-
29draggableLevel允许拖拽节点等级,默认 1 级String/Number1默认全部允许拖拽
30rightCheckChange右侧节点树勾选发生变化时回调Function--
31allowDrag判断节点能否被拖拽Function--
32allowDrop拖拽时判定目标节点能否被放置Function--
33nodeDragStart节点开始拖拽时触发的事件Function--
34nodeDragEnter拖拽进入其他节点时触发的事件Function--
35nodeDragLeave拖拽离开某个节点时触发的事件Function--
36nodeDragOver在拖拽节点时触发的事件(类似浏览器的 mouseover 事件)Function--
37nodeDragEnd拖拽结束时(可能未成功)触发的事件Function--
38nodeDrop拖拽成功完成时触发的事件Function--

事件

序号事件名称说明回调参数
1checkedChange右侧节点选中状态回调,返回唯一标识数组node-key 已勾选状态的数组
2node-click节点被点击时的回调共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身
1node-drag-start节点开始拖拽时触发的事件共两个参数,依次为:被拖拽节点对应的 Node、event
2node-drag-enter拖拽进入其他节点时触发的事件共三个参数,依次为:被拖拽节点对应的 Node、所进入节点对应的 Node、event
3node-drag-leave拖拽离开某个节点时触发的事件共三个参数,依次为:被拖拽节点对应的 Node、所离开节点对应的 Node、event
4node-drag-over在拖拽节点时触发的事件(类似浏览器的 mouseover 事件)共三个参数,依次为:被拖拽节点对应的 Node、当前进入节点对应的 Node、event
5node-drag-end拖拽结束时(可能未成功)触发的事件共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点(可能为空)、被拖拽节点的放置位置(before、after、inner)、event
6node-drop拖拽成功完成时触发的事件共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置(before、after、inner)、event

方法

序号名称说明补充
1enableOrDisableParent启用or禁用父节点enableOrDisableParent(data,type,all),1:需要操作的节点data或key 参数2:true禁用 false启用 参数3:是否操作所有父级
2setChecked通过 key / data 设置某个节点的勾选状态,使用此方法必须设置 node-key 属性(key/data, checked, deep) 接收三个参数,1. 勾选节点的 key 或者 data 2. boolean 类型,节点是否选中 3. boolean 类型,是否设置子节点 ,默认为 false
3getChecked获取已选中数据方法返回由 node-key 组成的选中数据数组
4clearChecked清除节点选中clearChecked(type,clearChecked),type:left 左边 right 右边 all 全部清除,clearChecked:Boolean 是否取消禁用
5updateKeyChildren通过 keys 设置节点子元素,使用此方法必须设置 node-key 属性(key, data) 接收两个参数,1. 节点 key 2. 节点数据的数组
6changeTreeChecked设置整棵树节点全选与反选(true, "left") 接收两个参数,1.节点选中与否,true 选中 false 取消选中。2.String 类型 left 左边树,right 右边树
7enableOrDisableNode启用or禁用某个节点enableOrDisableNode(data,type),1:需要操作的节点data或key 2、Boolean:true禁用,false启用
8clearSearch清除搜索条件clearSearch(key) 默认左右两侧搜索条件,key传值:left左侧,right:右侧

slot

序号插槽名称说明
1leftHeader左侧头部插槽
2rightHeader右侧头部插槽
3leftSearch左侧搜索框插槽
4rightSearch右侧搜索框插槽
5leftButton左侧按钮插槽
6rightButton右侧按钮插槽
7leftText左侧树自定义内容
8rightText右侧树自定义内容

git仓库地址

https://gitee.com/yt1997/ele-tree-transfer

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.10

2 years ago

1.2.9

2 years ago

1.2.0

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.1.2

2 years ago

0.3.9

3 years ago

0.3.8

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.1.0

3 years ago

0.3.0

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.1

3 years ago

0.3.6

3 years ago

0.2.7

3 years ago

0.1.8

3 years ago

0.3.5

3 years ago

0.2.6

3 years ago

0.1.7

3 years ago

0.2.9

3 years ago

0.3.7

3 years ago

0.1.9

3 years ago

0.3.2

3 years ago

0.2.3

3 years ago

0.1.4

3 years ago

0.3.1

3 years ago

0.2.2

3 years ago

0.1.3

3 years ago

0.3.4

3 years ago

0.2.5

3 years ago

0.1.6

3 years ago

0.3.3

3 years ago

0.2.4

3 years ago

0.1.5

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.6

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago

1.0.0

3 years ago