修改代码

This commit is contained in:
ival 2021-04-07 10:55:38 +08:00
parent 74d82f5872
commit 31cc8f75c5
6 changed files with 683 additions and 180 deletions

View File

@ -5,42 +5,146 @@ const elementType = Object.fromEntries(Object.keys(graphic).map(type => [type, t
export const elementConst = {
[elementType.Line]: {
code: elementType.Line, name:'线段', formList:{ style:[], shape:[] }
code: elementType.Line, name:'线段',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Text]: {
code: elementType.Text, name:'文字', formList:{ style:[], shape:[] }
code: elementType.Text, name:'文字',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Rect]: {
code: elementType.Rect, name:'矩形', formList:{ style:[], shape:[] }
code: elementType.Rect, name:'矩形',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Circle]: {
code: elementType.Circle, name:'圆形', formList:{ style:[], shape:[] }
code: elementType.Circle, name:'圆形',
formList:{
style: [
],
shape: [
]
}
},
[elementType.Polygon]: {
code: elementType.Polygon, name:'多边形', formList:{ style:[], shape:[] }
code: elementType.Polygon, name:'多边形',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Arrow]: {
code: elementType.Arrow, name:'箭头', formList:{ style:[], shape:[] }
code: elementType.Arrow, name:'箭头',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Polyline]: {
code: elementType.Polyline, name:'多边形折线段', formList:{ style:[], shape:[] }
code: elementType.Polyline, name:'多边形折线段',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Isogon]: {
code: elementType.Isogon, name:'正多边形', formList:{ style:[], shape:[] }
code: elementType.Isogon, name:'正多边形',
formList: {
style: [
],
shape:[
]
}
},
[elementType.Ellipse]: {
code: elementType.Ellipse, name:'椭圆', formList:{ style:[], shape:[] }
code: elementType.Ellipse, name:'椭圆',
formList: {
style: [
],
shape:[
]
}
},
[elementType.Arc]: {
code: elementType.Arc, name:'圆弧', formList:{style:[], shape:[] }
code: elementType.Arc, name:'圆弧',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Sector]: {
code: elementType.Sector, name:'扇形', formList:{style:[], shape:[] }
code: elementType.Sector, name:'扇形',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Heart]: {
code: elementType.Heart, name:'心形', formList:{style:[], shape:[] }
code: elementType.Heart, name:'心形',
formList: {
style: [
],
shape: [
]
}
},
[elementType.Droplet]: {
code: elementType.Droplet, name:'水滴', formList:{style:[], shape:[] }
code: elementType.Droplet, name:'水滴',
formList: {
style: [
],
shape: [
]
}
}
};

View File

@ -1,7 +1,9 @@
import types from './types';
export default [
{ prop: 'z1',
label: '层级 z1',
type: 'number',
label: '层级z1',
type: types.Number,
precisionFlag: 0,
min:0,
max:20,
@ -14,8 +16,8 @@ export default [
},
{
prop: 'z2',
label: '层级 z2',
type: 'number',
label: '层级z2',
type: types.Number,
precisionFlag: 0,
min: 0,
max: 100,
@ -27,13 +29,13 @@ export default [
description: '控制图形的前后顺序。z2 值小的图形会被 z2 值大的图形覆盖。z2 相比 z1 优先级更低。'
},
{
prop: 'visible',
label: '图形是否可见',
type: props.Boolean,
prop: 'sightless',
label: '图形是否可见',
type: types.Boolean,
rules:[
{ required: true, message:'请输入层级z2', trigger: 'blur' }
{ required: true, message:'请选择图形是否不可见', trigger: 'blur' }
],
value: false,
description: '图形是否可见,为 false 时不绘制图形。'
description: '图形是否不可见,选中时不绘制图形。'
}
];

View File

@ -1,50 +1,152 @@
export default {
// string '#000' 填充样式。
fill: {
import types from './types';
export default [
{
prop: 'fill',
label: '填充样式',
type: types.String,
rules:[
{ required: true, message:'请输入填充样式', trigger: 'blur' }
],
value: '',
description: '填充样式。'
},
// string null 描边样式。
stroke: {
{
prop: 'stroke',
label: '描边样式',
type: types.String,
rules:[
{ required: true, message:'请输入描边样式', trigger: 'blur' }
],
value: '',
description: '描边样式。'
},
// number 1 不透明度。
opacity: {
{
prop: 'opacity',
label: '描边样式',
type: types.Number,
min: 0,
max: 1,
step: 0.05,
precisionFlag: 2,
rules:[
{ required: true, message:'请输入不透明度', trigger: 'blur' }
],
value: 1,
description: '不透明度。'
},
// number[] null 描边虚线样式,参考 SVG stroke-dasharray。
lineDash: {
{
prop: 'lineDash',
label: '描边样式',
type: types.NumberArray,
min: 0,
max: 100,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入描边虚线样式', trigger: 'blur' }
],
value: 1,
description: '描边虚线样式,参考 SVG stroke-dasharray。'
},
// number null 描边虚线偏移,参考 SVG stroke-dashoffset。
lineDashOffset: {
{
prop: 'lineDashOffset',
label: '描边虚线偏移',
type: types.Point,
min: 0,
max: 100,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入描边虚线偏移', trigger: 'blur' }
],
value: [0,0],
description: '描边虚线偏移,参考 SVG stroke-dashoffset。'
},
// number 0 阴影模糊大小。
shadowBlur: {
{
prop: 'shadowBlur',
label: '阴影模糊大小',
type: types.Number,
min: 0,
max: 100,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入阴影模糊大小', trigger: 'blur' }
],
value: 0,
description: '阴影模糊大小。'
},
// string 'transparent' 阴影颜色。
shadowColor: {
{
prop: 'shadowColor',
label: '阴影颜色',
type: types.String,
rules:[
{ required: true, message:'请输入阴影颜色', trigger: 'blur' }
],
value: '',
description: '阴影颜色。'
},
// number 0 阴影横向偏移。
shadowOffsetX: {
{
prop: 'shadowOffsetX',
label: '阴影横向偏移',
type: types.Number,
min: 0,
max: 100,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入阴影横向偏移', trigger: 'blur' }
],
value: 0,
description: '阴影横向偏移。'
},
// number 0 阴影纵向偏移。
shadowOffsetY: {
{
prop: 'shadowOffsetY',
label: '阴影纵向偏移',
type: types.Number,
min: 0,
max: 100,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入阴影纵向偏移', trigger: 'blur' }
],
value: 0,
description: '阴影纵向偏移。'
},
// number 0 线宽。
lineWidth: {
{
prop: 'lineWidth',
label: '线宽',
type: types.Number,
min: 0,
max: 100,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入线宽', trigger: 'blur' }
],
value: 0,
description: '线宽。'
},
// boolean false 描边粗细不随缩放而改变false 则会根据缩放同比例缩放描边粗细。
strokeNoScale: {
{
prop: 'strokeNoScale',
label: '描边粗细不随缩放而改变',
type: types.Boolean,
rules:[
{ required: true, message:'请选择描边粗细不随缩放而改变', trigger: 'blur' }
],
value: false,
description: '描边粗细不随缩放而改变,不选中时则会根据缩放同比例缩放描边粗细。'
},
// string null 混合模式,同 Canvas globalCompositeOperation。
blend: {
{
prop: 'blend',
label: '混合模式',
type: types.String,
rules:[
{ required: true, message:'请输入混合模式', trigger: 'blur' }
],
value: '',
description: '混合模式,同 Canvas globalCompositeOperation。'
}
}
]

View File

@ -1,142 +1,402 @@
export default {
// string null 在图形中显示的文字。
text: {
import types from './types';
export default [
{
prop: 'text',
label: '内容',
type: types.String,
rules:[
{ required: true, message:'请输入内容', trigger: 'blur' }
],
value: 'context',
description: '在图形中显示的文字。'
},
// string null 文字样式,由 fontSize、 fontFamily、 fontStyle、 fontWeight 组成,建议分别设置这几项而非直接设置 font。
font: {
// {
// prop: 'font',
// label: '文字样式',
// type: types.String,
// rules:[
// { required: true, message:'请输入文字样式', trigger: 'blur' }
// ],
// value: '',
// description: '文字样式,由 fontSize、 fontFamily、 fontStyle、 fontWeight 组成,建议分别设置这几项而非直接设置 font。'
// },
{
prop: 'fontStyle',
label: '',
type: types.String,
rules:[
{ required: true, message:'请输入文字样式', trigger: 'blur' }
],
value: 'normal',
description: '同 CSS font-style。'
},
// string null 同 CSS font-style。
fontStyle: {
{
prop: 'fontWeight',
label: '文字粗细',
type: types.String,
rules:[
{ required: true, message:'请输入文字粗细', trigger: 'blur' }
],
value: 'normal',
description: '同 CSS font-weight。'
},
// string null 同 CSS font-weight。
fontWeight: {
{
prop: 'fontSize',
label: '文字大小',
type: types.String,
rules:[
{ required: true, message:'请输入文字大小', trigger: 'blur' }
],
value: '12px',
description: '同 CSS font-size。'
},
// string null 同 CSS font-size。
fontSize: {
{
prop: 'fontFamily',
label: '文字族',
type: types.String,
rules:[
{ required: true, message:'请输入文字族', trigger: 'blur' }
],
value: '文字样式',
description: '同 CSS font-family。'
},
// string null 同 CSS font-family。
fontFamily: {
{
prop: 'textFill',
label: '文字填充样式',
type: types.String,
rules:[
{ required: true, message:'请输入文字填充样式', trigger: 'blur' }
],
value: '',
description: '文字填充样式。'
},
// string null 文字填充样式。
textFill: {
{
prop: 'textStroke',
label: '文字描边样式',
type: types.String,
rules:[
{ required: true, message:'请输入文字描边样式', trigger: 'blur' }
],
value: '',
description: '文字描边样式。'
},
// string null 文字描边样式。
textStroke: {
{
prop: 'textWidth',
label: '文字宽度',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字宽度', trigger: 'blur' }
],
value: 0,
description: '文字宽度。'
},
// number null 文字宽度。
textWidth: {
{
prop: 'textHeight',
label: '文字高度',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字高度', trigger: 'blur' }
],
value: 0,
description: '文字高度,仅用于设置背景色时需要设置。'
},
// number null 文字高度,仅用于设置背景色时需要设置。
textHeight: {
{
prop: 'textLineWidth',
label: '文字描边宽度',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字描边宽度', trigger: 'blur' }
],
value: 0,
description: '文字描边宽度。'
},
// number 0 文字描边宽度。
textLineWidth: {
{
prop: 'textLineHeight',
label: '文字行高',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字行高', trigger: 'blur' }
],
value: 0,
description: '文字行高。'
},
// number 0 文字行高。
textLineHeight: {
{
prop: 'textPosition',
label: '文字位置',
type: types.String,
rules:[
{ required: true, message:'请输入文字位置', trigger: 'blur' }
],
value: '',
description: "文字位置,可以为 'inside'、 'left'、 'right'、 'top'、 'bottom',或一个二维数组 [x, y] 表示相对形状的位置。"
},
// string|number[] 'inside' 文字位置,可以为 'inside'、 'left'、 'right'、 'top'、 'bottom',或一个二维数组 [x, y] 表示相对形状的位置。
textPosition: {
{
prop: 'textOffset',
label: '文字行高',
type: types.Point,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字位置偏移', trigger: 'blur' }
],
value: 0,
description: '文字位置偏移,包括 x、 y。'
},
// Object null 文字包围盒,包括 x、 y、 width、 height 属性,如果没有设置,将使用形状的包围盒。
textRect: {
{
prop: 'textAlign',
label: '文字水平对齐方式',
type: types.String,
rules:[
{ required: true, message:'请输入文字水平对齐方式', trigger: 'blur' }
],
value: '',
description: "文字水平对齐方式,可取值:'left'、 'center'、 'right',默认根据 textPosition 计算。"
},
// number[] null 文字位置偏移,包括 x、 y。
textOffset: {
{
prop: 'textVerticalAlign',
label: '文字垂直对齐方式',
type: types.String,
rules:[
{ required: true, message:'请输入文字垂直对齐方式', trigger: 'blur' }
],
value: '',
description: "文字垂直对齐方式,可取值:'top'、 'middle'、 'bottom',默认根据 textPosition 计算。"
},
// string null 文字水平对齐方式,可取值:'left'、 'center'、 'right',默认根据 textPosition 计算。
textAlign: {
{
prop: 'textDistance',
label: '文字与其对齐的边缘的距离',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字与其对齐的边缘的距离', trigger: 'blur' }
],
value: 0,
description: '文字与其对齐的边缘的距离,如 textPosition 为 top 时textDistance 表示与形状上方的距离。'
},
// string null 文字垂直对齐方式,可取值:'top'、 'middle'、 'bottom',默认根据 textPosition 计算。
textVerticalAlign: {
{
prop: 'textShadowColor',
label: '文字阴影颜色',
type: types.String,
rules:[
{ required: true, message:'请输入文字阴影颜色', trigger: 'blur' }
],
value: '',
description: "文字阴影颜色。"
},
// number 5 文字与其对齐的边缘的距离,如 textPosition 为 top 时textDistance 表示与形状上方的距离。
textDistance: {
{
prop: 'textShadowBlur',
label: '文字阴影模糊大小',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字阴影模糊大小', trigger: 'blur' }
],
value: 0,
description: '文字阴影模糊大小。'
},
// string 'transparent' 文字阴影颜色。
textShadowColor: {
{
prop: 'textShadowOffsetX',
label: '文字阴影水平偏移',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字阴影水平偏移', trigger: 'blur' }
],
value: 0,
description: '文字阴影水平偏移。'
},
// number 0 文字阴影模糊大小。
textShadowBlur: {
{
prop: 'textShadowOffsetY',
label: '文字阴影垂直偏移',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字阴影垂直偏移', trigger: 'blur' }
],
value: 0,
description: '文字阴影垂直偏移。'
},
// number 0 文字阴影水平偏移。
textShadowOffsetX: {
{
prop: 'textBoxShadowColor',
label: '文字包围盒阴影颜色',
type: types.String,
rules:[
{ required: true, message:'请输入文字包围盒阴影颜色', trigger: 'blur' }
],
value: 'transparent',
description: "文字包围盒阴影颜色。"
},
// number 0 文字阴影垂直偏移。
textShadowOffsetY: {
{
prop: 'textBoxShadowBlur',
label: '文字包围盒阴影模糊大小',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字包围盒阴影模糊大小', trigger: 'blur' }
],
value: 0,
description: '文字包围盒阴影模糊大小。'
},
// string 'transparent' 文字包围盒阴影颜色。
textBoxShadowColor: {
{
prop: 'textBoxShadowOffsetX',
label: '文字包围盒阴影水平偏移',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字包围盒阴影水平偏移', trigger: 'blur' }
],
value: 0,
description: '文字包围盒阴影水平偏移。'
},
// number 0 文字包围盒阴影模糊大小。
textBoxShadowBlur: {
{
prop: 'textBoxShadowOffsetY',
label: '文字包围盒阴影垂直偏移',
type: types.Number,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字包围盒阴影垂直偏移。', trigger: 'blur' }
],
value: 0,
description: '文字包围盒阴影垂直偏移。'
},
// number 0 文字包围盒阴影水平偏移。
textBoxShadowOffsetX: {
{
prop: 'transformText',
label: '文字是否跟随变换效果',
type: types.Boolean,
rules:[
{ required: true, message:'请选择文字是否跟随变换效果', trigger: 'blur' }
],
value: false,
description: "文字是否跟随变换效果,仅对 Path 或 Image 元素有效"
},
// number 0 文字包围盒阴影垂直偏移。
textBoxShadowOffsetY: {
{
prop: 'textRotation',
label: '文字旋转角度',
type: types.Number,
min: 0,
max: 360,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字旋转角度', trigger: 'blur' }
],
value: 0,
description: '文字旋转角度,仅对 Path 或 Image 元素有效,并且 transformText 应设置为 false。'
},
// boolean false 文字是否跟随变换效果,仅对 Path 或 Image 元素有效
transformText: {
{
prop: 'textOrigin',
label: '文字变换中心',
type: types.Point,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字变换中心', trigger: 'blur' }
],
value: 0,
description: "文字变换中心,可以是 'center' 或一个二维数组 [x, y] 表示相对形状的位置,默认值是 textPosition。"
},
// number 0 文字旋转角度,仅对 Path 或 Image 元素有效,并且 transformText 应设置为 false。
textRotation: {
{
prop: 'textBackgroundColor',
label: '文字包围盒颜色',
type: types.String,
rules:[
{ required: true, message:'请输入文字包围盒颜色', trigger: 'blur' }
],
value: '',
description: "文字包围盒颜色。"
},
// string|number[] null 文字变换中心,可以是 'center' 或一个二维数组 [x, y] 表示相对形状的位置,默认值是 textPosition。
textOrigin: {
{
prop: 'textBorderColor',
label: '文字包围盒描边颜色',
type: types.String,
rules:[
{ required: true, message:'请输入文字包围盒描边颜色', trigger: 'blur' }
],
value: '',
description: "文字包围盒描边颜色。"
},
// string null 文字包围盒颜色。
textBackgroundColor: {
{
prop: 'textBorderWidth',
label: '文字包围盒描边宽度',
type: types.Number,
min: 0,
max: 1000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字包围盒描边宽度', trigger: 'blur' }
],
value: 0,
description: '文字包围盒描边宽度。'
},
// string null 文字包围盒描边颜色。
textBorderColor: {
{
prop: 'textBorderRadius',
label: '文字圆角大小',
type: types.Number,
min: 0,
max: 360,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字圆角大小', trigger: 'blur' }
],
value: 0,
description: '文字圆角大小。'
},
// number 0 文字包围盒描边宽度。
textBorderWidth: {
},
// number 0 文字圆角大小。
textBorderRadius: {
},
// number|number[] null 文字内边距,可以是 2 或 [2, 4] 或 [2, 3, 4, 5] 的形式,同 CSS Padding单位是像素。
textPadding: {
},
// Object null 富文本样式,参考 ECharts rich 配置项。
rich: {
{
prop: 'textPadding',
label: '文字内边距',
type: types.Point,
min: 0,
max: 10000,
step: 1,
precisionFlag: 0,
rules:[
{ required: true, message:'请输入文字内边距', trigger: 'blur' }
],
value: 0,
description: "文字内边距,可以是 2 或 [2, 4] 或 [2, 3, 4, 5] 的形式,同 CSS Padding单位是像素。"
}
}
]

View File

@ -1,15 +1,49 @@
// Object null 当文字过长显示不下时,显示省略号表示。
export default{
// number null 包含了 textPadding 的宽度,超出这个范围就裁剪。
outerWidth: {
export default [
{
prop: 'outerWidth',
label: '外部宽度',
type: types.Number,
min: 2,
max: 100,
step: 1,
rules:[
{ required: true, message:'请输入外部宽度', trigger: 'blur' }
],
value: 0,
description: '包含了 textPadding 的宽度,超出这个范围就裁剪。'
},
// number null 包含了 textPadding 的高度,超出这个范围就裁剪。
outerHeight: {
{
prop: 'outerHeight',
label: '外部高度',
type: types.Number,
min: 2,
max: 100,
step: 1,
rules:[
{ required: true, message:'请输入外部高度', trigger: 'blur' }
],
value: 0,
description: '包含了 textPadding 的高度,超出这个范围就裁剪。'
},
// string '...' 默认用省略号表示超出部分,也可以对其进行自定义。
ellipsis: {
{
prop: 'ellipsis',
label: '截断超出部分',
type: types.String,
rules:[
{ required: true, message:'请输入截断超出部分', trigger: 'blur' }
],
value: '',
description: '默认用省略号表示超出部分,也可以对其进行自定义。'
},
// string null 如果空间过小,导致省略号也显示不下,但是又不想空着,可能得有个什么标记表示这里是有字符的,就用个 “点”,就是在这个 placeholder 里设置。
placeholder: {
{
prop: 'placeholder',
label: '截断文字',
type: types.String,
rules:[
{ required: true, message:'请输入截断文字', trigger: 'blur' }
],
value: '',
description: '如果空间过小,导致省略号也显示不下,但是又不想空着,可能得有个什么标记表示这里是有字符的,就用个 “点”,就是在这个 placeholder 里设置。'
}
}
]

View File

@ -5,5 +5,6 @@ export default {
Boolean: 'Boolean',
Color: 'Color',
Point: 'Point',
Points: 'Points'
Points: 'Points',
NumberArray: 'NumberArray'
}