ant-protable 点击表格行切换显示内容,前端脱敏

2023-12-29 02:30

本文主要是介绍ant-protable 点击表格行切换显示内容,前端脱敏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.需求

表格行默认不显示密码,点击单元格时才显示对应密码

在这里插入图片描述
点击数字证书密码切换当前单元格为明文:
在这里插入图片描述

2.完整代码

init-table-config.js: 表格配置文件

export default {total: 0,tableData: [],revalidateOnFocus: false,//默认为true,如果为true,窗口聚焦时会自动请求接口search: {show: 'true',span: {xs: 24,sm: 24,md: 12,lg: 8,xl: 8,xxl: 8,},collapseRender: false,collapsed: false,labelWidth: 113,filterType: 'query',layout: 'horizontal',},bordered: true,pagination: {showQuickJumper: true,show: 'true',pageSize: 10,current: 1,total: 0,pageSizeOptions: [10, 50, 100, 500, 1000, 10000],}

index.jsx 业务组件

import { ProTable } from '@ant-design/pro-table'
import { Button, message } from 'antd'
import { DownOutlined } from '@ant-design/icons'
import { useState, useEffect, useRef } from 'react'
import pageService from './service'
import initTableConfig from '@/config/init-table-config'
export default (props) => {const actionRef:any = useRef()//表格配置const [config, setConfig] = useState(initTableConfig) //表格配置项const [copytableData, setCopytableData] = useState([]) // 表格数据,包含了是否隐藏密码的flag// 查询列表const loadData = async (params) => {let obj = JSON.parse(JSON.stringify(params))let str = `?page=${params.current}&limit=${params.pageSize}`delete obj.pageSizedelete obj.current// 传参分两种类型...const res = await pageService.getPageList(obj, str)const data = configif (res.msgCode === '000000') {// 先设置所有密码都隐藏res.data.data.forEach((item) => {item.flag = true})// 再对还原点击要展示的密码行data.tableData = Object.assign(res.data.data, copytableData)data.pagination.total = res.data.countsetConfig(data)} else {message.error(res.message)}return Promise.resolve({data: data.tableData,success: true,total: data.pagination.total,})}const columns = [{title: '密码(更新后)',width: 60,dataIndex: 'certPasswordUp',hideInSearch: true,render: (_, record) => {return [<a style={{ color: '#000' }} key={record.id}onClick={() => {let list = JSON.parse(JSON.stringify(config.tableData))list.forEach((item) => {if (item.id == record.id) {// 点击要表格密码进行显示和隐藏的切换item.flag = !item.flagsetCopytableData(list)// 最后记得要刷新视图actionRef.current.reload()}})}}>{record.flag ? '******' : record.certPasswordUp}</a>,]},},]
}return (<><ProTable<TableListItem>actionRef={actionRef}columns={columns}className="center-table-search"{...config}request={loadData}rowKey="id"scroll={{ x: 800 }}/></>)
}

3.处理逻辑

先再点击的密码行上加一个事件,并且使用自定义渲染列,根据是否点击的标识来切换明文的显示,由于切换后表格列需要重新渲染,所有要触发表格渲染事件:actionRef.current.reload(),但是这个事件回默认重新出发列表接口调用,此时回遇到表格的data的flag标识回去全部设置为true的清空,所以需要克隆一份data与接口获取的data进行对比,保证flag设置后就不会再改变。

这篇关于ant-protable 点击表格行切换显示内容,前端脱敏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548075

相关文章

MybatisPlus 多数据源切换@DS注解失效问题解决

《MybatisPlus多数据源切换@DS注解失效问题解决》在业务开发中使用到了多数据源,遇到了@DS注解失效问题,有两个场景使用到同一个@DS的查询方法,下面就来介绍一下该问题的解决,感兴趣的可以... 在业务开发中使用到了多数据源,遇到了@DS注解失效问题,有两个场景使用到同一个@DS的查询方法,一个正

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

pandas使用apply函数给表格同时添加多列

《pandas使用apply函数给表格同时添加多列》本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、Pandas使用apply函数给表格同时添加多列二、应用示例一、Pandas使用apply函

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2