Files
vxe-table/examples/views/table/advanced/PageIcon.vue
xuliangzhan 0d3e5b33de 更新文档
2019-12-30 20:13:33 +08:00

153 lines
4.6 KiB
Vue

<template>
<div>
<p class="tip">自定义分页按钮图标</p>
<vxe-table
border
show-overflow
height="400"
:loading="loading"
:data="tableData">
<vxe-table-column type="checkbox" width="60"></vxe-table-column>
<vxe-table-column type="seq" title="序号" width="60"></vxe-table-column>
<vxe-table-column field="name" title="Name" sortable></vxe-table-column>
<vxe-table-column field="sex" title="Sex"></vxe-table-column>
<vxe-table-column field="age" title="Age"></vxe-table-column>
<vxe-table-column field="rate" title="Rate"></vxe-table-column>
</vxe-table>
<vxe-pager
border
icon-prev-page="fa fa-angle-left"
icon-jump-prev="fa fa-angle-double-left"
icon-jump-next="fa fa-angle-double-right"
icon-next-page="fa fa-angle-right"
icon-jump-more="fa fa-ellipsis-h"
:loading="loading"
:current-page="tablePage.currentPage"
:page-size="tablePage.pageSize"
:total="tablePage.totalResult"
:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
@page-change="handlePageChange">
</vxe-pager>
<p class="demo-code">{{ $t('app.body.button.showCode') }}</p>
<pre>
<code class="xml">{{ demoCodes[0] }}</code>
<code class="javascript">{{ demoCodes[1] }}</code>
</pre>
</div>
</template>
<script>
import XEAjax from 'xe-ajax'
import hljs from 'highlight.js'
export default {
data () {
return {
loading: false,
tableData: [],
tablePage: {
currentPage: 1,
pageSize: 10,
totalResult: 0
},
demoCodes: [
`
<vxe-table
border
show-overflow
height="400"
:loading="loading"
:data="tableData">
<vxe-table-column type="checkbox" width="60"></vxe-table-column>
<vxe-table-column type="seq" title="序号" width="60"></vxe-table-column>
<vxe-table-column field="name" title="Name" sortable></vxe-table-column>
<vxe-table-column field="sex" title="Sex"></vxe-table-column>
<vxe-table-column field="age" title="Age"></vxe-table-column>
<vxe-table-column field="rate" title="Rate"></vxe-table-column>
</vxe-table>
<vxe-pager
border
icon-prev-page="fa fa-angle-left"
icon-jump-prev="fa fa-angle-double-left"
icon-jump-next="fa fa-angle-double-right"
icon-next-page="fa fa-angle-right"
icon-jump-more="fa fa-ellipsis-h"
:loading="loading"
:current-page="tablePage.currentPage"
:page-size="tablePage.pageSize"
:total="tablePage.totalResult"
:layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
@page-change="handlePageChange">
</vxe-pager>
`,
`
export default {
data () {
return {
loading: false,
tableData: [],
tablePage: {
currentPage: 1,
pageSize: 10,
totalResult: 0
}
}
},
created () {
this.findList()
},
methods: {
findList () {
this.loading = true
XEAjax.get(\`/api/user/page/list/\${this.tablePage.pageSize}/\${this.tablePage.currentPage}\`, this.formData)then(({ page, result }) => {
this.tableData = result
this.tablePage.totalResult = page.totalResult
this.loading = false
}).catch(e => {
this.loading = false
})
},
handlePageChange ({ currentPage, pageSize }) {
this.tablePage.currentPage = currentPage
this.tablePage.pageSize = pageSize
this.findList()
}
}
}
`
]
}
},
created () {
this.findList()
},
mounted () {
Array.from(this.$el.querySelectorAll('pre code')).forEach((block) => {
hljs.highlightBlock(block)
})
},
methods: {
findList () {
this.loading = true
XEAjax.get(`/api/user/page/list/${this.tablePage.pageSize}/${this.tablePage.currentPage}`, this.formData).then(({ page, result }) => {
this.tableData = result
this.tablePage.totalResult = page.totalResult
this.loading = false
}).catch(e => {
this.loading = false
})
},
handlePageChange ({ currentPage, pageSize }) {
this.tablePage.currentPage = currentPage
this.tablePage.pageSize = pageSize
this.findList()
}
}
}
</script>