element plus表格和分页

需求背景:

        通过接口获取数据(全部数据,未分页),然后把数据展示在表格上(支持分页)

1.获取数据(tableList为获取到的全部数据)

this.$http.post('/xxxxx', { id }).then((res) => {
    if (res.status == 0) {
        this.tableList = res.data
        //进行分页数据处理的方法
        this.initData()
    } else {
        this.$message.error(res.info)
    }
})

2.对数据进行分页处理(pageTable为表格中展示的数据)

initData() {
    this.pageTable = this.tableList.filter(
        (item, index) => index < this.pageNum * this.pageSize 
            && index >= this.pageSize * (this.pageNum - 1),
    )
},

3.表格和分页

<el-table
    :data="pageTable"
    style="width: 100%"
    border
    height="250"
    :header-cell-style="{ backgroundColor: '#f7f8fa', color: 'black' }"
>
    <el-table-column fixed prop="skuName" label="商品名称" min-width="120" />
    <el-table-column prop="skuId" label="SKU ID" min-width="120" />
    <el-table-column prop="thirdCode" label="供应商商品编码" min-width="120" />
    <el-table-column prop="brandName" label="品牌" min-width="120" />
    <el-table-column label="操作" v-if="pageType != 'see'">
        <template #default="scope">
          <a style="cursor: pointer; color: #165bd3" 
              @click="removeProduct(scope.$index, scope.row)">
              移除
          </a>
        </template>
    </el-table-column>
</el-table>
<el-pagination
    style="margin-top: 10px; float: right"
    v-model:current-page="pageNum"
    v-model:page-size="pageSize"
    :page-sizes="[10, 20, 30, 40]"
    layout="total, sizes, prev, pager, next, jumper"
    :total="tableList.length"
    @size-change="handleSizeChange"
    @current-change="handleCurrentChange"
/>

4.分页的方法

//分页
handleSizeChange(e) {
  this.pageSize = e
  this.initData()
},
handleCurrentChange(e) {
  this.pageNum = e
  this.initData()
},

效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于Vue项目中使用Element Plus进行表格分页,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Element Plus插件。你可以通过以下命令进行安装: ``` npm i element-plus ``` 2. 在你的Vue项目的入口文件(通常是main.js)中引入Element Plus: ```javascript import { createApp } from 'vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' createApp(App) .use(ElementPlus) .mount('#app') ``` 3. 在你需要使用表格分页的组件中,引入el-pagination组件和el-table组件: ```vue <template> <div> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" layout="sizes, prev, pager, next, jumper" :total="total"> </el-pagination> <el-table :data="tableData" :page-size="pageSize" :current-page.sync="currentPage" stripe> <!-- 表格列配置 --> </el-table> </div> </template> <script> export default { data() { return { currentPage: 1, pageSize: 10, total: 100, tableData: [] // 表格数据 } }, methods: { handleSizeChange(size) { this.pageSize = size // 请求接口获取对应页数的数据 // 更新tableData }, handleCurrentChange(page) { this.currentPage = page // 请求接口获取对应页数的数据 // 更新tableData } } } </script> ``` 在上述代码中,`el-pagination`是Element Plus提供的分页组件,你可以根据需要进行配置。`el-table`是Element Plus提供的表格组件,通过`:data`绑定表格数据,`:page-size`绑定每页显示数量,`:current-page.sync`实现当前页与分页组件的双向绑定。在`handleSizeChange`和`handleCurrentChange`方法中,你可以发送请求获取对应页数的数据,并更新`tableData`。 希望这个解答对你有帮助!如果还有其他问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值