JEPaaS 社区

 找回密码
 立即注册
查看: 8615|回复: 25

jeapp打包后echrts无法绑定动态数据

[复制链接]

2

主题

16

帖子

79

积分

注册会员

Rank: 2

积分
79
发表于 2022-4-6 10:28:57 | 显示全部楼层 |阅读模式
我在编写jeapp插件的过程中导入了echrts组件,然后绑定了通过JE.ajax请求回来的动态数据,但是echrts没办法显示,然后我尝试了绑定死数据发现可以显示,又确定了我的JE.ajax请求成功并且有数据。
图一是我后来的单独重写的新插件,情况是一样的,有三个数据,只有死数据能展示出来,但是在上面显示我的动态数据是请求到了的


图二红色箭头的死数据是成功呈现了的,白色的就没有呈现出来,但是我请求是成功了
975186e4e1d7fe5fdf43b90fdea04c7.png
2617907c3aef595cbdc1d764dd53838.png
回复

使用道具 举报

44

主题

150

帖子

671

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
671
发表于 2022-4-7 11:30:37 | 显示全部楼层
看一下返回数据的格式与写死数据的格式有什么不同
回复

使用道具 举报

2

主题

16

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2022-4-7 15:43:01 | 显示全部楼层
凯特-呼丽华 发表于 2022-4-7 11:30
看一下返回数据的格式与写死数据的格式有什么不同

没有问题,死数据和请求回来的类型都是Array
回复

使用道具 举报

44

主题

150

帖子

671

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
671
发表于 2022-4-8 13:58:59 | 显示全部楼层
1136360074 发表于 2022-4-7 15:43
没有问题,死数据和请求回来的类型都是Array

1、编写插件界面,代码不全,仅作为参考cpxs_sl_data,就是请求返回的数据
  1. <Card
  2.           title="产品销售量统计"
  3.           class="je-card-not-full"
  4.         >
  5.           <marketSum
  6.             id="cpxs_sl_data"
  7.             :data="cpxs_sl_data"
  8.           />
  9.         </Card>
复制代码
2、获取数据,并渲染,案例是统计图是分界面做的,如下:
  1. //引入统计界面
  2. import marketSum from './components/marketSum/index.vue';

  3. //data()中获取数据
  4. data() {
  5.     return {
  6.       cpxs_sl_data: [],
  7.       cpxs_je_data: {},
复制代码

回复

使用道具 举报

44

主题

150

帖子

671

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
671
发表于 2022-4-8 13:59:23 | 显示全部楼层
凯特-呼丽华 发表于 2022-4-8 13:58
1、编写插件界面,代码不全,仅作为参考cpxs_sl_data,就是请求返回的数据2、获取数据,并渲染,案例是统 ...
  1. methods: {
  2.     initData() {
  3.      JE.ajax({
  4.         url: '/je/xxxx', //根据业务定url
  5.         params,
  6.       }).then((data) => {
  7.         if ((Object.keys(data)).length) {
  8.           this.cpxs_sl_data = data.obj.cpxs_sl.map((item) => {
  9.             this.$set(item, 'value', item.sum);
  10.             return item;
  11.           });
  12.         }
  13.         this.cpxs_je_data = data.obj.cpxs_je;
  14.       });

  15. }
  16. }
复制代码
回复

使用道具 举报

44

主题

150

帖子

671

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
671
发表于 2022-4-8 14:02:05 | 显示全部楼层

图表绘制
  1. <template>
  2.   <div
  3.     ref="id"
  4.     :id="id"
  5.     :style="wh"
  6.   />
  7. </template>

  8. <script>
  9. export default {
  10.   props: {
  11.     data: Array,
  12.     id: String,
  13.   },
  14.   data() {
  15.     return {
  16.       myChart: null,
  17.       wh: {
  18.         width: '100%',
  19.         height: '300px',
  20.       },
  21.     };
  22.   },
  23.   watch: {
  24.     data(val) {
  25.       if (val) {
  26.         this.data = val;
  27.         this.initCarts();
  28.       }
  29.     },
  30.   },
  31.   methods: {
  32.     initCarts() {
  33.       const echarts = require('echarts');
  34.       // 基于准备好的dom,初始化echarts实例
  35.       this.myChart = echarts.init(document.getElementById(this.id), 'macarons');
  36.       // 绘制图表
  37.       this.myChart.setOption({
  38.         tooltip: {
  39.           trigger: 'item',
  40.           formatter: '{a} <br/>{b}: {c} ({d}%)',
  41.         },
  42.         grid: {
  43.           top: '0',
  44.           left: '0',
  45.           containLabel: true,
  46.         },
  47.         legend: {
  48.           bottom: 'bottom',
  49.         },
  50.         series: [
  51.           {
  52.             name: '数量',
  53.             type: 'pie',
  54.             radius: ['15%', '50%'],
  55.             avoidLabelOverlap: false,
  56.             center: ['50%', '35%'],
  57.             label: {
  58.               normal: {
  59.                 show: false,
  60.                 formatter: '{b}:{d}%  ',
  61.               },
  62.               emphasis: {
  63.                 show: false,
  64.                 shadowBlur: 10,
  65.                 shadowOffsetX: 0,
  66.                 shadowColor: 'rgba(0, 0, 0, 0.5)',
  67.               },
  68.             },
  69.             labelLine: {
  70.               normal: {
  71.                 show: false,
  72.               },
  73.             },
  74.             data: this.data,
  75.             itemStyle: {
  76.               normal: {
  77.                 // eslint-disable-next-line
  78.                 color: function (params) {
  79.                   const colorList = [
  80.                     '#2ec7c9', '#b6a2de', '#5ab1ef', '#ffb980', '#d87a80',
  81.                     '#8d98b3', '#e5cf0d', '#97b552', '#95706d', '#dc69aa',
  82.                     '#07a2a4', '#9a7fd1', '#588dd5', '#f5994e', '#c05050',
  83.                     '#59678c', '#c9ab00', '#7eb00a', '#6f5553', '#c14089',
  84.                   ];
  85.                   return colorList[params.dataIndex];
  86.                 },
  87.               },
  88.             },
  89.           },
  90.         ],
  91.       });
  92.     },
  93.   },
  94. };
  95. </script>

  96. <style scoped>
  97. </style>
复制代码

回复

使用道具 举报

2

主题

16

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2022-4-11 11:40:35 | 显示全部楼层

是在data改变后watch触发再挂载echrts才能展示吗
回复

使用道具 举报

44

主题

150

帖子

671

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
671
发表于 2022-4-13 09:34:16 | 显示全部楼层
1136360074 发表于 2022-4-11 11:40
是在data改变后watch触发再挂载echrts才能展示吗

我这边找到的案例是这样的,您可以参考一下
回复

使用道具 举报

2

主题

16

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2022-4-13 09:48:54 | 显示全部楼层
凯特-呼丽华 发表于 2022-4-13 09:34
我这边找到的案例是这样的,您可以参考一下

照着写了之后还是没有办法展示参数。。。请问有不需要页面之间传参的案例吗?
回复

使用道具 举报

2

主题

16

帖子

79

积分

注册会员

Rank: 2

积分
79
 楼主| 发表于 2022-4-14 09:38:37 | 显示全部楼层
凯特-呼丽华 发表于 2022-4-13 09:34
我这边找到的案例是这样的,您可以参考一下

又遇到一个bug,app插件中justify-content: flex-start;属性不起效
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-4-27 00:58 , Processed in 0.069563 second(s), 22 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表