<template>
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" :index="indexMethod" />
<el-table-column prop="date" label="Date" width="180" />
<el-table-column prop="name" label="Name" width="180" />
<el-table-column prop="address" label="Address" />
</el-table>
<el-pagination
v-model:page-size="params.pageSize"
background
layout="prev, pager, next"
size="small"
:total="4"
@current-change="handleCurrentChange"
/>
</template>
<script lang="ts" setup>
import {ref} from 'vue';
// index+1 代表从1开始排序
const indexMethod = (index: number) => {
return (params.pageNo - 1) * params.pageSize + (index + 1)
}
const params = {
pageNo: 1,
pageSize: 3
}
let tableData = ref([
{
date: '2015-05-03',
name: 'Tom',
state: 'California',
city: 'Los Angeles',
address: 'No. 189, Grove St, Los Angeles',
zip: 'CA 90036',
tag: 'Home',
},
{
date: '2016-05-02',
name: 'Tom',
state: 'California',
city: 'Los Angeles',
address: 'No. 189, Grove St, Los Angeles',
zip: 'CA 90036',
tag: 'Office',
},
{
date: '2017-05-04',
name: 'Tom',
state: 'California',
city: 'Los Angeles',
address: 'No. 189, Grove St, Los Angeles',
zip: 'CA 90036',
tag: 'Home',
}
])
const handleCurrentChange = (val) =>{
params.pageNo = val;
tableData.value = [
{
date: '2018-05-01',
name: 'Tom',
state: 'California',
city: 'Los Angeles',
address: 'No. 189, Grove St, Los Angeles',
zip: 'CA 90036',
tag: 'Office',
}, {
date: '2019-05-03',
name: 'Tom',
state: 'California',
city: 'Los Angeles',
address: 'No. 189, Grove St, Los Angeles',
zip: 'CA 90036',
tag: 'Home',
},
{
date: '2020-05-02',
name: 'Tom',
state: 'California',
city: 'Los Angeles',
address: 'No. 189, Grove St, Los Angeles',
zip: 'CA 90036',
tag: 'Office',
}
]
}
</script>
排序翻页不重新从1开始
<el-table-column type="index" :index="indexMethod" />
// index+1 代表从1开始排序
const indexMethod = (index: number) => {
return (params.pageNo - 1) * params.pageSize + (index + 1)
}