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列表。
    • 当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对象步骤。基本都是使用默认配置。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,003评论 25 709
  • 早加餐:面包午加餐:椰蓉球,瓜子晚水果:红薯 参考目标: 1份豆2份肉3份“新鲜”水果4份谷物/薯5份蔬菜,深绿色...
    静趣_儿童心理师阅读 165评论 0 0
  • 非常喜欢宇彤老师的声音,第一次听老师朗读时,觉得太好听了,而且不做作,看到宇彤老师开课后,马上报名,下面说说我第一...
    万岩678阅读 153评论 0 0
  • 出发 2015年年底,我第一次进入股市。彼时,人们似乎刚刚从2008年的股灾缓过劲来,电视新闻开始报道股市的好转迹...
    魏玲27阅读 209评论 0 0