Vue3分页组件基础使用 以及 给表格增加自增序列

news2024/10/7 6:48:03

 分页组件使用

    <div class="demo-pagination-block">
                <el-pagination
                v-model:current-page="dataVo.pageNum"
                v-model:page-size="dataVo.pageSize"
                :page-sizes="[100, 200, 300, 400]"
                :small="small"
                :disabled="disabled"
                background="background"
                layout="total, prev, pager, next, jumper"
                :total="total"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                />
            </div>

 1. - `<div class="demo-pagination-block">` 是一个用于展示分页组件的容器。
 2.- `<el-pagination>` 是 Element UI 提供的分页组件,可以实现分页功能。

3. - `v-model:current-page="dataVo.pageNum"` 表示将 `dataVo.pageNum` 的值绑定到当前页数,通过 `v-model` 双向绑定,即可实现当用户点击页码时,自动更新 `dataVo.pageNum` 的值。

4. - `v-model:page-size="dataVo.pageSize"` 表示将 `dataVo.pageSize` 的值绑定到每页显示数量,同样通过 `v-model` 双向绑定。

5. - `:page-sizes="[100, 200, 300, 400]"` 是一个数组,表示用户可以选择的每页显示数量的选项。
- `:small="small"` 表示是否使用小型分页样式,`small` 是一个变量。

6. - `:disabled="disabled"` 表示是否禁用分页组件,`disabled` 是一个变量。

7. - `background="background"` 表示是否使用背景色,默认为透明。

8. - `layout="total, prev, pager, next, jumper"` 表示分页组件内部布局的顺序。

9. - `:total="total"` 表示总共有多少条记录。

10. - `@size-change="handleSizeChange"` 是一个事件监听器,当用户改变每页显示数量时,会执行 `handleSizeChange` 方法。

11.- `@current-change="handleCurrentChange"` 是一个事件监听器,当用户改变当前页数时,会执行 `handleCurrentChange` 方法。

script标签中

<script setup>
import { ref, nextTick, onMounted, onUnmounted, reactive , getCurrentInstance } from 'vue';
import { getStandardList, getList, addStandardList } from '@/api/template/index'
import { useRouter } from 'vue-router'
const router = useRouter();
const { proxy } = getCurrentInstance()


onMounted(() => {
   getTemplateFn()
});

// 获取数据的数据
const dataVo = reactive(
    {
        template: '',
        standard:'',
        pageSize:10,
        pageNum:1,
    }
);
// 条数
const total = ref(0)

// 分页方法 触发上一页下一页方法时 将当前页 当前条数赋予设定的变量 并执行重新获取数据的方法
const handleSizeChange = (val) => {
    dataVo.pageSize = val
    getTemplateFn()
}
const handleCurrentChange = (val) => {
    dataVo.pageNum = val
    getTemplateFn()
}

// 表格数据
let tableData = ref([]);
// 获取表格数据
function getTemplateFn() { 
    //执行获取数据的请求
    getStandardList(dataVo).then(res => { 
        console.log(res);
        tableData.value = res.data.data
            //将后台返回的总条数赋予设置的条数变量
        total.value = res.data.count
    })
};
</script>

 二, 序号自增

<el-table-column label="序号" align="center" type="index" width="100">
<template #default="scope">
       <span>{{ (dataVo.pageNum - 1) * dataVo.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>

//完整代码 

<template>
    <div class="template-box">
            <!-- 表格 -->
            <el-table :data="tableData"  border style="width: 100%" :header-cell-style="{  textAlign: 'center' }"
        :cell-style="{  textAlign: 'center' }" :fit="true">
        
                <el-table-column label="序号" align="center" type="index" width="100">
                <template #default="scope">
                    <span>{{ (dataVo.pageNum - 1) * dataVo.pageSize + scope.$index + 1 }}</span>
                </template>
                </el-table-column>

           <el-table-column prop="templateName" label="基础模板名称" show-overflow-tooltip/>
                <el-table-column prop="standardName" label="评分标准名称" show-overflow-tooltip/>
                <el-table-column prop="createBy" label="创建人" width="180" />
                <el-table-column prop="createTime" label="创建时间" width="180" show-overflow-tooltip/>
                <el-table-column label="操作" align="center" width="180">
                    <template #default="scope">
                        <span  @click="details(scope.row)">
                            <img src="../../assets/images/look.png" alt="">
                        </span>
                    </template>
                </el-table-column>
        </el-table>
    <!-- 分页 -->
            <div class="demo-pagination-block">
                <el-pagination
                v-model:current-page="dataVo.pageNum"
                v-model:page-size="dataVo.pageSize"
                :page-sizes="[100, 200, 300, 400]"
                :small="small"
                :disabled="disabled"
                background="background"
                layout="total, prev, pager, next, jumper"
                :total="total"
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                />
            </div>
    </div>
</template>

<script setup>
import { ref, nextTick, onMounted, onUnmounted, reactive , getCurrentInstance } from 'vue';
import { getStandardList, getList, addStandardList } from '@/api/template/index'
import { useRouter } from 'vue-router'
const router = useRouter();
const { proxy } = getCurrentInstance()


onMounted(() => {
   getTemplateFn()
});

// 获取数据的数据
const dataVo = reactive(
    {
        template: '',
        standard:'',
        pageSize:10,
        pageNum:1,
    }
);
// 条数
const total = ref(0)

// 表格数据
let tableData = ref([]);
// 获取表格数据
function getTemplateFn() { 
    //执行获取数据的请求
    getStandardList(dataVo).then(res => { 
        console.log(res);
        tableData.value = res.data.data
        total.value = res.data.count
    })
};
// 跳转方法
const details = (scope) => { 
    // console.log(scope.templateId);
    router.push({path:'/evaluate/standard/detail',query: {id:scope.templateId} })
}
// 分页方法
const handleSizeChange = (val) => {
    dataVo.pageSize = val
    getTemplateFn()
}
const handleCurrentChange = (val) => {
    dataVo.pageNum = val
    getTemplateFn()
}
</script>

<style lang="scss" scoped>
    // 分页
    .el-pagination{
        justify-content: center;
        margin-top: 15px;
    }
    // 弹窗样式
    ::v-deep().el-dialog:not(.is-fullscreen){
        margin-top: auto !important;
    }
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP message-06 027 供应商 还未为采购组织 创建

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 错误信息 When creating a RFQ in ME41 for a vendor that is not assigned to the Purchasing Organization, error "Vendor & has not been created for purch. organization"…

Solidity 小白教程:8. 变量初始值

Solidity 小白教程&#xff1a;8. 变量初始值 变量初始值 在solidity中&#xff0c;声明但没赋值的变量都有它的初始值或默认值。这一讲&#xff0c;我们将介绍常用变量的初始值。 值类型初始值 boolean: falsestring: “”int: 0uint: 0enum: 枚举中的第一个元素address: …

你用过 Maven Shade 插件吗?

文章首发地址 Maven Shade插件是Maven构建工具的一个插件&#xff0c;用于构建可执行的、可独立运行的JAR包。它解决了依赖冲突的问题&#xff0c;将项目及其所有依赖&#xff08;包括传递依赖&#xff09;合并到一个JAR文件中。 下面是对Maven Shade插件的一些详解&#xff…

慕尼黑主题活动!亚马逊云科技生成式AI全新解决方案,引领未来移动出行领域

IAA作为世界五大车展之一&#xff0c;一直对全球汽车产业的发展起着关键作用&#xff01;2023年9月5日在慕尼黑开幕的IAA MOBILITY 2023以“体验联动智慧出行”为主题&#xff0c;紧跟移动出行领域的前沿变化&#xff0c;将汇集整车企业、开发者、供应商、科技公司、服务提供商…

Growly Write for Mac:一个简单但功能强大的文本工具,让你的写作更轻松

Growly Write for Mac是一款简单而高效的文本工具&#xff0c;让你可以在Mac电脑上轻松处理文字任务&#xff0c;并跟踪文件结构。这个应用程序并不像Word那样拥有丰富的功能&#xff0c;但它的简约设计使得那些基本的文字处理任务变得轻松便捷。 如果你厌倦了复杂且耗时的文字…

ERROR 1062 (23000): Duplicate entry ‘%-root‘ for key ‘user.PRIMARY‘

一、报错 MySQL执行命令&#xff1a; UPDATE user SET host % WHERE user root; 报错&#xff1a; ERROR 1062 (23000): Duplicate entry %-root for key user.PRIMARY mysql> UPDATE user SET host % WHERE user root; ERROR 1062 (23000): Duplicate entry %-roo…

QT程序打包成可执行exe文件

1.编译时选择Realase 2.复制编译的exe文件到新文件夹 3.打开qt命令行工具 4.使用windeployqt添加qt依赖 cd /d E:\Qtproject\exewindeployqt NauDuShuiWen.exe 5.浏览&#xff0c;选择编译生成的文件&#xff08;下图注意选择递归&#xff09; 6.生成XXXXX_boxed.exe

AI:07-基于卷积神经网络的海洋生物的识别

当涉及海洋生物的识别和研究时,基于深度学习的方法已经展现出了巨大的潜力。深度学习模型可以利用大量的图像和标记数据来自动学习特征,并实现高准确度的分类任务。本文将介绍如何使用深度学习技术来实现海洋生物的自动识别,并提供相应的代码示例。 数据收集和预处理 要训…

『Bug挖掘机 - 赠书02期』|〖Effective软件测试〗

大家好&#xff0c;我是洋子&#xff0c;前段时间给大家推荐了《测试设计思想》&#xff0c;今天再给大家推荐一本软件测试领域的新书 这本书就比较接地气了&#xff0c;是一本软件测试的入门书籍&#xff0c;但同样适用于1-3年软件测试经验的读者阅读 这本书第一章就用Java代…

Speech | 语音处理,分割一段音频(python)

本文主要是关于语音数据在处理过程中的一些脚本文件以及实例&#xff0c;所有代码只需要更改所需处理的文件路径&#xff0c;输出路径等&#xff0c;全部可运行。 目录 所需环境 方法1&#xff1a;将一整段音频按时间批量切成一个一个音频 方法2&#xff1a;将一整段音频按…

csdn关注打开文章,自动取关脚本(设置为仅粉丝查看的文章)

一. 内容简介 csdn关注打开文章&#xff0c;自动取关脚本(设置为仅粉丝查看的文章) 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 就是在 (function() {use strict;// 在这编写自己的脚本 })();脚本&#xff0c;含解析 // UserS…

测试开发笔记2023年8月精华版

面向思维编写用例的小窍门测试是有发展前途的关于Python和Java竞争力当你觉得测试没意思时测试用例很难管理我为什么不学编程语言了一个测试背锅案例分析

无涯教程-JavaScript - HOUR函数

描述 HOUR函数返回时间值的小时。小时以整数形式给出,范围从0(上午12:00)到23(下午11:00)。 语法 HOUR (serial_number)争论 Argument描述Required/OptionalSerial_number 您想要找到的包含小时的时间。 可以输入时间 作为引号内的文本字符串(如" 6:45 PM") 为十…

SRM系统送样管理:优化供应链合作

一、SRM系统送样管理的定义&#xff1a; SRM系统送样管理是指利用供应商关系管理系统对供应商送样过程进行管理和控制的一系列活动。该管理模块涵盖了送样计划制定、样品跟踪、检验结果记录和供应商反馈等功能&#xff0c;以确保供应商提供的样品符合质量要求&#xff0c;并建…

【AIGC】【图像生成】controlNet介绍(原理+使用)

文章目录 安装1、ControlNet&#xff1a;AI绘画1.1、ControlNet的本质是文生图(txt2img)2.2、预处理器 & 模型选择1.3、参数配置 2、ControlNet 模型分类2.1、草图类(6个)2.2、高级特征类(3个)3.3、高级类(5个) 3、配置参数4、基本原理&#xff1a;可控的SD模型5.可视化效果…

CopilotHub招聘产品设计师;大模型岗位面试官的一线分享;AI应用创业的共识与非共识;LangChain学习手册 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; CopilotHub 招聘产品设计师&#xff0c;AI Agent C 端产品、远程工作、无限制带薪假期 https://app.copilothub.ai 这是一家成立于202…

抖店电商运营,新开通抖店正确的起店方法,新手商家必看做店教程

我是王路飞。 当你的抖店开通之后&#xff0c;也做好了店铺的一些基础搭建工作&#xff0c;那么之后的任务&#xff0c;就是起店了。 只有起店之后&#xff0c;你的店铺权重才会越来越高&#xff0c;不管走自然流量还是找达人带货&#xff0c;都更有优势。 所以今天给你们分…

OpenWrt系统开发笔记

openWrt英文官网&#xff1a; https://openwrt.org/ 中文官网&#xff1a; http://www.openwrt.org.cn/ 一、开发环境及编译 在github上有两个源码使用的比较多   一个是lede,地址为&#xff1a;https://github.com/coolsnowwolf/lede   另一个为OpenWrt的官方源码&#…

【创新项目探索】大数据服务omnidata-hive-connector介绍

omnidata-hive-connector介绍 omnidata-hive-connector是一种将大数据组件Hive的算子下推到存储节点上的服务&#xff0c;从而实现近数据计算&#xff0c;减少网络带宽&#xff0c;提升Hive的查询性能。目前支持Hive on Tez。omnidata-hive-connector已在openEuler社区开源。 …

SwiftUI简单基础知识学习

以下是一个大致的学习计划&#xff0c;将SwiftUI的知识分成12个主题&#xff1a; SwiftUI 简介和基础语法视图和布局状态和数据流按钮和用户输入列表和数据展示导航和页面传递动画和过渡效果手势和交互绘制和绘图多平台适配网络和数据请求实际项目实践和高级主题 每个主题可以…