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

vue element el-transfer增加拖拽功能

 更新時(shí)間:2021年01月15日 11:41:23   作者:早飯君  
這篇文章主要介紹了vue element el-transfer增加拖拽功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

芯資管項(xiàng)目要求el-transfer增加拖拽排序,左右上下互相拖拽功能;
原來(lái)的組件不支持拖拽,這里要用個(gè)第三方脫宅組件sortablejs

首先安裝

 sudo npm i sortablejs --save-dev

html代碼

  <template>
  <el-transfer ref="transfer" id="transfer" v-model="value" :data="data">
   <span slot-scope="{ option }" :draggable="!option.disabled" @dragstart="drag($event,option)">{{ option.key }} - {{ option.label }}</span>
  </el-transfer>
</template>```

create

  <script>

   import Sortable from 'sortablejs'

   export default {
      data() {
        const generateData = _ => {
          const data = []; for (let i = 1; i <= 15; i++) {
            data.push({
              key: i,
              label: `備選項(xiàng) ${i}`,
              disabled: i % 4 === 0 });
          } return data;
        }; return {
          data: generateData(),
          value: [1, 4],
          draggingKey : null }
      },
      mounted() {
        const transfer = this.$refs.transfer.$el
        const leftPanel = transfer.getElementsByClassName("el-transfer-panel")[0].getElementsByClassName("el-transfer-panel__body")[0];
        const rightPanel = transfer.getElementsByClassName("el-transfer-panel")[1].getElementsByClassName("el-transfer-panel__body")[0];
        const rightEl = rightPanel.getElementsByClassName("el-transfer-panel__list")[0]
        Sortable.create(rightEl,{
          onEnd: (evt) => {
            const {oldIndex,newIndex} = evt;
            const temp = this.value[oldIndex] 
            if (!temp || temp === 'undefined') {
              return
            }// 解決右邊最后一項(xiàng)從右邊拖左邊,有undefined的問(wèn)題
            this.$set(this.value,oldIndex,this.value[newIndex])  
            this.$set(this.value,newIndex,temp)
          }
        })
        const leftEl = leftPanel.getElementsByClassName("el-transfer-panel__list")[0]
        Sortable.create(leftEl,{
          onEnd: (evt) => {
            const {oldIndex,newIndex} = evt;
            const temp = this.data[oldIndex] 
            if (!temp || temp === 'undefined') {
              return
            } // 解決右邊最后一項(xiàng)從右邊拖左邊,有undefined的問(wèn)題
            this.$set(this.data,oldIndex,this.data[newIndex]) 
            this.$set(this.data,newIndex,temp)
          }
        })
        leftPanel.ondragover = (ev) => {
          ev.preventDefault()
        }
        leftPanel.ondrop = (ev) => {
          ev.preventDefault();
          const index = this.value.indexOf(this.draggingKey) if(index !== -1){ this.value.splice(index,1)
          }
        }
        rightPanel.ondragover = (ev) => {
          ev.preventDefault()
        }
        rightPanel.ondrop = (ev) => {
          ev.preventDefault();  if(this.value.indexOf(this.draggingKey) === -1){ this.value.push(this.draggingKey)
          }
        }
      },
      methods: {
        drag(ev,option) { this.draggingKey = option.key
        }
      }

    } 
</script>

到此這篇關(guān)于vue element el-transfer增加拖拽功能的文章就介紹到這了,更多相關(guān)element el-transfer拖拽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue如何通過(guò)image-conversion實(shí)現(xiàn)圖片壓縮詳解

    vue如何通過(guò)image-conversion實(shí)現(xiàn)圖片壓縮詳解

    在Vue項(xiàng)目中上傳大圖片時(shí),可以通過(guò)image-conversion庫(kù)壓縮至指定大小,這篇文章主要介紹了vue如何通過(guò)image-conversion實(shí)現(xiàn)圖片壓縮的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • Vue祖孫組件如何實(shí)現(xiàn)傳值

    Vue祖孫組件如何實(shí)現(xiàn)傳值

    這篇文章主要介紹了Vue祖孫組件如何實(shí)現(xiàn)傳值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue中的全局指令防止按鈕重復(fù)點(diǎn)擊

    Vue中的全局指令防止按鈕重復(fù)點(diǎn)擊

    這篇文章主要介紹了Vue中的全局指令防止按鈕重復(fù)點(diǎn)擊,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue中Vue.extend()的使用及解析

    Vue中Vue.extend()的使用及解析

    這篇文章主要介紹了Vue中Vue.extend()的使用及解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue3?中ref和reactive的區(qū)別講解

    vue3?中ref和reactive的區(qū)別講解

    如果在template里使用的是ref類(lèi)型的數(shù)據(jù),?那么Vue會(huì)自動(dòng)幫我們添加.value,如果在template里使用的是reactive類(lèi)型的數(shù)據(jù),?那么Vue不會(huì)自動(dòng)幫我們添加.value,這篇文章主要介紹了vue3?中ref和reactive的區(qū)別,需要的朋友可以參考下
    2022-12-12
  • vue使用svg文件補(bǔ)充-svg放大縮小操作(使用d3.js)

    vue使用svg文件補(bǔ)充-svg放大縮小操作(使用d3.js)

    這篇文章主要介紹了vue使用svg文件補(bǔ)充-svg放大縮小操作(使用d3.js),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • el-upload多選文件上傳報(bào)錯(cuò)解決方案

    el-upload多選文件上傳報(bào)錯(cuò)解決方案

    本文主要介紹了el-upload多選文件上傳報(bào)錯(cuò)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • vue 監(jiān)聽(tīng)是否切屏和開(kāi)啟小窗的實(shí)現(xiàn)過(guò)程

    vue 監(jiān)聽(tīng)是否切屏和開(kāi)啟小窗的實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了vue 監(jiān)聽(tīng)是否切屏和開(kāi)啟小窗的過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • nuxt框架中路由鑒權(quán)之Koa和Session的用法

    nuxt框架中路由鑒權(quán)之Koa和Session的用法

    后臺(tái)管理頁(yè)面需要有登錄系統(tǒng),所以考慮做一下路由鑒權(quán),這篇文章主要介紹了nuxt框架中路由鑒權(quán)之Koa和Session的用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 使用vue-cli(vue腳手架)快速搭建項(xiàng)目的方法

    使用vue-cli(vue腳手架)快速搭建項(xiàng)目的方法

    本篇文章主要介紹了使用vue-cli(vue腳手架)快速搭建項(xiàng)目的方法,vue-cli 是一個(gè)官方發(fā)布 vue.js 項(xiàng)目腳手架,使用 vue-cli 可以快速創(chuàng)建 vue 項(xiàng)目,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評(píng)論

沾益县| 永顺县| 耿马| 阳东县| 黎平县| 泸溪县| 长葛市| 华阴市| 西城区| 长子县| 四子王旗| 伊金霍洛旗| 丽江市| 宜城市| 当雄县| 麟游县| 宁陵县| 南通市| 黄浦区| 读书| 南华县| 盐山县| 宁德市| 封丘县| 湖州市| 三门峡市| 贡山| 务川| 开鲁县| 高阳县| 鄯善县| 屏东市| 南涧| 嘉祥县| 临高县| 米林县| 宁海县| 麻江县| 庆安县| 河源市| 四会市|