生成代码
完成配置工作,接下来就是见证奇迹的时刻~
返回到实体列表,选中“文件夹”记录,点击“生成代码”按钮,提示成功后,在项目的output目录下输出了平台基于配置+模板产生的各层代码,在原有后端的基础上,新增了前端代码。
前端之所以在view下加了0,是为了排序时放在最前面与后端项目区分开,方便前后端分别拷贝代码到不同的目录下(不这样做,按字母表顺序,view会位于service和vo目录之间)。
查看后端代码变动
在配置视图前,我们将实体文件夹的“上级”属性的数据类型,由文本调整为了实体。
当时由于未配置视图,生成代码时会报错终止,提示未配置主参照视图,在视图配置之后,后端代码会有部分相应的变动,变化的是视图对象类和控制器类。
视图对象类会自动增加一个实体编码+name后缀的属性,在控制类中会调用实体服务,根据id拿到名称后填充,用于前端显示。
这里也看到了服务定义的getNameMap的作用,即将某页数据关联的外部属性标识,通过一次sql查询获取到名称,将1+N查询问题优化为1+1。
复制前端代码
将前端代码复制到新建的前端模块edoc的view视图下
前端不像后端那么规范,比较自由灵活,通过代码模板产生的代码,往往因为空格、缩进、换行等原因,直接运行会因为未通过eslint检查而报错,点开后保存一下就好了。但多个视图文件逐个点开保存也比较繁琐,更快捷的方式是执行如下脚本,由eslint自动格式化代码。
因为处理的是整个项目,执行速度略慢,但可以省去逐个打开和保存的麻烦。
配置权限
上面完成了开发层面的配置、代码生成、编译与运行,接下来就是最后一步,配置权限。
使用系统管理模块下的权限项管理功能,在根目录下新建模块。
功能菜单和按钮虽然也可以一个个创建,但更高效率的实现方式,是找一个现有的权限项,有基本的增删改查功能,例如接口平台模块下的应用数据权限,通过复制新增的方式,批量创建菜单和下属按钮,再修改上级和编码。
因为是树状层级结构,记得把上图中的视图编码,由list修改为treeList,平台通过该方式来加载菜单对应的vue页面。
平台会自动处理从属按钮的权限编码问题,修改后效果如下:
最后,通过系统管理模块下的用户组功能,给当前开发测试用的用户组admin添加对新建实体文件夹的权限。
查看运行效果
因为是新增的权限,需要重新登录系统。
这里没显示模块名,直接显示文件夹,是因为前端框架当模块下只有一个业务菜单时会进行这样的处理。
可以看到,左树右表的标准结构已经出来了。
添加根节点
对于树状数据,出于逻辑处理的需要,需要特定的根节点。这里我们可以通过新增功能,加一条数据
然后进入数据库表,将id手工修改为1,parent_id手工修改为0,这两个值是平台约定,在系统常量里定义的。
package tech.abc.platform.common.constant;import lombok.experimental.UtilityClass;/*** 树型数据默认值常量类** @author wqliu* @date 2023-03-06*/
@UtilityClass
public class TreeDefaultConstant {/*** 默认树根节点*/public static final String DEFAULT_TREE_ROOT_ID = "1";/*** 默认树型数据根节点父ID*/public static final String DEFAULT_TREE_ROOT_PARENT_ID = "0";}
更新完后,刷新页面,可以看到左侧树已经可以正常显示根节点了。
功能测试
使用新增功能,添加几条示例数据,如下图
查询、修改、删除、切换树节点,均能正常执行。
以上整个过程中,几乎完全通过配置产生,几乎没有需要手工调整的地方。
总结
通过以上操作,全程通过配置,实现了一个树状层次结构的实体增删改查。
步骤写的比较细,特别是说明了一些注意的事项以及最佳实践。
如果是熟练操作的话,估算5-10分钟能配置完(单个实体的配置,不包括创建模块的耗时)。
开发平台资料
平台名称:一二三应用开发平台
平台简介:企业级通用低代码应用开发平台,免费全开源可商用
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT
应用系统资料
应用名称:一二三文档管理系统
应用简介: 企事业单位一站式文档管理系统,让组织内文档管理有序,协作高效、安全可控
设计文档:csdn专栏
开源地址:Gitee
开源协议:MIT
如果您在阅读本文时获得了帮助或受到了启发,希望您能够喜欢并收藏这篇文章,为它点赞~
请在评论区与我分享您的想法和心得,一起交流学习,不断进步,遇见更加优秀的自己!