com.terapico.caf.viewcomponent.FormFieldViewComponent Maven / Gradle / Ivy
The newest version!
package com.terapico.caf.viewcomponent;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.terapico.utils.DebugUtil;
import com.terapico.utils.MapUtil;
/**
* 表单字段组件。
*
* type=form-field
*
*
* 表单字段的属性比较多,沿袭之前的设计。 核心的字段说明:
*
* - type:字段类型。 参见{@link FormFieldViewComponent#type 字段类型}
* - candidateValues:字段候选值。 参见{@link FormFieldViewComponent#candidateValues
* 候选值}
*
*
* @author clariones
*
*/
@JsonPropertyOrder({ "componentType", "type", "label", "content", "placeholder" })
public class FormFieldViewComponent extends BaseViewComponent {
public static final String TYPE_TEXT = "text";
public static final String TYPE_LONG_TEXT = "longtext";
public static final String TYPE_DATE = "date";
public static final String TYPE_DATE_TIME = "date_time";
public static final String TYPE_MONEY = "money";
public static final String TYPE_URL = "url";
public static final String TYPE_IMAGE = "image";
public static final String TYPE_PASSWORD = "password";
public static final String TYPE_NUMBER = "number";
public static final String TYPE_SELECT = "select";
public static final String TYPE_RADIO = "radio";
public static final String TYPE_SWITCH = "switch";
public static final String TYPE_CHECK_BOX = "checkbox";
public static final String TYPE_VERIFY_CODE = "vcode";
public static final String TYPE_HIDDEN = "hidden";
/** 标签。显示该字段的提示名称. 也可能为空。例如 checkbox 类型的输入自带值说明,所以字段标签可能会被忽略 */
protected String label;
/** i18n 使用 */
protected String localeKey;
/** 对应的表单字段名. MUST */
protected String parameterName;
/**
* 字段类型。
*
* 这个字段表明字段该如何接收输入数据。
*
* - text: 普通的文本输入字段。
* - longtext: 大段文本的输入字段。
* - date:日期选择器
* - date_time:日期+时间选择器
* - money:金额输入字段。
* - url:URL输入字段。
* - image:图像字段。应具备上传/预览/删除的基本功能
* - password:口令输入字段。
* - number:数字输入字段。
* - select: 有限集合内选择之一输入的字段。典型的是下拉列表。
* - radio: 有限集合内选择之一输入的字段。但是全部显示出来。
* - switch:在 真/假 之间选择的字段。
* - checkbox:在有限集合内,可以多选的字段。典型的是一组多选框。
* - vcode:短信校验码的特定输入字段。背后ajax调用发送短信码等操作是OOTB的。
*
*/
protected String type;
/** 空值占位符. 只有支持placeholder的元素才有效。 */
protected String placeholder;
/** 初始值。 */
protected String defaultValue;
/** 字段描述 */
protected String description;
/** 字段分组。 暂时不用,忽略 */
protected String fieldGroup;
/** 最小值。 暂时不用,忽略 */
protected String minValue = "0";
/** 最大值。 暂时不用,忽略 */
protected String maxValue = "128";
/** 是否必填字段。 缺省false */
protected boolean required = false;
/** 是否禁止编辑 */
protected boolean disabled = false;
/** 字段关联的信息内容。可能没有 */
protected String fieldMessage;
/** 字段关联信息的级别。 包括:default, info, warning, error */
protected String fieldMessageLevel;
/** 富文本内容。 用于具备简单样式的表单输入的场景。例如选择项时,给出更详细的说明。 */
protected String richContent;
/**
* 候选值
*
* 对select的类型的字段,格式为一个简单Map对象:。
*
* - value:要输入的值。 String
* - displayText:界面上显示的值。 String
*
* 例如:
* [{"value":"13800000001","displayText":"张师傅(接车代审员)"},
*
* {"value":"13800000003","displayText":"李师傅(接单员)"}]
*
*
*
* 对checkbox的类型的字段,格式为一个简单Map对象:。
*
* - value:要输入的值。 String
* - displayText:界面上显示的值。String
* - checked:是否被选中, Boolean
*
* 例如:
* [{"value":"game","displayText":"玩游戏","checked":false},
*
* {"value":"reading","displayText":"读书","checked":true},
*
* {"value":"work","displayText":"有正当职业","checked":true}]
*
*
*/
protected List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy