Layout

useLayout 的作用

1.存放画布大小、缩放、类型相关数据
2.布局数据的获取方法
3.插件、属性面板显隐设置
4.画布判空

state

const layoutState = reactive({
  dimension: {
    deviceType: String, // 设备类型
    width: String, // 画布默认宽度
    maxWidth: String, // 画布最大宽度
    minWidth: String, // 画布小宽度
    scale: Number, // 缩放的比例
    height: String // 画布默认高度
  },
  plugins: {
    fixedPanels: [], // 需要固定面板的插件id列表
    render: String, // 当前激活插件的id,如'engine.plugins.materials'
    pluginEvent: String // 控制插件面板pointer-event属性的值
  },
  settings: {
    render: String, // 当前激活settings面板的name,如'props','event'等
    api: null, // 目前似乎没有使用
    activating: false, // settings面版激活提示状态
    showDesignSettings: true // 控制settings面板是否展示。目前只在数据源的全屏查看时为false
  },
  toolbars: {
    visiblePopover: false // 目前似乎没有使用
  },
  pageStatus: '' // 页面状态,分别有'release','occupy','lock','guest','empty','p_webcenter','developer'
})

apis

getScale

作用
获取缩放的比例数据,canvas容器中,iframe以及iframe之外的元素clientRect的尺寸都是缩放过的,除以scale得到原始大小
在哪里被调用
1.CanvasAction中调用
2.CanvasResizeBorder中调用

getPluginState

作用
 获取插件状态数据的方法,数据包括固定面板的插件id列表、当前激活的插件id、控制插件面板pointer-event属性的值
在哪里被调用
1.CanvasResize中被监听
2.DesignPlugins中关于插件面板的使用
3.新手引导调整插件面板是否能被点击的调用

getDimension

作用
获取画布大小、缩放、类型相关数据
在哪里被调用
1.CanvasResize调用
2.Canvas布局获取scale调用
3.media工具获取设备数据调用

setDimension

参数
data // 画布大小、缩放、类型相关数据
作用
设置画布大小、缩放、类型相关数据
在哪里被调用
1.CanvasResize调用
2.media工具获取设备数据调用

activeSetting

参数
name //激活settings面板的name,如'props','event'等
作用
1.激活setting面板
2.高亮提示
3.记录当前激活settings的name
在哪里被调用
1.画布右键Menus的修改属性和绑定事件触发

activePlugin

参数
name // 激活插件的id,如'engine.plugins.materials'
noActiveRender // false激活 true不激活
作用
1.激活plugin面板
2.高亮提示
3.记录当前激活plugin的id
4.返回当前插件注册的Api
在哪里被调用
1.国际化管理调用
2.设置区块暴露属性调用
3.区块管理事件/属性调用
4.新建区块后,激活物料
5.新手引导激活
6.绑定事件定位到代码调用
7.画布刷新调用
8.工具栏的区块/页面设置调用

closePlugin

参数
forceClose // true强制关闭
作用
关闭插件面板
在哪里被调用
1.画布拖拽的时候调用
2.画布选择节点的时候调用
3.插件面板/锁定面板的关闭图标调用
4.区块保存/切换
5.新建页面成功
6.切换页面并获取页面详情成功后调用

isEmptyPage

作用
判断当前页面是否为空
在哪里被调用
1.出码
2.预览
3.画布刷新
4.工具栏的区块/页面设置调用

options

options: {
    configProvider: [], // 全局配置组件
    configProviderDesign: [], // 规范,可以通过该属性定制一些自定义的交互规范
    isShowLine: true, // 是否显示工具栏右侧分割线
    isShowCollapse: true, // 是否显示工具栏右侧下拉列表
    toolbars: {
      left: [],
      center: [],
      right: [],
      collapse: []
    } // 工具栏布局配置,可自定义组件在左、中、右、下拉列表的位置;其中right和collapse为二维数组,可定制分组
  }

遗留修改项

1.目前获取layoutState.plugins大部分都是直接从属性获取,还未整改为从api获取,即getPluginState()