Files
vxe-table/examples/views/table/plugin/ShortcutKey.vue
2021-03-24 20:12:54 +08:00

162 lines
5.4 KiB
Vue

<template>
<div>
<p class="tip">具体兼容请查看 <a class="link" href="https://github.com/x-extends/vxe-table-plugin-shortcut-key" target="_blank">vxe-table-plugin-shortcut-key</a> 插件的 API</p>
<vxe-grid
border
resizable
height="530"
:loading="loading"
:pager-config="tablePage"
:columns="tableColumn"
:data="tableData"
@page-change="handlePageChange"></vxe-grid>
<p class="demo-code">{{ $t('app.body.button.showCode') }}</p>
<pre>
<pre-code class="xml">{{ demoCodes[0] }}</pre-code>
<pre-code class="javascript">{{ demoCodes[1] }}</pre-code>
<pre-code class="javascript">{{ demoCodes[2] }}</pre-code>
</pre>
</div>
</template>
<script>
export default {
data () {
return {
loading: false,
tablePage: {
total: 0,
currentPage: 1,
pageSize: 10,
pageSizes: [10, 20, 50, 100, 200, 500]
},
tableColumn: [
{ type: 'seq', width: 60 },
{ type: 'checkbox', width: 50 },
{ field: 'name', title: 'Name' },
{ field: 'nickname', title: 'Nickname' },
{ field: 'role', title: 'Role' },
{ field: 'describe', title: 'Describe', showOverflow: true }
],
tableData: [],
demoCodes: [
`
<vxe-grid
border
resizable
height="530"
:loading="loading"
:pager-config="tablePage"
:columns="tableColumn"
:data="tableData"
@page-change="handlePageChange"></vxe-grid>
`,
`
import VXETable from 'vxe-table'
import VXETablePluginShortcutKey from 'vxe-table-plugin-shortcut-key'
VXETable.use(VXETablePluginShortcutKey, {
custom: {
'pager.prevPage': 'ArrowLeft',
'pager.nextPage': 'ArrowRight'
}
})
`,
`
export default {
data () {
return {
loading: false,
tablePage: {
total: 0,
currentPage: 1,
pageSize: 10
},
tableColumn: [
{ type: 'seq', width: 60 },
{ type: 'checkbox', width: 50 },
{ field: 'name', title: 'Name' },
{ field: 'nickname', title: 'Nickname' },
{ field: 'role', title: 'Role' },
{ field: 'describe', title: 'Describe', showOverflow: true }
],
tableData: []
}
},
created () {
this.findList()
},
methods: {
findList () {
// 模拟后台接口
this.loading = true
setTimeout(() => {
const list = [
{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'Shenzhen' },
{ id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
{ id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
{ id: 10004, name: 'Test4', role: 'Designer', sex: 'Women ', age: 23, address: 'Shenzhen' },
{ id: 10005, name: 'Test5', role: 'Develop', sex: 'Women ', age: 30, address: 'Shanghai' },
{ id: 10006, name: 'Test6', role: 'Designer', sex: 'Women ', age: 21, address: 'Shenzhen' },
{ id: 10007, name: 'Test7', role: 'Test', sex: 'Man ', age: 29, address: 'Shenzhen' },
{ id: 10008, name: 'Test8', role: 'Develop', sex: 'Man ', age: 35, address: 'Shenzhen' }
]
this.tableData = list
this.tablePage.total = 40
this.loading = false
}, 300);
},
searchEvent () {
this.tablePage.currentPage = 1
this.findList()
},
handlePageChange ({ currentPage, pageSize }) {
this.tablePage.currentPage = currentPage
this.tablePage.pageSize = pageSize
this.findList()
}
}
}
`
]
}
},
created () {
this.findList()
},
methods: {
findList () {
// 模拟后台接口
this.loading = true
setTimeout(() => {
const list = [
{ id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, address: 'Shenzhen' },
{ id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' },
{ id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' },
{ id: 10004, name: 'Test4', role: 'Designer', sex: 'Women ', age: 23, address: 'Shenzhen' },
{ id: 10005, name: 'Test5', role: 'Develop', sex: 'Women ', age: 30, address: 'Shanghai' },
{ id: 10006, name: 'Test6', role: 'Designer', sex: 'Women ', age: 21, address: 'Shenzhen' },
{ id: 10007, name: 'Test7', role: 'Test', sex: 'Man ', age: 29, address: 'Shenzhen' },
{ id: 10008, name: 'Test8', role: 'Develop', sex: 'Man ', age: 35, address: 'Shenzhen' }
]
this.tableData = list
this.tablePage.total = 40
this.loading = false
}, 300)
},
searchEvent () {
this.tablePage.currentPage = 1
this.findList()
},
handlePageChange ({ currentPage, pageSize }) {
this.tablePage.currentPage = currentPage
this.tablePage.pageSize = pageSize
this.findList()
}
}
}
</script>