找回密码
 注册成为天翎用户
查看: 1464|回复: 14

[已解决] echarts饼状图标签自定义不显示

[复制链接]
Jazmine 发表于 2021-6-22 11:42:35 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v4.4- sp XX
【浏览器类型】:Chrome/其他
【联系方式-QQ】:请留下您的QQ号码1250496032
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题17865923357
【问题描述】:

您好,我在使用统计图制作饼状图时,需要自定义标签内容,但我设置好后,在我们的系统前端不显示,但是可以在echarts的官方平台测试通过。代码如下所示。



另外,我设置的是环形饼状图,就是嵌套的饼状图,每个环我都需要设置标签,那就需要标签线的长度不同,而且根据条件选择,环的个数还不固定,这个时候我需要怎么动态生成标签线?




1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\"已解决可结帖\"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
jerry 发表于 2021-6-22 14:31:40 | 显示全部楼层
在前台不显示,前台有出现报错吗
回复

使用道具 举报

 楼主| Jazmine 发表于 2021-6-22 14:37:38 | 显示全部楼层
jerry 发表于 2021-6-22 14:31
在前台不显示,前台有出现报错吗

没,没报错。贴的图片代码是我的正式项目代码。我还有一个test测试代码,只是数据源不一样,这个test数据源我是弄的死数,存在数组里。而我的正式项目代码是用sql获取的数据,也是存数组里。除此之外,其他代码完全一样,那我的这个test就能实现formatter的内容。而且我写的formatter内容在echarts官网示例里测试过,也能显示。不知道为啥在OA里就不能显示
回复

使用道具 举报

白日蜜语 发表于 2021-6-23 23:43:32 | 显示全部楼层
Jazmine 发表于 2021-6-22 14:37
没,没报错。贴的图片代码是我的正式项目代码。我还有一个test测试代码,只是数据源不一样,这个test数据 ...

待我们验证一下回复您!
回复

使用道具 举报

 楼主| Jazmine 发表于 2021-6-24 17:15:48 | 显示全部楼层
白日蜜语 发表于 2021-6-23 23:43
待我们验证一下回复您!

大约什么时候验证完?我着急使用
回复

使用道具 举报

白日蜜语 发表于 2021-6-24 19:25:29 | 显示全部楼层
你好源代码可以给一下吗这个echart的
回复

使用道具 举报

白日蜜语 发表于 2021-6-24 19:39:26 | 显示全部楼层
你的图片代码不显示对吧,可能是你的图片位置存放错误了
回复

使用道具 举报

 楼主| Jazmine 发表于 2021-6-24 21:34:27 | 显示全部楼层
白日蜜语 发表于 2021-6-24 19:25
你好源代码可以给一下吗这个echart的
  1. (function(){
  2.                         var xDataArr = [];
  3.                         var yDataArr1 = []; //总客户数
  4.                         var yDataArr2 = []; //拜访人数
  5.                         var country = getItemValueAsString("市");
  6.                         var m = getItemValueAsString("月份");
  7.                         var year = getYear(getToday());
  8.                         var ym = year + "-" + m;
  9.                         var countryDefault = "where k.item_行政县 IN ( '321302','321311','341323','321322','341324','341302') "; //一直是默认的县变量
  10. if (country != "") {
  11.         countryDefault = ",(SELECT domainid, item_市, item_编码 from obpm_oa.tlk_市级) c " +
  12.                 "WHERE " +
  13.                 "c.`item_编码`='" + country + "' and c.item_编码 = x.item_上级 ";
  14. }
  15. var sql =
  16.                                 "SELECT x.`item_县`, (SELECT COUNT(item_客户姓名) from obpm_oa.tlk_客户 WHERE item_行政县=x.item_编码) as 总客户数, COUNT(DISTINCT v.`ITEM_客户姓名`) as 拜访数 " +
  17.                                 "from " +
  18.                                 "(SELECT domainid, item_县, item_编码, item_上级 from obpm_oa.tlk_县级) x, " +
  19.                                 "obpm_oa.tlk_客户 k," +
  20.                                 "(SELECT DOMAINID, `ITEM_客户姓名`, `ITEM_联系时间` from obpm_oa.tlk_拜访联系记录 WHERE `ITEM_拜访联系方式`='上门' AND `ITEM_客户姓名`!='' " +
  21.                                 "AND `ITEM_联系时间` BETWEEN '"+ym+"-1' and '"+ym+"-31 23:59:59') v " + countryDefault +
  22.                                 "and x.item_编码 = k.item_行政县 " +
  23.                                 "and k.`item_客户姓名` = v.`ITEM_客户姓名` " +
  24.                                 "GROUP BY x.`item_县`";

  25. var query = queryByDSName("OA", sql);

  26. if (query.size() > 0) {
  27.         for (var it = query.iterator(); it.hasNext();) {
  28.                 var its = it.next();
  29.                 var country = its.get("item_县");
  30.                 var sumNum = its.get("总客户数");
  31.                 var num = its.get("拜访数");
  32.                 xDataArr.push(new String(country));
  33.                 yDataArr1.push(new String(sumNum));
  34.                 yDataArr2.push(new String(num));
  35.         }
  36. }
  37.                         var yDataArr3 = []; //未拜访数
  38.                         for (var i = 0; i < yDataArr1.length; i++) {
  39.                                 yDataArr3[i] = yDataArr1[i] - yDataArr2[i];
  40.                         }
  41.                         var option = {
  42.                                 title: {
  43.                                         text: '市场客户拜访占有率',
  44.                                         right: 'center',
  45.                                         top: '5%',
  46.                                         textStyle: {
  47.                                                 fontSize: 20
  48.                                         }
  49.                                 },
  50.                                 toolbox: {
  51.                                         feature: { //必有的
  52.                                                 saveAsImage: {}, //导出图片
  53.                                                 dataView: {}, //数据视图
  54.                                                 restore: {}, //重置
  55.                                                 dataZoom: {}, //区域缩放
  56.                                                 magicType: { //动态功能切换
  57.                                                         type: ['bar', 'line']
  58.                                                 }
  59.                                         },
  60.                                         orient: 'vertical',
  61.                                         right: '15%',
  62.                                         top: '10%'
  63.                                 },
  64.                                 grid: {
  65.                                         left: '20%',
  66.                                         right: '30%',
  67.                                         bottom: '45%',
  68.                                         top: '15%',
  69.                                         width: '60%',
  70.                                         height: '50%'
  71.                                 },
  72.                                 xAxis: {
  73.                                         type: 'category',
  74.                                         data: xDataArr
  75.                                 },
  76.                                 yAxis: {
  77.                                         type: 'value'
  78.                                 },
  79.                                 legend: { //对系列进行筛选
  80.                                         data: ['未拜访', '拜访数'],
  81.                                         width: '30%',
  82.                                         right: 'center',
  83.                                         bottom: '25%'
  84.                                 },
  85.                                 series: [{
  86.                                                 name: '拜访数',
  87.                                                 type: 'bar',
  88.                                                 stack: '客户情况',
  89.                                                 data: yDataArr2,
  90.                   z:10,
  91.                                                 label: {
  92.                                                         show: true,
  93.                                                         position: 'top',
  94.                                                         fontWeight: 'bold',
  95.                   color:'white'
  96.                                                         //formatter:'{a}{b}{c}'
  97.                                                 },
  98.                                                 barWidth: '30%',
  99.                                                 itemStyle: {
  100.                                                 //        color: 'rgba(201, 108, 21,1)'
  101.                                                 },
  102.                                         },
  103.                                         {
  104.                                                 name: '未拜访',
  105.                                                 type: 'bar',
  106.                                                 stack: '客户情况',
  107.                         z:9,
  108.                                                 data: yDataArr3,
  109.                                                 label: { //显示数据
  110.                                                         show: 'true',
  111.                                                         position: 'top', //数据显示位置,默认inside
  112.                                                         color: 'rgba(126, 100, 52, 5)',
  113.                         formatter:'未拜访:{c}',
  114.                                                         //formatter: '总数:' + yDataArr1[0] + '\n拜访率:' + (yDataArr2[0] / yDataArr1[0] * 100).toFixed(2) +
  115.                                                         //        '%',
  116.                                                 /*        formatter: function(params) {
  117.                                                                 //console.log(params);
  118.                                                                 var sum = yDataArr1[params.dataIndex];
  119.                                                                 return params.seriesName + ' ' + sum + '\n' + params.name + ':' + params.value +
  120.                                                                         ' (' + (params.value/sum*100).toFixed(2) + '%)';
  121.                                                         },*/
  122.                                                         lineHeight: 17
  123.                                                 },
  124.                                                 barWidth: '30%',
  125.                                                 itemStyle: { //柱状条颜色
  126.                                                 //        color: 'rgba(61, 147, 37, 0.6)'
  127.                                                 }
  128.                                         }
  129.                                 ]
  130.                         }
  131.             return option;
  132. })()
复制代码


你好,这是我的源代码。
回复

使用道具 举报

 楼主| Jazmine 发表于 2021-6-24 21:37:44 | 显示全部楼层
白日蜜语 发表于 2021-6-24 19:39
你的图片代码不显示对吧,可能是你的图片位置存放错误了
  1. <!DOCTYPE html>
  2. <html>
  3.         <head>
  4.                 <meta charset="utf-8">
  5.                 <title></title>
  6.                 <!--1. 引入echarts.js文件-->
  7.                 <script src="../echarts_lib/echarts.min.js"></script>

  8.         </head>
  9.         <!--
  10.         1. 引入echarts.js文件
  11.         2. 准备一个呈现图表的盒子
  12.         3. 初始化echarts实例对象
  13.         4. 准备配置项
  14.         5. 将配置项设置给echarts实例对象
  15.         -->
  16.         <body>
  17.                 <!--2. 准备一个呈现图表的盒子-->
  18.                 <div style="width: 600px; height: 600px; position: center;"></div>
  19.                 <script type="text/javascript">
  20.                         //3. 初始化echarts实例对象
  21.                         var mcharts = echarts.init(document.querySelector('div'))

  22.                         //4. 准备配置项
  23.                         var xDataArr = ['张三', '李四', '王五', '闰土', '小明', '茅台', '二妞', '大强'];
  24.                         var yDataArr1 = ['1', '1', '1', '1', '1', '1', '1', '1']; //总客户数
  25.                         var yDataArr2 = ['0.12', '0.08', '0.37', '0.23', '0.06', '0.2', '0.28', '0.14']; //拜访数
  26.                         var yDataArr3 = []; //未拜访数
  27.                         for (var i = 0; i < yDataArr1.length; i++) {
  28.                                 yDataArr3[i] = yDataArr1[i] - yDataArr2[i];
  29.                         }
  30.                         var option = {
  31.                                 title: {
  32.                                         text: '市场客户拜访占有率',
  33.                                         right: 'center',
  34.                                         top: '5%',
  35.                                         textStyle: {
  36.                                                 fontSize: 20
  37.                                         }
  38.                                 },
  39.                                 toolbox: {
  40.                                         feature: { //必有的
  41.                                                 saveAsImage: {}, //导出图片
  42.                                                 dataView: {}, //数据视图
  43.                                                 restore: {}, //重置
  44.                                                 dataZoom: {}, //区域缩放
  45.                                                 magicType: { //动态功能切换
  46.                                                         type: ['bar', 'line']
  47.                                                 }
  48.                                         },
  49.                                         orient: 'vertical',
  50.                                         right: '15%',
  51.                                         top: '10%'
  52.                                 },
  53.                                 grid: {
  54.                                         left: '20%',
  55.                                         right: '30%',
  56.                                         bottom: '45%',
  57.                                         top: '15%',
  58.                                         width: '60%',
  59.                                         height: '50%'
  60.                                 },
  61.                                 xAxis: {
  62.                                         type: 'category',
  63.                                         data: xDataArr
  64.                                 },
  65.                                 yAxis: {
  66.                                         type: 'value'
  67.                                 },
  68.                                 legend: { //对系列进行筛选
  69.                                         data: ['未拜访', '拜访数'],
  70.                                         width: '30%',
  71.                                         right: 'center',
  72.                                         bottom: '25%'
  73.                                 },
  74.                                 series: [{
  75.                                                 name: '拜访数',
  76.                                                 type: 'bar',
  77.                                                 stack: '客户情况',
  78.                                                 data: yDataArr2,
  79.                                                 z: 100,
  80.                                                 label: {
  81.                                                         show: true,
  82.                                                         position: 'top',
  83.                                                         fontWeight: 'bold',
  84.                                                         color: 'black',
  85.                                                         formatter:'{c}'
  86.                                                 },
  87.                                                 barWidth: '40%',
  88.                                                 itemStyle: {
  89.                                                         //        color: 'rgba(201, 108, 21,1)'
  90.                                                 },
  91.                                         },
  92.                                         {
  93.                                                 name: '未拜访',
  94.                                                 type: 'bar',
  95.                                                 stack: '客户情况',
  96.                                                 data: yDataArr2,
  97.                                                 z: 90,
  98.                                                 label: { //显示数据
  99.                                                         show: 'true',
  100.                                                         position: 'top', //数据显示位置,默认inside
  101.                                                         color: 'rgba(126, 100, 52, 5)',
  102.                                                 //        formatter:'未拜访:{c}',
  103.                                                         //formatter: '总数:' + yDataArr1[0] + '\n拜访率:' + (yDataArr2[0] / yDataArr1[0] * 100).toFixed(2) +
  104.                                                         //        '%',
  105.                                                                 formatter: function(params) {
  106.                                                                         //console.log(params);
  107.                                                                         var sum = yDataArr1[params.dataIndex];
  108.                                                                         return '客户总数 ' + sum + '\n' + params.name + ':' + params.value +
  109.                                                                                 ' (' + (params.value/sum*100).toFixed(2) + '%)';
  110.                                                                 },
  111.                                                         lineHeight: 17
  112.                                                 },
  113.                                                 barWidth: '40%',
  114.                                                 itemStyle: { //柱状条颜色
  115.                                                         //        color: 'rgba(61, 147, 37, 0.6)'
  116.                                                 }
  117.                                         }
  118.                                 ]
  119.                         }
  120.                         //5. 将配置项设置给echarts实例对象
  121.                         mcharts.setOption(option)
  122.                 </script>
  123.         </body>
  124. </html>
复制代码


上一个代码是从sql中获取数,可能不方便您查看,这个是我写的死数,您可以直接运行,代码基本是一样的。
回复

使用道具 举报

白日蜜语 发表于 2021-6-25 09:09:03 | 显示全部楼层
可能是您哪里代码写错了导致的,那个你用统计图不要全盘导入,就好比做好了一个Html,你直接输入option的内容就行,就类似直接输入data就好了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-15 03:28

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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