研究el-tree拖拽h5 drag api实现

代码片段:

<template>
  <div>
    <el-tree
        :data="data"
        :props="defaultProps"
        @node-click="handleNodeClick"
        :render-content="renderContent"
        draggable
    ></el-tree>
  </div>
</template>


<script>
export default {
  data() {
    return {
      data: [
          {
        label: '一级 1',
        children: [{
          label: '二级 1-1',
          children: [{
            label: '三级 1-1-1'
          },{
            label: '三级 1-1-2'
          },{
            label: '三级 1-1-3'
          }]
        }]
      }, {
        label: '一级 2',
        children: [{
          label: '二级 2-1',
          children: [{
            label: '三级 2-1-1'
          }]
        }, {
          label: '二级 2-2',
          children: [{
            label: '三级 2-2-1'
          }]
        }]
      }, {
        label: '一级 3',
        children: [{
          label: '二级 3-1',
          children: [{
            label: '三级 3-1-1'
          }]
        }, {
          label: '二级 3-2',
          children: [{
            label: '三级 3-2-1'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      },
      dragStart: {},
    };
  },
  methods: {
    dragstart(data, e) {
      this.dragStart = data;
    },
    /**
     *
     * @param data
     * @param e{Event}
     */
    dragover(data, e) {
      e.preventDefault();
    },
    onDrop(data, e) {
      console.log(this.dragStart, 'start');
      console.log(data, 'drop');
    },
    /**
     *
     * @param data
     * @param e {Event}
     */
    ondrag(data, e) {
      e.stopPropagation();
      e.preventDefault();
    },
    renderContent(h, {node, data, store}) {
      return (
          <span
              class="custom-tree-node"
          >
            <span>{node.label}</span>
            <span>
              <el-button size="mini" type="text"  on-click={() => this.append(data)}>Append</el-button>
              <el-button size="mini" type="text" on-click={() => this.remove(node, data)}>Delete</el-button>
            </span>
          </span>);
    },
    handleNodeClick(data) {
      console.log(data);
    }
  }
};
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值