最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue拖拽組件列表實(shí)現(xiàn)動(dòng)態(tài)頁面配置功能

 更新時(shí)間:2019年06月17日 08:43:50   作者:dora_zc  
這篇文章主要介紹了Vue拖拽組件列表實(shí)現(xiàn)動(dòng)態(tài)頁面配置功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

需求描述

最近在做一個(gè)后臺(tái)系統(tǒng),有一個(gè)功能產(chǎn)品需求是頁面分為左右兩部分,通過右邊的組件列表來動(dòng)態(tài)配置左邊的頁面視圖,并且左邊由組件拼裝起來的視圖,可以實(shí)現(xiàn)上下拖拽改變順序,也可以刪除。

根據(jù)這個(gè)需求我做了下面這個(gè)demo。

功能分解

  • 右邊的組件列表,可以通過拖拽克隆到左邊,拖拽結(jié)束后右邊組件列表數(shù)量不會(huì)減少
  • 左邊的組件可以展開或收起
  • 左邊的組件可以上下拖拽,刪除,但不可向右邊拖拽
  • 左邊組件拖拽過程中不改變其展開和收起狀態(tài)

demo截圖


代碼地址

vue-draggable-list

代碼預(yù)覽

<template>
 <div class="row">
  <div class="col-5">
   <h3>組件配置頁面展示</h3>
   <draggable
    tag="el-collapse"
    class="dragArea list-group"
    :list="list2"
    group="comp"
    @change="log"
   >
    <el-collapse
     class="list-group-item left"
     v-for="(element,index) in list2"
     :key="index"
     v-model="activeNames"
     @change="handleChange"
    >
     <el-collapse-item :name="element.id">
      <template slot="title">
       <span>{{element.name}}</span>
       <i class="el-icon-circle-close" @click.stop="deleteItem(index)"></i>
      </template>
      <div>{{ element.content }}</div>
     </el-collapse-item>
    </el-collapse>
   </draggable>
  </div>
  <div class="col-5">
   <h3>可用組件列表</h3>
   <draggable
    class="dragArea list-group"
    :list="list1"
    :group="{ name: 'comp', pull: 'clone', put: false }"
    @change="log"
   >
    <div class="list-group-item" v-for="element in list1" :key="element.id">{{ element.name }}</div>
   </draggable>
  </div>
 </div>
</template>
<script>
import draggable from "vuedraggable";
export default {
 name: "clone",
 display: "Clone",
 order: 2,
 components: {
  draggable
 },
 data() {
  return {
   list1: [
    { name: "組件1", id: 1, content: "內(nèi)容內(nèi)容內(nèi)容。。。。" },
    { name: "組件2", id: 2, content: "內(nèi)容內(nèi)容內(nèi)容。。。。" },
    { name: "組件3", id: 3, content: "內(nèi)容內(nèi)容內(nèi)容。。。。" },
    { name: "組件4", id: 4, content: "內(nèi)容內(nèi)容內(nèi)容。。。。" },
    { name: "組件5", id: 5, content: "內(nèi)容內(nèi)容內(nèi)容。。。。" },
    { name: "組件6", id: 6, content: "內(nèi)容內(nèi)容內(nèi)容。。。。" },
    { name: "組件7", id: 7, content: "內(nèi)容內(nèi)容內(nèi)容。。。。" }
   ],
   list2: [],
   activeNames: [],
   count: 0
  };
 },
 methods: {
  log: function(evt) {
   console.log(evt);
   if (evt.added) {
    this.count += 1;
    const item = evt.added.element;
    const idx = this.list2.findIndex(e => e.id === item.id);
    let temp = JSON.parse(JSON.stringify(this.list2));
    temp[idx].id = this.count;
    this.list2 = temp;
   }
  },
  handleChange: function() {},
  deleteItem: function(index) {
   this.list2.splice(index, 1);
  }
 }
};
</script>

總結(jié)

以上所述是小編給大家介紹的Vue拖拽組件列表實(shí)現(xiàn)動(dòng)態(tài)頁面配置功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 對(duì)vue生命周期的深入理解

    對(duì)vue生命周期的深入理解

    這篇文章主要給大家介紹了關(guān)于對(duì)vue生命周期的深入理解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Vue中的字符串模板的使用

    Vue中的字符串模板的使用

    本篇文章主要介紹了Vue中的字符串模板的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • vite2打包的時(shí)候vendor-xxx.js文件過大的解決方法

    vite2打包的時(shí)候vendor-xxx.js文件過大的解決方法

    vite2是一個(gè)非常好用的工具,只是隨著代碼的增多,打包的時(shí)候?vendor-xxxxxx.js?文件也越來越大,本文主要介紹了vite2打包的時(shí)候vendor-xxx.js文件過大的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue+animation動(dòng)畫實(shí)現(xiàn)跑馬燈效果

    vue+animation動(dòng)畫實(shí)現(xiàn)跑馬燈效果

    這篇文章主要為大家詳細(xì)介紹了vue+animation動(dòng)畫實(shí)現(xiàn)跑馬燈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue.js設(shè)計(jì)與實(shí)現(xiàn)無限遞歸學(xué)習(xí)總結(jié)

    Vue.js設(shè)計(jì)與實(shí)現(xiàn)無限遞歸學(xué)習(xí)總結(jié)

    這篇文章主要為大家介紹了Vue.js設(shè)計(jì)與實(shí)現(xiàn)無限遞歸學(xué)習(xí)總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • vue實(shí)現(xiàn)簡易計(jì)算器功能

    vue實(shí)現(xiàn)簡易計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡易計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined解決辦法

    vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined解決辦法

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用高德地圖時(shí)報(bào)錯(cuò):AMap?is?not?defined的解決辦法,"AMap is not defined"是一個(gè)錯(cuò)誤提示,意思是在代碼中沒有找到定義的AMap,需要的朋友可以參考下
    2023-12-12
  • Vue中如何判斷對(duì)象是否為空

    Vue中如何判斷對(duì)象是否為空

    這篇文章主要介紹了Vue中如何判斷對(duì)象是否為空,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue子組件與父組件詳細(xì)解析

    Vue子組件與父組件詳細(xì)解析

    這篇文章主要介紹的是Vue子組件與父組件,什么是父組件,什么是子組件很多時(shí)候面對(duì)這個(gè)問題我們都會(huì)有所混淆,下面文章我們就來詳細(xì)介紹,需要的朋友可以參考一下
    2021-10-10
  • Vue實(shí)現(xiàn)簡單的留言板

    Vue實(shí)現(xiàn)簡單的留言板

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)簡單的留言板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10

最新評(píng)論

濮阳县| 兴隆县| 西盟| 荆门市| 天气| 友谊县| 大洼县| 扎赉特旗| 鄢陵县| 宝山区| 肥乡县| 乌兰县| 博客| 巴南区| 湖口县| 长子县| 布尔津县| 桦甸市| 西和县| 舟曲县| 巩义市| 邢台县| 格尔木市| 屯昌县| 桦甸市| 乐业县| 大石桥市| 美姑县| 平泉县| 博白县| 和平区| 新兴县| 读书| 改则县| 右玉县| 海口市| 区。| 嵊泗县| 名山县| 北川| 宁安市|