-
2021-06-09 19:01:38
前言:
由于公司项目中有一个自定义表单的需求,而本人却无类似开发经验,在朋友和同事的努力下,依然没有找到最佳的解决方案,后来自己根据自己对业务的了解和别人的思路借鉴,最终设计出了现在这款自定义表单的逻辑。
项目环境:
king base V8
(人大金仓数据库) ,Mybatis-Plus v3.4.2
,spring-boot-2.2.5.RELEASE
在本文中,主要阐述结合
VUEJS
动态表格的数据结构进行设计接口和数据库,在此之前,需要了解一下VUEJS
动态表格核心思想
-
自定义的属性与属性对应的数据要做绑定关系,本文中,使用了 sorted 字段对字段和数据进行绑定
-
组合查询分页数据,利用
mybatis
的动态sql
和${}
进行查询,前提是需要与前端配合恰当
1、
VUEJS
动态表格动态表格所需数据结构
{ "tableHead":[ {"key":"nickName", "fieldsName":"昵称"}, {"key":"account", "fieldsName":"登录账户"}, {"key":"password", "fieldsName":"登录密码"} ], "tableVal":[ {"nickName":"雷电法王_杨永信", "account":"lei_dian_yyx", "password":"yangyongxin"}, {"nickName":"潘嘎之交", "account":"gazige", "password":"gagagaga"}, {"nickName":"精神小伙", "account":"jinshenxiaohuo", "password":"123456"} ] }
通过对
VUEJS
动态表单的数据结构的了解,那么我们很快就能设计出数据库表结构2、设计数据库表
2.1 t_custom_table
存储字段属于哪个表,做字段表唯一标识,1 - N 关系 里面主要存储 表名,这里就不放
DDL
语句了,一下的 table_id 属于本表 id2.2 字段表设计 (存储用户提交的自定义字段)
CREATE TABLE "t_inspector_db_fields" ( "id" INT8 NOT NULL, "fields_name" VARCHAR(32 byte) NULL, -- 字段名称 "data_type" INT4 NULL, -- 字段数据类型 1:文字 2:数字 "fields_entry_type" INT4 NULL, -- 字段录入方式,展示类型,0:单行文本 1:多行文本 2:下拉菜单 3:时间选择框 "datasource_type" INT4 NULL, -- 数据源类型:1字典(datasource配置字典key) 2:枚举(枚举数据结构) 3 组织架构 4 人员架构 5 督查督办事项分类 6 文本输入 "max_length" INT4 NULL, -- 最大字数 "show_table" TINYINT NULL DEFAULT 0, -- 是否列表展示 0:不展示 1:展示 "audit_flag" TINYINT NULL DEFAULT 0, -- 审核操作字段,在审核阶段需要填写 0不需要,1需要 "selector_flag" TINYINT NULL DEFAULT '0'::TINYINT, -- 是否参与查询 0:不参与 1:参与 "table_id" INT8 NULL, -- 关联表ID "data_source" VARCHAR NULL, -- 配合datasource_type,字典配置字典KEY,枚举配置枚举数据结构 "sorted" INT2 NULL, -- 核心字段,排序标识,绑定标识 "multi_line_text" INT4 NULL DEFAULT 0, -- 是否可以多行扩展 0:不能,1:能 "deleted" TINYINT NULL -- 软删除标识 ) WITH ( OIDS=FALSE );
字段描述:
fields_type
: 这里是来规范存储类型,但是实际上后端都是用的字符串存储,主要是为了方便用户直观看,当然这个字段设计也在需求之中max_length
:字段最大长度,如果是多行文本或者是富文本,则为-1
show_table
: 是否在表单中进行显式展示,0:展示,1:不展示data_src_type
:数据源,例如(0:字典,1:手动录入,2....),数据源类型为字典,之对应的data_src
就应该是 字典表中 获取数据的 KEYsorted
: 注意,此字段非常重要,该字段有两个作用:(1) 来对字段展示的顺序进行规范 ,(2) 通过属性的sorted
可以直接找到 属性对应的 数据,起一个绑定关系,这里可能暂时有点迷,后续就会看起来更加清晰。fields_entry_type
: 数据录入方式:(0:单行文本 1:多行文本 2:下拉菜单 3:时间选择框)2.3 数据存储表设计 (存储自定义表单的数据)
都到这一步了,最终确定下来,数据通过纵向存储的方式
需要攻克的问题:
-
数据纵向存储,那么多条数据,怎么被视为横向的一条数据呢?
-
数据纵向,那么如何将字段和字段值进行绑定?
解决办法:
-
纵向对数据存储,没有唯一标识,无法组建一个多行数据转为一条数据的标识,那么就在插入多条数据之前,生成一个
32
位的唯一标识,来作为一条数据纵转横的flag
-
在数据表中也生成一个
sorted
字段,来与字段表中的属性进行绑定,例如 字段 表中sorted
为1
的值是userName
, 那么 数据表中,只要存储sorted
为1
的数据为张三
即可,这样就形成了一对一的绑定
问题解决了,那么就开始设计表,这里我就直接放表结构了(表结构是 人大金仓数据库的,
mysql
的需要手动改改)CREATE TABLE "t_inspector_fields_data" ( "id" VARCHAR(32 byte) NOT NULL, "fields_id" VARCHAR(32 byte) NOT NULL, -- 被关联的字段的Id "unique_mark" VARCHAR(32 byte) NOT NULL, -- 唯一标识,32位 "sorted" INT4 NOT NULL, -- 核心字段,排序标识,绑定标识,与t_inspector_db_fields表保持一致 "content" TEXT NULL, -- 真实的内容,这里考虑到字段长度无法确定,只有用 text 来规定 "deleted" INT4 NULL DEFAULT 0, -- 软删除标识 "classify_id" INT8 NULL, -- 关联表ID "year" INT4 NULL, -- 冗余字段,用于方便查询 "frequency" INT2 NULL, -- 冗余字段,用于方便查询 "month" INT2 NULL, -- 冗余字段,用于方便查询 "week" INT4 NULL, -- 冗余字段,用于方便查询 "fill" INT2 NULL DEFAULT '0'::SMALLINT, -- 业务字段 "audit" INT2 NULL DEFAULT '0'::SMALLINT -- 业务字段 ) WITH ( OIDS=FALSE );
3、接口设计
3.1 属性字段新增 对应表
t_inspector_db_fields
(提交JSON
){ "fieldsName":"任务分类", // 字段名称 "dataType":"1", // 字段数据类型 1:文字 2:数字 "fieldsEntryType":3, // 0:单行文本 1:多行文本 2:下拉菜单 3:时间选择框 "datasourceType":6, // 1字典(datasource配置字典key) 2:枚举(枚举数据结构) 3 组织架构 4 人员架构 5 督查督办事项分类 6 文本输入 "dataSource":"", //datasourceType=0,dataSource对应字典中的key。datasourceType=1,存储下拉菜单的数据,可以自定义数据结构,方便解析就行,可自定义 "maxLength":-1, // 该字段无需校验内容长度 "showTable":1, // 显示在 table 中 "auditFlag":0, // 不参与审核 "selectorFlag":0, // 不参与头部查询 "multiLineText":0, // 不参与行扩展 "tableId":1355 // 关联的表 }
3.2 获取表头和数据分页接口(复杂)
根据
tableId
查询表下的字段出现问题:
-
如何分页?
-
如何组合查询?
-
如何区分精准匹配和模糊查询?
思路:
-
首先要思考如何进行分页查询,因为数据库里面的数据是纵向存储的,非横向存储。那么我只需要分页找到条件匹配的并且去重后的唯一标识即可,然后再次根据分页标识,查到返回的数据转为行数据即可。
-
组合查询就需要在
sql
上下功夫了,结合Mybatis
动态sql
,不同条件的sql
使用UNION ALL
进行连接查询结果,最后去重得到唯一标识 -
精准匹配和模糊匹配只需要两个集合来存储查询条件集合,为了更加的灵活,我这里使用了
mybatis
的${}
占位符取查询的key
值
3.2.1 组合查询提交
json
{ "tableId":1355, "query":[ // 模糊查询 {"sorted":"8","content":"测试"}, // 查询位置为8的字段类容包含 测试 字样的数据 {"sorted":"13","content":"测试单位"} // 查询位置为13的字段类容包含 测试单位 字样的数据 ], "page": {"current":1, "size":10}, // 分页信息 "nonQuery":[// 精准匹配 { "keyName":"week", // 根据周字段精准匹配 "keyVal":"12" }, { "keyName":"year", // 根据年字段精准匹配 "keyVal":"2021" } ] }
3.2.2 组合查询动态
sql
<!-- 先通过查询条件匹配到符合条件的唯一标识,然后通过拿到所有符合条件的唯一标识进行获取数据 --> <select id="selectDistinctUniqueMarkPage" resultType="java.lang.String"> <!-- 精准匹配条件为空的情况查询的内容 --> <if test="@org.apache.commons.collections4.CollectionUtils@isEmpty(dto.query)"> select distinct "unique_mark" from "t_inspector_fields_data" where deleted = 0 and table_id = #{dto.tableId} <foreach collection="dto.nonQuery" index="j" item="non" open=" " separator=" " close=" "> <!-- {"keyName":"year", "keyVal":"2021" } --> and ${non.keyName} = #{non.keyVal} </foreach> </if> <!-- 精准匹配条件不为空的情况查询的内容 --> <if test="@org.apache.commons.collections4.CollectionUtils@isNotEmpty(dto.query)"> select distinct a."unique_mark" from ( <foreach collection="dto.query" index="i" item="val" open=" " separator=" UNION ALL " close=" "> select distinct "unique_mark" from "t_inspector_fields_data" where deleted = 0 and table_id = #{dto.tableId} AND "sorted" = #{val.sorted} AND content like concat('%', #{val.content}, '%') <foreach collection="dto.nonQuery" index="j" item="non" open=" " separator=" " close=" "> <!-- {"keyName":"year", "keyVal":"2021" } --> and ${non.keyName} = #{non.keyVal} </foreach> </foreach> ) a </if> </select>
3.2.3 最终根据查询条件打印的
sql
语句select distinct a."unique_mark" from ( select distinct "unique_mark" from "t_inspector_fields_data" where deleted = 0 and table_id = ? and "sorted" = ? and content like concat('%', ?, '%') and week = ? and year = ? union all select distinct "unique_mark" from "t_inspector_fields_data" where deleted = 0 and table_id = ? and "sorted" = ? and content like concat('%', ?, '%') and week = ? and year = ? ) a
更多相关内容 -
-
JAVA动态表单设计,自定义表单,自定义数据
2019-04-12 18:08:49JAVA动态表单设计,自定义表单,自定义数据,在线设计,数据库存储 -
如何设计一个高效的自定义字段表单数据表?
2021-04-18 14:26:41这是一个自定义表单模块,有几个常用的固定字段可选,也可以让用户自己增加想要的自定义字段。前端页面在展示的时候就可以将这些字段列出来给用户填写。之前我实现过一个类似的功能,将所有的字段全部存到一个数组中...各位大牛:
小弟现在有一个这样的需求。
这是一个自定义表单模块,有几个常用的固定字段可选,也可以让用户自己增加想要的自定义字段。
前端页面在展示的时候就可以将这些字段列出来给用户填写。
之前我实现过一个类似的功能,将所有的字段全部存到一个数组中,然后将数组转成序列化的字符串存储,然后在前端遍历出字段的信息,组成列表。
前端用户填写的信息,按照索引与字段匹配,存入库里。
这样虽然可以实现功能,但是有一个缺点,就是在后期给运营做数据统计工具的时候,很难按字段筛选出合适的数据,比如手机,我根本就不知道哪些用户填了手机,哪些没填。
所以希望能有大神指点一二,给点思路。设计一个更加高效的表单数据表。
回复内容:
各位大牛:
小弟现在有一个这样的需求。
这是一个自定义表单模块,有几个常用的固定字段可选,也可以让用户自己增加想要的自定义字段。
前端页面在展示的时候就可以将这些字段列出来给用户填写。
之前我实现过一个类似的功能,将所有的字段全部存到一个数组中,然后将数组转成序列化的字符串存储,然后在前端遍历出字段的信息,组成列表。
前端用户填写的信息,按照索引与字段匹配,存入库里。
这样虽然可以实现功能,但是有一个缺点,就是在后期给运营做数据统计工具的时候,很难按字段筛选出合适的数据,比如手机,我根本就不知道哪些用户填了手机,哪些没填。
所以希望能有大神指点一二,给点思路。设计一个更加高效的表单数据表。
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
-
mysql自定义表单数据表设计
2021-08-30 18:29:54该表主要存储主体的内容信息 示例 CREATE TABLE `fa_user_type` ( `id` int(255) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '类型名称', `remarks` ...1.主体表
该表主要存储主体的内容信息
示例CREATE TABLE `fa_user_type` ( `id` int(255) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '类型名称', `remarks` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', `admin_id` int(20) DEFAULT NULL COMMENT '创建人ID', `createtime` int(20) DEFAULT NULL COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户类型';
2.表单添加表
该表与主体表关联存储表单内容
示例CREATE TABLE `fa_user_form` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_type_id` int(10) NOT NULL COMMENT '用户类型ID', `type` int(10) DEFAULT NULL COMMENT '1 单行文本 2 多行文本 3 多图上传 4 视频上传', `form_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称', `sort` int(10) DEFAULT '0' COMMENT '排序大小', `form_desc` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '介绍', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
3.用户提交表单数据表
该表存储用户前端的提交数据 pid的作用是第一条表单的数据父级其他皆为父级下面的子级数据CREATE TABLE `fa_user_form_data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(10) DEFAULT NULL COMMENT '用户ID', `user_type_id` int(10) DEFAULT NULL COMMENT '用户类型ID', `user_form_id` int(10) DEFAULT NULL COMMENT '自定义表单ID', `type` int(10) DEFAULT '0' COMMENT '自定义表单类型', `createtime` int(20) DEFAULT NULL COMMENT '创建时间', `data` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '数据', `pid` int(10) DEFAULT '0' COMMENT '父级ID', PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='表单数据';
前端对接主要是表单的展示和数据提交以及数据列表的展示
1.自定义表单数据
2.用户数据提交 我这里用的是表单id和提交数据 键值对的方式
示例
{1:“检测报告”,7:"/assets/img/no_image.jpg"}3.列表查询就查询表单数据表
-
自定义表单设计思路.docx
2022-03-29 14:21:29——难点为数据绑定,也就是页面元素与数据表字段的映射,另外动态数据存储结构问题、表间数据校验和计算、建立主从表的问题是难点;因此要建立相对应的样式库、脚本库、函数库、模板库等等。 5.除了可视化表单定制... -
原生php实现自定义表单(支持基本类型+file类型(单文件上传))
2022-04-01 20:32:15//防止表单重复提交 if (isset($_POST['submit'])) { if ($_SESSION['is_submit'] == '0') { $_SESSION['is_submit'] = '1'; echo "代码块,要做的事,代码...返回"; } else { echo "请不用重复提交PHP+SESSION防止...cyg.php
<?php SESSION_START(); $_SESSION['is_submit'] = 0; header("Content-type:text/html;charset=utf-8"); ?> <style> body{ background:#ccc; } .blue { background:rgba(255,123,169); width: 260px; height:auto; } </style> <form action="cyg1.php" method="POST"> 您喜欢的水果?<br /><br /> <label><input name="text" type="checkbox" value="text" />文本类型</label> <br> <label><input name="color" type="checkbox" value="color" />颜色类型</label> <br> <label><input name="date" type="checkbox" value="date" />日期类型</label> <br> <label><input name="password" type="checkbox" value="password" />密码类型</label> <br> <input name="button" type="checkbox" value="button"/>按钮类型</label> <br> <input name="email" type="checkbox" value="email" />邮箱类型</label> <br> <input name="number" type="checkbox" value="number" />数字类型</label> <input name="file" type="checkbox" value="file" />文件类型,支持多文件上传</label> <input type="submit" value="提交"> </form>
cyg1.php
<?php SESSION_START(); //防止表单重复提交 if (isset($_POST['submit'])) { if ($_SESSION['is_submit'] == '0') { $_SESSION['is_submit'] = '1'; echo "代码块,要做的事,代码...<a οnclick='history.go(-1);' href='javascript:void(0)'>返回</a>"; } else { echo "请不用重复提交<a href='index.php'>PHP+SESSION防止表单重复提交</a>"; } } $link=mysqli_connect('localhost','root','','a'); //然后是指定php链接数据库的字符集 mysqli_set_charset($link,'utf8'); $arr=[$_POST['text'],$_POST['color'],$_POST['date'],$_POST['password'],$_POST['button'],$_POST['email'],$_POST['number'],$_POST['file']]; foreach ($arr as $key => $value) { if(empty($value)) { unset( $arr[$key] ); } } foreach ($arr as $key => $value) { $sql = "INSERT INTO form(type) VALUES ('{$value}')"; mysqli_query($link,$sql); } $sql="select type from form"; $result=mysqli_query($link,$sql);//运行sql echo "<form action='cyg2.php' method='POST' enctype='multipart/form-data'>"; while ($row=mysqli_fetch_assoc($result)) { echo $row['type']."类型:"."<input type='$row[type]' name='$row[type]'/>"; } echo "<input type='submit' bvalue='提交'/>"; echo "</form>";
cyg2.php
<?php echo move_uploaded_file($_FILES['file']['tmp_name'],'F:/6/htdocs/upload/'.basename($_FILES['file']['name'])); //意思是吧f:6/tmp/图片放到upload里面哈,
-- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 2022-03-31 14:41:20 -- 服务器版本: 10.1.13-MariaDB -- PHP Version: 5.6.21 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `a` -- -- -------------------------------------------------------- -- -- 表的结构 `form` -- CREATE TABLE `form` ( `id` int(11) NOT NULL, `type` varchar(255) COLLATE utf8_vietnamese_ci NOT NULL COMMENT '类型' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_vietnamese_ci; -- -- Indexes for dumped tables -- -- -- Indexes for table `form` -- ALTER TABLE `form` ADD PRIMARY KEY (`id`); -- -- 在导出的表使用AUTO_INCREMENT -- -- -- 使用表AUTO_INCREMENT `form` -- ALTER TABLE `form` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=65; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-
自定义表单html:,自定义表单、流程、菜单开发小结
2021-06-23 02:14:29自定义表单:在编码中首先解决的是如何将组件存储、如何取出的问题。我现采用的方式是在保存表单时将操作区域的HTML片段进行处理后进行存储,编辑时取出HTML片段后对特定的样式进行处理。当表单保存后对当前表单的... -
web工作流管理系统开发之四 自定义表单
2020-12-20 04:21:56在开发工作流管理系统时,很多人只重视流程引擎,流程模型的建立,而忽略了自定义表单工具。自定义表单工具是实现独立业务模块的可视化编辑工具,业务模块可以通过这种工具编辑生成。如果单纯从流程实现来说,确实... -
自定义表单(二)--拖拽(HTML版本)
2021-06-14 06:01:25系列文章自定义表单(一)--拖拽(JS版本)自定义表单(二)--拖拽(HTML版本)自定义表单(完)--(html5版本)一、瞎扯最近在折腾人工智能,今天写了段tensorflow,用来分辨手写字体的图片,跑的时间有点久,所以就跑回来跟... -
Vue + form_create 简单实现自定义表单且可存储为JSON格式进行读取
2020-08-18 15:47:00实现过程:百度并查阅了一系列关于自定义表单的内容后,在form-create中发现可以通过特定的JSON格式数据渲染表单,于是就写了一个简单的demo实现自定义的过程,将数据收集成特定的JSON格式来实现渲染。 先上效果图... -
phpcms 自定义表单
2021-03-24 11:41:24先来看看系统为我们默认提供的留言样式image.png再来看看我自己实现的在线留言样式image.png如此看来,系统为我们提供的确实不怎么好看,接下来我介绍下我的整个替换过程:步骤1:创建表单向导(1):打开后台,点击... -
自定义表单、流程、菜单开发小结
2021-06-23 02:15:38自定义表单:在编码中首先解决的是如何将组件存储、如何取出的问题。我现采用的方式是在保存表单时将操作区域的HTML片段进行处理后进行存储,编辑时取出HTML片段后对特定的样式进行处理。当表单保存后对当前表单的... -
activiti集成自定义表单
2019-02-20 17:49:42概述 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;amp;...在使用Activiti时,对于表单的 -
纯前端实现保存表单数据功能
2021-06-22 23:55:10本文作者:IMWeb zzbozheng未经同意,禁止转载最近在用管理后台配置数据时,发现辛辛苦苦配置好的表单无缘无故地被覆盖,之后了解到由于我们都是在同一台开发机上做开发,难免会遇到其他同学做数据变更时覆盖掉自己... -
simple-data-tracker:简单的应用程序来存储表单数据......并可能提供自定义表单
2021-06-27 06:26:12简单数据跟踪器 简单的应用程序来存储表单数据......并可能提供自定义表单。 -
JAVA动态表单,自定义表单,自定义字段
2019-04-15 11:29:54基于雷劈网的表单设计器扩展,java实现后台解析(插件内容和字段和原版有一定...数据库主要只有2张表,但是会动态地创建表单数据的表,表单越多,创建出来的表越多。 以下是目前此项目的一些截图: 下载地址: ... -
自定义流程gooflow2.0+自定义表单
2021-04-21 03:30:56一、功能简介gooflow功能清单1、自定义流程绘制2、自定义属性添加3、支持3种步骤类型普通审批步骤自动决策步骤手动决策步骤4、决策方式(支持js决策,sql语句决策)5、审批人员参与方式,可以自定配置,系统目前自带... -
Nodejs自定义解析表单数据的中间件案例代码
2022-01-21 21:42:54Nodejs自定义解析表单数据的中间件案例代码 -
java 自定义表单设计方案
2021-10-20 18:26:52工作流模块------------------------------- 1.模型管理 :web在线流程设计器、导入导出xml、... 表单数据:从我的表单进去可增删改查表单数据,修改表单规则 32. 挂靠记录:记录表单数据和流程实例ID关联记录,可删除 -
JS自定义表单提交处理方案
2019-04-28 02:16:00JS自定义数据提交处理方案 问题 在Ajax技术流行的今天,我遇到了一个很头疼的问题,我需要维护一个前人开发的问题单模块功能,并且不停的迭代开发,而这个问题就是问题单字段特别多,而且除了更新问题单外,问题... -
解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之二接口
2021-06-04 10:49:52Vue中路由到一个公共组件,然后根据路径中是否存在文件动态加载组件 解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之一缘起 据说系列文章很难火爆,因为知识点包袱不够多,所以大家看往后不太... -
Jquery 自定义表单设计
2021-04-01 19:29:52对于内存,目前的方式均为以8个bit即1byte为最小的存储单元(1byte可以保存8位二进制数), CPU想从内存中读取或者存储数据,首先需要找到要存在内存的地址,传达控制信息是读入还是写入,以及读或写的数据。... -
vue实现可视化可拖放的自定义表单
2020-12-21 13:54:48实现如例子所示的可视化可拖放表单功能。整个页面,分为左中右三栏布局,左栏的部件库的部件(组件)作为key,拖放到中间区域时,往vuex存放数组数据,拖一个就push一个。点击某个组件时,在右栏显示其属性,其实也就是... -
form-drive:测试将数据从自定义表单发送到谷歌电子表格
2021-06-06 02:02:25该存储库为以前端为中心的开发提供了一个简单的起点。 您将获得一个使用 Foundation 和 SASS 构建的最小项目。 还有一个轻量级的开发服务器(在 NodeJS 中运行),它支持 livereload 和 SASS 重建。 Gulp 提供用于... -
问卷调查:自定义表单设计vue
2019-06-27 10:42:44由于公司业务需求,做自定义满意度问卷调查,在线上找插件不尽如人意(插入文件多,ui不好改);自家业务比较简单;种种原因,于是花一点时间开发简单的表单设计页面。 于此记录开发过程 首先看看预览效果,传送... -
自定义表单的需求-表单设计器
2020-02-10 09:29:13深圳xxx科技有限公司 自定义表单及系统集成的需求 需求内容如下: 1.支持常用控件 1.文本框,文本label,单选框组radionbutton,复选框checkbox,复选框组checkboxs,数字框,文本域textarea,智能搜索下拉框、时间... -
java 保存自定义表单vue form-create到数据库
2021-02-19 14:03:50如何将前端vue form-create生成的自定义表单模板,保存到数据库,需要动态生成数据库表和字段,需要解析到每个字段,这些字段后续需要统计,查询。</p> -
Activiti6--[6]使用自定义表单属性_4
2020-12-10 00:13:08在设计的时候,发现里面有一个自定义表单属性(国际化对应的中文描述) 疑惑 因为在某些情况下,可能是前后端分离,工作流只是提供接口。那么采用动态表单属性界面设计校验,排版都不符合。所以此时需要自定义表单,在... -
工作流管理系统开发之四 自定义表单
2016-10-14 18:12:33在开发工作流管理系统时,很多人只重视流程引擎,流程模型的建立,而忽略了自定义表单工具。自定义表单工具是实现独立业务模块的可视化编辑工具,业务模块可以通过这种工具编辑生成。如果单纯从流程实现来说,确实... -
vue 表单和自定义组件
2022-03-17 22:12:26vue 表单和自定义组件 vue能够安装成功npm,node.js,并且能够成功创建一个项目,我觉得就已经成功一半了。但是需要需要注意node的版本不要下载太高,建议是16版本,我之前因为下载太高版本的node导致一直不能成功...