一二三应用开发平台应用开发示例(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同理,所以总的不互质个…

JavaEE初阶-网络编程

文章目录 前言一、UDP与TCP1.1 有连接与无连接1.2 全双工1.3 可靠传输与不可靠传输1.4 面向子节流与面向数据报 二、UDP回显服务器及客户端编写三、UDP字典服务器四、TCP回显服务器及客户端编写五、数据序列化的方式5.1 基于行文本的方式传输5.2 基于XML的格式5.3 基于json5.4 …

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…

ThreadLocal的内存泄漏

什么是内存泄漏 程序在申请内存后,无法释放已申请的内存空间在定义变量时,需要一段内存空间来存储数据信息,而这段内存如果一直不被释放,那么就会导致内存被占用光,而被占用的这个对象,一直不能被回收掉&am…

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

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

VUE与React的生命周期对比

前言 在前端开发中,Vue和React是两个非常流行的JavaScript框架,它们各自有着独特的生命周期机制。了解并熟练掌握这些生命周期,对于开发高效、可维护的前端应用至关重要。本文将详细对比Vue和React的生命周期,帮助开发者更好地理…

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,…

好玩的珠玑妙算-加作弊带概率空间+日志存储240705mindMaster

Python代码 import random import time import datetimeNUM_DIGITS 10 #NUM_NON_ZERO_DIGITS 9failFlag 0class Mastermind:def __init__(self, code_length, max_attempts, secret01code, game_id): # def __init__(self, code_length, max_attempts):self.code_length…

【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替换为 → 全部替换

算法期末函数题

R6-1 可重复选择的组合数问题 【考核知识点】可重复选择的组合计数 【问题描述】 有n个不同元素&#xff08;1<n<20&#xff09;&#xff0c;每个元素可以选多次&#xff0c;一共需要选出k个元素出来&#xff08;1<k<20&#xff09;&#xff0c;问有多少种选取的…

监控易V7.6.6.15升级详解2:设备管理功能

随着企业IT架构的日益复杂&#xff0c;对设备管理的需求也在不断提升。为了满足广大用户对于设备管理的高效、精准需求&#xff0c;我们荣幸地宣布监控易系统已完成了一次重要的版本升级。本次升级不仅优化了原有功能&#xff0c;还新增了一系列实用特性&#xff0c;旨在为用户…

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

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

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

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

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

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

js之弹性布局使用方法

弹性布局&#xff08;Flexbox&#xff09;是一种现代化的 CSS 布局方法&#xff0c;它可以让您更方便地创建响应式和动态布局。在本篇文档中&#xff0c;我们将介绍弹性布局的基本概念以及如何在项目中使用它。 一、基本概念 容器&#xff08;Container&#xff09;&#xff…