引入第三方 npm 包

安装 npm 包

npm install xxx --save

复制 npm 包到指定目录

  • 在页面中使用,就复制 node_modules 目录到 UI2/pcx 目录下
  • 在组件中使用,就将 node_modules 目录下组件使用的包,复制到 UI2/组件/components/组件/lib/node_modules 目录下

使用云 ide

使用云 ide 时,使用从本地导入,可以上传一个 zip 文件,将 zip 中的文件导入到 ide 中,导入步骤如下

  • 设置为追加模式

在 model 目录下,添加 .appendMode 文件,表示以追加的方式导入代码,如下图所示。

特别注意 不添加这个文件,就是覆盖模式,会清空现有文件,再导入文件

  • 准备 zip 文件

zip 文件中只包含需要导入的文件,但是目录必须从 UI2、service 开始,例如要将 node_modules 目录导入到 UI2/pcx 目录下,zip 中第一级目录是 UI2,第二级是 pcx 目录,第三级目录是 node_modules 目录,如下图所示

  • 导入 zip 文件

进入高级页,点立即导入

在打开的对话框中,点从本地导入,选择上一步准备好的 zip 文件

导入后,切换到代码页,可以看到 zip 中的文件已经导进来了

使用本地 ide

使用本地 ide,代码都在本地计算机上,可以直接复制

使用案例

平台默认提供了 echarts 组件,从市场添加 echarts 组件后就执行了 nmp 包的导入,即在页面上可不用组件直接通过引用 echarts 资源包用 div(区块)组件画需要的图表,具体操作如下:

  • 引入 ecahrts 组件,vue 体系的选择 echarts 图表 vue 组件

1721734630347

  • 在页面中放区块组件,并设置宽度和高度

1721734658852

  • js 中引用 echarts
import * as echarts from "echarts";
  • 在需要时机拼接 echarts 需要的 option,获取区块组件的 dom,展现图表
        let option = {
            tooltip : {
                trigger: 'axis',
                axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                    type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                }
            },
            legend: {
                data:['直接访问', '邮件营销','联盟广告','视频广告','搜索引擎']
            },
            toolbox: {
                show : true,
                feature : {
                    mark : {show: true},
                    dataView : {show: true, readOnly: false},
                    magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']},
                    restore : {show: true},
                    saveAsImage : {show: true}
                }
            },
            calculable : true,
            xAxis : [
                {
                    type : 'value'
                }
            ],
            yAxis : [
                {
                    type : 'category',
                    data : ['周一','周二','周三','周四','周五','周六','周日']
                }
            ],
            series : [
                {
                    name:'直接访问',
                    type:'bar',
                    stack: '总量',
                    itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
                    data:[320, 302, 301, 334, 390, 330, 320]
                },
                {
                    name:'邮件营销',
                    type:'bar',
                    stack: '总量',
                    itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
                    data:[120, 132, 101, 134, 90, 230, 210]
                },
                {
                    name:'联盟广告',
                    type:'bar',
                    stack: '总量',
                    itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
                    data:[220, 182, 191, 234, 290, 330, 310]
                },
                {
                    name:'视频广告',
                    type:'bar',
                    stack: '总量',
                    itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
                    data:[150, 212, 201, 154, 190, 330, 410]
                },
                {
                    name:'搜索引擎',
                    type:'bar',
                    stack: '总量',
                    itemStyle : { normal: {label : {show: true, position: 'insideRight'}}},
                    data:[820, 832, 901, 934, 1290, 1330, 1320]
                }
            ]
        };

        //获取页面dom
         let pageRoot =this.getPage().renderRoot;
        //vue体系的写法: let pageRoot =$page.getPage().renderRoot;
        //获取区块div
        let divChart = pageRoot.querySelector("#div0");
        //初始化echarts
        let myChart = echarts.init(divChart);
        //设置数据
        myChart.setOption(option);
  • 运行效果如下:

1721734673753

上面的代码中,使用了 querySelector 获取 DOM 元素,建议使用 ref 获取 DOM 元素

results matching ""

    No results matching ""