(15) 常用管理类软件需求征集 -- 通用菜单模块管理

简介:
开发大型管理类软件项目时,经常会遇到庞大的菜单项的管理,例如我们现在开发的项目里,菜单项大概有400-500个以上,我们经常会需要:

1。要增加一个菜单项
2。要删除一个菜单项
3。要修改一个菜单项的名称
4。经常要菜单项的先后顺序要改变
5。菜单项要移动到其他菜单下的子菜单里
6。导出数据给客户看菜单的布局等
7。某些菜单是公开,所有用户都可以访问。
8。停用暂时某些菜单项,过段时间再开放。

虽然这些工作不是天天发生,但是自己维护数据库,看密密麻麻的一大堆数据,真的是会眼花缭乱,当只有50个以内的菜单新项,你通过直接维护数据里的数据,想怎么弄就可以怎么弄是可以的,但是数据有500个以上的数据,你想怎么折腾就像怎么折腾就很困难了,想随心所欲修改数据,维护数据就变得蛮困难了。

我们经常也会发现,某些菜单是公开的,就是所有的用户都可以访问的,有些菜单是有相应权限的人才可以访问,有些菜单也需要临时停用,可能开发好了,才启用,也不能是删除了,再恢复过来也很折腾,所以有一个类似是否生效的功能。

下图是密密麻麻的数据库里的数据,大概有500多条记录,顺序也是很乱的,因为菜单也不是一次性能成行的,不断的修改、增加、减少、移动最后才形成了500多个菜单项,你把这些数据想按理想化的维护,是很痛苦的事情了。


下图是我的后台C\S管理工具,我所有的应用程序都用这个一个后台进行统一配置管理设定权限等,可以开发不同的B\S的项目,原因是C\S的开发效率高,调试也方便,还有集成了系统报警信息的提醒功能等,还有简易的内部即时通讯工具。


后台管理工具里集成了一个简易的即时通讯工具、有报警消息即时提醒功能,也可以显示用户的在线状态,这个功能模块也很稳定,测试了很多次,在网络不稳定时,网络带宽很低时,也不会出现错误,程序都进行了优化,功能比较稳定成熟。
这个后台管理工具特别适合在公司内部使用,是按公司的组织机构显示用户,想找哪个部门的谁,沟通什么事情等很方便。


这个是我的菜单管理工具,我一般习惯性的叫“模块管理”,总觉得说是菜单管理有把范围限定得太小的感觉,可以对模块的顺序调整,不是自己手工输入排序码的那种,那种太笨了,不友善,我不喜欢,我觉得菜单的顺序不能调整,那会搞死人的,还是由按钮来控制排序顺序是很方便的,当然能支持拖动是最理想的,我技术能力还没能打到那个境界。


下面解图是编辑状态时的效果,按ESC就可以退出,我很重视键盘操作,这些常用的功能,一定要注意,不是非要点关闭,点退出才能退出窗体,那太笨重了,我的窗体也一般支持回车换行的功能,因为毕竟是是国产软件,应该符合大部分用户的习惯比较好,我们都习惯了回车换行。


这个是右键快捷菜单功能项目,这个还是蛮有必要的,操作起来会更简便一些,当然我的程序一般都支持拖动功能,树型机构上的数据都支持拖动功能。



模块配置功能就是让系统里的哪些模块生效,那些模块停用的功能设置部分。
 

下图是在B\S项目中的运行效果图


也没有什么过多的管理思想,就是把一个菜单模块表维护好,想怎么折腾就怎么折腾,这个模块涉及到的表也很少,如下图
我有自己配套的代码生成器,可以快速生成设计好的模型的相关代码,这样写程序也更快捷一些。


此功能模块的难点:
1。数据量比较庞大时,软件的运行速度一定要快,不能太慢。
2。数据的灵活排序问题解决。
3。移动菜单项时的逻辑判断。
4。树型机构的导航功能的窗体的代码的量很大,需要相应的页面操作逻辑处理的代码比较多。
5。即时通讯工具又跟其他很多模块集成在一起,运行又很稳定,一般菜鸟也是搞不定的。
6。开发一个稳定的即时通讯小软件,也是不是那么容易的,需要熟练的C\S开发经验。
7。模块管理是一个独立的部分,又需要受权限控制等的约束,这些都需要写得又合理又清晰。

我的观点:
我们什么都会,但是需要什么,想要什么都需要花时间去在去弄,别人弄的都不放心,别人写的程序质量不行,要么运行不稳定,要么效率不高,要么数据库设计得不合理,要么功能定位不正确,要么某些细节处理得不好,用起来不方便,要么就是界面态丑陋,代码太乱不好维护。

若真的是一个很菜的功能,或者是很一般的东西,我也不敢叫卖,我有时候会想,我做了10年开发,我什么东西可以为别人服务?我能做什么?我天天做开发,当然是我软件开发中遇到的问题,解决的问题,有提供给别人帮助的可能性,有变成产品化软件的希望,虽然大家没有消费工具类软件,消费组件类软件的习惯,大家的产品也不能得到别人的信任的情况下,我还是需要继续走这条不归路,一直努力,早晚会得到大家的认可的。别的我也不懂行,也干不了,只能把这条道走到黑了。

欢迎大家指点批评。

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。



本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/448340,如需转载请自行联系原作者
相关文章
|
17天前
|
数据采集 机器学习/深度学习 自然语言处理
从零训练一个 ChatGPT:用 PyTorch 构建自己的 LLM 模型
本文介绍如何使用PyTorch从零构建类似ChatGPT的大型语言模型,涵盖Transformer架构、数据预处理、训练优化及文本生成全过程,助你掌握LLM核心原理与实现技术。(238字)
185 1
|
24天前
|
人工智能 缓存 搜索推荐
阿里云百炼产品月报【2025年10月】
本月重点:通义千问发布9款Qwen3-VL多模态新模型,覆盖32B至8B多种尺寸,支持思考模式、超长视频理解及2D/3D定位,并推出统一多模态向量与高精度语音识别模型。MCP生态新增17个云服务,电商AI应用模板上线,支持一键生成商品图与宠物店数字人视频,助力高效内容创作。
221 22
|
2月前
|
机器学习/深度学习 资源调度 计算机视觉
I-ViT: 用于高效视觉Transformer推理的纯整数量化——论文阅读
I-ViT是首个专为视觉Transformer设计的纯整数量化方案,通过Shiftmax、ShiftGELU和I-LayerNorm实现全整数推理,避免浮点运算。在保持模型精度的同时,显著提升推理效率,实现3.7倍以上加速,推动ViT在边缘设备的高效部署。
384 9
I-ViT: 用于高效视觉Transformer推理的纯整数量化——论文阅读
|
3月前
|
存储 弹性计算 网络协议
阿里云服务器ECS实例规格族详细介绍:计算型c9i、经济型e和通用算力u1实例CPU参数说明
阿里云ECS实例规格族包括计算型c9i、经济型e和通用算力型u1等,各自针对不同场景优化。不同规格族在CPU型号、主频、网络性能、云盘IOPS等方面存在差异,即使CPU内存相同,性能和价格也不同。
582 0
|
JavaScript
Vue3数字输入框(InputNumber)
这是一个可定制的数字输入框组件,支持设置宽度、最小值、最大值、步长、精度等属性,并可添加前缀图标及自定义显示格式。组件兼容键盘快捷键操作,具备禁用功能。示例代码展示了如何使用该组件实现不同场景下的数值输入与格式化展示。组件还利用 `add` 函数解决了 JS 精度问题,并通过 `useSlotsExist` 监听插槽。
802 7
Vue3数字输入框(InputNumber)
|
SQL 存储 数据挖掘
探索数据库技术的奥秘:核心原理、应用场景与实践技巧
一、引言 数据库技术作为现代信息系统中不可或缺的一部分,扮演着存储、管理和检索数据的重要角色
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
Qt安装之后添加或移除组件(Qt Creator 10.0.1)
1492 2
|
存储 边缘计算 数据管理
数据库技术的革新与变革:塑造未来数据管理的新趋势
一、引言 随着信息技术的飞速发展,数据库技术作为数据管理的基础,也在不断革新与变革
1487 0
|
监控 Java Sentinel
Spring cloud Alibaba Sentinel
Spring cloud Alibaba Sentinel
417 1
|
SQL 关系型数据库 MySQL
28个案例问题分析---02---sql优化--mysql执行顺序、explain关键字解析
28个案例问题分析---02---sql优化--mysql执行顺序、explain关键字解析
345 0