Ant Design Vue中的Table和Tag的基础应用

目录

一、Table表格

1.1、显示表格

1.2、列内容过长省略展示

1.3、完整分页

1.4、表头列颜色设置

二、Tag标签

2.1、根据条件显示不同颜色

2.2、控制关闭事件

一、Table表格

效果展示:

官网:Ant Design Vue

1.1、显示表格

    <a-tableref="table"size="middle":scroll="{ x: true }"borderedrowKey="recordId":columns="columns":dataSource="dataSource":pagination="pagination":loading="loading"@change="handleTableChange"class="j-table-force-nowrap"><!-- <span slot="num" slot-scope="text, record, index">{{ (pagination.current - 1) * pagination.pageSize + parseInt(index) + 1 }}</span> --><!-- 性别处理 --><span slot="sex" slot-scope="text"><a-tag :color="text == 2 ? 'red' : 'green'">{{ text == 2 ? '男' : '女' }}</a-tag></span><!-- 时长处理 --><span slot="duration" slot-scope="text">{{ text == '0' ? '-' : text }}</span><!-- 图片列表 --><template slot="imgSlot" slot-scope="text"><div class="img-list"><imgv-for="(item, index) in displayedValues(text)":key="index"@click="handlePreview(item, index, text)":src="avatarSrc(item)"height="30px"style="width: 30px; margin-right: 8px"/><a-icontype="caret-down"style="font-size: 34px; color: #3489f9"v-if="text.length > 3"@click="resourceList(text)"/></div></template><!-- 视频列表 --><template slot="videoSlot" slot-scope="text"><span v-if="text && text.length == 0" style="font-size: 12px; font-style: italic">无视频</span><div class="img-list" v-else><divstyle="position: relative; width: 30px; height: 30px; margin-right: 8px"v-for="(item, index) in displayedValues(text)":key="index"><video:src="avatarSrc(item)"controlsheight="30px"style="width: 100%; height: 100%; position: absolute; top: 0; left: 0"></video><divstyle="position: absolute; top: 0; left: 0; width: 100%; height: 100%; cursor: pointer"@click="handlePreview(item, index, text)"></div></div><a-icontype="caret-down"style="font-size: 34px; color: #3489f9"v-if="text.length > 3"@click="resourceList(text)"/></div></template><!-- 状态处理 --><span slot="rejectStatus"><span style="color: red">已驳回</span></span><!-- 表格操作--><span slot="action" slot-scope="text, record"><a @click="rejectedConfirmation(record)">驳回</a></span></a-table>

1.2、列内容过长省略展示

<script>data() {return {// 表头columns: [{title: '序号',dataIndex: '',key: 'rowIndex',width: 60,align: 'center',customRender: function (t, r, index) {return parseInt(index) + 1},},{title: '学生姓名',align: 'center',dataIndex: 'studentName',},{title: '所属小组',align: 'center',dataIndex: 'groupNo',},{title: '性别',align: 'center',dataIndex: 'sex',key: 'sex',scopedSlots: { customRender: 'sex' },},{title: '锻炼时间',align: 'center',dataIndex: 'exerciseTime',},{title: '文字说明',align: 'center',dataIndex: 'remark',// 将样式作用于td里面的span里,否则样式不生效customRender: (text, record) => (<a-tooltip placement="bottomRight" title={record.remark}><spanstyle={{display: 'inline-block',width: '160px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow: 'ellipsis',cursor: 'pointer',}}>{record.remark == '' ? '-' : record.remark}</span></a-tooltip>),},{title: '锻炼时长',align: 'center',dataIndex: 'duration',scopedSlots: { customRender: 'duration' },},{title: '图片',align: 'center',dataIndex: 'imgList',scopedSlots: { customRender: 'imgSlot' },},{title: '视频',align: 'center',dataIndex: 'videoList',scopedSlots: { customRender: 'videoSlot' },},{title: '提交时间',align: 'center',dataIndex: 'commitTime',},{title: '状态',dataIndex: 'rejectStatus',align: 'center',scopedSlots: { customRender: 'rejectStatus' },},],dataSource: [],loading: false,}},
</script>

(1)、数据说明:columns数组是对表头以及每列对应值的设置,前提是你已获得了数据源dataSource,一般从请求里获取,根据数组里对象的“属性名”去依次设置columns;

(2)、处理列内容:就可以使用scopedSlots: { customRender: '属性名' };在视图里通过slot="属性名" slot-scope="text"就可以操作你要的样式,见上方的“性别”、“图片”、“视频”列;

(3)、超出隐藏,划过全显:在列内容的customRender函数里操作record,将样式作用于td里面的span里,否则样式不生效;

1.3、完整分页

<script>data() {return {pagination: {size: 'large',current: 1,pageSize: 10,total: 0,pageSizeOptions: ['10', '20', '30', '40'], //可选的页面显示条数showTotal: (total, range) => {return range[0] + '-' + range[1] + ' 共' + total + '条'}, //展示每页第几条至第几条和总数hideOnSinglePage: false, // 只有一页时是否隐藏分页器showQuickJumper: true, //是否可以快速跳转至某页showSizeChanger: true, //是否可以改变pageSize// onChange: (current, pageSize) => {//   this.pagination.current = current//   this.pagination.pageSize = pageSize//   this.getRejectRecord()// }, //页数改变// showSizeChange: (current, pageSize) => {//   this.pagination.current = current//   this.pagination.pageSize = pageSize//   this.getRejectRecord()// }, //页码改变},}},methods:{//表格改变时触发handleTableChange(pagination, filters, sorter) {this.pagination = paginationthis.getRejectRecord();//获取表格数据},getRejectRecord() {var that = thisconst { current, pageSize } = that.paginationconst params = {pageNo: current,pageSize: pageSize,}that.loading = truepostAction(that.url.list, params).then((res) => {if (res.success) {that.dataSource = res.result.records || res.resultif (res.result.total) {that.pagination.total = res.result.total} else {that.pagination.total = 0}that.loading = false} else {that.$message.warning(res.message)}})},
}
</script>

1.4、表头列颜色设置

        {title: '该列字体是黄色',align: 'center',dataIndex: 'freeExercise',className:'manually',//自定义},
/deep/ .manually{color: #eca712 !important;
}

二、Tag标签

<div class="team-collections"><!-- 小组集合--><a-tagclosableclass="group-items"v-for="(item, index) in groupLists":key="index":color="activationIndex == index ? '#3388F9' : ''"@close.prevent="preventDefault(item)"@click="clickGroup(index)">{{ `第${item.groupNo}组` }}</a-tag>
<a-button type="primary" @click="addGroups" icon="plus" v-if="groupLists.length > 0">添加小组</a-button>
</div>
<script>data() {return {groupLists: [],activationIndex: 0,}},methods:{//点击切换小组clickGroup(i) {this.activationIndex = i},// 删除小组preventDefault(item) {if (this.tableList.length == 0) {deleteAction(this.url.deleteGroup, { id: item.id }).then((res) => {if (res.success) {this.$message.success('删除成功!')} else {this.$message.error(res.message)}})} else {this.$message.warning('该小组已经有学生选择了,不可删除!');//通过修饰符.prevent阻止close事件被触发}},
}
</script>

2.1、根据条件显示不同颜色

举个例子:

:color="activationIndex == index ? '#3388F9' : ''"
:color="text == 2 ? 'red' : 'green'"

2.2、控制关闭事件

点击X删除该小组(tag),如果满足条件就删除,否则就触发删除事件,在这里就通过修饰符.prevent阻止close事件被触发

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

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

相关文章

《Linux》 Part1 top 指定多个程序名查看状态

《Linux》 Part1 top 指定多个程序名查看状态 1.top 查看多个程序状态命令2.单个进程状态查看命令 1.top 查看多个程序状态命令 processes("nginx" "apache2") tmp""for process in "${processes[]}"; dopids$(pgrep "$process&…

k8s集群搭建及对一些组件的简单理解

背景 k8s的学习环境&#xff08;用kubeadm方式搭建&#xff09;&#xff0c;我也搭过几次了&#xff0c;但都有点问题。 要么在云服务器上弄&#xff0c;这个的问题是就只有一台轻量服务器&#xff0c;只能搭个单节点的&#xff1b;后来买了一台便宜的&#xff0c;所以就有了两…

MIT6.s081 2021 Lab Utilities

Boot xv6 按照示例切换到 util 分支后&#xff0c;看到目录下包含 Makefile 文件&#xff0c;执行 make qemu 即可。 sleep 思路 借助系统调用 sleep 实现一个命令行程序&#xff0c;关键是要找到封装了系统调用的 C 函数的位置&#xff0c;根据提示&#xff1a; … user/u…

【LLM】GLM系列模型要点

note 文章目录 noteGLM一、数据层面1. 预训练数据 二、GLM4模型层面三、GLM-4 All Tools四、GLM的其他技术Reference GLM Paper&#xff1a;https://arxiv.org/abs/2406.12793 GitHub&#xff1a;https://github.com/THUDM HF&#xff1a;https://huggingface.co/THUDM 经过…

Python二级考试试题②

1. 以下关于程序设计语言的描述&#xff0c;错误的选项是&#xff1a; A Python语言是一种脚本编程语言 B 汇编语言是直接操作计算机硬件的编程语言 C 程序设计语言经历了机器语言、汇编语言、脚本语言三个阶段 D 编译和解释的区别是一次性翻译程序还是每次执行时都要翻…

将独立的 Python 网络应用程序分发给非技术用户

1. 问题背景 我们需要编写一个 Python 网络应用程序&#xff0c;供教师和学生在课堂上使用。该应用程序将在托管的网站上运行&#xff0c;但我们也希望用户能够下载一个自包含的应用程序&#xff0c;以便他们可以在本地安装&#xff0c;以获得更好的性能或他们根本无法在教室中…

【Solr 学习笔记】Solr 源码启动教程

Solr 源码启动教程 本教程记录了如何通过 IDEA 启动并调试 Solr 源码&#xff0c;从 Solr9 开始 Solr 项目已由 ant 方式改成了 gradle 构建方式&#xff0c;本教程将以 Solr 9 为例进行演示&#xff0c;IDE 选择使用 IntelliJ IDEA。 Solr github 地址&#xff1a;https://gi…

mysql:mysql XA事务的简单例子

# 测试 创建测试表&#xff0c;并写入数据 create table cash_account(name varchar(10),balance decimal(10,2) ) engineinnodb;insert into cash_account values(Tom, 210000);第一个会话&#xff0c;执行XA事务的业务内容 xa start transfer_of_account,cash;update cas…

对比A100和4090:两者的区别以及适用点

自2022年年末英伟达发布4090芯片以来&#xff0c;这款产品凭借着其优异的性能迅速在科技界占据了一席之地。现如今&#xff0c;不论是在游戏体验、内容创作能力方面还是模型精度提升方面&#xff0c;4090都是一个绕不过去的名字。而A100作为早些发布的产品&#xff0c;其优异的…

盘点5款最热门的AI绘画软件!总有一款是你的菜

在数字化艺术日益盛行的今天&#xff0c;AI绘画软件成为了创作者们的新宠。这些软件不仅能够帮助艺术家们快速生成独特的艺术作品&#xff0c;还能为普通用户带来全新的绘画体验。今天&#xff0c;我们就来盘点五款最热门的AI绘画软件&#xff0c;看看哪一款是你的菜&#xff0…

Kubernates容器化JVM调优笔记(内存篇)

Kubernates容器化JVM调优笔记&#xff08;内存篇&#xff09; 先说结论背景思路方案 先说结论 1、首先如果是JDK8&#xff0c;需要使用JDK8_191版本以上&#xff0c;才支持容器化环境和以下参数&#xff0c;否则就更新到JDK10以上&#xff0c;选择对应的镜像构建就行了 2、在容…

Python使用策略模式绘制图片分析多组数据

趋势分析&#xff1a;折线图静态比较&#xff1a;条形图分布分析&#xff1a;箱线图离散情况&#xff1a;散点图 import matplotlib.pylab as plt from abc import ABC, abstractmethod import seaborn as sns import pandas as pd import plotly.graph_objects as go import p…

TC397的Trap机制

Trap机制 Trap是MCU内部引发的硬件中断。 Trap是由不可屏蔽中断 (NMI)、指令异常、内存管理异常或非法访问等事件导致的。 Trap

秒杀系统设计与实现

将从11 个点来进行秒杀系统得设计与实现分析。 1、哪些地方存在瞬时高并发&#xff1f; 1. 预抢购业务&#xff1a;活动未正式开始前&#xff0c;先进行活动预约。在真正秒杀的时间点&#xff0c;很多数据都是预处理好的了&#xff0c;可以很大程度削减系统压力。比如&#xff…

03 Shell编程之循环语句与函数

目录 3.1 for 循环语句 3.1.1 for 语句的结构 3.1.2 for 语句应用示例 1. 根据姓名列表批量添加用户 2. 根据IP地址列表检查主机状态 3.2 使用while循环语句 3.2.1 while语句的结构 3.2.2 while语句应用示例 1. 批量添加规律编号的用户 2. 猜价格游戏 3.3 until 循环语句 3.…

aws的eks(k8s)ingress+elb部署实践

eks&#xff08;k8s&#xff09;版本1.29 ingress 版本1.10.0 负载均衡elb 1. 创建Ingress-Nginx服务 部署项目地址【点我跳转】推荐自定义部署 可绑定acm证书什么的自己属性 这里就是aws上面Certificate Manager产品上面创建证书 导入 创建都行 对应集群版本推荐阵列GitH…

503.下一个更大元素||

循环解题&#xff1a; class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {int n nums.size();vector<int> res;for (int i 0; i <n; i){int k i;bool flag false;for (int j 1;j <n-1;j){if((kj)%n ! k &&a…

MySQL中实现随机排序

MySQL中实现随机排序有多种方法&#xff1a; 1、使用 RAND() 函数 通过使用 RAND() 函数可以给每条记录生成一个随机数&#xff0c;然后按照这个随机数进行排序。例如&#xff1a; SELECT * FROM table_name ORDER BY RAND();这种方法简单易用&#xff0c;但不适用于大数据量…

Arc2Face - 一张图生成逼真的多风格人脸,本地一键整合包下载

Arc2Face是用于人脸的基础模型训练&#xff0c;可批量生成超高质量主题的AI人脸艺术风格照&#xff0c;完美复制人脸。只需一张照片&#xff0c;几秒钟&#xff0c;即可批量生成超高质量主题的AI人脸艺术风格照&#xff0c;完美复制人脸。 Arc2Face 是一个创新的开源项目&…

微信小程序-scroll-view实现上拉加载和下拉刷新

一.scroll-view实现上拉加载 scroll-view组件通过自身一些属性实现上拉加载的功能。 lower-threshold“100"属性表示距离底部多少px就会实现触发下拉加载的事件。 类似于在.json文件里面配置"onReachBottomDistance”: 100 bindscrolltolower"getMore"属…