资源(resource)

资源(resource)主要是用于描述接口的字段(field)组成以及请求配置参数,同一个资源可以被多个 block 共享使用

注册资源

  1. ams.resource(name: String, config: Object)

通过ams.resource这个方法可以注册资源,name是某个资源的唯一标识,已经注册的资源可以通过这个name在任何区块里被引用,不可重复注册同一个资源。

举个例子:

  1. ams.resource('demo-resource', {
  2. key: 'id', // 【非必须】标识该resource的keyName
  3. api: { // 数据接口相关
  4. prefix: 'https://easy-mock.com/mock/5a0023effbbb09615044cb82/',
  5. create: 'create',
  6. update: 'update',
  7. read: 'read',
  8. delete: 'delete',
  9. list: 'list'
  10. },
  11. fields: { // 字段
  12. id: {
  13. type: 'text',
  14. label: 'id'
  15. },
  16. testArrays: {
  17. type: 'array',
  18. label: 'testTexts',
  19. field: {
  20. type: 'text',
  21. label: 'testTexts',
  22. props: {
  23. 'suffix-icon': 'el-icon-service'
  24. }
  25. }
  26. }
  27. }
  28. })

以上注册了名字为 demo-resource 的资源,而这个资源由三部分组成,分别时key api fields,其中这三部分的意义为:

  • key: 【非必须】标识该resource的keyName,有些场景需要通过 queryString 传入,通过解析 key=value 获取

  • api: 对resource的一些内置方法,prefix为接口地址,目前提供了create update read delete list 几个内置请求方法

  • fields: resource里的详细的字段描述,点击前往更深入的了解fields

field通用配置

参数类型是否必传说明
typestringfield的类型,比如texttextarearate
ctxstringfield的状态,可取值:eidtview。默认是当前field所在的blockctx配置决定
labelstring标签文本
hiddenboolean是否隐藏field,默认为false
showstring、object、function联动显示条件,string为目标field名、如a.b,object为{name:'a.b', value:'2'},function返回false则隐藏
infostring提示信息tooltip,会显示在form的label
propsobject补充属性,用于添加DOM属性或者透传至element组件,如disabled
rulesarray校验规则,详见async-validator资源(resource) - 图1
defaultany默认值
getfunctionget函数,编辑状态下生效(ctx: 'eidt'
setfunctionset函数,编辑状态下生效(ctx: 'eidt'
viewfunctionview函数,显示状态下生效(ctx: 'view'
labelWidthstringform内label的显示宽度

使用资源

根据资源名字来使用某个资源,在注册block时指定资源名字来使用

  1. ams.block('demo', {
  2. resource: 'demo-resource',
  3. ...
  4. });