# 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
,SuperPagewebform
,web表单excelform
,excel表单
# category
组件分类。一个模块中同一类别的组件可以相互转换。如果未指定则使用name
,即一个组件一个分类。
组件分类并不代表组件在设计器组件面板中的位置。如文本组件在SuperPage
中属于常用
分组,而它的category
是text
。使用group
指定组件在设计器组件面板中的位置。
系统中默认的分类包括:
visual
,可视化组件container
,容器组件input
,输入组件- TODO
# subCategory
当组件是子组件时,设置子组件的分类,父组件通过这个分类查找子组件并显示在添加子项的列表中。子组件不显示在组件大纲中。
例如spg列表的列配置如下:
{
"name": "customcolumn",
"subCategory": "list.column",
"capabilities": "columnCapabilities.json",
...
}
spg列表在初始化时会查找当前已经注册的组件扩展中所有类型为list.column
的组件,并显示在列表子项面板的添加菜单中。
# themeCategory
主题的分类,同一个主题分类的组件公用一套组件风格,相同themeCategory
的组件在风格选择面板中会显示相同的列表。
如果未指定则使用category
,category
也没指定则使用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,如输入框。在对话框中打开时自动聚焦到focusable
为true
的组件。
# 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
组件在不同设备下的默认元数据。