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

vue3 elementPlus 表格實現(xiàn)行列拖拽及列檢索功能(完整代碼)

 更新時間:2023年10月30日 14:35:44   作者:二進制旅者  
本文通過實例代碼給大家介紹vue3 elementPlus 表格實現(xiàn)行列拖拽及列檢索功能,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

vue3 elementPlus 表格實現(xiàn)行列拖拽及列檢索功能

1、安裝vuedraggable

npm i -S vuedraggable@next

2、完整代碼

   <template>
<div class='container'>
  <div class="dragbox">
    <el-table row-key="id" :data="tableData" :border="true">
      <el-table-column
        v-for="item in columnList"
        :key="item.prop"
        :prop="item.prop"
        :label="item.label"
        sortable
      >
        <template #header>
          {{item.label}}
          <el-popover
            :visible="item.visible"
            placement="bottom"
            :width="200"
            trigger="click"
          >
            <template #reference>
              <el-button :type="item.input===''?'info':'primary'" link :icon="Search" @click.stop="item.visible = !item.visible"></el-button>
            </template>
            <div>
              <el-input v-model="item.input" placeholder="請輸入" size="small" />
              <div style="margin-top: 5px; display: flex; justify-content: space-between;">
                <el-button size="small" type="primary" @click="searchItem(item)">查詢</el-button>
                <el-button size="small" @click="resetItem(item)">重置</el-button>
              </div>
            </div>
          </el-popover>
        </template>
      </el-table-column>
    </el-table>
  </div>
</div>
</template>
<script setup lang='ts'>
import { Search } from '@element-plus/icons-vue'
import Sortable from "sortablejs"
import { ref } from 'vue'
const tableData = ref([
  {id: 1, name: '紙巾', type: '百貨', price: 30},
  {id: 2, name: '抽紙', type: '百貨', price: 18},
  {id: 3, name: '水杯', type: '百貨', price: 50},
])
const columnList = ref([
  {label: '名稱', prop: 'name', input: '', visible: false},
  {label: '類型', prop: 'type', input: '', visible: false},
  {label: '價格', prop: 'price', input: '', visible: false},
])
onMounted(() => {
  // 頁面加載完成執(zhí)行拖拽函數(shù)
  rowDrop()
  columnDrop()
})
// 列查詢
const searchItem = (item: any) => {
  item.visible = false
  console.log(item);
}
// 列查詢重置
const resetItem = (item: any) => {
  item.visible = false
  item.input = ''
  console.log(item);
}
// 行拖拽
const rowDrop = () => {
  const tbody = document.querySelector('.dragbox .el-table__body-wrapper tbody');
  Sortable.create(tbody, {
    draggable: ".dragbox .el-table__row",
    onEnd(evt: any) {
      const currRow = tableData.value.splice(evt.oldIndex, 1)[0];
      tableData.value.splice(evt.newIndex, 0, currRow);
      console.log(tableData.value);
    }
  });
}
// 列拖拽
const columnDrop = () => {
  const tr = document.querySelector('.dragbox .el-table__header-wrapper tr');
  Sortable.create(tr, {
    animation: 150,
    delay: 0,
    onEnd: (evt: any) => {
      const oldItem = columnList.value[evt.oldIndex];
      columnList.value.splice(evt.oldIndex, 1);
      columnList.value.splice(evt.newIndex, 0, oldItem);
      console.log(columnList.value);
    }
  });
}
</script>
<style lang='scss' scoped>
.container {
  height: 100vh;
  .dragbox {
    height: 100%;
  }
}
</style>     

到此這篇關(guān)于vue3 elementPlus 表格實現(xiàn)行列拖拽及列檢索功能的文章就介紹到這了,更多相關(guān)vue3 elementPlus表格行列拖拽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 值得收藏的vuejs安裝教程

    值得收藏的vuejs安裝教程

    這篇文章主要為大家分享了一篇值得收藏的vuejs安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Vue快速理解事件綁定是什么

    Vue快速理解事件綁定是什么

    一般在vue項目開發(fā)中,事件的處理邏輯一般很復雜,我們可以將處理的邏輯變成函數(shù),在vue開發(fā)中,一般使用的是使用的是v-on指令進行事件的監(jiān)聽,事件監(jiān)聽的過程中觸發(fā)相應的JavaScript代碼
    2022-08-08
  • vuex state中的數(shù)組變化監(jiān)聽實例

    vuex state中的數(shù)組變化監(jiān)聽實例

    今天小編就為大家分享一篇vuex state中的數(shù)組變化監(jiān)聽實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue實現(xiàn)移動端返回頂部

    vue實現(xiàn)移動端返回頂部

    這篇文章主要為大家詳細介紹了vue實現(xiàn)移動端返回頂部,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Vue打包后出現(xiàn)一些map文件的解決方法

    Vue打包后出現(xiàn)一些map文件的解決方法

    本篇文章主要介紹了Vue打包后出現(xiàn)一些map文件的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Vue3中Proxy在組件封裝中的使用及說明

    Vue3中Proxy在組件封裝中的使用及說明

    Vue3中Proxy在組件封裝中的妙用:讓組件交互更優(yōu)雅,通過Proxy,父組件可以直接訪問內(nèi)部子組件的方法和屬性,簡化了使用方式,提高了開發(fā)效率
    2025-10-10
  • vscode 開發(fā)Vue項目的方法步驟

    vscode 開發(fā)Vue項目的方法步驟

    這篇文章主要介紹了vscode 開發(fā)Vue項目的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue中then后的返回值解析

    vue中then后的返回值解析

    這篇文章主要介紹了vue中then后的返回值解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue之保留小數(shù)點兩位小數(shù) 使用filters(過濾器)

    vue之保留小數(shù)點兩位小數(shù) 使用filters(過濾器)

    這篇文章主要介紹了vue之保留小數(shù)點兩位小數(shù) 使用filters(過濾器),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue中v-for通過動態(tài)綁定class實現(xiàn)觸發(fā)效果

    vue中v-for通過動態(tài)綁定class實現(xiàn)觸發(fā)效果

    這篇文章主要介紹了vue中v-for通過動態(tài)綁定class實現(xiàn)觸發(fā)效果,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12

最新評論

灵川县| 鹤壁市| 英吉沙县| 新兴县| 大同县| 泊头市| 顺义区| 祥云县| 深州市| 中西区| 太湖县| 防城港市| 八宿县| 渭源县| 仙游县| 裕民县| 无锡市| 苍南县| 临沂市| 南宫市| 改则县| 临西县| 靖边县| 洮南市| 通江县| 黄陵县| 夏河县| 湖北省| 竹溪县| 调兵山市| 博乐市| 辽阳市| 克山县| 都江堰市| 弋阳县| 镇康县| 广水市| 栾川县| 孝义市| 胶南市| 乌拉特前旗|