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

《历史代码分析》5、动态控制列表的列

20250307101307675427.png

本系列《历史代码分析》为工作中遇到具有代表性的代码。今天我们讲一下,动态展示列表的列,因为找不到代码了,所有本篇用图展示。

举个栗子

20250305024030239087.png

我们希望能够动态的控制列表的列,例如,英语老师只想知道自己学科的学生成绩,那可以把其它的成绩的列隐藏掉,如下:

20250305024124661210.png

上面的功能,我们应该如何实现,其实最简单的方式,就是记录每个老师她们要显示的列,保存到数据库中,如下

20250305024905460627.png

后端可以在每个老师登录时,获得到她们要显示的列,前端需要控制哪个列名显示,但是这种方法,需要前端判断,前端百分百不愿意做判断,

20250305030001567034.gif

所以呢,当前是我们后端把所有数据都过滤好,组成合适的数据返回给前端,类似如下

[ 
	{
		"id": 1,
		"name": "小明",
		"age": 15,
		"english": 56,
	},
	{
		"id": 2,
		"name": "小李",
		"age": 14,
		"english": 31,
	},
	{
		"id": 3,
		"name": "小华",
		"age": 16,
		"english": 20,
	},
	{
		"id": 4,
		"name": "小丽",
		"age": 14,
		"english": 0,
	}
]

上面的操作考虑到前端,下面继续瞎说,

前面是把老师需要显示的列保存到数据库中,我们也可以把所有的列都保存到字段中,如果该列显示用1表示,不显示用0表示,保存到字段的内容用JSON格式,如下:

{
	"id": 1,
	"name": 1,
	"age": 1,
    "chinese": 0,
	"english": 1
    ...
}

如果需要记录列的顺序,则需要用新的一张表,来记录每个老师设置的顺序,不吹了,基本上功能都是这样子,其实不管怎么样,前端都需要做判断,下次聊。

相关文章:

  • Java CAS(Compare-And-Swap)概念及原理
  • 程序代码篇---STM32串口通信
  • 18 | 实现简洁架构的 Handler 层
  • 【MySQL是怎么运行的】0、名词解释
  • NetworkManager服务与network服务的区别
  • 机器人路径规划、轨迹优化系列课程
  • Taro-Bluetooth-Print:让蓝牙打印也充满乐趣的开发组件库
  • STL —— 核心组成部分和特性概述
  • uniapp uview 1.0 跨域h5配置多个代理、如何请求接口
  • JavaWeb项目实际部署流程
  • CPS-J/S冲奖第15天:真题解析
  • Spring Boot集成Spring Statemachine
  • 【C++ STL】 容器详解:pair 学习
  • LabVIEW VI Scripting实现连接器窗格自动化
  • JavaScript性能优化实战:让你的Web应用飞起来
  • Nginx 生产环境安全配置加固
  • Python个人学习笔记(14):函数(匿名函数、内置函数(下)、三元表达式)
  • Banana Pi 与瑞萨电子携手共同推动开源创新:BPI-AI2N
  • java Long[] ids转为List<Long> ids
  • Python常用基础类库总结
  • 沃尔玛上财季净利下滑12%:关税带来成本压力,新财季价格涨幅将高于去年
  • 昆明公布3起经济犯罪案例:一人持有820余万假美元被判刑十年
  • 九江宜春领导干部任前公示,3人拟提名为县(市、区)长候选人
  • 国家卫生健康委通报关于肖某引发舆情事件调查处置进展情况
  • 外交部介绍对巴西、阿根廷、智利、秘鲁、乌拉圭等5国试行免签政策
  • 娃哈哈:调整产销布局致部分工厂停工,布局新产线可实现自主生产,不排除推新品牌