Appearance
扩展菜单
本示例介绍了扩展菜单的三种方式。
本示例基于教程快速指南开发,请查看教程快速指南
。
一、JSON扩展
通过DDeiCoreTopMenuSimplePanel
的configuration
方法可以配置顶部菜单以及菜单项。
DDeiCoreTopMenuSimplePanel
内置了一组菜单,通过id
加以区分,每个菜单都有特定的行为。
demo.vue
vue
<script setup lang="ts">
import DDeiEditorView from "ddei-editor"; //导入DDei设计器
import DDeiFlow from "ddei-flow";//导入DFlow流程图插件
import {DDeiCoreTopMenuSimplePanel} from "ddei-editor"; //导入顶部菜单插件
const options = {
//配置扩展插件
extensions: [
DDeiFlow, //引入DDeiFlow插件
DDeiCoreTopMenuSimplePanel.configuration({ //配置顶部菜单及菜单项
direct: 2,//方向,1纵向,2横向
position: 2,//位置1-9顺时针,1为左上角,9为中心
drag: 1,//是否允许拖拽
items: [//菜单项配置
{
id: "ddei-core-save", //内置ID,保存
name: "Save" //显示文本-纯文本
},
{
id: "ddei-core-open", //内置ID,打开
name: "ddei.open" //显示文本-i18n
},
{
id: "ddei-core-download", //内置ID,下载
name: "ddei.download"
},
{
id: "ddei-core-new", //内置ID,新建
name: "ddei.new"
}
]
})
]
}
</script>
<template>
<DDeiEditorView :options="options" id="dflow_editor_1"></DDeiEditorView>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
实时效果
二、Action扩展
通过action
属性,可以自定义菜单项点击后的行为。
demo.vue
vue
<script setup lang="ts">
import DDeiEditorView from "ddei-editor"; //导入DDei设计器
import DDeiFlow from "ddei-flow";//导入DFlow流程图插件
import {DDeiCoreTopMenuSimplePanel} from "ddei-editor"; //导入顶部菜单插件
const options = {
//配置扩展插件
extensions: [
DDeiFlow, //引入DDeiFlow插件
DDeiCoreTopMenuSimplePanel.configuration({ //配置顶部菜单及菜单项
direct: 2,//方向,1纵向,2横向
position: 2,//位置1-9顺时针,1为左上角,9为中心
drag: 1,//是否允许拖拽
items: [//菜单项配置
{
id: "ddei-core-save", //内置ID,保存
name: "Save" //显示文本-纯文本
},
{
id: "ddei-core-open", //内置ID,打开
name: "ddei.open" //显示文本-i18n
},
{
name: "自定义", //显示文本
action: function (editor) { //菜单按下后的动作
//获取流程API
let flowAPI = editor.flow
//获取json字符串
let flowObj = flowAPI.toFlowObject()
console.log(flowObj)
}
}
]
})
]
}
</script>
<template>
<DDeiEditorView :options="options" id="dflow_editor_1"></DDeiEditorView>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
实时效果
三、Vue组件扩展
通过viewer
属性,可以自定义菜单项的样式与行为。viewer
值为一个vue组件。
demo.vue
vue
<script setup lang="ts">
import DDeiEditorView from "ddei-editor"; //导入DDei设计器
import DDeiFlow from "ddei-flow";//导入DFlow流程图插件
import {DDeiCoreTopMenuSimplePanel} from "ddei-editor"; //导入顶部菜单插件
import menudemo from "./menudemo.vue" //导入自定义菜单组件
const options = {
//配置扩展插件
extensions: [
DDeiFlow, //引入DDeiFlow插件
DDeiCoreTopMenuSimplePanel.configuration({ //配置顶部菜单及菜单项
direct: 2,//方向,1纵向,2横向
position: 2,//位置1-9顺时针,1为左上角,9为中心
drag: 1,//是否允许拖拽
items: [//菜单项配置
{
id: "ddei-core-save", //内置ID,保存
name: "Save" //显示文本-纯文本
},
{
id: "ddei-core-open", //内置ID,打开
name: "ddei.open" //显示文本-i18n
},
{ //自定义组件
viewer:menudemo
}
]
})
]
}
</script>
<template>
<DDeiEditorView :options="options" id="dflow_editor_1"></DDeiEditorView>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
menudemo.vue
vue
<script lang="ts">
export default {
name: "ddei-flow-topmenu-demo",
props: {
//外部传入的插件扩展参数
options: {
type: Object,
default: null
},
editor: {
type: Object,
default: null
},
model: {
type: Object,
default: null
}
},
methods: {
test(){
let flowAPI = this.editor.flow
console.log(flowAPI.toFlowObject())
}
}
};
</script>
<template>
<div style="color:red" @click="test">
自定义
</div>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
实时效果
技术支持
QQ:3697355039
微信公众号:ddei757