第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Vue 可將樹節(jié)點從一棵樹拖動到另一棵樹

Vue 可將樹節(jié)點從一棵樹拖動到另一棵樹

胡子哥哥 2023-06-29 21:12:54
我有 2 個 vue 可拖動樹(TreeA和TreeB)。我想將TreeNodeA從TreeA拖到TreeB。也像TreeNodeB從TreeB到TreeA。更新最重要的屬性之一是樹是一個“l(fā)ike” static structure。如果我拖動一個節(jié)點(this is a product),則必須拖動only product節(jié)點內(nèi)部。不是全節(jié)點。我的意思是我的樹是靜態(tài)的。我只想將 a 拖到product節(jié)點內(nèi)。那可能嗎。有任何想法嗎?有人可以幫助我嗎?誰有這樣的嘗試?
查看完整描述

1 回答

?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗 獲得超6個贊

最后我解決了。這是我的代碼


 var Main = {

  data() {

    return {

      treeData1: [{

        id: 1,

        label: "Item 1",

        children: [{

          id: 4,

          label: "Item 1 Child 1",

          children: [{id: 9,label: "Item 1 Grand Child 1"},

                    {id: 9,label: "Item 1 Grand Child 1"}]

        }],

      }],

      treeData2: [{

        id: 2,

        label: "Item 2",

        children: [{

          id: 5,

          label: "Item 2 Child 1",

          children: [{id: 8,label: "Item 2 Grand Child 1"}],

        }],

      }],

    };

  },

  methods: {

    handleDragstart (node, event) {

      this.$refs.tree2.$emit('tree-node-drag-start', event, {node: node});

    },

    handleDragend (draggingNode, endNode, position, event) {

      

      let emptyData = {id: (+new Date), children: []};

      this.$refs.tree1.insertBefore(emptyData, draggingNode);


      this.$refs.tree2.$emit('tree-node-drag-end', event);

      this.$nextTick(() => {

        

        if (this.$refs.tree1.getNode(draggingNode.data)) {

          this.$refs.tree1.remove(emptyData);

        } else {

          

          let data = JSON.parse(JSON.stringify(draggingNode.data));

          this.$refs.tree1.insertAfter(data, this.$refs.tree1.getNode(emptyData));

          this.$refs.tree1.remove(emptyData);

        }

      })

    },

    returnTrue () {

      return true;

    },

    returnFalse () {

      return false;

    }

  }

}

var Ctor = Vue.extend(Main)

new Ctor().$mount('#app')

.tree {

  display: inline-block;

  vertical-align: top;

  width: 180px;

  margin-left: 10px;

  height: 300px;

  border: 1px solid blue;

}

<script src="//unpkg.com/vue/dist/vue.js"></script>

<script src="//unpkg.com/element-ui/lib/index.js"></script>

<div id="app">

  <div class="tree-drag">

    <el-tree

      :data="treeData1"

      ref="tree1"

      class="tree" 

      node-key="id"

      draggable

      default-expand-all

      :allow-drop="returnFalse"

      @node-drag-start="handleDragstart"

      @node-drag-end="handleDragend"

    ></el-tree>

    

    <el-tree

      :data="treeData2" 

      ref="tree2"

      class="tree" 

      node-key="id"

      draggable

      default-expand-all

      :allow-drop="returnTrue"

    ></el-tree>

  </div>

</div>


查看完整回答
反對 回復(fù) 2023-06-29
  • 1 回答
  • 0 關(guān)注
  • 535 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號