开发 echarts-react 图表组件

通过使用 echarts-react 图表组件,实现下面8种图表

设计思路

使用 echarts-for-react 组件实现 echarts-react 图表组件。

echarts-for-react 组件

使用方法如下

组件包文件结构

组件开发完成,组件包文件结构如下图所示

  • 上面是组件包的文件结构,组件下载到 ide 后,前端代码在 UI2/comp 目录下,服务端代码在 service/comp 目录下
  • 一个组件包包括一个命名空间(和组件包同名)和一个(或多个)组件
  • 一个组件包括设计时文件、编译时文件和运行时文件
  • 组件使用的外部包放在命名空间的 lib 目录下

开发过程

新建组件

新建组件包 chart 、新建组件 Echarts、安装 echarts-for-react 组件,参考《创建组件包和组件

配置组件名称、图标和模板

打开组件模板文件 UI2/comp/chart/components/Echarts/designer/Echarts.xml,如下图所示

  • element 中的 text 是组件名称
  • element 中的 icon 是组件图标
    • 图片文件位于 UI2/comp/chart/components/Echarts/designer/img/line.jpg
  • template 中的代码是组件模板
    • 在页面添加组件后,模板是加在 w 文件中的代码
    • 在模板中定义了组件默认的宽和高

在组件面板中显示

打开组件面板配置文件 UI2/comp/chart/components/chart.components.xml,如下图所示

  • catalog 中的 name 是组件分类名称
  • item 中的 device 属性声明组件所在端,本组件可跨端使用(桌面端和移动端),删除该属性
  • item 中的 module 属性一般组件不需要,删除即可

切换到 chart 开发端后,点击 chart 组件包右侧的“更新配置文件”按钮,如下图所示。

1723538185576

更新后,切换到桌面端或移动端,在组件面板的高级分类中会显示出该组件

在设计器中显示

打开组件设计时 css 文件 UI2/comp/chart/components/Echarts/designer/css/echarts.css,定义样式如下,在设计器中显示一张图片。

将组件拖放到页面上,组件显示为一张图片。

配置组件属性

打开组件 meta 文件 UI2/comp/chart/components/Echarts/Echarts.meta.json,定义5个属性,如下图所示

  • 在 properties 中定义属性
  • 所有属性都需要定义
  • 不显示的属性不定义 label
  • bind:options 和 bind:optionsFilter 是两个特殊的属性
    • bind:options 用来选择页面上的数据集组件
    • bind:optionsFilter 用来设置过滤条件
    • 在 react.js 中可通过 this.getOptions(); 获取到过滤好的数据
      • option属性中存储的 json 会包括 function,因此需要使用双花括号 {{}} 存储

配置组件工具栏

打开组件 meta 文件 UI2/comp/chart/components/Echarts/Echarts.meta.json,定义一个设置图表按钮,如下图所示

  • 在 toolbar 中定义工具栏按钮
  • text 是按钮上的文字
  • method 是组件设计时 js 文件中的方法名
  • 点击按钮就是调用 js 方法

在 UI2/comp/chart/components/Echarts/designer/Echarts.js 文件中定义 editOption 方法。该方法打开 UI2/comp/chart/components/Echarts/designer/dialog/chartConfig.w 页面(该页面使用 PC 经典端开发),将页面返回的内容写入 w 页面。

配置组件事件

打开组件 meta 文件 UI2/comp/chart/components/Echarts/Echarts.meta.json,定义2个事件,如下图所示

  • 在 events 中定义事件
  • events 中的节点是事件名称
  • label 是事件中文名称
  • data 是参数名称
  • detail 是参数 event.detail 的描述
  • cancelable 是是否可取消

在 UI2/comp/chart/components/Echarts/Echarts.react.js 文件中定义事件参数 beforeSetOptionEvent,派发事件 fireEvent,接收用户事件中修改的参数,代码如下:

在运行时显示

在组件运行时 js 文件 UI2/comp/chart/components/Echarts/Echarts.react.js 中,导入 echarts-for-react 和 echarts 两个包,代码如下

定义 render 方法,代码如下:

调试组件

  • 切换到桌面端或移动端
  • 在页面上添加图表组件、选择数据、设置图表
  • 保存、预览

发布组件

导出组件包

切换到 chart 开发端,点击 chart 组件包右侧的导出按钮,如下图所示,导出 chart.zip 文件

1723538593779

上传市场并审核

进入控制台,打开“组件管理-组件发布”功能, 在发布组件页面中,输入组件包信息,上传组件包文件,点击提交审核按钮

控制台管理员 system 进入控制台,打开“组件管理-组件管理”功能,点击审核中或更新审核中,显示出提交待审核的组件,点击审核按钮,再点击通过按钮

打开应用,添加市场组件,可以看到图表组件

至此,图表组件开发完毕

results matching ""

    No results matching ""