# QuickBuild **Repository Path**: gitslipper/quick-build ## Basic Information - **Project Name**: QuickBuild - **Description**: 低代码平台,适合从零代码到高代码的渐进式开发。支持快速系统构建,提供可视化表单和界面设计工具,帮助用户轻松搭建应用。平台支持单点登录,简化用户身份管理;同时提供强大的接口对接与开放能力,方便与其他系统集成。此外,平台支持自定义调度,满足复杂业务需求;内置Groovy代码引擎,方便开发者实现复杂逻辑;还提供在线调试功能,助力高效开发。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 21 - **Forks**: 0 - **Created**: 2025-02-06 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: lowcode **Tags**: 低代码, 可视化, 快速生成系统, 可二开, SpringBoot ## README # QuickBuild #### 介绍 QuickBuild 低代码平台,适合从零代码到高代码的渐进式开发。支持快速系统构建,提供可视化表单和界面设计工具,帮助用户轻松搭建应用。平台支持单点登录,简化用户身份管理;同时提供强大的接口对接与开放能力,方便与其他系统集成。此外,平台支持自定义调度,满足复杂业务需求;内置Groovy代码引擎,方便开发者实现复杂逻辑;还提供在线调试功能,助力高效开发。 #### 在线示例 1. http://106.14.154.74:8080/quick-build/ 2. 用户名:superadmin,密码:123456 3. 每天0点重置 #### 源码安装教程 源码安装前置,需要安装maven, nodejs 1. 支持 mysql,postgresql,sqlserver,需要安装 mysql 或 postgresql 数据库 2. 在 quick-build 根目录进行 mavn 打包:mvn clean -Pprod package -f pom.xml 3. 将 target/quick-build-web.jar,quick-build-web/src/main/resources/application-prod.properties 复制到同一目录,并将 application-prod.properties 重命名为 application.properties 4. 使用脚本运行:java -jar quick-build-web.jar --spring.config.location=file:./application.properties 5. 注意修改配置application.properties, postgresql数据库配置方式: spring.datasource.druid.url=jdbc:postgresql://数据库IP:数据库端口/数据库名称?currentSchema=数据库schema spring.datasource.druid.driver-class-name=org.postgresql.Driver spring.datasource.druid.username=数据库用户名 spring.datasource.druid.password=数据库密码 mysql数据库配置方式: spring.datasource.druid.url=jdbc:mysql://数据库IP:数据库端口/数据库名称?autoReconnect=true&serverTimezone=GMT%2B8 spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.username=数据库用户名 spring.datasource.druid.password=数据库密码 sqlserver数据库配置方式: spring.datasource.druid.url=jdbc:sqlserver://数据库IP:数据库端口;DatabaseName=数据库名称;encrypt=false;trustServerCertificate=true spring.datasource.druid.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.druid.username=数据库用户名 spring.datasource.druid.password=数据库密码 sqlserver需要注意:修改 conf/security/java.security 文件,删除配置 jdk.tls.disabledAlgorithms 中的 TLSv1, TLSv1.1, 3DES_EDE_CBC 修改 application.properties spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate #### 非源码安装教程 1. [QuickBuild下载](http://106.14.154.74:8080/) 2. 安装 mysql 或 postgresql 数据库 3. 修改 application.properties 中的数据库配置 postgresql 数据库配置方式: spring.datasource.druid.url=jdbc:postgresql://数据库IP:数据库端口/数据库名称?currentSchema=数据库schema spring.datasource.druid.driver-class-name=org.postgresql.Driver spring.datasource.druid.username=数据库用户名 spring.datasource.druid.password=数据库密码 mysql 数据库配置方式: spring.datasource.druid.url=jdbc:mysql://数据库IP:数据库端口/数据库名称?autoReconnect=true&serverTimezone=GMT%2B8 spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.username=数据库用户名 spring.datasource.druid.password=数据库密码 4. 使用脚本运行:java -jar quick-build-web.jar --spring.config.location=file:./application.properties #### 系统升级方案: 1. 最新的程序包替换:quick-build-web.jar 2. 重启系统。 #### 系统升级失败解决方案: 如系统无法启动、无法登录或登录报错时可使用以下方式进行修复: 1. 删除表 sys_version: drop table sys_version; 2. 重启系统。 #### 访问方式 1. 打开浏览器访问:http://127.0.0.1/ 2. 默认端口为80,可通过 application.properties server.port 修改访问端口 3. 默认用户名:superadmin,默认密码:123456 # 使用文档 ## 1 数据模型 ### 1.1 功能介绍 配置表格/表单有哪些字段。 表格:数据查询时显示的表格。 ![](readme/table.png) 表单:编辑/显示明细数据的表单。 ![](readme/form.png) ### 1.2 模型类型 库表:根据【字段管理】中配置的字段在数据库中建表。 视图:【视图名称】来源于【视图配置】中根据sql生成的视图。 ### 1.3 字段管理 配置表格/表单有哪些字段。配置保存后自动生成【表格设计 -> 默认表格】【表单设计 -> 默认表单】 #### 1.3.1 字段类型: 字符:【自动生成】为【是】时,【自动生成序】来源于【系统配置 -> 序号配置】,需要手动添加序配置 联动:与其它数据模型/人员/组织机构/字典表关联,查出特定字段信息 派生:必须与联动字段同时出现,派生配置中的【来源字段】指联动字段关联表中的字段 ![](readme/data-model.png) ### 1.4 表格设计 添加表格:新增一张表格。 基础信息:配置表格显示的字段。 数据排序:配置表格数据的默认排序。 权限过滤:根据角色进行数据过滤。 提示信息:表格顶部/底部显示提示信息。 ### 1.5 表单设计 #### 1.5.1 基础信息 批量编辑:【是】时,打开的表单为批量信息录入。 初始化脚本:来源于【脚本配置】中配置的脚本,脚本语言为【groovy】。 #### 1.5.2 表单字段 添加分段:将表单分成不同的段,每段前显示段名称。 #### 1.5.3 自动填充 根据【触发字段】的内容匹配【来源数据模型】中的【匹配字段】并将【来源数据模型】中的【来源字段】数据填充到【填充字段】。 #### 1.5.4 显隐禁用 配置字段根据特定条件显示显示、隐藏或者禁用(不允许修改)。 #### 1.5.5 页面脚本 为js脚本,可参照脚本说明进行编写,脚本中的【字段名称】使用的是【数据模型】字段管理中的【字段名称】。 ### 1.6 索引管理 配置数据库表的索引(仅【模型类型】为库表时有效)。索引名称一致时为联合索引。 ### 1.7 触发器 当数据显示时根据不同的触发条件,调用不同的【触发脚本】。 ## 2 脚本配置 脚本语言为 groovy 语言,可到 [w3cschool](https://www.w3cschool.cn/groovy/index.html) 了解基本语法,语法比较简单、入门快、学习成本低。 通用参数:args,脚本中可通过 println args 打印 args 的内容。 当保存的数据为表单时,args 为表单的数据,如表单中有【姓名】字段时,【姓名】的取值为【args.姓名】。 当提交的数据为批量数据时,数据列表取值为:args.dataList。 当导入excel数据时,数据列表取值为:args.importList。 脚本编写可参考【[在线示例](http://106.14.154.74:8080/quick-build/)】里面的脚本。 脚本执行日志查看可以通过管理后台顶部的【查看日志】查看服务日志信息。 ## 3 视图配置 配置sql作为视图,可作为数据模型的视图来源,并配置相应的显示表格/页面。 ## 4 数据对接 ### 4.1 接口令牌 配置接入本系统接口的【应用标识】、【应用密钥】,根据【应用标识】、【应用密钥】获取接口访问【令牌】。 令牌获取方式: ```java public static void main(String[] args) { String url = "http://网站地址/v1/token"; // 网站地址替换为真实的API地址 String json = "{\"appKey\":\"应用标识\", \"appSecret\":\"应用密钥\"}"; // 替换为真实的【应用标识】、【应用密钥】 URL url = new URL(url); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json; utf-8"); connection.setRequestProperty("Accept", "application/json"); connection.setDoOutput(true); OutputStream outputStream = connection.getOutputStream(); outputStream.write(json.getBytes()); outputStream.flush(); outputStream.close(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); } // 结果:{"code": "1", "data": {"token": "...", "expires_in": 3600}} // code 为 1 时,获取成功,data.token 为令牌, data.expires_in 为有效时间,单位为秒。 ``` ### 4.2 接口配置 所有接口使用的请求方式为 POST 方式,请求数据格式为 json 格式,响应格式同为 json 格式。 路径:接口对外开放的路径,访问地址为:/v1/路径。 请求示例: ```java public static void main(String[] args) { String url = "http://网站地址/v1/路径"; // 网站地址替换为真实的API地址,路径替换成接口配置的路径 String authorization = "Bearer token"; // token替换根据【应用标识】、【应用密钥】获取接口访问的【令牌】 String json = "{}"; // 请求提交的参数,json 格式 URL url = new URL(url); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json; utf-8"); connection.setRequestProperty("Accept", "application/json"); connection.setRequestProperty("Authorization", authorization); connection.setDoOutput(true); OutputStream outputStream = connection.getOutputStream(); outputStream.write(json.getBytes()); outputStream.flush(); outputStream.close(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); } // 结果:{"code": "1", "data": {}} // code 为 1 时,获取成功,data 为接口返回的数据。 ``` ### 4.3 数据源配置 配置数据库连接信息,用于做数据同步,从来源数据源同步到目标数据源。 ### 4.4 采集任务配置 数据采集,从来源数据源同步到目标数据源。 ## 5 菜单管理 ### 5.1 系统配置 配置系统分成多少个子系统,在首页中就显示多少个可切换的子系统。 徽标数脚本:首页选择页面中子系统右上角显示的数值。 首页显示图标:首页显示此子系统的图标。 子系统样式:为 css 格式,用于配置此子系统的页面样式。 ### 5.2 页面配置 配置一些常规页面无法满足需求的页面,支持拖拽、可视化(所见即所得)的方式配置页面。 ![](readme/draggle.png) ### 5.3 菜单配置 配置子系统有哪些菜单。 ## 6 流程管理 ### 6.1 流程配置 进行流程配置,流水序配置在菜单 系统配置 / 序号配置。 ![](readme/flow1.png) ![](readme/flow2.png) ### 6.2 处理人配置 配置各节点处理人。 ![](readme/flow3.png) ### 6.3 分支条件配置 配置分支流转的条件,流程无分支时不需要配置。 ![](readme/flow4.png) ## 7 用户管理 ### 7.1 组织管理 类型:区划、单位、部门 单位为划分一组织机构的基本单位。显示组织机构时,只能显示自己的单位的组织机构信息,无法跨单位显示所有组织机构。 ### 7.2 员工管理 可登录系统的人员信息。 默认部门:默认登录的部门。 归属部门:一个人可以归属多个部门。 ### 7.3 角色管理 可配置系统拥有哪些角色,角色可拥有哪些权限。 角色名称右侧按钮【权限配置】可配置角色的权限。 ![](readme/privilege.png) ## 8 系统配置 ### 8.1 环境配置 配置系统配置信息:登录配置、密码配置、首页配置、门户配置 ### 8.2 变量配置 配置变量,脚本中可通过 SystemUtil.getVariable(变量名) 获取变量内容。 ### 8.3 模板管理 上传 word、excel 模板,在上传、下载中可直接使用这些脚本,脚本中可通过 OfficeUtil.exportExcel(模板编码, data) 导出数据,具体导出示例可查看脚本编辑右侧【工具 -> Office类】中的示例。 ### 8.4 字典配置 配置字典,用于【数据模型 -> 字段管理 -> 字段类型(联动/字典*) -> 联动字典】。 脚本中也可通过 DictionaryUtil 工具类获取字典内容。 ### 8.5 调度配置 配置定时调度器执行相应的脚本。 ### 8.6 序号配置 配置字典,用于【数据模型 -> 字段管理 -> 字段类型(字符/自动生成为是) -> 自动生成序】。 ### 8.7 图标库 提供大量可用的图标,也可以手动上传图标。建议上传 svg 等体量小的图标。 ### 8.8 按钮配置 系统内置基础按钮,不建议删除,可对按钮图标、字体颜色、背景颜色、边框颜色、提交确认语、排序字段进行修改,不建议对名称、类型、数据数量进行修改。 ### 8.9 工具列表 系统内置数据,提供给脚本编辑 -> 工具的辅助数据,不建议删除,可新增数据作脚本编辑参考,新增后注意数据备份。 ## 9 运维管理 ### 9.1 数据备份 备份类型: 系统配置:系统内置的表结构以数据。 子系统配置:非系统内置的表结构,不包含数据。 子系统数据:非系统内置的表数据,不包含结构。 ### 9.2 数据恢复 使用数据备份中下载的备份文件进行数据恢复,恢复方式来覆盖恢复,请注意做数据备份。