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

news2024/11/13 9:23:38

生成代码

完成配置工作,接下来就是见证奇迹的时刻~
返回到实体列表,选中“文件夹”记录,点击“生成代码”按钮,提示成功后,在项目的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.coloradmin.cn/o/1905986.html

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

相关文章

【国产开源可视化引擎Meta2d.js】网格

画布背景网格 在线体验: 乐吾乐2D可视化 示例: // 设置默认缺省网格属性 meta2d.store.options.grid true; // 开启 meta2d.store.options.gridColor eeeeee; // 网格线条颜色 meta2d.store.options.gridSize 10; // 格子大小// 设置单个图纸的网格…

java ReadWriteLock接口

在 Java 中,ReadWriteLock 接口的实现类ReentrantReadWriteLock 类提供了一种允许多个线程同时读取某一资源但只允许一个线程写的锁定机制。这种机制可以提高并发性能,特别是在读操作远多于写操作的场景下。 特性: 可重入;不存…

管理《欧盟数字服务法》交易者要求

《数字服务法》合规性 根据《数字服务法》(DSA) 的要求,对于在欧盟地区 (EU) 通过 App Store 分发 App 的所有交易商,Apple 需要验证并显示其联系信息。请指明你是否将以交易商或非交易商的身份在欧盟地区分发任何内容。进一步了解你是否应为交易商。 …

图解 RocketMQ 架构

写在前面 Kafka、RocketMQ都是很出名的中间件,上次我们讲解了Kafka,这次我们来讲讲RocketMQ的原理。 基本架构图 解析 RocketMQ 总共可以分成四个模块 NameServer:提供服务发现和路由功能,管理各种元数据信息。Broker&#xf…

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

题目&#xff1a; 题解&#xff1a; func countNodes(root *TreeNode) int {if root nil {return 0}level : 0for node : root; node.Left ! nil; node node.Left {level}return sort.Search(1<<(level1), func(k int) bool {if k < 1<<level {return false}…

tomcat原理、结构、设计模式

1 what 一种web服务器&#xff0c;运行java servlet、jsp技术&#xff0c;能为java web提供运行环境并通过http协议处理客户端请求。即tomcat http服务器 servlet容器。同类产品有jetty Web应用&#xff1a;Web应用是指通过Web浏览器访问的应用程序&#xff0c;它使用Web技术…

ctfshow-web入门-文件上传(web151-web160)

目录 1、web151 2、web152 3、web153 4、web154 5、web155 6、web156 7、web157 8、web158 9、web159 10、web160 1、web151 试了下前端只能传 png 后缀的 将一句话木马改成 png 后缀&#xff0c;上传后用 burpsuite 抓包 绕过前端检测后&#xff0c;改回 php 后缀&am…

Python28-9 XGBoost算法

XGBoost&#xff08;eXtreme Gradient Boosting&#xff0c;其正确拼写应该是 "Extreme Gradient Boosting"&#xff0c;而XGBoost 的作者在命名时故意使用了不规范的拼写&#xff0c;将“eXtreme”中的“X”大写&#xff0c;以突出其极限性能和效率&#xff09;是一…

【测试】系统压力测试报告模板(Word原件)

系统压力测试&#xff0c;简而言之&#xff0c;是在模拟高负载、高并发的环境下&#xff0c;对系统进行全面测试的过程。它旨在评估系统在面对极端使用条件时的性能表现&#xff0c;包括处理能力、响应时间、资源消耗及稳定性等关键指标。通过压力测试&#xff0c;开发团队能够…

【OJ】运行时错误(Runtime Error)导致递归爆栈问题

在进行OJ赛时&#xff0c; 题目&#xff1a;给你一个整数n&#xff0c;问最多能将其分解为多少质数的和。在第一行输出最多的质数数量k,下一行输出k个整数&#xff0c;为这些质数。 出现运行时错误 代码如下&#xff1a; def main():# code heren int(eval(input()))list …

力扣-双指针1

何为双指针 双指针指向同一数组&#xff0c;然后配合着进行搜索等活动。 滑动窗口的时候很好使用。 167.两数之和Ⅱ-输入有序数组 167. 两数之和 II - 输入有序数组 题目 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从…

2024年 春秋杯 网络安全联赛夏季赛 Web方向 题解WirteUp 部分

brother 题目描述&#xff1a;web哥&#xff0c;打点容易提权难。 打点就是最简单的SSTI。 执行下find / -user root -perm -4000 -print 2>/dev/null找一下具备suid权限的命令 /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/bin/chsh /usr/bin/gpasswd /usr/bin/n…

WPF UI InkCanvas 导师演示画板 演示 笔记 画笔 识别

<Grid><InkCanvas Name"inkCanvas"/><Button Content"识别" Click"Button_Click" VerticalAlignment"Bottom"/></Grid> 引用内库 Ink ink new Ink(); private void Button_Click(object sender, RoutedEvent…

逆变器学习笔记(三)

DCDC电源芯片外围器件选型_dcdc的comp补偿-CSDN博客、 1.芯片的COMP引脚通常用于补偿网络&#xff1a; 芯片的COMP引脚通常用于补偿网络&#xff0c;在控制环路中发挥重要作用。COMP引脚接电容和电阻串联接地&#xff0c;主要是为了稳定控制环路、调整环路响应速度和滤波噪声…

LabVIEW机器视觉技术在产品质量检测中有哪些应用实例

LabVIEW的机器视觉技术在产品质量检测中有广泛的应用&#xff0c;通过图像采集、处理和分析&#xff0c;实现对产品缺陷的自动检测、尺寸测量和定位校准&#xff0c;提高生产效率和产品质量。 1. 电子元器件质量检测 在电子制造业中&#xff0c;电子元器件的质量检测是确保产品…

Java版Flink使用指南——自定义无界流生成器

大纲 新建工程自定义无界流 使用打包、提交、运行 在《Java版Flink使用指南——从RabbitMQ中队列中接入消息流》一文中&#xff0c;我们让外部组件RabbitMQ充当了无界流的数据源&#xff0c;使得Flink进行了流式处理。在《Java版Flink使用指南——将消息写入到RabbitMQ的队列中…

AntV X6 图编辑引擎速通

前言&#xff1a;参考 [AntV X6 官网](https://x6.antv.antgroup.com/) 一、简介 X6 可以快速搭建 DAG 图、ER 图、流程图、血缘图等应用。 二、快速上手 1. 安装 npm install antv/x6 --save# oryarn add antv/x6# orpnpm add antv/x6 2. 使用 2.1 初始画布 在页面中创…

利用面向AWS的Thales Sovereign解决方案保护AI之旅

亚马逊网络服务(AWS)是全球最大的云服务提供商。众所周知&#xff0c;他们致力于提供工具、解决方案和最佳实践&#xff0c;使其客户能够安全地利用AWS上的生成式人工智能 (GenAI) 工作负载。组织正在迅速使用GenAI为企业带来更高的生产力和创造力。在GenAI的几乎所有用途中&am…

Python实战项目:外星人入侵(源码分享)(文章较短,直接上代码)

✌ 作者名字&#xff1a;高峰君主 &#x1f482; 作者个人网站&#xff1a;高峰君主 - 一个数码科技爱好者 &#x1f4eb; 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;和大家一起学习&#xff0c;一起进步&#x1f440; &#x1f4ac; 人生格言&#xff1a;没有…

vb.netcad二开自学笔记7:绘图命令的改进与扩展

1、在笔记6中创建了一个绘制直线的命令&#xff0c;若其他基本绘图命令都按那个写法会麻烦得要死&#xff0c;所以要总结其中的公共复用部分包封到一个统一的类中&#xff0c;这样在以后使用起来&#xff0c;特别是移植VBA代码时更方便&#xff0c;代码如下&#xff1a; Publi…