# ThemeContentMixin

继承自 AppMixin,主题内容区域混入,提供内容区域对象、该内容区域微件列表、微件结构、展示版面和微件的图标与名称等功能,并能根据当前地图的模式自动关闭与模式不匹配的微件(比如:某个微件只能在 3D 模式下使用,当切换到 2D 时,会自动关闭)。

一般在主题的子组件中混入 ThemeContentMixin,这些组件可以直接使用 AppMixin 和 ThemeContentMixin 里的属性、方法和钩子函数。比如一张图经典主题里的子组件 mp-pan-spatial-map-classic-left。

# props

参数 说明 类型 可选值 默认值 版本
content 内容区域名称。 string
widgets 微件列表。 array
widgetStructure 微件结构。 array
panel 面板对象。 object
mapInitialized 地图是否初始完毕。 boolean false

# computed

参数 说明 类型 可选值 默认值 版本
widgets2d 2D 微件列表。 array
widgets3d 3D 微件列表。 array
widgetStructure2d 2D 微件结构。 array
widgetStructure3d 3D 微件结构。 array
widgetStructureSider 侧边栏微件结构。比如收藏夹。 array

# methods

# getWidgetIcon

  • 描述:获取微件的图标。

  • 返回值:微件的图标。

  • 参数

    参数 描述 类型 默认值
    widget 微件对象 Object -

# getWidgetLabel

  • 描述:获取微件的名称。

  • 返回值:微件的名称。

  • 参数

    参数 描述 类型 默认值
    widget 微件对象 Object -

# getWidgetProperties

  • 描述:获取微件的属性,来源于 manifest.json 的内容。

  • 返回值:微件的属性。

  • 参数

    参数 描述 类型 默认值
    widget 微件对象 Object -

# onUpdateWidgetState

  • 描述:当微件状态更新时触发。

  • 参数

    参数 描述 类型 默认值
    e 微件状态更新事件对象,格式为{widget, newState, oldState} Object -
  • 用法:可重写该方法,实现对微件状态更新的监听,然后在组件内进行一些显示样式的同步,比如微件打开后,将按钮高亮,微件被关闭后,将按钮取消高亮。

  • 示例

onUpdateWidgetState({ widget, newState, oldState }) {
  if (newState !== WidgetState.CLOSED) {
    this.selectWidgetId = widget.id
  } else {
    if (this.selectWidgetId == widget.id) {
      this.selectWidgetId = ''
    }
  }
}