资源(resource)
资源(resource)主要是用于描述接口的字段(field)组成以及请求配置参数,同一个资源可以被多个 block
共享使用
注册资源
ams.resource(name: String, config: Object)
通过ams.resource
这个方法可以注册资源,name
是某个资源的唯一标识,已经注册的资源可以通过这个name
在任何区块里被引用,不可重复注册同一个资源。
举个例子:
ams.resource('demo-resource', {
key: 'id', // 【非必须】标识该resource的keyName
api: { // 数据接口相关
prefix: 'https://easy-mock.com/mock/5a0023effbbb09615044cb82/',
create: 'create',
update: 'update',
read: 'read',
delete: 'delete',
list: 'list'
},
fields: { // 字段
id: {
type: 'text',
label: 'id'
},
testArrays: {
type: 'array',
label: 'testTexts',
field: {
type: 'text',
label: 'testTexts',
props: {
'suffix-icon': 'el-icon-service'
}
}
}
}
})
以上注册了名字为 demo-resource
的资源,而这个资源由三部分组成,分别时key
api
fields
,其中这三部分的意义为:
key
: 【非必须】标识该resource的keyName
,有些场景需要通过queryString
传入,通过解析key=value
获取api
: 对resource的一些内置方法,prefix
为接口地址,目前提供了create
update
read
delete
list
几个内置请求方法fields
: resource里的详细的字段描述,点击前往更深入的了解fields
field通用配置
参数 | 类型 | 是否必传 | 说明 |
---|---|---|---|
type | string | 是 | field的类型,比如text 、textarea 、rate … |
ctx | string | 否 | field的状态,可取值:eidt 、view 。默认是当前field所在的block 的ctx 配置决定 |
label | string | 否 | 标签文本 |
hidden | boolean | 否 | 是否隐藏field,默认为false |
show | string、object、function | 否 | 联动显示条件,string为目标field名、如a.b ,object为{name:'a.b', value:'2'} ,function返回false 则隐藏 |
info | string | 否 | 提示信息tooltip,会显示在form的label 旁 |
props | object | 否 | 补充属性,用于添加DOM属性或者透传至element组件,如disabled |
rules | array | 否 | 校验规则,详见async-validator |
default | any | 否 | 默认值 |
get | function | 否 | get函数,编辑状态下生效(ctx: 'eidt' ) |
set | function | 否 | set函数,编辑状态下生效(ctx: 'eidt' ) |
view | function | 否 | view函数,显示状态下生效(ctx: 'view' ) |
labelWidth | string | 否 | form内label的显示宽度 |
使用资源
根据资源名字来使用某个资源,在注册block
时指定资源名字来使用
ams.block('demo', {
resource: 'demo-resource',
...
});