JAVA实战开源项目:无代码动态表单系统(Vue+SpringBoot)

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 动态类型模块
    • 2.2 动态文件模块
    • 2.3 动态字段模块
    • 2.4 动态值模块
  • 三、系统设计
    • 3.1 用例设计
    • 3.2 数据库设计
      • 3.2.1 动态类型表
      • 3.2.2 动态文件表
      • 3.2.3 动态字段表
      • 3.2.4 动态值表
  • 四、系统展示
  • 五、核心代码
    • 5.1 查询档案类型
    • 5.2 新增档案类型
    • 5.3 删除档案子项
    • 5.4 编辑档案额外字段
    • 5.5 添加档案额外字段
  • 六、免责说明


一、摘要

1.1 项目介绍

基于Vue+SpringBoot+MySQL的无代码平台的表单平台,包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了动态类型模块、动态文件模块、动态字段模块和动态值模块这四大模块,用于实现档案管理系统的核心表单逻辑。

1.2 项目录屏


二、功能模块

本文设计的无代码平台的表单系统的包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了动态类型模块、动态文件模块、动态字段模块和动态值模块这四大模块,用于实现档案管理系统的核心表单逻辑。

在这里插入图片描述

2.1 动态类型模块

动态表单类型是灵活的类型,允许自定义表单字段,根据业务情况,表格收集的信息可能会有所不同,动态表单类型允许根据业务需求自由添加、修改或删除表单字段,以满足特定业务需求。动态表单类型可以根据用户的操作和需求,自愿设置输入框、选项等特定页签,提高用户填写表单的效率和体验,采用动态表单类型使管理员更容易管理表单,只需在后台进行相关设置,即可轻松修改、删除或添加表单,提高管理效率。使用动态表单类型可以帮助您避免由于不断变化的业务需求而频繁更改代码,降低软件开发成本,并节省时间和资源,动态表单类型在数据收集、表单管理和开发成本方面具有重要意义,通过采用动态表单类型,可以快速灵活地响应各种业务场景的表单需求,提高用户体验和管理效率。

2.2 动态文件模块

动态文件模块是一种无代码平台表单系统钟,用于显示用户发布的图像、视频和动态信息等文件的模块,动态文件模块让用户更直观地了解感兴趣的人的最新动向,在动态文件模块中,用户可以看到表单的动态内容,以增加用户使用该平台的兴趣和满意度,动态文件模块支持不同类型的文件上传,如照片、视频、音频等,为用户提供更丰富的内容表示,通过动态文件模块,用户可以轻松地分享他们的生活、知识和经验,吸引更多用户的兴趣和参与。用户可以将自己的照片、视频等文件直接上传到动态文件模块,动态文件模块便于用户之间的通信和交互。通过动态文件模块,可以增强用户体验,丰富内容表达,方便文件管理和共享,增强平台的交互性,吸引更多用户加入平台。它可以增加用户的活动性和参与度。

2.3 动态字段模块

动态字段模块是用于在信息管理系统中动态添加、删除或更改字段的模块,随着市场和商业环境的变化,公司必须不断调整其信息管理系统,以满足新的业务需求。动态字段模块可以满足这一需求,使公司能够灵活地添加、删除或更改字段,以跟上业务变化,动态字段模块可帮助公司更好地管理数据,避免数据重复或关键信息丢失,并提高数据的准确性和质量,动态字段模块支持快速添加新字段,这将使组织拥有更多的数据维度和更丰富的数据信息,提高其数据分析能力,并更好地支持其决策,动态字段模块简化了信息管理系统的开发和维护过程,减少了手动工作和编码,并降低了开发和维护成本。动态字段模块对于信息管理系统来说是非常必要的,通过动态字段模块,企业可以灵活地添加、删除或更改字段,以满足不断变化的业务需求,同时提高数据的准确性和质量,增强数据分析能力,改进系统开发和维护,简化活动流程,带来更多业务价值。

2.4 动态值模块

动态值模块是用于记录和管理用户行为以及动态变化数据的软件和应用程序,动态值模块可以记录和反映用户在平台上的活动,如文件的具体字段内容等,可以直观地表达用户的行为和态度,动态值模块分析用户行为,以了解用户的兴趣和需求,并向平台推荐更准确的内容和服务,动态值模块可以深入分析用户行为数据,提取用户需求和痛点,帮助平台制定更准确的产品策略,提高用户满意度,动态值模块为平台运营和决策提供有价值的数据支持,优化运营策略,提高市场竞争力。


三、系统设计

3.1 用例设计

在这里插入图片描述

3.2 数据库设计

3.2.1 动态类型表

在这里插入图片描述

3.2.2 动态文件表

在这里插入图片描述

3.2.3 动态字段表

在这里插入图片描述

3.2.4 动态值表

在这里插入图片描述


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


五、核心代码

5.1 查询档案类型

@ApiOperation(value = "查询档案类型")
public List<ArCommonArchive> getByParentIdInTree(String parentId,Boolean openDataFilter) {List<ArCommonArchive> list = new ArrayList<>();QueryWrapper<ArCommonArchive> qw = new QueryWrapper<>();qw.eq("parent_id",parentId);qw.orderByAsc("sort_order");list = iArCommonArchiveService.list(qw);list = setInfo(list);for (ArCommonArchive arCommonArchive : list) {arCommonArchive.setChildren(getByParentIdInTree(arCommonArchive.getId(),openDataFilter));}return list;
}

5.2 新增档案类型

@SystemLog(about = "新增A档案类型", type = LogType.DATA_CENTER, doType = "CE11")
@ApiOperation(value = "新增A档案类型")
@RequestMapping(value = "/add", method = RequestMethod.POST)
public Result<Object> add(ArCommonArchive archive){User currUser = securityUtil.getCurrUser();if(isRepeatPrefixArchive(archive.getNumberHeader())) {return ResultUtil.error("档案类型前缀已存在,不能重复添加");}archive.setFilerTime(DateUtil.now());archive.setFilerNumber(currUser.getUsername());archive.setFilerName(currUser.getNickname());iArCommonArchiveService.saveOrUpdate(archive);return ResultUtil.success();
}

5.3 删除档案子项

@SystemLog(about = "删除B档案子项", type = LogType.DATA_CENTER, doType = "CE08")
@ApiOperation(value = "删除B档案子项")
@RequestMapping(value = "/deleteArchiveItem", method = RequestMethod.POST)
public Result<Object> deleteArchiveItem(@RequestParam String id){ArCommonArchiveItem acai = iArCommonArchiveItemService.getById(id);if(acai == null) {return ResultUtil.error("档案已被删除");}iArCommonArchiveItemService.removeById(acai.getId());return ResultUtil.success("档案类型删除成功");
}

5.4 编辑档案额外字段

@SystemLog(about = "编辑C档案额外字段", type = LogType.DATA_CENTER, doType = "CE05")
@RequestMapping(value = "/editArchiveField", method = RequestMethod.POST)
@ApiOperation(value = "编辑C档案额外字段")
public Result<Object> editArchiveField(@RequestParam String id,@RequestParam String title,@RequestParam String remark,@RequestParam float sortOrder,@RequestParam(required = false,defaultValue = "input") String type,@RequestParam(required = false,defaultValue = "") String typeValue) {ArCommonArchiveField acaf = iArCommonArchiveFieldService.getById(id);if(acaf == null) {return ResultUtil.error("该字段已被删除");}acaf.setTitle(title);acaf.setRemark(remark);acaf.setSortOrder(BigDecimal.valueOf(sortOrder).setScale(3,RoundingMode.UP));acaf.setSpecialType(type);acaf.setSpecialRemark(typeValue);iArCommonArchiveFieldService.saveOrUpdate(acaf);return ResultUtil.success();
}

5.5 添加档案额外字段

@SystemLog(about = "添加C档案额外字段", type = LogType.DATA_CENTER, doType = "CE03")
@RequestMapping(value = "/addArchiveField", method = RequestMethod.POST)
@ApiOperation(value = "添加C档案额外字段")
public Result<ArCommonArchiveField> addArchiveField(@RequestParam String typeId) {ArCommonArchiveField field = new ArCommonArchiveField();field.setTypeId(typeId);field.setTitle("额外字段标题");field.setRemark("可以在这里输入字段备注");field.setSpecialType("input");field.setSpecialRemark("");field.setSortOrder(BigDecimal.ZERO);iArCommonArchiveFieldService.saveOrUpdate(field);return new ResultUtil<ArCommonArchiveField>().setData(field);
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

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

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

相关文章

实现接口自动化测试

最近接到一个接口自动化测试的case&#xff0c;并展开了一些调研工作&#xff0c;最后发现&#xff0c;使用pytest测试框架并以数据驱动的方式执行测试用例&#xff0c;可以很好的实现自动化测试。这种方式最大的优点在于后续进行用例维护的时候对已有的测试脚本影响很小。当然…

基于SWAT-MODFLOW地表水与地下水耦合实践技术教程

原文链接&#xff1a;基于SWAT-MODFLOW地表水与地下水耦合实践技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598169&idx3&sn16d726694ca77f9cda3aa95716a18cc1&chksmfa8201becdf588a846bc1d461b8c985536e6191e7288df035e5bef6fc85b933030f…

【二分查找】算法例题

目录 十八、二分查找 114. 搜索插入位置 ① √- 115. 搜索二维矩阵 ② 116. 寻找峰值 ② √- 117. 搜索旋转排序数组 ② 118. 在排序数组中查找元素的第一个和最后一个位置 ② √ 119. 寻找寻钻排序数组中的最小值 ② 120. 寻找两个正序数组的中位数 ③ 136. 直线上最多…

顺序表的动态分配基本操作

#include <stdio.h> #include <stdlib.h>// 顺序表存储空间动态分配 #define InitSize 10 // 顺序表初始长度 typedef int ElemType; // int类型重命名为ElemType&#xff0c;方便后续调整typedef struct { // 定义结构体ElemType *data; // 用静…

Rust Rocket简单入门

简介 Rust中最知名的两个web框架要数Rocket和Actix了&#xff0c;Rocket更注重易用性&#xff0c;Actix则更注重性能。这里只是了解一下Rust下的WebAPI开发流程&#xff0c;就学一下最简单的 Rocket。 Rocket 是一个用于 Rust 的异步 Web 框架&#xff0c;专注于可用性、安全性…

python网络爬虫实战教学——urllib的使用(1)

文章目录 专栏导读1、前言2、urllib的使用3、发送请求3.1 urlopen3.2 request 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》&#xff0c;本专栏针对…

113 链接集10--ctrl+左键单击多选

1.ctrl+左键单击多选,单击单选 精简代码 <div class="model-list"><div@mousedown.prevent="handleClick(item, $event)"class="model-list-item"v-for="item in modelList":key="item.id":class="{ model-a…

[leetcode] 45. 跳跃游戏 II

文章目录 题目描述解题方法贪心java代码复杂度分析 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0…

重装系统后鼠标识别不了咋办

不知道大家在重装系统时,有没有遇到过系统重装完成后,鼠标不能使用的情况。在这种情况下,我们要怎么操作电脑解决这个问题呢?今天就跟大家分享重装系统后鼠标识别不了咋办。 一、主板没有设置兼容usb 在重装系统时,如果主板没有设置兼容usb,就会出现鼠标使用不了的现象。…

【Docker】-- 如何安装docker

一、安装docker 首先要安装一个yum工具 yum install -y yum-utils 安装成功后&#xff0c;执行命令&#xff0c;配置Docker的yum源&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 最后&#xff0c;执行命令&#x…

XJLS-84/620静态双位置继电器 DC220V 带柜内板前接线底座 JOSEF约瑟

XJLS-84系列静态双位置继电器 系列型号&#xff1a; XJLS-84/023A静态双位置继电器; XJLS-84/132A静态双位置继电器; XJLS-84/203静态双位置继电器; XJLS-84/222A静态双位置继电器; XJLS-84/312A静态双位置继电器; XJLS-84/502静态双位置继电器; XJLS-84/440静态双位置继电器; …

vue3 elementPlus 设置树形报错时 setCheckedKeys of undefined

第一种解决方法 nextTick(async ()>{ treeRef.value!.setCheckedKeys(rows.permissionIds, false) }) 第一种解决方法 onMounted(async () > { treeRef.value!.setCheckedKeys([3], false) }&#xff09;

基于Springboot的高校竞赛管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的高校竞赛管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

Chart-based Reasoning: Transferring Capabilities from LLMs to VLMs

Chart-based Reasoning: Transferring Capabilities from LLMs to VLMs 相关链接&#xff1a;arXiv 关键字&#xff1a;Vision-language models、ChartQA、multimodal reasoning、fine-tuning、synthetic data 摘要 本文提出了一种技术&#xff0c;将大型语言模型&#xff08;…

免费录音软件大集合,轻松录制高品质音频

“有没有免费的录音软件推荐呀&#xff1f;最近我在制作一个关于环境保护的宣传片&#xff0c;需要录制一些大自然的声音。但是我发现自己并不擅长录音&#xff0c;甚至不知道如何开始。希望有人能推荐一些免费且易用的录音软件&#xff0c;感激不尽&#xff01;” 在当今信息…

Grid数据增强算法

算法原理 class Grid(object):def __init__(self, d1, d2, rotate1, ratio0.5, mode0, prob0.8):self.d1 d1self.d2 d2self.rotate rotateself.ratio ratioself.mode modeself.st_prob self.prob probdef set_prob(self, epoch, max_epoch):self.prob self.st_prob …

基于深度学习的场景文本检测

CTPN 简介&#xff1a; 基于目标检测方法的文本检测模型&#xff0c;在Faster RCNN的基础上进行了改进&#xff0c;并结合双向LSTM增强了序列提取特征&#xff0c;通过anchor和gt的设计将文本检测任务转化为一连串小尺度文本框的检测。 解决问题&#xff1a; 文本长短不一&…

ubuntu 20.04 Kimera semantic 运行记录

Ubuntu20.04 Kimera Semantic运行记录 Kimera VIO ROS 配置 MIT Kimera-VIO-ROS 安装 mkdir -p Kimera_ws/src cd Kimera_ws catkin init catkin config --cmake-args -DCMAKE_BUILD_TYPERelease -DGTSAM_TANGENT_PREINTEGRATIONOFF catkin config --merge-develcd src git…

【蓝桥杯】RMQ(Range Minimum/Maximum Query)

一.概述 RMQ问题&#xff0c;是求区间最大值或最小值&#xff0c;即范围最值问题。 暴力解法是对每个询问区间循环求解&#xff0c;设区间长度n&#xff0c;询问次数m&#xff0c;则复杂度是O ( nm )。 一般还可以使用线段树求解&#xff0c;复杂度是O(mlogn)。 但还有一种…

论文解读—— 基于边缘梯度方向插值和 Zernike 矩的亚像素边缘检测

论文&#xff1a;《 Subpixel edge detection based on edge gradient directional interpolation and Zernike moment》 地址&#xff1a; http://www.dpi-proceedings.com/index.php/dtcse/article/view/24488 摘要 在本文中&#xff0c;我们提出了一种基于边缘梯度方向插值…