湖里大屏:新增 jChart/bar/JBarChart.vue 组件

This commit is contained in:
Jack 2022-08-03 10:27:38 +08:00
parent 0c38423785
commit 15d8437e66
3 changed files with 120 additions and 20 deletions

View File

@ -0,0 +1,93 @@
<template>
<div class="j-bar-chart" ref="jBarChart"></div>
</template>
<script>
import echarts from 'echarts4'
export default {
props: {
data: {
type: Array,
default: () => [{ value: 1, name: '' }]
},
color: {
type: Array,
default: () => ['#5181F6', '#61D2B9', '#F67F51', '#7851F6']
},
title: {
type: String,
default: ''
},
subTitle: {
type: String,
default: ''
},
radius: {
type: Array,
default: () => ['65%', '80%']
}
},
mounted() {
this.jBarChart = echarts.init(this.$refs.jBarChart)
this.createRingChart()
},
data() {
return { jBarChart: null }
},
methods: {
createRingChart() {
const option = {
color: this.color,
title: {
show: true,
text: this.title,
x: '48%',
y: '36%',
z: 5,
textAlign: 'center',
textStyle: {
color: 'rgba(255, 255, 255, 1)',
fontSize: 20
},
subtext: this.subTitle,
subtextStyle: {
color: 'rgba(255, 255, 255, 0.8)',
fontSize: 13
}
},
grid: {
right: 0
},
legend: {
show: false
},
series: [
{
name: '',
type: 'pie',
radius: this.radius,
avoidLabelOverlap: false,
hoverAnimation: false,
label: {
show: false,
position: 'center'
},
labelLine: {
show: false
},
data: this.data
}
]
}
this.jBarChart.setOption(option)
}
}
}
</script>
<style>
.j-bar-chart {
width: 100%;
height: 100%;
}
</style>

View File

@ -9,7 +9,7 @@
<leftCenter title="问题占比" /> <leftCenter title="问题占比" />
</div> </div>
<div class="leftBottom"> <div class="leftBottom">
<leftCenter title="频发问题" /> <leftBottom title="频发问题" />
</div> </div>
</div> </div>
<div class="centerBox"> <div class="centerBox">

View File

@ -1,42 +1,49 @@
<template> <template>
<!-- 频发问题 --> <!-- 问题占比 -->
<div class="container"> <div class="frequentProblems">
<div class="titleTxt">{{ title }}</div> <div class="title">{{ title }}</div>
<div class="content">
</div> <JBarChart
title="3412"
subTitle="问题总数"
:color="['#557DEE', '#43D7B5']"
:data="[{ value: 2314 }, { value: 987 }]"
:radius="['55%', '80%']"
/>
</div>
</div>
</template> </template>
<script> <script>
import JBarChart from '../jChart/bar/JBarChart.vue'
export default { export default {
components: { JBarChart },
props: { props: {
title: { title: {
type: String, type: String,
default: "default title" default: 'default title'
} }
}, },
data() { data() {
return { return {}
}
};
},
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.container { .frequentProblems {
width: 100%; width: 100%;
height: 100%; height: 100%;
border: 1px solid #0081c3; border: 1px solid #0081c3;
.title {
.titleTxt { padding-left: 6px;
height: 30px;
line-height: 30px;
font-size: 18px; font-size: 18px;
color: #6ee4f0; color: #6ee4f0;
margin-top: 5px; }
margin-left: 5px; .content {
height: calc(100% - 30px);
} }
} }
</style> </style>