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

一文解決vue2 element el-table自適應高度問題

 更新時間:2023年11月21日 10:44:28   作者:gua了個gua  
在寫公司后臺項目的時候遇到一個需求,要求表格頁面不能有滾動條,所以必須封裝一個公共方法來實現(xiàn)表格自適應高度,本問小編給大家介紹了如何解決vue2 element el-table自適應高度問題,需要的朋友可以參考下

解決element表格自適應高度問題

在寫公司后臺項目的時候遇到一個需求,要求表格頁面不能有滾動條,所以必須封裝一個公共方法來實現(xiàn)表格自適應高度

第一步 實現(xiàn)自定義指令去監(jiān)聽表格元素高度變化

我這邊使用封住思想 首先創(chuàng)建在obSize文件夾下創(chuàng)建index.js內容如下

const map = new WeakMap()
// ob監(jiān)聽
const ob = new ResizeObserver((entries) => {
   for (const entry of entries) {
       // 處理元素對應的回調
       const handler = map.get(entry.target)
       if (handler) {
           const box = entry.borderBoxSize[0]
           // 循環(huán)entry.target 累加offsetTop 從而得到距離頁面頂部距離
           let setTop = countTop(entry.target, 0)

           handler({
               width: box.inlineSize,
               height: box.blockSize,
               entry: entry,
               bodHeight: window.document.body.clientHeight,
               setTop: setTop,
               tableHeight: (window.document.body.clientHeight - setTop - 50 - box.inlineSize) > 0 ? '' : window.document.body.clientHeight - setTop - 72
           })
       }
   }
})

export function countTop(el, topn) {
   if (el.offsetParent) {
       return countTop(el.offsetParent, topn + el.offsetTop)
   } else {
       return topn
   }

}
export default {
   inserted(el, binding) {
       ob.observe(el)
       // 監(jiān)聽el元素尺度的變化
       map.set(el, binding.value)
   },
   unbind(el) {
       // 取消監(jiān)聽
       ob.unobserve(el)
   },
}

注冊vue指令在directive文件夾index.js文件中

import obSize from './obSize'
const install = function (Vue) {
  //這里可以放入多個自定義指令
  Vue.directive('ob-size', obSize)
}

if (window.Vue) {

  Vue.use(install); // eslint-disable-line
}

export default install

在main.js引入directive

import directive from './directive'
Vue.use(directive)

第二步 封裝mixins

在mixins文件夾內創(chuàng)建estimateTableHeight.js內容如下 70 代表距離頁面底部的高度

import { countTop } from '@/directive/obSize'
export default {
    data() {
        return {
            tableHeight: 0,
        }
    },
    methods: {
        handleSizeChange(e) {
            this.tableHeight = e.tableHeight;
        },
    },
    // 監(jiān)聽showSearch
    watch: {
        showSearch(val) {
            // 獲取element table元素
            const dome = document.getElementsByClassName('el-table');
            let setTop = countTop(dome, 0)
            this.tableHeight = window.document.body.clientHeight - setTop - 70
        },
    },
    mounted() {
    //監(jiān)聽頁面尺寸變化
        window.addEventListener('resize', () => {
            const dome = document.getElementsByClassName('el-table');
            let setTop = countTop(dome, 0)
            this.tableHeight = window.document.body.clientHeight - setTop - 70
        });
    },
}


第三步 在頁面引入

引入 import estimateTableHeight from "@/mixins/estimateTableHeight";

export default { mixins: [estimateTableHeight], }

在el-table上加入 v-ob-size="handleSizeChange" :height="tableHeight"

<el-table
        v-ob-size="handleSizeChange"
        :height="tableHeight"
        v-loading="loading"
        :data="List"
>
      

大功告成!

以上就是一文解決vue2 element el-table自適應高度問題的詳細內容,更多關于vue2 element el-table自適應高度的資料請關注腳本之家其它相關文章!

相關文章

  • Vue實例掛載的全流程詳解

    Vue實例掛載的全流程詳解

    理解?Vue?實例的掛載過程,不僅有助于我們更好地掌握?Vue?的核心原理,還能提高我們在開發(fā)中的調試和優(yōu)化能力,下面就跟隨小編一起學習一下吧
    2024-12-12
  • axios發(fā)送post請求,提交圖片類型表單數據方法

    axios發(fā)送post請求,提交圖片類型表單數據方法

    下面小編就為大家分享一篇axios發(fā)送post請求,提交圖片類型表單數據方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Vue中watch清除過期副作用的案例詳解

    Vue中watch清除過期副作用的案例詳解

    在這里就不過多說watch的用法了,這篇文章主要通過案例帶大家了解一下如何清除過期的副作用。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-01-01
  • vue項目中引入vue-datepicker插件的詳解

    vue項目中引入vue-datepicker插件的詳解

    這篇文章主要介紹了vue項目中引入vue-datepicker插件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • Vue數據綁定實例寫法

    Vue數據綁定實例寫法

    在本篇文章里小編給大家整理的是關于Vue數據綁定實例寫法以及相關知識點,需要的朋友們學習下。
    2019-08-08
  • vxe-table?實現(xiàn)表格數據分組功能(按指定字段數據分組)

    vxe-table?實現(xiàn)表格數據分組功能(按指定字段數據分組)

    文章介紹了如何使用樹結構實現(xiàn)表格數據分組,并提供了官方文檔的鏈接,本文結合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 淺談在vue中用webpack打包之后運行文件的問題以及相關配置方法

    淺談在vue中用webpack打包之后運行文件的問題以及相關配置方法

    下面小編就為大家分享一篇淺談在vue中用webpack打包之后運行文件的問題以及相關配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue.js第一天學習筆記(數據的雙向綁定、常用指令)

    Vue.js第一天學習筆記(數據的雙向綁定、常用指令)

    這篇文章主要為大家分享了Vue.js第一天的學習筆記,包括數據的雙向綁定、常用指令學習,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • vue實現(xiàn)會議室拖拽布局排座功能

    vue實現(xiàn)會議室拖拽布局排座功能

    vue-draggable-resizable-gorkys是一更強大的拖拽組件,可以隨意拖拽,有點坐標,會議室拖拽布局排座是vue-draggable結合vue-draggable-resizable-gorkys進行開發(fā)的,本文重點給大家介紹vue實現(xiàn)會議室拖拽布局排座,感興趣的朋友一起看看吧
    2023-11-11
  • vue實現(xiàn)旋轉木馬動畫

    vue實現(xiàn)旋轉木馬動畫

    這篇文章主要為大家詳細介紹了vue實現(xiàn)旋轉木馬動畫,圖片數量無限制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論