测试需求平台9-Table 组件应用产品列表优化

✍此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版,拥抱Vue3.0将前端框架替换成字节最新开源的arco.design,其中约60%重构和20%新增内容,定位为从 0-1手把手实现简单的测试平台开发教程,内容将囊括基础、扩展和实战,由浅入深带你实现测试开发岗位中平台工具技术能力入门和提升

👨‍💻 作者:大奇 MegaQi  
✍️ 专注测试开发实战&车载方向干货分享,欢迎访问长期关注博客和公众号。

1.气泡确认 Popconfirm

点击元素,弹出气泡式的确认框,一般可替代 Modal 对话框实现便捷的二次确认操作。

1.1 组件构成

由基本触发器浮层构成

  1. 触发器:点击触发器将唤起气泡确认框,触发器一般为按钮或链接

  2. 浮层:为确认框容器,其中包含了提示性文字和需要用户确认的操作

1.2 组件用法

气泡确认框是一种轻量的反馈方式,承载的内容也相对较少,主要用于二次确认操作。对比较为常规的对话框二次确认,气泡确认框从形式上更轻量,干扰更小,控件的打开关闭方式也更为便捷

<template>  <a-popconfirm content="你确定要删除此信息吗?">    <a-button>是否删除</a-button>  </a-popconfirm></template>

Popconfirm组件同样有 Props 属性具体参考引用

更多 API:https://arco.design/vue/component/popconfirm#API

本篇主要用到一个ok按钮 Events,即点击确认按钮时触发,对应还有个 cancel 事件,默认是关闭确认对话框,如确认操作无特殊交互逻辑无需处理。

1.3 应用实战

参考上一篇编辑的基础上增加行废弃菜单按钮,外层直接包裹确认气泡 popconfirm,而真正实现软删除的操作也是放在气泡的确认按钮上。

<a-table :columns="columns" :data="renderList" :pagination="false" ><template #optional="{ record }">  <a-button type="text" @click="editButtonClick(record)">编辑</a-button>+   <a-popconfirm content="你确定要废弃此产品吗?" type="warning" @ok="deleteButtonClick(record.id)">+     <a-button type="text">废弃</a-button>+   </a-popconfirm>  </template></a-table>

有个组件绑定,剩下只需要实现接口和触发删除逻辑就行了,这个气泡删除我们使用后端两个删除接口的 软删除 ,即更新产品状态。

/* 接口product.ts新增软接口 */export function apiProductRemove(id: number) {  return axios.post(`/api/product/remove?id=${id}`);}
/* 页面product/index.vue script部分新增确认事件处理 */const removeButtonClick = async (id) => {    const res = await apiProductRemove(id);    if (res.code === 20000) {        fetchData(); // 删除成功重新请求列表    } else {        console.log("产品删除失败");    }  }

案例验证下实现效果

在气泡确认组件使用建议中,有一种危险情况,比如数据彻底移出、操作会影响其他使用,这类是不建议使用 Propconfirm,而是建议使用Modal并通过改变样式、按钮状态等来更明显的提醒和阻断操作。下面以另外一个彻底删除接口实现对话框的模式的确认删除交互。

因为上篇已经详细讲解了 Modal 组件使用,这里就直接给出参考的代码了。1)src/api/product.ts

export function apiProductDelete(id: number) {  return axios.delete('/api/product/delete', {    params: {id}  });}

2)Vue tempplate

<a-modal v-model:visible="delModalVisible"           title="删除产品"           @before-ok="delModalOk"           okText="删除"           :okButtonProps="modalOkPros"  >    <div>确定彻底删除此产品吗?</div>  </a-modal>

3)Vue script

// 控制删除确认对话框const delModalVisible = ref(false); // 定义保存行删除的IDconst delId = ref("");// 对护框确定按钮的自定义属性,按钮为警告类型const modalOkPros = {    status: 'warning'    };// 赋值并弹出对话框const delBtnClick = (id) => {    delId.value = id;    delModalVisible.value = true;};// 调用接口执行删除操作const delModalOk = async () => {    const res = await apiProductRemove(delId.value);    if (res.code === 20000) {        delModalVisible.value = false;        fetchData();    } else {        console.log("产品移除失败");    };};

2.表格 Table 组件

在数据展示、分析整理、操作处理场景中最常用的就是Table表格,它是用行列的形式,结构化展示信息的组件;方便用户查看、分析数据。

2.1 组件构成

参考办公软件 Excel 在做数据表的时候(表头、行、列)格式,对应一个展示 Table 便有如下构成:

  • 表头 :说明这一列的信息类别,也可以在表头放置一些排序、筛选等操作按钮。

  • 单元格 :表格的主体由多个单元格组成,单元格内支持文字、图标、按钮、标签、单选框、复选框等元素。

  • 行列分割线:从视觉上分隔信息。

< 组件用法 https://arco.design/docs/spec/table >

2.2 组件类型

作为数据展示最常用的组件,从样式来和使用场景来说,ArcoDesgin 提供了多种类型

  • 基础表格 由表头和单元格组成,无其他拓展操作,对数据进行最基础展示;

  • 固定表格 用于在固定表格重要行或列(一般为头和两边列)内容展示不全场景,出现滚动条可滑动预览;

  • 选择表格 表格可以配置行的 CheckBox,进行单选/多选方便进行批量的数据操作;

  • 展开表格 表格行可以展开,以展示更多信息;

  • 树表格 即嵌套表格,当数据信息有清晰的层级关系时,可以使用树表格。

<附之前已经实现基础表格图>

2.3 使用时机

何时使用

  • 需要展示数据时:当有大量结构化数据需要展示展示时可以使用表格对数据进行有序的展示,更有利于用户对于数据的获取。

  • 需要对数据进行复杂操作时:当需要对数据进行排序、搜索、筛选等操作时,可以使用表格组件,利于对数据进行操作。

  • 需要对数据进行对比,归纳与分类时:当需要对数据进行对比、归纳、分类等操作时,可以使用表格组件,使信息之间易于对比,便于用户快速查询其中的差异与变化、关联和区别。

何时不适用

  • 单独的选择项和对应选项时: 单独的选择项对应选项时可采用列表组件,而非表格组件。

2.4 属性 API

表格Table可以看作是一个综合且相对负责的组件,因此会有更多的功能、属性、方法等供我们组合使用来达到不同需求,如下图左侧列出了很多参考,在使用时候可以以基本模版为地基,逐项增加配置项。

https://arco.design/vue/component/table#API

<table> Props 表属性

  • columns:表格的列定义 - TableColumnData[] 类型

  • data:表格绑定的数据 - 类型 [] 数据

  • size:大小密度 - 枚举 largeminismallmedium

  • loading:加载状态,常用于大量据接口响应时间长等待 - 布尔 falsetrue

  • row-key:建议指定表数据列 key,如不指定会有很多警告

<table-column> Props 列属性

  • data-index:列信息的标识,即绑定字典中的 key - 字符串类型

  • title:表头列标题 - 字符串 或 React 组件类型

  • width:自定义列最大宽度 - number 类型

  • align:列标题及内容对齐方向 - 枚举 leftcenterright

  • ellipsis:超出列宽度自动省略号,不设置默认超宽换行 - 布尔 falsetrue

  • tooltip:配合省略属性鼠标经过现实完整提示文本 - 布尔

  • slotName:设置当前列的渲染插槽的名字,典型场景数据格式化、自定义扩展列

<table> Slots 插槽,表格本身一些元素的自定义

  • th/td/tr 自定义其元素

  • columns 表格定义,启动时候会屏蔽 columns 属性

2.5 实战优化

对产品列表利用各属性和列自定义插槽知识点进行几处改造,详细参考截图红色标记,这里注意是用到了一个日期处理库moment对日期进行快速格式化,具体知识点汇聚在下一篇统一讲解。

代码优化后刷新管理页面,查看下效果。

表格在 WEB 的系统中对数据的展示和操作有着很重要的使用占比,因此有着更多更复杂的使用方法,此篇是最常用的基础需要熟练掌握,当然后续随着测试需求平台更多的需求被实现会更多的讲解 Table 的知识点。

 

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

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

相关文章

(每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(一)

项目建议与立项申请、初步可行性研究、详细可行性研究、评估与决策是项目投资前使其的四个阶段。在实际工作中&#xff0c;初步可行性研究和详细可行性研究可以依据项目的规模和繁简程度合二为一&#xff0c;但详细可行性研究是不可缺少的。升级改造项目制作初步和详细研究&…

2024年十大前景职业揭晓!提前布局,抢占未来职场制高点!

随着科技的飞速发展和社会的不断进步&#xff0c;各行各业都在经历着翻天覆地的变化。2024年即将到来&#xff0c;哪些职业将会成为未来的热门选择呢&#xff1f;本文将为您揭晓2024年十大前景职业&#xff0c;助您提前布局&#xff0c;抢占未来职场制高点&#xff01; 一、人…

Covalent Network(CQT)将链下收入引入链上,在全新阶段开启 Token 回购

Covalent Network&#xff08;CQT&#xff09;&#xff0c;是 Web3 领域跨越 225 个链的领先数据索引服务商&#xff0c;通过统一 API 的方式提供结构化数据可用性服务&#xff0c;并正在成为 AI、DeFi、分析和治理等多样化需求的关键参与者。为了支持去中心化技术的采用&#…

分布式系统中常用的缓存方案

1. 引言 随着互联网应用的发展和规模的不断扩大&#xff0c;分布式系统中的缓存成为了提升性能和扩展性的重要手段之一。本文将介绍几种在分布式系统中常用的缓存方案&#xff0c;包括分布式内存缓存、分布式键值存储、分布式对象存储和缓存网关等。 1.1 缓存在分布式系统中的…

基于 Amazon EKS 的 Stable Diffusion ComfyUI 部署方案

01 背景介绍 Stable Diffusion 作为当下最流行的开源 AI 图像生成模型在游戏行业有着广泛的应用实践&#xff0c;无论是 ToC 面向玩家的游戏社区场景&#xff0c;还是 ToB 面向游戏工作室的美术制作场景&#xff0c;都可以发挥很大的价值&#xff0c;如何更好地使用 Stable Dif…

【高级数据结构】Trie树

原理 介绍 高效地存储和查询字符串的数据结构。所以其重点在于&#xff1a;存储、查询两个操作。 存储操作 示例和图片来自&#xff1a;https://blog.csdn.net/qq_42024195/article/details/88364485 假设有这么几个字符串&#xff1a;b&#xff0c;abc&#xff0c;abd&…

LVDS电平标准与LCD屏的LVDS数据格式

LVDS&#xff0c;全称Low-Voltage Differential Signaling&#xff0c;即“低电压差分信号”&#xff0c;有两种含义&#xff08;LVDS电平与LVDS协议&#xff09;&#xff0c;要根据具体的情况来区分对方说的是LCD屏的LVDS协议或者仅指LVDS电平标准。 举例&#xff1a;示波器测…

AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用

原文链接&#xff1a;AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用 一开启大模型 1 开启大模型 1)大模型的发展历程与最新功能 2)大模型的强大功能与应用场景 3)国内外经典大模型&#xff08;ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diff…

aop监控spring cloud接口超时,并记录到数据库

引入pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0…

CVPR2024 进一步提升超分重建质量,中科大提出用于图像超分的语义感知判别器SeD,即将开源

本文首发: AIWalker&#xff0c;欢迎关注~ https://arxiv.org/abs/2402.19387 https://github.com/lbc12345/SeD 本文概述 生成对抗网络&#xff08;GAN&#xff09;已被广泛用于恢复图像超分辨率&#xff08;SR&#xff09;任务中的生动纹理。判别器使 SR 网络能够以对抗性训…

regexpire-攻防世界-MISC

用nc链接靶机&#xff1a; rootkali:~/Desktop# nc 220.249.52.133 37944 Can you match these regexes? Bv*(clementine|sloth)*Q*eO(clinton|alien)*(cat|elephant)(cat|trump)[a-zA-Z]*(dolphin|clementine)\W*(table|apple)* 大致上是服务端给出一个正则表达式&#xff0c…

智慧城市中的公共服务创新:让城市生活更便捷

目录 一、引言 二、智慧城市公共服务创新的实践 1、智慧交通系统 2、智慧医疗服务 3、智慧教育系统 4、智慧能源管理 三、智慧城市公共服务创新的挑战 四、智慧城市公共服务创新的前景 五、结论 一、引言 随着信息技术的迅猛发展&#xff0c;智慧城市已成为现代城市发…