|
@@ -0,0 +1,272 @@
|
|
|
+<template>
|
|
|
+ <div id="XZQHPieChart" ref="XZQHPieChart">
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {},
|
|
|
+ data() {
|
|
|
+ return {};
|
|
|
+ },
|
|
|
+ //监听属性 类似于data概念
|
|
|
+ computed: {},
|
|
|
+ //监控data中的数据变化
|
|
|
+ watch: {},
|
|
|
+ //方法集合
|
|
|
+ methods: {
|
|
|
+ init_echart() {
|
|
|
+ var myChart = echarts.init(this.$refs.XZQHPieChart);
|
|
|
+ var scale = 1;
|
|
|
+ function _pie2() {
|
|
|
+ let dataArr = [];
|
|
|
+ for (var i = 0; i < 4; i++) {
|
|
|
+ if (i % 2 === 0) {
|
|
|
+ dataArr.push({
|
|
|
+ name: (i + 1).toString(),
|
|
|
+ value: 25,
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ // color: 'rgba(88,142,197,0.5)',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ dataArr.push({
|
|
|
+ name: (i + 1).toString(),
|
|
|
+ value: 20,
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: 'rgba(0,0,0,0)',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return dataArr;
|
|
|
+ }
|
|
|
+ var echartData = [{
|
|
|
+ value: 2154,
|
|
|
+ name: '正常使用',
|
|
|
+ // itemStyle: {
|
|
|
+ // normal: {//颜色渐变
|
|
|
+ // color: new echarts.graphic.LinearGradient(
|
|
|
+ // 0, 0, 0, 1,
|
|
|
+ // [
|
|
|
+ // {offset: 0, color: '#E58B44'},
|
|
|
+ // {offset: 1, color: 'transparent'}
|
|
|
+ // ]
|
|
|
+ // )
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ }, {
|
|
|
+ value: 3854,
|
|
|
+ name: '剩余1个月',
|
|
|
+ // itemStyle: {
|
|
|
+ // normal: {//颜色渐变
|
|
|
+ // color: new echarts.graphic.LinearGradient(
|
|
|
+ // 0, 0, 0, 1,
|
|
|
+ // [
|
|
|
+ // {offset: 0, color: '#D95CFF'},
|
|
|
+ // {offset: 1, color: 'transparent'}
|
|
|
+ // ]
|
|
|
+ // )
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ }, {
|
|
|
+ value: 3515,
|
|
|
+ name: '已到期',
|
|
|
+ // itemStyle: {
|
|
|
+ // normal: {//颜色渐变
|
|
|
+ // color: new echarts.graphic.LinearGradient(
|
|
|
+ // 0, 0, 0, 1,
|
|
|
+ // [
|
|
|
+ // {offset: 0, color: '#06A3F4'},
|
|
|
+ // {offset: 1, color: 'transparent'}
|
|
|
+ // ]
|
|
|
+ // )
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ }, ]
|
|
|
+ var total_datas = 0;
|
|
|
+ for (var i = 0; i < echartData.length; i++) {
|
|
|
+ total_datas += echartData[i].value
|
|
|
+ }
|
|
|
+
|
|
|
+ var rich = {
|
|
|
+ yellow: {
|
|
|
+ color: "#ffc72b",
|
|
|
+ fontSize: 12 * scale,
|
|
|
+ // padding: [21, 0],
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ total: {
|
|
|
+ color: "#ffc72b",
|
|
|
+ fontSize: 40 * scale,
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+
|
|
|
+ blue: {
|
|
|
+ color: '#49dff0',
|
|
|
+ fontSize: 10 * scale,
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ hr: {
|
|
|
+ borderColor: '#0b5263',
|
|
|
+ width: '100%',
|
|
|
+ borderWidth: 1,
|
|
|
+ height: 0,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ option = {
|
|
|
+ backgroundColor: 'rgba(0,0,0,0)',
|
|
|
+ title: {
|
|
|
+ text: '',
|
|
|
+ subtext: 0,
|
|
|
+ textStyle: {
|
|
|
+ color: '#f2f2f2',
|
|
|
+ fontSize: 40,
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ subtextStyle: {
|
|
|
+ fontSize: 30,
|
|
|
+ color: ['#ff9d19']
|
|
|
+ },
|
|
|
+ x: 'center',
|
|
|
+ y: 'center',
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ show: false,
|
|
|
+ // orient 设置布局方式,默认水平布局,可选值:'horizontal'(水平) | 'vertical'(垂直)
|
|
|
+ orient: 'vertical',
|
|
|
+ // x 设置水平安放位置,默认全图居中,可选值:'center' | 'left' | 'right' | {number}(x坐标,单位px)
|
|
|
+ x: 'left',
|
|
|
+ // y 设置垂直安放位置,默认全图顶端,可选值:'top' | 'bottom' | 'center' | {number}(y坐标,单位px)
|
|
|
+ y: 'center',
|
|
|
+ itemWidth: 24, // 设置图例图形的宽
|
|
|
+ itemHeight: 18, // 设置图例图形的高
|
|
|
+ textStyle: {
|
|
|
+ color: '#666' // 图例文字颜色
|
|
|
+ },
|
|
|
+ // itemGap设置各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔
|
|
|
+ itemGap: 30,
|
|
|
+ data: ['居民用地', '公共管理用地', '商服用地', '工业工业', '交通运输用地', '商业用地']
|
|
|
+ },
|
|
|
+
|
|
|
+ series: [{
|
|
|
+ name: '总考生数量',
|
|
|
+ type: 'pie',
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ borderWidth: 1,
|
|
|
+ borderColor: "#5ecef09a"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ radius: ['38%', '50%'],
|
|
|
+ hoverAnimation: false,
|
|
|
+ color: ['#c487ee', '#deb140', '#49dff0', '#034079', '#6f81da', '#00ffb4'],
|
|
|
+ label: {
|
|
|
+ normal: {
|
|
|
+ formatter: function (params, ticket, callback) {
|
|
|
+ var total = 0; //考生总数量
|
|
|
+ var percent = 0; //考生占比
|
|
|
+ echartData.forEach(function (value, index, array) {
|
|
|
+ total += value.value;
|
|
|
+ });
|
|
|
+ percent = ((params.value / total) * 100).toFixed(1);
|
|
|
+ return '{yellow|' + params.name + '}\n{blue|' + percent + '%}';
|
|
|
+ },
|
|
|
+ rich: rich
|
|
|
+ },
|
|
|
+ },
|
|
|
+ // labelLine: {
|
|
|
+ // normal: {
|
|
|
+ // length: 55 * scale,
|
|
|
+ // length2: 10,
|
|
|
+ // lineStyle: {
|
|
|
+ // color: '#0b5263'
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ data: echartData
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'pie',
|
|
|
+ zlevel: 2,
|
|
|
+ silent: true,
|
|
|
+ center: ['50%', '50%'],
|
|
|
+ radius: ['58%', '55%'],
|
|
|
+ startAngle: 50,
|
|
|
+ hoverAnimation: false,
|
|
|
+ color: [{
|
|
|
+ type: 'linear',
|
|
|
+ x: 0,
|
|
|
+ y: 0,
|
|
|
+ x2: 1,
|
|
|
+ y2: 1,
|
|
|
+ colorStops: [{
|
|
|
+ offset: 0,
|
|
|
+ color: 'rgba(234, 40, 125, 1)'
|
|
|
+ }, {
|
|
|
+ offset: 1,
|
|
|
+ color: 'rgba(234, 40, 125, 0.01)'
|
|
|
+ }],
|
|
|
+ global: false
|
|
|
+ }],
|
|
|
+ label: {
|
|
|
+ normal: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ labelLine: {
|
|
|
+ normal: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data: _pie2(),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: 'pie',
|
|
|
+ radius: ['35%', '36%'],
|
|
|
+ data: [100],
|
|
|
+ label: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ color: '#121F22',
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ myChart.setOption(option);
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ beforeCreate() { }, //生命周期 - 创建之前
|
|
|
+ created() { }, //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
+ beforeMount() { }, //生命周期 - 挂载之前
|
|
|
+ mounted() {
|
|
|
+ const that = this;
|
|
|
+ this.$nextTick((res) => {
|
|
|
+ this.init_echart();
|
|
|
+
|
|
|
+ })
|
|
|
+ }, //生命周期 - 挂在完成
|
|
|
+ beforeUpdate() { }, //生命周期 - 更新之前
|
|
|
+ updated() { }, //生命周期 - 更新之后
|
|
|
+ beforeDestroy() { }, //生命周期 - 销毁之前
|
|
|
+ destroy() { },//生命周期 - 销毁完成
|
|
|
+ activated() { }, //若组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。
|
|
|
+ deactivated() { } //若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style scoped>
|
|
|
+#XZQHPieChart {
|
|
|
+ width: 20vw;
|
|
|
+ height: 11rem;
|
|
|
+}
|
|
|
+</style>
|