Skip to content

Latest commit

 

History

History
376 lines (308 loc) · 12.9 KB

编辑器属性.md

File metadata and controls

376 lines (308 loc) · 12.9 KB

编辑器属性

编辑器属性用来配置需要编辑的字段,也可以配置编辑器弹层的大小。

属性名 描述 类型 必填
props 配置编辑器的字段,可以单独配置,也可以作为 groups 中的属性配置,如果单独配置,默认只有一组。 Array false
groups 编辑器分组,用于编辑条件较多的情况下,包含 propsname 属性。groupsprops 二者只配其一。 Array false
grids 同一个表需要分多个菜单显示时,要配置 grids。与表格属性中的 grids 属性相同。 Object false
size 弹层的大小,跟 element 的模态框中的 size属性 配置相同,默认为 full String false

props

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 下拉列表是否多选,当 typeArrayPointer 时默认多选 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

editor 用来配置不同的编辑器,编辑器的列表如下:

  • html: 富文本编辑器
  • [image](#image 编辑器和images编辑器): 单张图片编辑器
  • [images](#image 编辑器和images编辑器): 多选图片编辑器
  • select: 下拉列表编辑器
  • textarea: textarea 编辑器
  • color: 颜色编辑器
  • tags: 标签编辑器,用来编辑字符串数组类型
  • address: 地址编辑器

html编辑器

html 编辑器的配置与普通字段的配置一致,只需要将 editor 配置为 html 即可。

{
  "prop": "detail"
  "editor": "html"
}

image 编辑器和images编辑器

单选图片的 editor 配置为 image,多选图片的 editor 配置为 images

图片编辑器支持保存成两种形式,一种为旧版的 pointer 形式,一种为直接保存图片的 url 地址。

图片编辑器只支持二级嵌套,暂不支持三级以上的深层嵌套。

专有的配置说明如下:

属性名 描述
targetClass 如果配置了 targetClass,表明要配置成旧版的 pointer 形式
url 用来指定保存图片地址的字段名,默认为 url
{
  "prop": "photo",
  "editor": "image", // "images"
  "targetClasss": "Photo"
}

select编辑器

如果编辑的字段为 Pointer 类型,默认会用下拉编辑器,如果为 ArrayPointer 类型,则需要将 type 配置为 ArrayPointer,配置后,默认会使用多选的下拉编辑器。

如果为其他类型,则需要指定 editorselect

下拉编辑器的专有属性如下:

属性 描述
display 下拉列表显示的字段名,默认为 name
multiple 下拉是否为多选
disabled 选项是否禁用,为函数体,返回值为 true 时,选项禁用。回调参数有 valrowindexdatarouteval 为选项选中时的值, row 为当前选项,index 为当前选项的索引,data 为下拉列表数组,route 为当前的路由对象。
options 如果指定 eitorselect 时,需要配置 options 属性。
options 为数组时,为下拉列表的选项,对象的 label 为显示值,value 为选中值;
另外 options 也可以配置为对象,配置为对象时,编辑器会调用 Cloud Function ,因此必须在 options 中指定 source 属性,sourceCloud Function 的函数名。在调用时,会将字段的配置一同返回给后端。Cloud Function 必须返回一个包含 labelvalue 的对象数组。

默认使用的情况:

{
  "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编辑器

textarea 编辑器的配置与普通字段的配置一致,只需要将 editor 配置为 textarea 即可。

{
  "prop": "content"
  "editor": "textarea"
}

color编辑器

color 编辑器的配置与普通字段的配置一致,只需要将 editor 配置为 color 即可。

{
  "prop": "color"
  "editor": "color"
}

tags编辑器

tags 编辑器的配置与普通字段的配置一致,只需要将 editor 配置为 tags 即可,但是必须保证字段为字符串数组。

{
  "prop": "tags"
  "editor": "tags"
}

address编辑器

地址编辑器支持三种形式:旧版的只保存 regionpointer 类型,分开的 pointer 类型和保存具体字段。

属性名 描述
prop 在保存成旧版的 Pointer 类型时才会用到 prop 属性,为保存 region 的字段名。无论有没有用到,prop 字段都必须填写,并且唯一。
value 为数组,可以为1~3个值。只有一个值时,表示只选省,两个值时,选省和市,三个值时,选省市和区。值为分别为取出省市区的下拉值字段,深层字段用 . 分隔。
editor 必须 为 address
type Pointer 时,使用旧版的只保存 regionPointer 形式;为 PointerArray 时,同一个表有,有对应的字段来保存省市区的 Pointer。其他值时,同一个表中有对应的字段来保存省市区的值。当为 PointerPointerArray 时,必须正确配置 targetClass
targetClass typePointer 时,targetClass 为字符串,只配置 regiontargetClass 即可,当为 PointerArray 时,配置成数组,对应省市区的 targetClass ,为其他类型时,可以不用配置。
model 配置地址下拉列表选中的值

typePointer 时:

{
  "prop": "region",
  "value": ["region.city.province.id", "region.city.id", "region.id"],
  "editor": "address",
  "type": "Pointer", 
  "targetClass": "Region",
  "model": "id"
}

typePointerArray 时:

{
  "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 字段用来给编辑器分组,避免需要编辑的字段太多,页面太长的情况。 groupsprops 只配置一个即可。

属性名 描述 类型 必填
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

default 用来配置编辑时的默认值,如果 typeDate 类型,则可以按照以下的配置:

如果为字符串,可以为标准的时间字符串,或者为别名,别名的值和含义如下:

含义
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

scopedSlot

自定义组件必须在初始化时传入,具体传入的方式见README

属性 描述 类型
config 当前字段配置 Object
value 当前字段值 *
form 表单 Object
index 当前字段索引 Number
groupIndex 当前组索引 Number
editor 编辑器所有配置 Object

example

{
  "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"
        }
      ]
    }
  ]
}