|
@@ -1,5 +1,7 @@
|
|
|
<template >
|
|
|
- <div ref="fireReason" ></div>
|
|
|
+ <div style="display: flex; justify-content: center;">
|
|
|
+ <div ref="fireReason" style="width:100%;height: 287px;"></div>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
@@ -7,38 +9,48 @@ import * as echarts from 'echarts'
|
|
|
|
|
|
export default {
|
|
|
name: 'FireReason',
|
|
|
- props: {
|
|
|
- data: {
|
|
|
- type: Array,
|
|
|
- default: () => [
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ chart: null,
|
|
|
+ data: [
|
|
|
{
|
|
|
name: "电气火灾",
|
|
|
- value: "40"
|
|
|
+ value: 40
|
|
|
},
|
|
|
{
|
|
|
- name: "自然",
|
|
|
- value: "40"
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- chart: null
|
|
|
+ name: "自燃",
|
|
|
+ value: 21
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '吸烟',
|
|
|
+ value: 18
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '生活用火不慎',
|
|
|
+ value: 12
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '放火',
|
|
|
+ value: 19
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '其他',
|
|
|
+ value: 20
|
|
|
+ }]
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
// 初始化起火原因
|
|
|
this.init()
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ legend() {
|
|
|
+ return this.data.map(item => item.name)
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
init() {
|
|
|
- const chart = echarts.init(this.$refs.fireReason)
|
|
|
- chart.setOption({
|
|
|
-
|
|
|
- })
|
|
|
- },
|
|
|
- reload() {
|
|
|
+ this.chart = echarts.init(this.$refs.fireReason)
|
|
|
this.chart.setOption({
|
|
|
tooltip: {
|
|
|
trigger: "item",
|
|
@@ -50,42 +62,40 @@ export default {
|
|
|
},
|
|
|
formatter: "{c} <br/>{b}",
|
|
|
},
|
|
|
- title: {
|
|
|
- formatter: "3276存在隐患数"
|
|
|
- },
|
|
|
legend: {
|
|
|
show: true,
|
|
|
- right: 0,
|
|
|
- bottom: 0,
|
|
|
- itemWidth: 10,
|
|
|
- itemHeight: 10,
|
|
|
- itemGap: 4,
|
|
|
+ // right: 0,
|
|
|
+ bottom: 10,
|
|
|
+ itemWidth: 14,
|
|
|
+ itemHeight: 14,
|
|
|
+ itemGap: 8,
|
|
|
textStyle: {
|
|
|
color: "#fff",
|
|
|
fontSize: 14,
|
|
|
},
|
|
|
- data: ["待计划整改", "已计划待整改", "已整改"],
|
|
|
+ data: this.legend,
|
|
|
},
|
|
|
- color: ["#f27d10", "#00eaff", "#16c843"],
|
|
|
+ color: ["#00a2ff", "#00eaff", "#16c843", "#f4d156", "#6421ba", "#61d266"],
|
|
|
series: [
|
|
|
// 数据展示层
|
|
|
{
|
|
|
name: "存在隐患数",
|
|
|
type: "pie",
|
|
|
center: ["50%", "45%"],
|
|
|
- radius: ["35%", "50%"],
|
|
|
+ radius: ["25%", "60%"],
|
|
|
avoidLabelOverlap: false,
|
|
|
label: {
|
|
|
normal: {
|
|
|
color: "#fff",
|
|
|
show: true,
|
|
|
formatter: (params) => {
|
|
|
- return `{value|${params.value}}`;
|
|
|
+ console.log(params)
|
|
|
+ return `{value|${params.percent}%}`;
|
|
|
},
|
|
|
alignTo: 'edge',
|
|
|
minMargin: 5,
|
|
|
edgeDistance: 10,
|
|
|
- lineHeight: 15,
|
|
|
+ lineHeight: 20,
|
|
|
rich: {
|
|
|
value: {
|
|
|
fontSize: 20,
|
|
@@ -115,25 +125,12 @@ export default {
|
|
|
labelLinePoints: points
|
|
|
};
|
|
|
},
|
|
|
- data: [
|
|
|
- {
|
|
|
- value: 615,
|
|
|
- name: "待计划整改",
|
|
|
- },
|
|
|
- {
|
|
|
- value: 432,
|
|
|
- name: "已计划待整改",
|
|
|
- },
|
|
|
- {
|
|
|
- value: 2372,
|
|
|
- name: "已整改",
|
|
|
- }
|
|
|
- ],
|
|
|
+ data: this.data,
|
|
|
},
|
|
|
{
|
|
|
type: "pie",
|
|
|
center: ["50%", "45%"],
|
|
|
- radius: ["35%", "45%"],
|
|
|
+ radius: ["30%", "55%"],
|
|
|
hoverAnimation: false,
|
|
|
z: 10,
|
|
|
label: {
|
|
@@ -142,61 +139,74 @@ export default {
|
|
|
tooltip: {
|
|
|
show: false,
|
|
|
},
|
|
|
- data: [
|
|
|
- {
|
|
|
- value: 615,
|
|
|
- name: "待计划整改",
|
|
|
- itemStyle: {
|
|
|
+ data: this.data.map(item => ({
|
|
|
+ ...item,
|
|
|
+ itemStyle: {
|
|
|
normal: {
|
|
|
- color: 'rgba(0,0,0, .3)'
|
|
|
+ color: 'rgba(0,0,0, .15)'
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
- {
|
|
|
- value: 432,
|
|
|
- name: "已计划待整改",
|
|
|
- itemStyle: {
|
|
|
- normal: {
|
|
|
- color: 'rgba(0,0,0, .3)'
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- value: 2372,
|
|
|
- name: "已整改",
|
|
|
- itemStyle: {
|
|
|
+ })),
|
|
|
+ labelLine: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "pie",
|
|
|
+ center: ["50%", "45%"],
|
|
|
+ radius: ["45%", "46%"],
|
|
|
+ hoverAnimation: false,
|
|
|
+ z: 10,
|
|
|
+ label: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ tooltip: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ data: this.data.map(item => ({
|
|
|
+ ...item,
|
|
|
+ itemStyle: {
|
|
|
normal: {
|
|
|
- color: 'rgba(0,0,0, .3)'
|
|
|
+ color: 'rgba(0,255,255)',
|
|
|
+ opacity: 0.15
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- ],
|
|
|
+ })),
|
|
|
labelLine: {
|
|
|
show: false,
|
|
|
},
|
|
|
-
|
|
|
},
|
|
|
- // 外边框虚线
|
|
|
{
|
|
|
type: "pie",
|
|
|
- zlevel: 4,
|
|
|
- silent: true,
|
|
|
center: ["50%", "45%"],
|
|
|
- radius: ["55%", "56%"],
|
|
|
+ radius: ["45%", "46%"],
|
|
|
+ hoverAnimation: false,
|
|
|
+ z: 10,
|
|
|
label: {
|
|
|
- normal: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
+ show: false
|
|
|
},
|
|
|
+ tooltip: {
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ data: this.data.map(item => ({
|
|
|
+ ...item,
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: 'rgba(0,133,255)',
|
|
|
+ opacity: 0.15
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })),
|
|
|
labelLine: {
|
|
|
- normal: {
|
|
|
- show: false,
|
|
|
- },
|
|
|
+ show: false,
|
|
|
},
|
|
|
- data: this.createData(),
|
|
|
- },
|
|
|
- ],
|
|
|
+ }
|
|
|
+ ]
|
|
|
})
|
|
|
+ },
|
|
|
+ reload() {
|
|
|
+ this.chart.setOption({
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|