echerts饼图分割操作

在饼图制作中遇到了一个难点就是饼图中间是分散的   试了很多方法,最后选择了给每个值中间再加一节的处理方式,并把颜色设置为透明就能达到相同效果。

处理后的样式:

代码:

      let list = this.data.list;/饼图内部展示数据// let _this = this;//存储当前thislet total = Math.max(...list.map(item => item.value));let gap = total * (12 / 360);//通过计算得出间隔值this.myChart1 = echarts.init(this.$refs["chart-pie"]);let data = [];for (var i = 0; i < list.length; i++) {data.push({value: list[i].value,name: list[i].name,itemStyle: {normal: {borderColor: this.color[i],color: this.color[i]}}},{value: gap,//间隔值name: "",itemStyle: {normal: {label: {show: false},labelLine: {show: false},color: "rgba(0, 0, 0, 0)",borderColor: "rgba(0, 0, 0, 0)",//间隔颜色设置为透明borderWidth: 0}},emphasis: {label: {show: false}}});}

完整代码:

<template><!-- 柱状图 --><div class="ticket public-row"><div class="echarts-left fl"><div class="mychart" :class="{ 'fix-position': data.list.length > 5 }" :id="chartId" ref="chart-pie"></div></div><div class="text-right fl"><divclass="text-right-item c-p":class="{ acitve: active === index }"@click="changeText(index)"v-for="(item, index) in data.list":key="index"><div class="text-color fl" :class="'color' + index"></div><div class="text-right-item-title fl">{{ item.name }}</div><div class="text-right-item-num fl">{{ item.value }}</div><div class="text-border fl"></div><div class="text-right-item-type">{{ item.mixins }}</div></div></div></div><!-- <p v-else class="m-t20 m-l20">暂无数据</p> -->
</template><script>
let dashedPic = require("./img/huanxingtu.png");
export default {name: "base-pie",components: {},props: {chartId: {type: String,default: "chartId2"},data: {type: Object,default() {return {data: [{ name: "OTA", value: 3124, mixins: "28%" },{ name: "窗口", value: 3124, mixins: "28%" },{ name: "小程序", value: 3124, mixins: "28%" },{ name: "旅行社", value: 3124, mixins: "28%" }],number: 9000,name: "总票数",unit: "张"};}},color: {type: Array,default() {return ["rgba(47, 107, 255, 1)","rgba(34, 220, 213, 1)","#FC8452","#9A60B4","#73C0DE","#3CA272","#ea7ccc"];}},//显示样式typeId: {type: Number,default: 0}},data() {return {myChart1: "",active: 0};},created() {},mounted() {this.$nextTick(() => {// setTimeout(() => {// debugger;this.init();// }, 500);});},watch: {data: {handler() {this.$nextTick(() => {this.init();});},deep: true}},beforeDestroy() {},computed: {},methods: {/*** @description:选中切换* @param {*} item* @Description:* @return {*}*/changeText(item) {this.active = item;},/*** @description:init 初始化* @param {*} item* @Description:* @return {*}*/init() {if (this.myChart1) this.myChart1.dispose();if (!this.data) return false;let list = this.data.list;console.log(list);// let _this = this;let total = Math.max(...list.map(item => item.value));let gap = total * (12 / 360);this.myChart1 = echarts.init(this.$refs["chart-pie"]);let data = [];for (var i = 0; i < list.length; i++) {data.push({value: list[i].value,name: list[i].name,itemStyle: {normal: {borderColor: this.color[i],color: this.color[i]}}},{value: gap,name: "",itemStyle: {normal: {label: {show: false},labelLine: {show: false},color: "rgba(0, 0, 0, 0)",borderColor: "rgba(0, 0, 0, 0)",borderWidth: 0}},emphasis: {label: {show: false}}});}let option = {backgroundColor: "",title: [{text: this.data.number,top: "35%",left: "center",textStyle: {fontSize: 26,fontFamily: "DIN",color: "#ffffff"},subtext: this.data.name,// subtext: "总票数",subtextStyle: {fontSize: 14,color: "rgba(223, 245, 252, 1)"}},{text: this.data.unit,top: "38%",textAlign: "center",left: "74%",textStyle: {color: "rgba(255, 255, 255, 1)",fontSize: 18,fontWeight: "400"}}],tooltip: {trigger: "axis",backgroundColor: "rgba(9, 30, 60, 0.6)",extraCssText: "box-shadow: 0 0 8px rgba(0, 128, 255, 0.27) inset;",borderWidth: 0,confine: false,appendToBody: true,textStyle: {color: "#fff",fontSize: 10}},legend: null,// 可动态生成颜色集合// color: this.color,series: [{name: "项目规模占比",type: "pie",radius: ["80%", "98%"],label: {show: false},data: data}],graphic: {elements: [{itemStyle: {opacity: 0.8 // 设置整个系列的数据点的透明度},type: "image",style: {image: dashedPic,width: 154,height: 154,opacity: 0.6},left: "center",top: "center"}]}};this.myChart1.setOption(option);}}
};
</script><style lang="less" scoped>
.mychart {width: 100%;height: 100%;
}
.ticket {overflow: hidden;font-size: 16px;display: flex;justify-content: center;align-items: center;.echarts-left {margin-top: 16px;width: 153px;height: 153px;}.text-right {margin-left: 21px;// margin-top: 30px;.text-right-item {width: 226px;margin-bottom: 10px;line-height: 24px;height: 24px;}.acitve {background: url(./img/xuanzhong.png) no-repeat;}.text-color {width: 3px;height: 16px;line-height: 16px;margin-right: 8px;margin-left: 13px;margin-top: 4px;}.text-right-item-title {width: 72px;font-size: 14px;}.color0 {background: radial-gradient(#a1ffb6 0%, #c7fff5 100%);}.color1 {background: radial-gradient(#7ab8ff 0%, #c7fff5 100%);}.color2 {background: radial-gradient(#a1ffb6 0%, #c7fff5 100%);}.color3 {background: radial-gradient(#a1ffb6 0%, #c7fff5 100%);}.text-border {width: 1px;height: 14px;margin: 4px 12px 0;border-right: 1px solid rgba(255, 255, 255, 0.4);}}.fix-position {top: -25px;}
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2978877.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

UE4_常见动画节点学习_Two Bone IK双骨骼IK

学习资料&#xff0c;仅供参考&#xff01; Two Bone IK 控制器将逆运动&#xff08;IK&#xff09;解算器应用于到如角色四肢等3关节链。 变量&#xff08; HandIKWeight &#xff09;被用于在角色的 hand_l 和 hand_r 控制器上驱动 关节目标位置&#xff08;Joint Target Lo…

介绍TCP三次握手、传输数据、四次挥手标志为确认号变化规律

TCP协议的三次握手是一个关键过程&#xff0c;用于在客户端和服务器之间建立可靠的连接。以下是三次握手的详细过程&#xff0c;包括标志位、序列号以及ACK的变化规律&#xff1a; 第一次握手&#xff1a; 客户端&#xff1a; 标志位&#xff1a;SYN1&#xff08;表示请求建立…

PM说|深入浅出:从埋点到用户画像的实践

在最近的一个项目中我们遇到了一个问题&#xff0c;是因为员工画像目前的迭代版本里有一项待办&#xff0c;也就是“画像整体运营指标”&#xff0c;开发团队也在进行前期的埋点准备工作。 在真实业务场景的驱使下&#xff0c;我去查了相关资料&#xff0c;咨询了开发人员&…

布尔运算解析:简明易懂的概念解释及实用案例分享!

布尔计算是UI设计中的一个特别关键的知识点&#xff0c;经常用于各种图标的制作。如果我们想在APP产品中实现图标的视觉统一&#xff0c;我们需要一种更规则的绘图方法&#xff0c;即布尔计算绘图。以下即时设计主导布尔计算思维分析和步骤解释&#xff0c;强烈建议新手UI设计学…

大数据开发详解

点击下载《大数据开发详解》 1. 前言 随着信息化时代的快速发展&#xff0c;大数据已经成为了企业和组织不可或缺的重要资源。大数据开发则是指通过一系列技术手段&#xff0c;对海量数据进行收集、存储、处理、分析和挖掘&#xff0c;以实现数据的价值化利用。大数据开发涉及…

商家一键采集TB/JD/PDD商品

一&#xff1a;打开陶宝网&#xff0c;复制指定商品网址链接 二&#xff1a;登录商家管理后台&#xff0c;直接粘贴需要采集的商品网址 三&#xff1a;3秒采集成功&#xff0c;7秒发布商品&#xff0c;全程10秒搞定 电商API列表 点此获取API测试权限

【Node.js工程师养成计划】之打造自己的脚手架工具

一、创建全局的自定义命令 1、打开一个空文件夹&#xff0c;新建一个bin文件夹&#xff0c;在bin文件夹下新建cli.js文件&#xff0c;js文件可以命名为cli.js&#xff08;您随意&#xff09; 2、在cli.js文件中的开头&#xff08;&#xff01;&#xff01;&#xff09;写下面这…

利用redis和fastapi实现本地与平台策略进行交互

redis简介: 在pandas一文有详细使用方法(一文教会pandas-CSDN博客)&#xff0c;具体可视化软件有redisstudio等。它是一个由 Salvatore Sanfilippo 写的 key-value 存储系统&#xff0c;是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支…

App Cleaner Uninstaller中文激活版:mac最强深度清理软件

App Cleaner & Uninstaller 是一款适用于 Mac 操作系统的软件应用程序&#xff0c;允许用户轻松卸载不需要的应用程序、删除剩余文件和文件夹以及管理启动项。该应用程序会分析与您要删除的应用程序关联的文件&#xff0c;并帮助识别其所有组件&#xff0c;以便您可以一次将…

JsonPath实战

概述 JsonPath&#xff0c;GitHub是一种简单的方法来提取给定JSON文档的部分内容&#xff0c;提供类似正则表达式的语法来解析JSON文档。 特性 入门 引入如下Maven依赖&#xff1a; <dependency><groupId>com.jayway.jsonpath</groupId><artifactId&…

Python 采集京东手机商品标题,价格,评论,商品图片等

这段Python代码主要用于从京东网站的搜索结果页面抓取关于手机商品的信息&#xff0c;包括商品标题&#xff0c;价格&#xff0c;评论数以及商品图片的链接。 代码都测试验证过都能正常跑通&#xff0c;实现效果&#xff0c;由于各大网站防爬机制随时可能更新&#xff0c;代码…

C++之类和对象--赋值运算符重载和const成员函数

目录 1.赋值运算符重载 1.1运算符重载 1.2赋值运算符重载 1.3其它特性 2.const成员函数 3.取地址及const取地址操作符重载 hello&#xff0c;欢迎大家来到小恶魔频道&#xff0c;今天讲解的是C里面的赋值运算符重载以及const成员函数 1.赋值运算符重载 1.1运算符重载 运…

python_django中小学家校互动系统vue_flask家校联系

实现了一个完整的家校互动系统&#xff0c;其中主要有作业信息模块、学校管理员模块、学生学籍模块、学生成绩模块、学科模块、系统新闻模块、系统公告模块、校内新闻模块、校内公告模块、用户表模块、token表模块、关于我们模块、收藏表模块、年级模块、家长模块、教师模块、互…

24V转2.8V2A降压芯片WT6030

24V转2.8V2A降压芯片WT6030 WT6030是一种高效同步整流降压开关模式转换器&#xff0c;集成内部功率MOSFET。该器件在宽输入电源范围内提供3A峰值输出电流&#xff0c;展现出卓越的负载和线路调节性能。其设计仅需要最小数量的外部现成组件&#xff0c;并且采用了节省空间的ESO…

【Linux系统编程】第七弹---权限管理操作(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、修改文件权限的做法(一) 2、有无权限的表现 总结 上一弹我们讲解了Linux权限概念相关的知识&#xff0c;但是我们只知道有…

相机1:如何系相机肩带

开始解锁新领域&#xff0c;多看几个相关视频&#xff0c;大概也就可以掌握一两种系相机肩带的方法&#xff0c;本质就是新知识的学习过程&#xff0c;不可能等着或者期待出来一个完整的教程&#xff0c;一步一步自己去探索&#xff0c;自己去查资料。 目录 总述 第一步&#…

DSP系统的设计过程与选型

DSP的设计步骤分几个阶段&#xff0c;应用系统的设计过程如图所示。 技术指标的确定 器件的选型原则 其他因素的考虑

RTT学习 MQTT

MQTT背景应用 MQTT是机器对机器&#xff08;M2M&#xff09;/物联网&#xff08;IoT&#xff09;连接协议&#xff0c;它是专为受限设备和低带宽、高延迟或不可靠的网络而设计的&#xff0c;是一种基于发布/订阅&#xff08;publish/subscribe&#xff09;模式的“轻量级”通讯…

【C语言】每日一题,快速提升(10)!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 题目&#xff1a;圣诞树 输入&#xff1a; 1输出&#xff1a; * * * * * **说明&#xff1a; 输入&#xff1a; 2输出&#xff1a; * * * * * * * …

【Elasticsearch】Elasticsearch 从入门到精通(一):基本介绍

《Elasticsearch 从入门到精通》共包含以下 2 2 2 篇文章&#xff1a; Elasticsearch 从入门到精通&#xff08;一&#xff09;&#xff1a;基本介绍Elasticsearch 从入门到精通&#xff08;二&#xff09;&#xff1a;基础使用 &#x1f60a; 如果您觉得这篇文章有用 ✔️ 的…