DDei在线设计器-API-DDeiStage

DDeiStage

  DDeiStage代表一个舞台,一个舞台含有多个DDeiLayer(图层)
  DDeiStage实例包含了一个舞台的所有数据,以及渲染器,在获取后可以通过它访问其他内容。DDeiSheetDDei中都有stage属性,前者的关系是固定的,后者指向当前激活的画布。

  一个DDeiSheet实例至少包含一个DDeiStage实例。

  本篇最后提供的示例可以在DDei文档直接预览

属性

属性名说明数据类型静态默认值备注
unicode唯一编号string系统生成自动编码
idIdx当前图形的ID种子number
layers图层集合DDeiLayer[]
layerIndex当前的图层下标number-1
selectedModels选中模型DDeiAbstractShape[]当前选中图形
ratio缩放比率number1.0
width画布宽度number
height画布高度number
wpv视窗开始点object(0,0,0)
spv纸张标量开始点object中心
mark水印object查看详情
paper纸张object查看详情
ruler标尺object查看详情
grid网格线object查看详情
ddInstanceDDei实例DDei
modelType模型类型stringDDeiStage

方法

static loadFromJSON

  将JSON转换为一个DDeiStage实例

参数

参数名类型范围默认值备注
jsonobject文件JSON数据
tempDataobject用于初始化的数据:{currentDdInstance:当前ddInstance实例}

返回值

类型备注
DDeiStageDDeiStage实例

toJSON

  将DDeiStage实例转换为JSON对象

参数

  无

返回值

类型备注
JSON包含了DDeiStage所有信息的JSON对象

initRender

  初始化渲染器,并绑定

参数

  无

返回值

  无

calModelNumber

  计算并返回当前舞台的模型总数量

参数

  无

返回值

类型备注
number模型总数量

addLayer

  添加图层到舞台中

参数

参数名类型范围默认值备注
layerDDeiLayer/undefined图层,为空会初始化一个
layerIndexnumber/undefined位置下标,为空会添加到末尾

返回值

类型备注
DDeiLayer被添加的图层

changeLayer

  切换当前图层

参数

参数名类型范围默认值备注
layerIndexnumber位置下标

返回值

  无

removeLayer

  删除图层

参数

参数名类型范围默认值备注
layerIndexnumber位置下标,为空时移除当前图层

返回值

类型备注
DDeiLayer被删除的图层

addModel

  添加模型到当前图层

参数

参数名类型范围默认值备注
modelDDeiAbstractShape模型

返回值

  无

getModelById

  根据ID获取图形

参数

参数名类型范围默认值备注
idstringid
allLayerbooleanfalse默认当前图层,true所有图层

返回值

类型备注
DDeiAbstractShape/null图形实例

getModelsByBaseType

  根据类别获取图形

参数

参数名类型范围默认值备注
bmtstring模型类型来自modelType/baseModelType

返回值

类型备注
DDeiAbstractShape[]图形实例列表

removeModel

  删除当前图层模型

参数

参数名类型范围默认值备注
modelDDeiAbstractShape模型
destroybooleanfalse是否销毁

返回值

  无

removeModelById

  根据ID删除控件

参数

参数名类型范围默认值备注
idsstring[]id列表

返回值

  无

cancelSelectModels

  取消选择图形

参数

参数名类型范围默认值备注
modelsDDeiAbstractShape[]/undefined模型列表
ignoreDDeiAbstractShape[]/undefined忽略模型列表

返回值

  无

displayLayer

  显示图层

参数

参数名类型范围默认值备注
layerIndexnumber下标
tempbooleanfalse临时显示

返回值

  无

hiddenLayer

  隐藏图层

参数

参数名类型范围默认值备注
layerIndexnumber下标

返回值

  无

setStageRatio

  设置缩放比率

参数

参数名类型范围默认值备注
newValuenumber1.0缩放比率

返回值

  无

getStageRatio

  获取缩放比率

参数

  无

返回值

类型备注
number缩放比率

notifyChange

  通知改变,刷新画布

参数

  无

返回值

  无

示例

代码

<script setup lang="ts">
import DDeiEditorView from "ddei-editor";
import {DDeiEditor,DDeiStage,DDeiLayer,DDeiCoreStandLayout,DDeiAbstractShape} from "ddei-editor";
import { defineComponent, markRaw,getCurrentInstance,ref } from "vue";
//获取主对象实例,代替this获取$refs
const {proxy} = getCurrentInstance()

const options = markRaw({
  config: { 
    "grid": 0, //网格线
    "background": { color: "blue", opacity: 0.1 }, //背景色
    initData: {
      controls: [
        {
          model: "102010",
          text: "初始化图形"
        },
      ]
    }
  },
  //配置扩展插件
  extensions: [
    //布局的配置
    DDeiCoreStandLayout.configuration({
      //配置插件
      'top': [],
      'middle': ['ddei-core-panel-canvasview'],
      'bottom': [],
      'left': [],
      'right': []
    }),
  ],
})

const createControl = () => {
  //获取编辑器 
  let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;
  let stage:DDeiStage = editor.files[0].sheets[0].stage
  //添加控件
  editor.addControls([
        {
          id:"control_1",
          model: "102010",
          text: "新图形"
        },
      ]);
};
const removeControl = () => {
  //获取编辑器 
  let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;
  let stage:DDeiStage = editor.files[0].sheets[0].stage
  //删除控件
  stage?.removeModelById(["control_1"])
};

const addLayer = () => {
  //获取编辑器 
  let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;
  let stage:DDeiStage = editor.files[0].sheets[0].stage
  //添加图层
  let newLayer:DDeiLayer = stage.addLayer(null,0);
  newLayer.initRender();
};
const removeLayer = () => {
  //获取编辑器 
  let editor:DDeiEditor = proxy.$refs["ddei_editor_api_3"].editor;
  //获取舞台
  let stage:DDeiStage = editor.files[0].sheets[0].stage
  //删除图层
  stage.removeLayer(0);
};

</script>

<template>

<button @click="addLayer" style="border:1px solid grey;margin-left:5px;padding:5px">新增图层</button>
<button @click="removeLayer" style="border:1px solid grey;margin-left:5px;padding:5px">删除图层</button>
<button @click="createControl" style="border:1px solid grey;margin-left:5px;padding:5px">创建控件</button>
<button @click="removeControl" style="border:1px solid grey;margin-left:5px;padding:5px">删除控件</button>

<div style="width:400px;height:400px;margin:100px auto;">
  <DDeiEditorView :options="options" ref="ddei_editor_api_3" id="ddei_editor_api_3"></DDeiEditorView>
</div>
</template>

仓库信息

源码: https://gitee.com/hoslay/ddei-editor

文档: http://docs.ddei.top

在线体验: https://www.ddei.top

技术支持

QQ:3697355039     邮箱:3697355039@qq.com
  • 29
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值