# pacakge.json

package.json文件包含两部分信息:

  • 扩展的基本信息,包含扩展名称、描述文字、作者、组件的npm依赖等。npm配置参考npm package.json (opens new window)
  • 组件扩展点的配置,包括组件的类名、分组、模板等。

组件扩展点中包含通用扩展点配置的所有属性,并额外增加了下面的属性。

{
	"contributes": {
		"dataVisualization": [{
			"name": "<component type>",
			"main": "<main ts file>",
			"visualClassName": "...",
			"supportTypes": ["..."],
			"category": "...",
			"subCategory": "...",
			"subTypes": "...",
			"themeCategory": "...",
			"group": "...",
			"focusable": true|false,
			"accessableProperties": [{...}],
			"accessableMethods": [{...}],
			"conditionStyleTypes": ["..."],
			"effectStyleTypes": ["..."],
			"templates": [{...}]
		}]
	}
}

当创建一个组件扩展时,必须指定的配置包括:

{
	"name": "<visual component name>",
	"supportTypes": ["..."],
	"group": "...",
	"visualClassName": "..."
}

# 组件扩展点配置选项

下面是dataVisualization扩展点的配置选项。

# name

组件扩展点的名称,也是组件的类型名称,用于唯一标识一个组件类型,全局唯一,如barChart

# main

组件依赖的主代码文件,不指定时,使用main.ts

# visualClassName

组件的类名,对应main.ts中的一个js类,该类继承自IVisualComponent接口,SuccBI在初始化组件时会根据这里的配置对组件进行实例化。

# supportTypes

扩展支持的模块类型。一个组件扩展可以同时支持多个模块,默认支持所有模块。如扩展一个输入框,可以在报表SuperPage中使用,可配置为["rpt", "spg"]

在属性栏配置中,通过$global.objectType可以获取到当前模块类型,可在属性栏属性配置的visibleCondition中控制在指定模块显示。

组件扩展中支持配置的模块包括:

  • dash,仪表板
  • rpt,报表
  • spg,SuperPage
  • webform,web表单
  • excelform,excel表单

# category

组件分类。一个模块中同一类别的组件可以相互转换。如果未指定则使用name,即一个组件一个分类。

组件分类并不代表组件在设计器组件面板中的位置。如文本组件在SuperPage中属于常用分组,而它的categorytext。使用group指定组件在设计器组件面板中的位置。

系统中默认的分类包括:

  • visual,可视化组件
  • container,容器组件
  • input,输入组件
  • TODO

# subCategory

当组件是子组件时,设置子组件的分类,父组件通过这个分类查找子组件并显示在添加子项的列表中。子组件不显示在组件大纲中。

例如spg列表的列配置如下:

{
	"name": "customcolumn",
	"subCategory": "list.column",
	"capabilities": "columnCapabilities.json",
	...
}

spg列表在初始化时会查找当前已经注册的组件扩展中所有类型为list.column的组件,并显示在列表子项面板的添加菜单中。

# themeCategory

主题的分类,同一个主题分类的组件公用一套组件风格,相同themeCategory的组件在风格选择面板中会显示相同的列表。

如果未指定则使用categorycategory也没指定则使用name。通常,只有非常相似的组件,如柱形图、折线图等,才指定相同的themeCategory,其它情况则无需指定。

# group

组件分组。用于控制组件在设计器组件面板中显示的位置。 支持配置字符串或json,配置json,会按照不同模块指定的分组控制显示位置。组件显示在仪表板中时需要配置以"@"分隔的二级分组。

{
	"group": "chart@6_kpi", //显示在图形分组的kpi子分组下。
}{
	"group": { "dash": "chart@@6_kpi", "spg": "other" }, //仪表板模块显示在chart分组的kpi子分组下,SuperPage显示在other分组。
}

TODO 截图

# focusable

组件是否可以被聚焦,默认为false。通常只有输入类组件才配置为true,如输入框。在对话框中打开时自动聚焦到focusabletrue的组件。

# accessableProperties

设置组件属性交互可以访问的属性名称。系统核心组件库的组件支持的组件属性参考设置组件属性

此配置项的类型是一个json数组。数组中的一项代表一个组件属性的配置,组件属性支持以下配置项:

  • name:属性的名称,必选。
  • desc:属性的详细描述,可选,如果没有配置则取国际化配置,国际化配置key为ana.setComponentProperty.组件名.属性名

文本输入控件组件属性配置如下:

{
	"name": "input",
	"accessableProperties":[
		{
			"name":"value",
			"desc":"输入组件的值" //如果缺省,取值为message("ana.setComponentProperty.input.value")
		},
		...
	],
 	...
}

# accessableMethods

调用组件方法交互可以访问的方法名称及相应的参数配置。系统核心组件库的组件支持的组件属性参考调用组件方法

此配置项的类型是一个json数组。数组中的一项代表一个组件方法的配置,组件方法支持以下配置项:

  • name:方法名,可选。

  • desc:方法描述,可选。如果没有配置则取国际化配置,国际化配置key为ana.invokeComponentMethod.组件名.方法名

  • params:方法参数,可选,类型是json数组。数组中的一项代表一个参数的配置,支持以下属性:

    • name:参数名称,必选。
    • desc:参数描述,可选。如果没有配置则取国际化配置,国际化配置key为ana.invokeComponentMethod.组件名.params.参数名
    • items:可选的枚举值数组,可选。如果一个参数只能在一些枚举项中取值则需要配置。数组中每一项支持的配置项如下:
      • value:枚举项的值,必选。
      • desc:枚举项描述,可选。如果没有配置则取国际化配置,国际化配置key为ana.invokeComponentMethod.组件名.params.参数名.枚举值
    • multiple:是否可以多选,可选,类型为boolean。默认为false,一般配置了items项才需要配置是否可以多选。
    • defaultValue:默认值,可选。
    • optional:此参数是否可选,默认值为true。
  • funtion,组件方法的函数名,可选,指定后会尝试在组件配置的main文件中查找该函数并调用,用于解决组件不显示就需要调用的逻辑。TODO:

嵌入报表组件方法属性配置如下:

{
    name:"embedreport",
    "accessableMethods":[
        {
            "name":"print"
        },
        {
            "name":"export",
            "params":[
                {
                    "name":"fileName"
                },
                {
                    "name":"sheet",
                    "defaultValue":"current",
                    "multiple":false,
                    "items":[
                    	{
                            "value":"current"
                        },
                        {
                            "value":"all"
                        }
                    ]
                },
                *...*
            ]
        },
        ...
    ],
    ...
}

# conditionStyleTypes

组件允许添加的条件样式类型。

条件样式类型包括:

  • highlight,突出显示
  • topn,最前/最后。仅在报表和excel表单中可用。
  • dataBar,数据条
  • iconBar,图标条
  • colorGradation,色阶
  • colorPalette,色板
  • iconSet,图标集

# effectStyleTypes

组件允许添加的状态样式类型。

状态样式类型包括:

  • hover,悬停
  • active,鼠标按下
  • selected,选中
  • disabled,禁用
  • busy,忙碌
  • focus,焦点

# templates

组件模板。一个组件类型可以配置多个组件模板,多个模板都会在组件列表中显示。

组件模板支持的配置:

# name

模板名称,默认是组件的name

# displayName

模板显示的名称。

# icon

模板图标。

# group

模板分组,仪表板中需要配置以"@"分隔的二级分组。

# after

当配置了group后,可以配置在分组中哪一个组件后面。

# defaultContent

默认元数据。拖入组件时生成的元数据以该配置为基础。

# deviceContents

组件在不同设备下的默认元数据。

是否有帮助?
0条评论
评论