1.表格錯位問題
this.$nextTick(() => {
this.$refs.table.doLayout()
})
@1使用element表格的方法doLayout()重新布局,在請求數據之后加入代碼this.$refs.tableData.doLayout(),這方法不一定有效,也有可能是我代碼哪寫的有問題導致沒起效,但是每個表格添加這個方法總是繁瑣的。
@2
*****************************************************************************************
*****************************************************************************************
*****************************************************************************************
*****************************************************************************************
*****************************************************************************************
<template>
<Pagination :current-page.sync="currentPage" :page-sizes="pageSizeArr"
:page-size="pageSize" :total="totalSize"
@size-change="onSizeChangeHandler"
@current-change="onCurrentChangeHandler"
layout="total, sizes, prev, pager, next, jumper"
background />
</template>
<script>
import { Pagination } from 'element-ui'
export default {
name: 'table-pagination',
components: { Pagination },
data() {
return {
currentPage: 1,
pageSize: 10,
pageSizeArr: [10, 20, 50, 100],
totalSize: 0
}
},
props: {
// 從后台獲取到的所有表格數據tableData
data: {
default: function() {
return []
},
type: Array
}
},
watch: {
data(newData) {
this.totalSize = newData.length
this.onCurrentChangeHandler(1)
}
},
methods: {
// currentPage 改變時會觸發
onCurrentChangeHandler(pageIndex) {
this.$emit('onTableChange', this.sliceRightData(pageIndex))
},
// 分頁邏輯
sliceRightData(pageIndex) {
let data = this.data
if(_.isEmpty(data)) {
return []
}else{
return data.slice((pageIndex - 1) * this.pageSize, pageIndex * this.pageSize)
}
},
// pageSize 改變時會觸發:
onSizeChangeHandler(val) {
this.pageSize = val
this.currentPage = 1
this.onCurrentChangeHandler(1)
}
}
}
</script>
<template>
<Table :data="currentPageData" :header="tableHeader" />
<Pagination :data="tableData" @onTableChange="onTableChange" />
</template>
<script>
import Table from '@/components/table'
import Pagination from '@/components/table-pagination'
export default {
name: 'table-pagination',
components: {
Table,
Pagination
},
data() {
return {
// 從后台獲取到的全部數據
tableData: [],
// 當前頁數據
currentPageData: [],
//表頭數據
tableHeader: this.getTableHeader()
}
},
methods: {
onTableChange(pageData) {
this.currentPageData = pageData
}
}
}
</script>
