当前位置: 首页 > 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
    ...
}

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

http://www.dtcms.com/a/64359.html

相关文章:

  • 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常用基础类库总结
  • python-leetcode-压缩字符串
  • c++的stl中有哪几种map容器,都有什么应用场景?
  • 【web前端开发】HTML排版标签、HTML语义化标签、常用的文本标签
  • C++11语法糖:auto和范围for循环详解
  • 面向联邦学习隐私保护的同态加密库优化算法研究
  • L1-018 大笨钟
  • java IO涉及实现的各个接口
  • AI术语整理(持续更新)
  • go语言中立即调用的匿名函数
  • 【算法day8】 Z 字形变换 -O(n)算法思路整理