编辑器属性用来配置需要编辑的字段,也可以配置编辑器弹层的大小。
属性名 | 描述 | 类型 | 必填 |
---|---|---|---|
props | 配置编辑器的字段,可以单独配置,也可以作为 groups 中的属性配置,如果单独配置,默认只有一组。 |
Array | false |
groups | 编辑器分组,用于编辑条件较多的情况下,包含 props 和 name 属性。groups 和 props 二者只配其一。 |
Array | false |
grids | 同一个表需要分多个菜单显示时,要配置 grids 。与表格属性中的 grids 属性相同。 |
Object | false |
size | 弹层的大小,跟 element 的模态框中的 size属性 配置相同,默认为 full |
String | false |
props
为一个对象数组,配置需要编辑的字段。
props
中有一个 editor
属性,用来指定不同的编辑器,这是 props
中最重要的配置之一。
属性名 | 描述 | 类型 | 必填 |
---|---|---|---|
prop | 需要编辑的字段,支持深层嵌套的,用 . 分隔 |
String | true |
type | 字段的类型,默认从取模型属性中的 type 字段,如果为深层嵌套字段,必须要配置此字段 |
String | false |
targetClasss | 默认从模型属性中取,地址组件支持配置为 Array ,指定多个字段的 targetClass |
String | Array | false |
editor | 指定编辑器,不同的编辑器的 props 的配置不一样 |
String | false |
placeholder | 值为空时的提示语 | String | false |
default | 默认值 | * | false |
display | 下拉列表需要显示的字段,默认显示 name |
String | false |
multiple | 下拉列表是否多选,当 type 为 ArrayPointer 时默认多选 |
Boolean | false |
disabled | 下拉列表的禁用选项,为函数体,返回 true 时,表示选项禁用。 |
String | false |
options | 下拉列表专有属性,见下拉编辑器的说明 | Array | false |
value | 地址编辑器的专有属性,见地址编辑器的说明 | Array | false |
model | 地址编辑器的专有属性,见地址编辑器的说明 | String | false |
rows | 为 textarea 编辑器专有属性,见 textarea 编辑器的说明 |
Number | false |
url | 为图片编辑器的专有属性,见图片编辑器的说明 | String | false |
scopedSlot | 自定义显示组件 | String | false |
editor
用来配置不同的编辑器,编辑器的列表如下:
- html: 富文本编辑器
- [image](#image 编辑器和images编辑器): 单张图片编辑器
- [images](#image 编辑器和images编辑器): 多选图片编辑器
- select: 下拉列表编辑器
- textarea: textarea 编辑器
- color: 颜色编辑器
- tags: 标签编辑器,用来编辑字符串数组类型
- address: 地址编辑器
html
编辑器的配置与普通字段的配置一致,只需要将 editor
配置为 html
即可。
{
"prop": "detail"
"editor": "html"
}
单选图片的 editor
配置为 image
,多选图片的 editor
配置为 images
。
图片编辑器支持保存成两种形式,一种为旧版的 pointer
形式,一种为直接保存图片的 url
地址。
图片编辑器只支持二级嵌套,暂不支持三级以上的深层嵌套。
专有的配置说明如下:
属性名 | 描述 |
---|---|
targetClass | 如果配置了 targetClass ,表明要配置成旧版的 pointer 形式 |
url | 用来指定保存图片地址的字段名,默认为 url |
{
"prop": "photo",
"editor": "image", // "images"
"targetClasss": "Photo"
}
如果编辑的字段为 Pointer
类型,默认会用下拉编辑器,如果为 ArrayPointer
类型,则需要将 type
配置为 ArrayPointer
,配置后,默认会使用多选的下拉编辑器。
如果为其他类型,则需要指定 editor
为 select
。
下拉编辑器的专有属性如下:
属性 | 描述 |
---|---|
display | 下拉列表显示的字段名,默认为 name |
multiple | 下拉是否为多选 |
disabled | 选项是否禁用,为函数体,返回值为 true 时,选项禁用。回调参数有 val 、row 、index 、data 、route 。val 为选项选中时的值, row 为当前选项,index 为当前选项的索引,data 为下拉列表数组,route 为当前的路由对象。 |
options | 如果指定 eitor 为 select 时,需要配置 options 属性。options 为数组时,为下拉列表的选项,对象的 label 为显示值,value 为选中值;另外 options 也可以配置为对象,配置为对象时,编辑器会调用 Cloud Function ,因此必须在 options 中指定 source 属性,source 为 Cloud Function 的函数名。在调用时,会将字段的配置一同返回给后端。Cloud Function 必须返回一个包含 label 和 value 的对象数组。 |
默认使用的情况:
{
"prop": "status",
"display": "code",
"disabled": "return val > 5"
}
配置为 select
的情况1:
{
"prop": "status",
"editor": "select",
"multiple": true
"options": [
{
"value": 0,
"label": "禁用"
},
{
"value": 1,
"label": "启用"
}
]
}
配置为 select
的情况2:
{
"prop": "status",
"editor": "select",
"options": {
"source": "getOptions"
}
}
textarea
编辑器的配置与普通字段的配置一致,只需要将 editor
配置为 textarea
即可。
{
"prop": "content"
"editor": "textarea"
}
color
编辑器的配置与普通字段的配置一致,只需要将 editor
配置为 color
即可。
{
"prop": "color"
"editor": "color"
}
tags
编辑器的配置与普通字段的配置一致,只需要将 editor
配置为 tags
即可,但是必须保证字段为字符串数组。
{
"prop": "tags"
"editor": "tags"
}
地址编辑器支持三种形式:旧版的只保存 region
的 pointer
类型,分开的 pointer
类型和保存具体字段。
属性名 | 描述 |
---|---|
prop | 在保存成旧版的 Pointer 类型时才会用到 prop 属性,为保存 region 的字段名。无论有没有用到,prop 字段都必须填写,并且唯一。 |
value | 为数组,可以为1~3个值。只有一个值时,表示只选省,两个值时,选省和市,三个值时,选省市和区。值为分别为取出省市区的下拉值字段,深层字段用 . 分隔。 |
editor | 必须 为 address |
type | 为 Pointer 时,使用旧版的只保存 region 的 Pointer 形式;为 PointerArray 时,同一个表有,有对应的字段来保存省市区的 Pointer 。其他值时,同一个表中有对应的字段来保存省市区的值。当为 Pointer 和 PointerArray 时,必须正确配置 targetClass |
targetClass | 当 type 为 Pointer 时,targetClass 为字符串,只配置 region 的 targetClass 即可,当为 PointerArray 时,配置成数组,对应省市区的 targetClass ,为其他类型时,可以不用配置。 |
model | 配置地址下拉列表选中的值 |
type
为 Pointer
时:
{
"prop": "region",
"value": ["region.city.province.id", "region.city.id", "region.id"],
"editor": "address",
"type": "Pointer",
"targetClass": "Region",
"model": "id"
}
type
为 PointerArray
时:
{
"prop": "region",
"value": ["province.id", "city.id", "region.id"],
"editor": "address",
"type": "PointerArray",
"targetClass": ["Province", "City", "Region"],
"model": "id"
}
type
为其他类型时:
{
"prop": "region",
"value": ["province", "city", "region"],
"editor": "address",
"model": "name"
}
groups
字段用来给编辑器分组,避免需要编辑的字段太多,页面太长的情况。 groups
和 props
只配置一个即可。
属性名 | 描述 | 类型 | 必填 |
---|---|---|---|
name | 分组名 | String | true |
props | 组内编辑的字段,跟上面的 props 的配置一致 |
Array | true |
{
"groups": [
{
"name": "基础信息一",
"props": [
{
"prop": "name"
},
{
"prop": "code"
}
]
},
{
"name": "基础信息二",
"props": [
{
"prop": "photo",
"editor": "image"
},
{
"prop": "detail",
"editor": "html"
}
]
}
]
}
default
用来配置编辑时的默认值,如果 type
为 Date
类型,则可以按照以下的配置:
如果为字符串,可以为标准的时间字符串,或者为别名,别名的值和含义如下:
值 | 含义 |
---|---|
today | 今天 |
yesterday | 昨天 |
lastWeek | 一周前 |
lastMonth | 一月前 |
lastYear | 一年前 |
tomorrow | 明天 |
nextWeek | 一周后 |
nextMonth | 一月后 |
nextYear | 一年后 |
如果为 Object
类型,则根据配置在当前的时间点进行增加或减少
属性名 | 描述 | 类型 |
---|---|---|
isBeforeToday | 配置的时间是否在今天之前,默认为 false |
Boolean |
milliseconds | 毫秒数 | Number |
seconds | 秒 | Number |
minutes | 分 | Number |
hours | 时 | Number |
days | 天 | Number |
weeks | 周 | Number |
months | 月 | Number |
years | 年 | Number |
自定义组件必须在初始化时传入,具体传入的方式见README
属性 | 描述 | 类型 |
---|---|---|
config | 当前字段配置 | Object |
value | 当前字段值 | * |
form | 表单 | Object |
index | 当前字段索引 | Number |
groupIndex | 当前组索引 | Number |
editor | 编辑器所有配置 | Object |
{
"groups": [
{
"name": "基本信息1",
"props": [
{
"prop": "name"
},
{
"prop": "city"
},
{
"prop": "target"
},
{
"prop": "targetDate"
},
{
"prop": "seq"
}
]
},
{
"name": "基本信息2",
"props": [
{
"prop": "address"
},
{
"prop": "openDate"
},
{
"prop": "image",
"editor": "image"
},
{
"prop": "area"
}
]
},
{
"name": "园区介绍",
"props": [
{
"prop": "gardenDetail",
"editor": "html"
}
]
},
{
"name": "介绍图片组",
"props": [
{
"prop": "images",
"editor": "images"
}
]
}
]
}