欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

需求描述

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

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

功能分解

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

demo截圖


代碼地址

vue-draggable-list

代碼預(yù)覽

<template>
 <div class="row">
  <div class="col-5">
   <h3>組件配置頁(yè)面展示</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)頁(yè)面配置功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • vue實(shí)現(xiàn)axios圖片上傳功能

    vue實(shí)現(xiàn)axios圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)axios圖片上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • vue項(xiàng)目使用luckyexcel預(yù)覽excel表格功能(心路歷程)

    vue項(xiàng)目使用luckyexcel預(yù)覽excel表格功能(心路歷程)

    這篇文章主要介紹了vue項(xiàng)目使用luckyexcel預(yù)覽excel表格,我總共嘗試了2種方法預(yù)覽excel,均可實(shí)現(xiàn),還發(fā)現(xiàn)一種方法可以實(shí)現(xiàn),需要后端配合,叫做KKfileview,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 詳解VUE項(xiàng)目中安裝和使用vant組件

    詳解VUE項(xiàng)目中安裝和使用vant組件

    這篇文章主要介紹了VUE安裝和使用vant組件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue如何在線預(yù)覽各類(lèi)型文件

    vue如何在線預(yù)覽各類(lèi)型文件

    這篇文章主要介紹了vue如何在線預(yù)覽各類(lèi)型文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Vuex的基本概念、項(xiàng)目搭建以及入坑點(diǎn)

    Vuex的基本概念、項(xiàng)目搭建以及入坑點(diǎn)

    Vuex是一個(gè)專(zhuān)門(mén)為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式,這篇文章主要介紹了Vuex的基本概念、項(xiàng)目搭建以及入坑點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • vue使用async/await來(lái)實(shí)現(xiàn)同步和異步的案例分享

    vue使用async/await來(lái)實(shí)現(xiàn)同步和異步的案例分享

    近期項(xiàng)目中大量使用async,從服務(wù)器獲取數(shù)據(jù),解決一些并發(fā)傳參問(wèn)題,代碼很簡(jiǎn)單,在此也看了一些博客,現(xiàn)在async/await已經(jīng)大范圍讓使用,所以本文給大家介紹一下vue使用async/await來(lái)實(shí)現(xiàn)同步和異步的案例,需要的朋友可以參考下
    2024-01-01
  • Vue3中?引入Ant?Design的操作方法

    Vue3中?引入Ant?Design的操作方法

    Ant?Design?是一個(gè)開(kāi)源庫(kù),可讓您創(chuàng)建吸引人的響應(yīng)式網(wǎng)站。如果您想使用經(jīng)過(guò)充分測(cè)試且易于學(xué)習(xí)的框架,那么它是您下一個(gè)項(xiàng)目的絕佳選擇,這篇文章主要介紹了如何在?Vue?3?中使用?Ant?Design,需要的朋友可以參考下
    2023-04-04
  • vue中v-model、v-bind和v-on三大指令的區(qū)別詳解

    vue中v-model、v-bind和v-on三大指令的區(qū)別詳解

    v-model和v-bind都是數(shù)據(jù)綁定的方式,下面這篇文章主要給大家介紹了關(guān)于vue中v-model、v-bind和v-on三大指令的區(qū)別,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 10分鐘上手vue-cli 3.0 入門(mén)介紹

    10分鐘上手vue-cli 3.0 入門(mén)介紹

    這篇文章主要介紹了10分鐘上手vue-cli 3.0 入門(mén)介紹,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • vue項(xiàng)目頁(yè)面的打印和下載PDF加loading效果的實(shí)現(xiàn)(加水印)

    vue項(xiàng)目頁(yè)面的打印和下載PDF加loading效果的實(shí)現(xiàn)(加水印)

    這篇文章主要介紹了vue項(xiàng)目頁(yè)面的打印和下載PDF加loading效果的實(shí)現(xiàn)(加水印),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論