123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- <template>
- <div class="hiddenDangerStatisticsEcharts">
- <div class="title-button-box">
- <p :class="hdLevel==1?'check-p':''" @click="titleButtonClick(1)">一级指标</p>
- <p :class="hdLevel==2?'check-p':''" @click="titleButtonClick(2)">二级指标</p>
- <p :class="hdLevel==3?'check-p':''" @click="titleButtonClick(3)">三级指标</p>
- </div>
- <div class="hiddenDangerStatisticsEcharts-box" id="hiddenDangerStatisticsEcharts-box">
- </div>
- </div>
- </template>
- <script>
- import echarts from 'echarts'
- import { hiddenCountByType, collegCheckHiddenCountByType } from '@/api/safetyCheck/index.js'
- export default {
- name: 'hiddenDangerStatisticsEcharts',
- data(){
- return{
- hdLevel:1,
- }
- },
- created(){
- },
- mounted(){
- this.schoolEcharts();
- // this.departmentEcharts();
- },
- methods:{
- titleButtonClick(type){
- if(this.hdLevel != type){
- this.$set(this,'hdLevel',type);
- this.schoolEcharts();
- // this.departmentEcharts();
- }
- },
- schoolEcharts(){
- hiddenCountByType({hdLevel:this.hdLevel}).then(response => {
- let myChart = this.$echarts.init(document.getElementById('hiddenDangerStatisticsEcharts-box'));
- let data = [];
- for(let i=0;i<response.rows.length;i++){
- // substring
- console.log(response.rows[i].collegeName.length)
- let obj = {
- name:response.rows[i].collegeName.length>8?response.rows[i].collegeName.substring(0,8)+'..':response.rows[i].collegeName,
- nameText:response.rows[i].collegeName,
- value:response.rows[i].sumTotal,
- }
- data.push(obj);
- }
- let option = {
- legend: {
- show:false,
- },
- tooltip: {
- confine: true,
- trigger: 'item',
- // formatter: '{b} : {c}'
- formatter: params => {
- console.log('params',params)
- return `${params.data.nameText} 隐患:${params.data.value} 占比:${params.percent}%`
- },
- },
- series: [
- {
- avoidLabelOverlap: false,
- type: 'pie',
- left:20,
- right:20,
- roseType: 'area', // 玫瑰图
- center: ['50%', '50%'],
- radius: ['0%', '40%'],
- label: {
- normal: {
- formatter: '{b}\n隐患{c}\t占比{d}%',
- textStyle: {
- fontSize: 12
- },
- padding: [0, -110, 26, -110],
- }
- },
- labelLine: {
- normal: {
- length: 30,
- length2: 110,
- }
- },
- data: data,
- itemStyle: {
- normal: {
- color: function (colors) {
- var colorList = ['#009DFF', '#FFA200', '#FF2A00', '#A069FF', '#41BE26', '#2758E0', '#39dbed', '#ff5e86','#a52a2a','#4682b4','#9400d3'];
- return colorList[colors.dataIndex];
- }
- },
- }
- }
- ]
- };
- myChart.setOption(option);
- });
- },
- departmentEcharts(){
- collegCheckHiddenCountByType({hdLevel:this.hdLevel}).then(response => {
- let myChart = this.$echarts.init(document.getElementById('hiddenDangerStatisticsEcharts-box'));
- let data = {
- name:[],
- nameText:[],
- text:[],
- num: [],
- }
- for(let i=0;i<response.rows.length;i++){
- data.name.push(response.rows[i].subjectName.length>8?response.rows[i].subjectName.substring(0,8)+'..':response.rows[i].subjectName)
- data.nameText.push(response.rows[i].subjectName)
- data.text.push(response.rows[i].hazardCheckName)
- data.num.push(response.rows[i].sumTotal)
- }
- let option = {
- grid: {
- left: '30%',
- top: '8%',
- right: '15%',
- bottom: '15%',
- },
- tooltip: {
- trigger: 'axis',
- formatter: params => {
- console.log('params',params)
- console.log('dataIndex',params[0].dataIndex)
- return data.nameText[params[0].dataIndex] +' 隐患:'+ data.num[params[0].dataIndex]
- // return `${params.data.nameText} 隐患:${params.data.value} 占比:${params.percent}%`
- },
- backgroundColor: 'rgba(0, 0, 0, 0.6)', // 提示框背景色
- borderColor: '#05050F', // 提示框边框色
- textStyle: {
- color: '#fff', // 提示框文本颜色
- },
- axisPointer: {
- type: 'none',
- },
- },
- legend: {
- show:false,
- },
- xAxis: {
- type: 'value',
- position: "bottom",
- splitLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- axisLabel: {
- textStyle: {
- color: '#333',
- fontSize: 12,
- },
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: 'rgba(216,216,216,1)',
- },
- },
- },
- yAxis: {
- type: 'category',
- splitLine: {
- show: false,
- },
- axisTick: {
- show: false,
- },
- data: data.name,
- axisLabel: {
- textStyle: {
- color: '#333',
- fontSize: 12,
- },
- },
- axisLine: {
- lineStyle: {
- color: 'rgba(216,216,216,1)',
- },
- },
- },
- series: [
- {
- name: '隐患',
- type: 'bar',
- data: data.num,
- itemStyle: {
- emphasis: {
- barBorderRadius: [0, 20, 20, 0],
- },
- normal: {
- barBorderRadius: [0, 20, 20, 0],
- color: new echarts.graphic.LinearGradient(
- 0,
- 0,
- 1,
- 0,
- [
- {
- offset: 0,
- color: 'rgba(246,111,0,0.1)', // 0% 处的颜色
- },
- {
- offset: 1,
- color: 'rgba(246,111,0,1)', // 100% 处的颜色
- },
- ],
- false
- ),
- },
- },
- label: {
- normal: {
- show: true,
- formatter: params => {
- return '隐患'+params.data
- },
- position: 'insideRight',
- offset: [40, 1.5],
- textStyle: {
- color: '#333',
- fontSize: 12,
- },
- },
- },
- },
- ],
- barCategoryGap: '60%',
- };
- myChart.setOption(option);
- })
- },
- }
- }
- </script>
- <style scoped lang="scss">
- .hiddenDangerStatisticsEcharts{
- height:483px;
- .title-button-box{
- display: flex;
- border:1px solid #0183fa;
- width:300px;
- margin:32px 71px 0;
- p{
- width:100px;
- line-height:30px;
- text-align: center;
- color:#0183fa;
- cursor: pointer;
- }
- p:nth-child(2){
- border-left:1px solid #0183fa;
- border-right:1px solid #0183fa;
- }
- .check-p{
- background-color: #0183fa;
- color:#fff;
- }
- }
- .hiddenDangerStatisticsEcharts-box{
- height:420px;
- }
- }
- </style>
|