Foxnic-Web 代码生成 (5) —— 配置字段的通用项

LeeFJ
• 阅读 459
Foxnic-Web 代码生成 (5) —— 配置字段的通用项
概述

  字段的配置是代码生成的核心。一个字段在界面上出现的位置有三个:表单、表格、表格的搜索区域,且这三个位置可能存在一定的相关性。字段配置就是要对某个字段在这个三个位置的表现形式和功能特性进行配置,从而生成符合业务需求的代码。

  本文中的示例代码均可在 https://gitee.com/LeeFJ/foxnic-samples 项目中找到,本文对照 webfull 项目讲解

通用配置项

  字段配置在 configFields 方法完成,configFields 方法传入 ViewOptions 类型的参数,通过 ViewOptions.field 方法获得字段配置对象,通过链式调用完成代码生成选项的配置。

/**
* 配置字段
*/
@Override
public void configFields(ViewOptions view) {
    // NAME 字段,单行文本框
    view.field(WEBFULL_EXAMPLE_ADDRESS.NAME)
        // 基础设置:指定标签值
        .basic().label("收件人")
        // 搜索栏:设置模糊搜索
        .search().fuzzySearch()
        // 表格列:指定对齐方式
        .table().alignLeft()
        // 表单:指定表单编辑器为文本输入框,并指定默认值
        .form().textInput().defaultText("乔峰")
        // 表单校验:必填
        .form().validate().required();
}

从上面是示例代码中,我们可以看到几个5个通用配置项,我们通过一个表格来说明各个项目的作用与原理。另外,代码中的 form().textInput() 指定编辑器为单行文本,它将影响搜索框与表格列的展现形式与功能特性。Foxnix-Web 支持多种表单组件类型,这部分内容我们将在其它章节展开。

配置项 下属项目 说明
basic() 基础配置项
hidden 表单、表格、搜索区域都隐藏
label 表单、表格、搜索统一使用的标签
table() 表格配置项,配置指定字段表格列的展现方式与功能特性
disable 禁用;默认false
hidden 隐藏;默认false
displayWhenDBTreaty 强制显示默认情况下被 DBTreaty 规则排除的字段
fix 固定栏次;默认false
label 表头文本
alignCenter 居中对齐
alignRight 右对齐
alignLeft 左对齐
sort 列是否自持排序
useBadgeStyle 使用角标样式,针对关联或字典数据
useThemeBadgeStyle 使用主题的角标样式,针对关联或字典数据
permission 指定权限字符串
fillBy 指定列表单元格中的填充的数据依次指定值所在的属性,形成路径,控制器将生成 Join 代码
fillByProperty 指定列表单元格中的填充的数据依次指定值所在的属性,形成路径
search() 搜索配置项,配置指定字段搜索区域的展现方式与功能特性
hidden 是否隐藏;默认false
label 指定标签
fuzzySearch 是否模糊搜索,默认false
checkJsonElement 用于匹配JSON数组的查询,适用的情况: 如,字段内存储格式为字符串,且JSON数组格式,如 ["red","blue","orange"]
inputWidth 设置搜索输入框宽度
matchType 查询时的值匹配模式
on 指定搜索字段,默认为当前配置的字段当非本表字段时,需要指定 table().fillBy 或 form 的 fillwith 实现自动的关联查询
range 是否使用范围搜索,仅支持 日期 和 数字 类型搜索栏出现两个输入框,指定搜索范围
selectMuliti 是否多选,下拉框等组件适用
triggerOnSelect 针对某些需要选择的组件,是否在选择后立即触发查询
form() 表单配置项,配置指定表单字段的展现方式与功能特性
hidden 是否隐藏;默认false
label 字段标签
readOnly 是否只读;默认false
fillBy 指定表单字段中要填充的数据依次指定值所在的属性,形成路径如果 select box 要使用 fillWith
button 表单元素为按钮
checkBox 设置当前字段为复选框,在搜索栏表现为可多选的下拉框
dateInput 设置当前字段为日期选择框
logicField 设置当前字段为逻辑字段,在搜索栏表现为可多选的下拉框
numberInput 设置当前字段为数字输入框
radioBox 设置当前字段为单选框,在搜索栏表现为可多选的下拉框
selectBox 设置当前字段为下拉框,在搜索栏表现为可多选的下拉框
textArea 设置当前字段为文本域(多行)
upload 设置当前字段为文件上传
validate 设置设置当前字段的校验逻辑
form().validate() 表单校验项,字段在表单上的校验逻辑
required 必填校验
date 日期校验
email 邮件地址校验
identity 身份证校验
phone 手机号校验
url URL地址校验

  以上表格展示了字段在代码生成时的通用配置项目,随着版本迭代的深入,这些通用配置项目的属性还会进一步扩展,使其能够更好的支持业务实现。

小结

  本节主要比较快速地介绍了字段配置的通用项目,在我们官方文档可以找到对应的视频示例,有利于大家更加直观的理解代码生成是字段的配置,以及不同配置参数最终是如何在系统上呈现的。当然最好的方还是亲自动手实践。

相关项目

  https://gitee.com/LeeFJ/foxnic

  https://gitee.com/LeeFJ/foxnic-web

  https://gitee.com/lank/eam

  https://gitee.com/LeeFJ/foxnic-samples

官方文档

  http://foxnicweb.com/docs/doc.html

点赞
收藏
评论区
推荐文章
LeeFJ LeeFJ
1年前
Foxnic-Web 代码生成 (6) —— 配置字段的表单组件
上一篇中我们讲述了字段配置的通用项,本篇将详细介绍字段的表单编辑器配置。针对不同的表单编辑器,可以指定不同的代码生成参数。默认情况下,代码生成会根据表字段的类型等信息自动匹配一个表单组件。当然,开发人员也可以手动指定每个字段的表单组件类型。  虽然表单组件是呈现在表单界面的,但是它的设置同样会影响搜索区域对应的条件输入框。搜索区域的条件输入框组件按一定的规则与表单组件对应。本文将逐个介绍表单组件以及它们的代码生成配置项。
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Stella981 Stella981
2年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
2年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_