一二三应用开发平台应用开发示例(6)——代码生成、权限配置、运行效果查看

生成代码

完成配置工作,接下来就是见证奇迹的时刻~
返回到实体列表,选中“文件夹”记录,点击“生成代码”按钮,提示成功后,在项目的output目录下输出了平台基于配置+模板产生的各层代码,在原有后端的基础上,新增了前端代码。
image.png
前端之所以在view下加了0,是为了排序时放在最前面与后端项目区分开,方便前后端分别拷贝代码到不同的目录下(不这样做,按字母表顺序,view会位于service和vo目录之间)。

查看后端代码变动

在配置视图前,我们将实体文件夹的“上级”属性的数据类型,由文本调整为了实体。
当时由于未配置视图,生成代码时会报错终止,提示未配置主参照视图,在视图配置之后,后端代码会有部分相应的变动,变化的是视图对象类和控制器类。

视图对象类会自动增加一个实体编码+name后缀的属性,在控制类中会调用实体服务,根据id拿到名称后填充,用于前端显示。
image.png
image.png
这里也看到了服务定义的getNameMap的作用,即将某页数据关联的外部属性标识,通过一次sql查询获取到名称,将1+N查询问题优化为1+1。

复制前端代码

将前端代码复制到新建的前端模块edoc的view视图下
image.png
前端不像后端那么规范,比较自由灵活,通过代码模板产生的代码,往往因为空格、缩进、换行等原因,直接运行会因为未通过eslint检查而报错,点开后保存一下就好了。但多个视图文件逐个点开保存也比较繁琐,更快捷的方式是执行如下脚本,由eslint自动格式化代码。
image.png
因为处理的是整个项目,执行速度略慢,但可以省去逐个打开和保存的麻烦。

配置权限

上面完成了开发层面的配置、代码生成、编译与运行,接下来就是最后一步,配置权限。
使用系统管理模块下的权限项管理功能,在根目录下新建模块。
image.png
功能菜单和按钮虽然也可以一个个创建,但更高效率的实现方式,是找一个现有的权限项,有基本的增删改查功能,例如接口平台模块下的应用数据权限,通过复制新增的方式,批量创建菜单和下属按钮,再修改上级和编码。
image.png
因为是树状层级结构,记得把上图中的视图编码,由list修改为treeList,平台通过该方式来加载菜单对应的vue页面。

平台会自动处理从属按钮的权限编码问题,修改后效果如下:
image.png
最后,通过系统管理模块下的用户组功能,给当前开发测试用的用户组admin添加对新建实体文件夹的权限。
image.png

查看运行效果

因为是新增的权限,需要重新登录系统。
image.png
这里没显示模块名,直接显示文件夹,是因为前端框架当模块下只有一个业务菜单时会进行这样的处理。
可以看到,左树右表的标准结构已经出来了。

添加根节点

对于树状数据,出于逻辑处理的需要,需要特定的根节点。这里我们可以通过新增功能,加一条数据
image.png
然后进入数据库表,将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";}

更新完后,刷新页面,可以看到左侧树已经可以正常显示根节点了。

功能测试

使用新增功能,添加几条示例数据,如下图
image.png
查询、修改、删除、切换树节点,均能正常执行。

以上整个过程中,几乎完全通过配置产生,几乎没有需要手工调整的地方。

总结

通过以上操作,全程通过配置,实现了一个树状层次结构的实体增删改查。
步骤写的比较细,特别是说明了一些注意的事项以及最佳实践。
如果是熟练操作的话,估算5-10分钟能配置完(单个实体的配置,不包括创建模块的耗时)。

开发平台资料

平台名称:一二三应用开发平台
平台简介:企业级通用低代码应用开发平台,免费全开源可商用
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT

应用系统资料

应用名称:一二三文档管理系统
应用简介: 企事业单位一站式文档管理系统,让组织内文档管理有序,协作高效、安全可控
设计文档:csdn专栏
开源地址:Gitee
开源协议:MIT

如果您在阅读本文时获得了帮助或受到了启发,希望您能够喜欢并收藏这篇文章,为它点赞~
请在评论区与我分享您的想法和心得,一起交流学习,不断进步,遇见更加优秀的自己!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pyserial设置缓冲区大小失败

文章目录 问题描述原因分析解决方案 问题描述 使用set_buffer_size()设置缓冲区大小后,buffer size仍为默认的4096 import time import serial ser serial.Serial(baudrate9600, timeout0.5) ser.port COM1 ser.set_buffer_size(rx_size8192) ser.open() while …

windows上部署python3.11

hello,大家好,我是一名测试开发工程师,至今已在自动化测试领域深耕9个年头,现已将本人实战多年的多终端自动化测试框架【wyTest】开源啦,在接下来的一个月里,我将免费指导大家使用wyTest,请大家…

欧拉函数.

性质1:质数n的欧拉函数为n-1. 性质2:如果p,q都是质数,那么ϕ ( p ∗ q ) ϕ ( p ) ∗ ϕ ( q ) ( p − 1 ) ∗ ( q − 1 ) 证明:p,2p....q*p都不与q*p互质,q同理,所以总的不互质个…

STM32芯片系列与产品后缀解读

一. 产品系列 STM32单片机是一系列基于ARM Cortex-M内核的32位微控制器,广泛应用于嵌入式系统中。 STM32系列由STMicroelectronics(意法半导体)开发和生产,并凭借其灵活的设计、丰富的外设和强大的生态系统,成为嵌入式…

咬文嚼字:词元是当今生成式人工智能失败的一个重要原因

生成式人工智能模型处理文本的方式与人类不同。了解它们基于"标记"的内部环境可能有助于解释它们的一些奇怪行为和顽固的局限性。从 Gemma 这样的小型设备上模型到 OpenAI 业界领先的 GPT-4o 模型,大多数模型都建立在一种称为转换器的架构上。由于转换器在…

Ubuntu24.04清理常见跟踪软件tracker

尽量一天一更,不刷视频,好好生活 打开系统监视器,发现开机有个tracker-miner-fs-fs3的跟踪程序,而且上传了10kb的数据。 搜索知,该程序会搜集应用和文件的信息。 删除tracker 显示带tracker的apt程序 sudo apt lis…

书生·浦语2.5开源,推理能力再创新标杆

导读 2024 年 7 月 3 日,上海人工智能实验室与商汤科技联合香港中文大学和复旦大学正式发布新一代大语言模型书⽣浦语2.5(InternLM2.5)。相比上一代模型,InternLM2.5 有三项突出亮点: 推理能力大幅提升,在…

Python | Leetcode Python题解之第222题完全二叉树的节点个数

题目: 题解: # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def countNodes(self,…

【Elasticsearch】Elasticsearch倒排索引详解

文章目录 📑引言一、倒排索引简介二、倒排索引的基本结构三、Elasticsearch中的倒排索引3.1 索引和文档3.2 创建倒排索引3.3 倒排索引的存储结构3.4 词典和倒排列表的优化 四、倒排索引的查询过程4.1 过程4.2 示例 五、倒排索引的优缺点5.1 优点5.2 缺点 六、倒排索…

【Excel】求和带文字的数据

目录标题 1. 给出样例2. CtrlE3. CtrlH → A替换为 → 全部替换 1. 给出样例 2. CtrlE 3. CtrlH → A替换为 → 全部替换

仿qq音乐播放微信小程序模板源码

手机qq音乐应用小程序,在线音乐播放器微信小程序网页模板。包含:音乐歌曲主页、推荐、排行榜、搜索、音乐播放器、歌单详情等。 仿qq音乐播放微信小程序模板源码

【ubuntu自启shell脚本】——在ubuntu中如何使用系统自带的启动应用程序设置开机自启自己的本地shell脚本

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、设置开机自启shell脚本1.使用 gnome-session-properties2.测试的shell例程代码 总结 前言 在Ubuntu系统中设置开机自启脚本是一种重要的自动化方法。开机自…

YOLO-World实时开集检测论文阅读

论文:《YOLO-World: Real-Time Open-Vocabulary Object Detection》 代码:https://github.com/AILab-CVC/YOLO-World 1.Abstract 我们介绍了YOLO World,这是一种创新的方法,通过在大规模数据集上进行视觉语言建模和预训练&#…

vue3+antd 实现点击按钮弹出对话框

格式1&#xff1a;确认对话框 按钮&#xff1a; 点击按钮之后&#xff1a; 完整代码&#xff1a; <template><div><a-button click"showConfirm">Confirm</a-button></div> </template> <script setup> import {Mod…

阶段三:项目开发---大数据开发运行环境搭建:任务4:安装配置Spark集群

任务描述 知识点&#xff1a;安装配置Spark 重 点&#xff1a; 安装配置Spark 难 点&#xff1a;无 内 容&#xff1a; Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop …

Bean的管理

1.主动获取Bean spring项目在需要时&#xff0c;会自动从IOC容器中获取需要的Bean 我们也可以自己主动的得到Bean对象 &#xff08;1&#xff09;获取bean对象&#xff0c;首先获取SpringIOC对象 private ApplicationContext applicationContext //IOC容器对象 (2 )方法…

昇思25天学习打卡营第13天 | ShuffleNet图像分类

ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作&#xff1a;Pointw…

ExcelVBA运用Excel的【条件格式】(二)

ExcelVBA运用Excel的【条件格式】&#xff08;二&#xff09;前面知识点回顾1. 访问 FormatConditions 集合 Range.FormatConditions2. 添加条件格式 FormatConditions.Add 方法语法表达式。添加 (类型、 运算符、 Expression1、 Expression2)3. 修改或删除条件格式4. …

密码技术中分组模式解析

目录 1. 概述 2. ECB模式 2.1 概述 2.2 ECB模式的加密 2.3 ECB模式的解密 2.4 优点 2.5 缺点 3. CBC模式【推荐】 3.1 概述 3.2 CBC模式的加密 3.3 CBC模式的解密 3.4 优点 3.5 缺点 4. CFB模式 4.1 概述 4.2 CFB模式的加密 4.3 CFB模式的解密 4.4 优点 4.…

智慧地产视觉监控系统开源了,系统采用多种优化技术,提高系统的响应速度和资源利用率

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…