633 lines
16 KiB
Vue
633 lines
16 KiB
Vue
<template>
|
|
<div id="chart">
|
|
<border-box-4 class="chart-item">
|
|
<capsule-chart :data="capsuleChartData" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Capsule-Chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
value: 85,
|
|
title: '收费系统'
|
|
},...
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b']
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item" :reverse="true">
|
|
<arc-ring-chart :data="arcRingChartData" class="chart" />
|
|
<div class="config-info">
|
|
<div class="header">Arc-Ring-Chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
value: 38,
|
|
title: '监控系统'
|
|
},...
|
|
],
|
|
color: ['#00c0ff', '#3de7c9', '#fff']
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item">
|
|
<concentric-arc-chart :data="concentricArcChartData" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Concentric-Arc-Chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
value: 0.38,
|
|
title: '8小时以内'
|
|
},...
|
|
],
|
|
color: ['#00c0ff', '#3de7c9'], // 多个颜色 即可产生对应渐变色
|
|
arcArea: [0.3, 0.7], // 非必须
|
|
arcGap: 5, // 非必须
|
|
fontSize: 12 // 非必须
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item" :reverse="true">
|
|
<ring-chart :data="ringChart1" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Ring-Chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
value: 1315,
|
|
title: '收费站'
|
|
},...
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
active: true // 为false时 无动态效果
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item">
|
|
<ring-chart :data="ringChart2" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Ring-chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
value: 1315,
|
|
title: '收费站'
|
|
},...
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
active: false // 为true时 有动态效果
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item" :reverse="true">
|
|
<polyline-chart :data="polylineChartData1" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Polyline-chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
// 存在空位时 该点忽略
|
|
data: [99.81, 99.42, 99.56, 99.23, 99.62, 99.36, 99.56, '', 99.81, 99.56,
|
|
99.56, '', '', 99.36, 99.42, '', 99.56, '', '', 99.56, 99.23, 99.62],
|
|
// 配置此项 将进行颜色填充 非必须
|
|
fillColor: ['rgba(0, 186, 255, 0.3)', 'rgba(0, 186, 255, 0)'],
|
|
// 配置此项可更改数据点颜色 不配置 自动才用全局颜色 非必须
|
|
pointColor: '#00db95',
|
|
// 配置此项可更改数据线颜色 不配置 自动采用全局颜色 并进行透明度处理 比数据点颜色略低 非必须
|
|
lineColor: '#ffc53d',
|
|
// 默认为折线 可选项有 polyline 折线 | smoothline 平滑曲线 | column 柱状 非必须
|
|
type: 'polyline'
|
|
dashed: true // 默认为false 实线 非必须
|
|
},...
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
x: {
|
|
// 必填项 不想显示底部刻度 可以全留空位
|
|
data: [ '10/01', '', '10/03', '', '10/05', '', '10/07', '', '10/09', '', '10/11', '',
|
|
'10/13', '', '10/15', '', '10/17', '', '10/19', '', '10/21', '', '10/23' ],
|
|
unit: '%' // 单位展示 非必须
|
|
// fontSize: 20 // x轴刻度字体大小 非必须
|
|
// offset: 30 // x轴向上偏移 此处未配置 非必须
|
|
},
|
|
y: {
|
|
min: 96, // y轴最小值 未配置则自动根据数据计算 非必须
|
|
max: 100, // y轴最大值 未配置则自动根据数据计算 非必须
|
|
fixed: 2, // y轴刻度
|
|
num: 10, // 刻度个数 默认为10 数据范围不足10则自动缩减 非必须
|
|
unit: '%' // 单位展示 非必须
|
|
// fontSize: 20 // x轴刻度字体大小 非必须
|
|
// offset: 30 // x轴向上偏移 此处未配置 非必须
|
|
},
|
|
// boundaryGap: false // 配置为true 将不贴合边界进行绘制 非必须
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item">
|
|
<polyline-chart :data="polylineChartData2" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Polyline-chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
data: [99.81, 99.42, 99.56, 99.23, 99.62, 99.36, 99.56, '', 99.81, 99.56,
|
|
99.42, 99.56, '', '', 99.36, 99.42, '', 99.56, '', '', 99.56, 99.23, 99.62],
|
|
fillColor: ['rgba(0, 186, 255, 0.3)', 'rgba(0, 186, 255, 0)'],
|
|
pointColor: '#00db95',
|
|
type: 'polyline'
|
|
},
|
|
{
|
|
data: [97.81, 97.42, 97.56, 97.23, 97.62, 97.36, 97.56, '', 97.81, 97.56,
|
|
97.42, 97.56, '', '', 97.36, 97.42, '', 97.56, '', '', 97.56, 97.23, 97.62],
|
|
fillColor: ['rgba(0, 219, 149, 0.3)', 'rgba(0, 219, 149, 0)'],
|
|
type: 'smoothline'
|
|
}
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
x: {
|
|
data: ['10/01', '', '10/03', '', '10/05', '', '10/07', '', '10/09', '', '10/11', '',
|
|
'10/13', '', '10/15', '', '10/17', '', '10/19', '', '10/21', '', '10/23']
|
|
},
|
|
y: {
|
|
fixed: 2,
|
|
unit: '%'
|
|
},
|
|
boundaryGap: true
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item" :reverse="true">
|
|
<polyline-chart :data="polylineChartData3" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Polyline-chart</div>
|
|
<pre>
|
|
data: {
|
|
data: [
|
|
{
|
|
data: [99.81, 99.42, 99.56, 99.23, 99.62, 99.36, 99.56],
|
|
columnColor: ['rgba(0, 186, 255, 0.3)', 'rgba(0, 186, 255, 0)'],
|
|
type: 'column'
|
|
},
|
|
{
|
|
data: [97.81, 97.42, 97.56, 100.23, 97.62, 97.36, 97.56],
|
|
fillColor: ['rgba(0, 219, 149, 0.3)', 'rgba(0, 219, 149, 0)'],
|
|
type: 'smoothline'
|
|
}
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
x: {
|
|
data: ['10/01', '10/02', '10/03', '10/04', '10/05', '10/06', '10/07']
|
|
},
|
|
y: {
|
|
fixed: 2,
|
|
unit: '%'
|
|
},
|
|
boundaryGap: true
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<border-box-4 class="chart-item">
|
|
<polyline-chart :data="polylineChartData4" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Polyline-chart</div>
|
|
<pre>
|
|
data: [
|
|
{
|
|
data: [5, '', '', '', 2, '', '', '', 4, '', '', '',
|
|
2, '', '', '', 3, '', '', '', 2],
|
|
dashed: true
|
|
},
|
|
{
|
|
data: ['', 4, '', '', '', 3, '', '', '', 4, '', '',
|
|
'', 2, '', '', '', 1, '', '', '', 2 ],
|
|
fillColor: ['rgba(61, 231, 201, 0.5)', 'rgba(61, 231, 201, 0.1)']
|
|
},
|
|
{
|
|
data: ['', '', 3, '', '', '', 2, '', '', '', 1, '',
|
|
'', '', 2, '', '', '', 1, '', '', '', 2],
|
|
type: 'smoothline',
|
|
fillColor: ['rgba(255, 197, 61, 0.4)', 'rgba(255, 197, 61, 0.1)']
|
|
},
|
|
{
|
|
data: ['', '', '', 3, '', '', '', 1, '', '', '', 5,
|
|
'', '', '', 2, '', '', '', 4, '', '', '', 2],
|
|
type: 'column',
|
|
columnColor: ['rgba(52, 36, 50, 0.8)', 'rgba(52, 36, 50, 0.4)']
|
|
}
|
|
],
|
|
x: {
|
|
data: ['', '', '', '', '', '', '10/07', '', '', '', '', '', '', '10/14',
|
|
'', '', '', '', '', '', '10/21', '', '', '']
|
|
},
|
|
y: {
|
|
max: 6,
|
|
min: 0,
|
|
num: 6,
|
|
unit: '单位'
|
|
},
|
|
labelLine: ['收费系统', '收费系统', '监控系统', '供配电系统'],
|
|
color: ['#00baff', '#3de7c9', '#ffc53d', '#342432']
|
|
}
|
|
</pre>
|
|
</div>
|
|
</border-box-4>
|
|
|
|
<!-- <border-box-4 class="chart-item" :reverse="true">
|
|
<polyline-chart :data="polylineChartData" class="chart" />
|
|
|
|
<div class="config-info">
|
|
<div class="header">Polyline-chart</div>
|
|
<pre>
|
|
</pre>
|
|
</div>
|
|
</border-box-4> -->
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: 'Chart',
|
|
data () {
|
|
return {
|
|
capsuleChartData: {
|
|
data: [
|
|
{
|
|
value: 85,
|
|
title: '收费系统'
|
|
},
|
|
{
|
|
value: 44,
|
|
title: '通信系统'
|
|
},
|
|
{
|
|
value: 125,
|
|
title: '监控系统'
|
|
},
|
|
{
|
|
value: 110,
|
|
title: '供配电系统'
|
|
},
|
|
{
|
|
value: 66,
|
|
title: '其他'
|
|
}
|
|
],
|
|
color: [
|
|
'#00baff',
|
|
'#3de7c9',
|
|
'#ffffff',
|
|
'#ffc53d',
|
|
'#469f4b'
|
|
]
|
|
},
|
|
|
|
arcRingChartData: {
|
|
data: [
|
|
{
|
|
value: 19,
|
|
title: '监控系统'
|
|
},
|
|
{
|
|
value: 16,
|
|
title: '收费系统'
|
|
},
|
|
{
|
|
value: 24,
|
|
title: '通信系统'
|
|
},
|
|
{
|
|
value: 14,
|
|
title: '供配电系统'
|
|
},
|
|
{
|
|
value: 27,
|
|
title: '其他'
|
|
}
|
|
],
|
|
color: ['#00c0ff', '#3de7c9', '#fff']
|
|
},
|
|
|
|
concentricArcChartData: {
|
|
data: [
|
|
{
|
|
value: 0.38,
|
|
title: '8小时以内'
|
|
},
|
|
{
|
|
value: 0.57,
|
|
title: '24小时以内'
|
|
},
|
|
{
|
|
value: 0.7,
|
|
title: '48小时以内'
|
|
},
|
|
{
|
|
value: 0.78,
|
|
title: '72小时以内'
|
|
},
|
|
{
|
|
value: 0.22,
|
|
title: '大于72小时'
|
|
}
|
|
],
|
|
color: ['#00c0ff', '#3de7c9'],
|
|
arcArea: [0.3, 0.7],
|
|
arcGap: 5,
|
|
fontSize: 12
|
|
},
|
|
|
|
ringChart1: {
|
|
data: [
|
|
{
|
|
value: 1315,
|
|
title: '收费站'
|
|
},
|
|
{
|
|
value: 415,
|
|
title: '监控中心'
|
|
},
|
|
{
|
|
value: 90,
|
|
title: '道路外场'
|
|
},
|
|
{
|
|
value: 317,
|
|
title: '其他'
|
|
}
|
|
],
|
|
color: [
|
|
'#00baff',
|
|
'#3de7c9',
|
|
'#ffffff',
|
|
'#ffc53d',
|
|
'#469f4b'
|
|
],
|
|
active: true
|
|
},
|
|
|
|
ringChart2: {
|
|
data: [
|
|
{
|
|
value: 1315,
|
|
title: '收费站'
|
|
},
|
|
{
|
|
value: 415,
|
|
title: '监控中心'
|
|
},
|
|
{
|
|
value: 90,
|
|
title: '道路外场'
|
|
},
|
|
{
|
|
value: 317,
|
|
title: '其他'
|
|
}
|
|
],
|
|
color: [
|
|
'#00baff',
|
|
'#3de7c9',
|
|
'#ffffff',
|
|
'#ffc53d',
|
|
'#469f4b'
|
|
],
|
|
active: false
|
|
},
|
|
|
|
polylineChartData1: {
|
|
data: [
|
|
{
|
|
data: [
|
|
99.81, 99.42, 99.56, 99.23, 99.62,
|
|
99.36, 99.56, '', 99.81, 99.56,
|
|
99.42, 99.56, '', '', 99.36,
|
|
99.42, '', 99.56, '', '',
|
|
99.56, 99.23, 99.62
|
|
],
|
|
fillColor: ['rgba(0, 186, 255, 0.3)', 'rgba(0, 186, 255, 0)'],
|
|
pointColor: '#00db95',
|
|
lineColor: '#ffc53d',
|
|
type: 'polyline',
|
|
dashed: true
|
|
}
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
x: {
|
|
data: [
|
|
'10/01', '', '10/03', '', '10/05', '',
|
|
'10/07', '', '10/09', '', '10/11', '',
|
|
'10/13', '', '10/15', '', '10/17', '',
|
|
'10/19', '', '10/21', '', '10/23'
|
|
]
|
|
},
|
|
y: {
|
|
min: 96,
|
|
max: 100,
|
|
fixed: 2,
|
|
num: 10,
|
|
unit: '%'
|
|
}
|
|
},
|
|
|
|
polylineChartData2: {
|
|
data: [
|
|
{
|
|
data: [
|
|
99.81, 99.42, 99.56, 99.23, 99.62,
|
|
99.36, 99.56, '', 99.81, 99.56,
|
|
99.42, 99.56, '', '', 99.36,
|
|
99.42, '', 99.56, '', '',
|
|
99.56, 99.23, 99.62
|
|
],
|
|
fillColor: ['rgba(0, 186, 255, 0.3)', 'rgba(0, 186, 255, 0)'],
|
|
pointColor: '#00db95',
|
|
type: 'polyline'
|
|
},
|
|
{
|
|
data: [
|
|
97.81, 97.42, 97.56, 97.23, 97.62,
|
|
97.36, 97.56, '', 97.81, 97.56,
|
|
97.42, 97.56, '', '', 97.36,
|
|
97.42, '', 97.56, '', '',
|
|
97.56, 97.23, 97.62
|
|
],
|
|
fillColor: ['rgba(0, 219, 149, 0.3)', 'rgba(0, 219, 149, 0)'],
|
|
type: 'smoothline'
|
|
}
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
x: {
|
|
data: [
|
|
'10/01', '', '10/03', '', '10/05', '',
|
|
'10/07', '', '10/09', '', '10/11', '',
|
|
'10/13', '', '10/15', '', '10/17', '',
|
|
'10/19', '', '10/21', '', '10/23'
|
|
]
|
|
},
|
|
y: {
|
|
fixed: 2,
|
|
unit: '%'
|
|
},
|
|
boundaryGap: true
|
|
},
|
|
|
|
polylineChartData3: {
|
|
data: [
|
|
{
|
|
data: [99.81, 99.42, 99.56, 99.23, 99.62, 99.36, 99.56],
|
|
columnColor: ['rgba(0, 186, 255, 0.3)', 'rgba(0, 186, 255, 0)'],
|
|
type: 'column'
|
|
},
|
|
{
|
|
data: [97.81, 97.42, 97.56, 100.23, 97.62, 97.36, 97.56],
|
|
fillColor: ['rgba(0, 219, 149, 0.3)', 'rgba(0, 219, 149, 0)'],
|
|
type: 'smoothline'
|
|
}
|
|
],
|
|
color: ['#00baff', '#3de7c9', '#ffffff', '#ffc53d', '#469f4b'],
|
|
x: {
|
|
data: ['10/01', '10/02', '10/03', '10/04', '10/05', '10/06', '10/07']
|
|
},
|
|
y: {
|
|
fixed: 2,
|
|
unit: '%'
|
|
},
|
|
boundaryGap: true
|
|
},
|
|
|
|
polylineChartData4: {
|
|
data: [
|
|
{
|
|
data: [
|
|
5, '', '', '',
|
|
2, '', '', '',
|
|
4, '', '', '',
|
|
2, '', '', '',
|
|
3, '', '', '',
|
|
2
|
|
],
|
|
dashed: true
|
|
},
|
|
{
|
|
data: [
|
|
'', 4, '', '',
|
|
'', 3, '', '',
|
|
'', 4, '', '',
|
|
'', 2, '', '',
|
|
'', 1, '', '',
|
|
'', 2
|
|
],
|
|
fillColor: ['rgba(61, 231, 201, 0.5)', 'rgba(61, 231, 201, 0.1)']
|
|
},
|
|
{
|
|
data: [
|
|
'', '', 3, '',
|
|
'', '', 2, '',
|
|
'', '', 1, '',
|
|
'', '', 2, '',
|
|
'', '', 1, '',
|
|
'', '', 2
|
|
],
|
|
type: 'smoothline',
|
|
fillColor: ['rgba(255, 197, 61, 0.4)', 'rgba(255, 197, 61, 0.1)']
|
|
},
|
|
{
|
|
data: [
|
|
'', '', '', 3,
|
|
'', '', '', 1,
|
|
'', '', '', 5,
|
|
'', '', '', 2,
|
|
'', '', '', 4,
|
|
'', '', '', 2
|
|
],
|
|
type: 'column',
|
|
columnColor: ['rgba(52, 36, 50, 0.8)', 'rgba(52, 36, 50, 0.4)']
|
|
}
|
|
],
|
|
x: {
|
|
data: [
|
|
'', '', '', '', '', '', '10/07',
|
|
'', '', '', '', '', '', '10/14',
|
|
'', '', '', '', '', '', '10/21',
|
|
'', '', ''
|
|
]
|
|
},
|
|
y: {
|
|
max: 6,
|
|
min: 0,
|
|
num: 6,
|
|
unit: '单位'
|
|
},
|
|
labelLine: ['收费系统', '收费系统', '监控系统', '供配电系统'],
|
|
color: ['#00baff', '#3de7c9', '#ffc53d', '#342432']
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="less">
|
|
#chart {
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
.chart-item {
|
|
width: 80%;
|
|
min-height: 300px;
|
|
display: flex;
|
|
flex-direction: row;
|
|
margin: 20px 0px;
|
|
margin-left: 20%;
|
|
}
|
|
|
|
.chart {
|
|
width: 400px;
|
|
height: 300px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.config-info {
|
|
padding: 0px 30px;
|
|
font-size: 15px;
|
|
|
|
.header {
|
|
font-size: 20px;
|
|
font-weight: bold;
|
|
margin-bottom: 10px;
|
|
}
|
|
}
|
|
}
|
|
</style>
|