5 base-from
在使用config中的配置时,一定要使用深拷贝对象。
不然会发生许多组件间互相影响的事情。
functions
- hideItem(field) & showItem(field)
显示/隐藏 item对应的控件。
type:
-
string:普通输入框。未来可能增加前后图标和按钮功能,目前还不支持。
-
date 日期选择
-
date-time 日期,时间选择。在这个类型中,自动加入了timezone的绑定代码,需要设置zoneField属性,设置绑定的属性名。
- 在setFormValue时,会根据zoneField。来改变对应的值。
-
date-month 月份选择。需要设置format属性,来设置格式。
-
radio-group radio-gourp选择控件。
-
select 普通选择。optionName:选项在config对象中的名称。 subDisplay:选项显示的字段名称。subValue:赋值时对应的名称。
-
mult-select 多选,其他字段与select 相同
-
search-select 搜索选择。,其他字段与select 相同。未来可能增加isInput字段。默认false 当为true的时候,用户没有做出选择时,以输入的值为field的value。
- labelFields 字符串数组类型,用于在数据回显的时候,从设置的哪些字段的值显示在显示框内。默认以 | 风格,如果要修改风格字符,要设置:labelDivider。在search-select2中,也是同样的用法。
-
search-select2
- 当optinName的值为web时,代表选项需要通过网络获取。
这时就必须设置service这个属性。FormOptionLoader会根据名称,调用对应的服务,获取Option列表。
- 当optinName的值为web时,代表选项需要通过网络获取。
- 当optionName值为web-search时,代表要根据输入值进行搜索以获得选择项列表。
- 当optionName为numbers时,start为起始数值,length为数组长度。只要设置了这两个属性,就可以显示数字列表并选择了。
- 当optionName为tof时,代表选择true of false 自动带有这两个选项。
-
range 数值型范围。需要再items列表里增加field+From 和 field + To 两个隐藏字段来配合使用。目前只在query里出现,在query-panel.compnent中,在查询时会自动处理好这个Item相关的赋值。如果要在其他的地方使用,可能需要修改。
-
date-range 日期范围。同样是在query的情况下,只要配置了field,label和type,其他的都会自动处理了。
-
country-city-select 国家城市选择。绝大多数情况下,只要配置了label和类别,在在Item列表里配置两个city和country 的隐藏item就可以了。
-
defaultConfig 默认配置。
像city查询,用户查询,这种常用且复杂的控件。很多属性是固定配置的,所以使用默认配置,能避免重复代码,未来有修改也改起来也很方便。
defaultConfig的值目前包括:
businessuser.all 所有用户
businessuser.individual 普通用户
businessuser.finance 财务用户
businessuser.manager 管理用户
location.cities 城市查询
vendor.agent 代理查询
generate.countries 所有国家
weekDays 星期多选框
特殊字段
- required 是否为必填。默认false。
- related 目前只支持在选择控件中使用。值为一个对象数组,对象为{formField,objField,groupName?}。当这个对象绑定的field发生变化的时候也就是用户做了选择操作时,跟随field的value的改变,会联动其他属性一起产生变化。formField代表表单中的field。objField代表选项对象对应的字段名。
比如在选择国家对象的时候,form里的countryGuid的值要与被选择国家对象的guid值绑定。 - groupName如果关联的对象是二级对象的某个属性,这里通过groupName来实现。
- groupName 二级对象设置。field 是二级属性名,groupName是一级属性名。
- style 自己的样式。
item 对象
- selectedOption
在有选项列表的的type中,在用户选择选项后,指向已经选择的option对象。方便外部调用已选项的值。 - date & dateTime
日期时间戳。在控件中选择的是一个时间对象。但是服务器上需要的是时间戳数据。所以在用户选择日期时间后,将对象转化成时间戳,方便随时调用。
特殊optionName
1web
在将item由JSON配置项转化为对象时,form-option-loader会去根据service.name调用相关的service获取到option列表。这里一旦获取就不会更改了。
在buildForm是,webOptionLoader会去读取options。也只读取一次。
如果一次性读取的数据非常多,建议使用:
[type:select-search]+[optionName:web]
这样的组合,控件会根据用户输入,筛选队列。
记得在optionLoader里做一个oringinOptions。这样,控件才会去进行筛选。
还需要在config中配置filterKey。让控件找到该用option的哪个属性跟用户输入值进行匹配。
2web-search
在nzOnSearch事件调用时,会根据传入的值和item的service.name属性调用相关service,并更新option列表。
在buildForm中不会进行网络请求,只有在用户输入的时候才会进行网络请求。
特殊方法
1 setDefautDataresource(config)
根据配置对象设置默认数据源。
避免了重复的引用DefaultDataresource对象步骤。基本都是使用默认配置。