当前位置: 首页 > news >正文

react 手机端 rc-table列隐藏(根据相关条件是否隐藏)、实现图片上传操作

最近公司某一项目的手机端,新增需求:table中的附件要可以编辑,并且是在特定条件下可编辑,其他仅做展示效果。
查阅官方文档,没有发现是否隐藏这一属性,通过css控制样式感觉也比较麻烦,后面发现可以通过过滤来控制
效果图:
不可编辑、仅展示
在这里插入图片描述
可编辑
在这里插入图片描述
在这里插入图片描述
实现代码(主要是相关的columns):

const [detailList, setDetailList] = useState([]) // 明细信息
const [sealList, setSealList] = useState([]); // 上传的范印
const [editId, setEditId] = useState(''); // 修改范印的数据idconst columns = [
// {} ...
{title: getIntl({ id: 'sealFileId' }), // 范印dataIndex: 'sealFileSuffix',key: 'sealFileSuffix',render: (val, params) => {return <a onClick={()=>{download({ fileId: params.sealFileId,  fileName: params.sealFileSuffix })}}>{val}</a>;},align: 'center',},{title: getIntl({ id: 'operation' }), // 操作dataIndex: '',key: 'operation',render: (val, params, sss) => {return <a onClick={()=>{setEditId(params.id) // 这里记录下修改的是表格中的哪条数据,对应后面上传成功后进行匹配修改表格数据}}><ImageUploadervalue={[]}maxCount={1}onChange={setSealList}upload={upload}><span>上传</span></ImageUploader></a>;},align: 'center',hidden: qs.parse(location.search)?.pageType !== 'submit' // 这里是如果当前url上pageType为submit时,操作列展示可操作// 这里通过filter过滤来实现某条件下,此操作列是否隐藏},].filter(item => !item.hidden)const upload = async file => {const {url} = getMethodInfo('FILE_UPLOAD')const data = new FormData()data.append('file', file)await axios({ // 这里自己后端的图片上传接口url: url,method: 'post',data,}).then((res) => {if (res.data.code == 200){detailList.map(item =>{if(item.id === editId) {item.sealFileId = res.data.datas?.fileIditem.sealFileSuffix = res.data.datas?.fileName}})setDetailList(detailList)}})return { url: '' }}return (<TableemptyText={getIntl({ id: 'component.noticeIcon.empty' })}columns={columns}data={detailList}/>
)

相关的css

:global {.adm-image-uploader-cell {display: none;}.adm-space-item .adm-image-uploader-upload-button-wrap {display: block !important;}.adm-space-horizontal > .adm-space-item {margin-right: 0;}}

其他:其他相关可以去参考官方文档
https://www.npmjs.com/package/rc-table

相关文章:

  • 矩阵的模和内积
  • 基于金鹰算法优化概率神经网络PNN的分类预测 - 附代码
  • 量化交易:借助talib使用技术分析指标
  • Python字典六种类型概述
  • 和解电话(匿名电话)/情侣拉黑联系电话/虚拟号/虚拟中间号/拉黑联系项目代码
  • 直流电机干扰的产生-EMC和EMI
  • Linux的简单使用
  • ATTCK实战系列——红队实战(一)
  • 生成对抗网络(GAN)
  • 云服务器windows service2022 部署git服务器
  • 【开题报告】基于SpringBoot的中小企业设备管理系统的设计与实现
  • Linux使用ifconifg命令,没有显示ens33
  • 数据结构:反射
  • Java的JDBC编程
  • 集合框架面试题
  • [译]前端离线指南(上)
  • 2017-08-04 前端日报
  • create-react-app项目添加less配置
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • JavaWeb(学习笔记二)
  • JDK 6和JDK 7中的substring()方法
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue自定义指令实现v-tap插件
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 简单易用的leetcode开发测试工具(npm)
  • 前端技术周刊 2019-01-14:客户端存储
  • 区块链分支循环
  • 山寨一个 Promise
  • 详解移动APP与web APP的区别
  • 项目管理碎碎念系列之一:干系人管理
  • 携程小程序初体验
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • MPAndroidChart 教程:Y轴 YAxis
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 我们雇佣了一只大猴子...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #考研#计算机文化知识1(局域网及网络互联)
  • (10)ATF MMU转换表
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2)Java 简介
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (备忘)Java Map 遍历
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 分布式技术比较
  • .net6Api后台+uniapp导出Excel
  • .NET下的多线程编程—1-线程机制概述
  • /var/log/cvslog 太大
  • @javax.ws.rs Webservice注解
  • []T 还是 []*T, 这是一个问题