【JEECG】JeecgBoot数据字典:恢复数据字典颜色配置
一、前言在使用JeecgBoot开源版进行开发时,很多开发者都会遇到一个痛点:数据字典虽然能正常显示文本,但原本配置的颜色(如“成功”显示绿色,“失败”显示红色)却失效了,界面显得单调乏味。其实,开源版本虽然在前端展示层默认隐藏了颜色配置,但在后端核心代码中其实预留了完整的接口和功能代码。今天,我们就来一场“代码考古”,通过简单的几步修改,激活这些沉睡的代码,完美恢复数据字典的颜色配置功能,让你的后台管理界面瞬间生动起来。二、核心原理:AOP与动态注入JeecgBoot的数据字典翻译主要依赖于AOP(面向切面编程)。系统会在数据查询阶段拦截结果集,根据字段上的@Dict注解找到对应的字典编码,去数据库或缓存中查找匹配项。我们的目标是:在查找匹配项时,不仅获取文本(Text),还要获取颜色(Color),并以特定的后缀(_dictColor)注入到返回的Map中。前端只需读取该字段,即可实现动态着色。三、后端功能恢复我们需要修改四个核心文件,打通从数据库到Redis,再到AOP拦截的全链路。1.确认常量定义(CommonConstant.java)首先,检查CommonConstant.java文件。你会发现系统已经非常贴心地预留了字典翻译的后缀常量,这正是我们前后端交互的“暗号”。/**字典翻译文本后缀*/ String DICT_TEXT_SUFFIX = "_dictText"; /**字典翻译颜色后缀*/ String DICT_COLOR_SUFFIX = "_dictColor";2.核心逻辑激活(DictAspect.java)这是最关键的一步。打开字典AOP切面类DictAspect.java,我们需要在这里增加颜色翻译的逻辑。1.新增颜色翻译方法在类中添加以下私有方法,用于解析颜色值:/** * 字典值替换颜色 * * @param dictModels * @param values * @return */ private String translDictColor(ListDictModel dictModels, String values) { ListString result = new ArrayList(); // 允许多个逗号分隔,允许传数组对象 String[] splitVal = values.split(","); for (String val : splitVal) { String dictColor = val; for (DictModel dict : dictModels) { if (val.equals(dict.getValue())) { dictColor = dict.getColor(); break; } } result.add(dictColor); } return String.join(",", result); }2.修改parseDictText方法在parseDictText方法中,我们需要在翻译文本的同时,把颜色也翻译出来,并放入返回结果集record中。if (oConvertUtils.isNotEmpty(value)) { ListDictModel dictModels = translText.get(
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2505294.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!