1.0版本完成

This commit is contained in:
MTrunning
2020-03-18 21:27:37 +08:00
parent 77b384b613
commit a6d8dbd8eb
6 changed files with 580 additions and 104 deletions
+2 -1
View File
@@ -12,6 +12,7 @@
background-image: url("../assets/pageBg.png");
}
.host-body {
.title {
position: relative;
width: 500px;
@@ -106,5 +107,5 @@
grid-template-columns: repeat(2, 50%);
}
}
}
}
@@ -1,6 +1,6 @@
<template>
<div>
<div id="bottomLeftChart" style="width:900px;height:400px;"></div>
<div id="bottomLeftChart" style="width:900px;height:500px;"></div>
</div>
</template>
@@ -133,7 +133,7 @@ export default {
let option = {
title: {
text: "增量设备贯通情况-单位",
text: "",
x: "center",
y: 0,
textStyle: {
@@ -158,12 +158,12 @@ export default {
textStyle: {
color: "#B4B4B4"
},
top: "7%"
top: "0%"
},
grid: {
x: "12%",
width: "82%",
y: "12%"
x: "8%",
width: "88%",
y: "4%"
},
xAxis: {
data: category,
@@ -243,9 +243,9 @@ export default {
normal: {
barBorderRadius: 5,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "rgba(156,107,211,0.5)" },
{ offset: 0.2, color: "rgba(156,107,211,0.3)" },
{ offset: 1, color: "rgba(156,107,211,0)" }
{ offset: 0, color: "rgba(156,107,211,0.8)" },
{ offset: 0.2, color: "rgba(156,107,211,0.5)" },
{ offset: 1, color: "rgba(156,107,211,0.2)" }
])
}
},
@@ -0,0 +1,409 @@
<template>
<div>
<div id="bottomRightChart" style="width:900px;height:480px;"></div>
</div>
</template>
<script>
const echarts = require("echarts");
export default {
data() {
return {};
},
mounted() {
this.drawPie();
this.charTimg();
},
methods: {
charTimg() {
setInterval(() => {
this.drawPie();
}, 6000);
},
drawPie() {
// 基于准备好的dom,初始化echarts实例
let myChartPieLeft = echarts.init(
document.getElementById("bottomRightChart")
);
// ----------------------------------------------------------------
// 数据
let dateBase = new Date();
let year = dateBase.getFullYear();
let dottedBase = +dateBase + 1000 * 3600 * 24;
let weekCategory = [];
let radarData = [];
let radarDataAvg = [];
let maxData = 12000;
let weekMaxData = [];
let weekLineData = [];
// 周数据
for (let i = 0; i < 7; i++) {
// 日期
var date = new Date((dottedBase -= 1000 * 3600 * 24));
weekCategory.unshift([date.getMonth() + 1, date.getDate()].join("/"));
// 折线图数据
weekMaxData.push(maxData);
var distance = Math.round(Math.random() * 11000 + 500);
weekLineData.push(distance);
// 雷达图数据
// 我的指标
var averageSpeed = +(Math.random() * 5 + 3).toFixed(3);
var maxSpeed = averageSpeed + +(Math.random() * 3).toFixed(2);
var hour = +(distance / 1000 / averageSpeed).toFixed(1);
var radarDayData = [distance, averageSpeed, maxSpeed, hour];
radarData.unshift(radarDayData);
// 平均指标
var distanceAvg = Math.round(Math.random() * 8000 + 4000);
var averageSpeedAvg = +(Math.random() * 4 + 4).toFixed(3);
var maxSpeedAvg = averageSpeedAvg + +(Math.random() * 2).toFixed(2);
var hourAvg = +(distance / 1000 / averageSpeed).toFixed(1);
var radarDayDataAvg = [
distanceAvg,
averageSpeedAvg,
maxSpeedAvg,
hourAvg
];
radarDataAvg.unshift(radarDayDataAvg);
}
// 颜色设置
let color = {
linearYtoG: {
type: "linear",
x: 0,
y: 0,
x2: 1,
y2: 1,
colorStops: [
{
offset: 0,
color: "#f5b44d"
},
{
offset: 1,
color: "#28f8de"
}
]
},
linearGtoB: {
type: "linear",
x: 0,
y: 0,
x2: 1,
y2: 0,
colorStops: [
{
offset: 0,
color: "#43dfa2"
},
{
offset: 1,
color: "#28f8de"
}
]
},
linearBtoG: {
type: "linear",
x: 0,
y: 0,
x2: 1,
y2: 0,
colorStops: [
{
offset: 0,
color: "#1c98e8"
},
{
offset: 1,
color: "#28f8de"
}
]
},
areaBtoG: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "rgba(35,184,210,.2)"
},
{
offset: 1,
color: "rgba(35,184,210,0)"
}
]
}
};
let option = {
title: {
text: "",
textStyle: {
color: "#D3D6DD",
fontSize: 24,
fontWeight: "normal"
},
subtext: year + "/" + weekCategory[6],
subtextStyle: {
color: "#fff",
fontSize: 16
},
top: 50,
left: 80
},
legend: {
top: 120,
left: 80,
orient: "vertical",
itemGap: 15,
itemWidth: 12,
itemHeight: 12,
data: ["平均指标", "我的指标"],
textStyle: {
color: "#fff",
fontSize: 14
}
},
tooltip: {
trigger: "item"
},
radar: {
center: ["68%", "27%"],
radius: "40%",
name: {
color: "#fff"
},
splitNumber: 8,
axisLine: {
lineStyle: {
color: color.linearYtoG,
opacity: 0.6
}
},
splitLine: {
lineStyle: {
color: color.linearYtoG,
opacity: 0.6
}
},
splitArea: {
areaStyle: {
color: "#fff",
opacity: 0.1,
shadowBlur: 25,
shadowColor: "#000",
shadowOffsetX: 0,
shadowOffsetY: 5
}
},
indicator: [
{
name: "全程距离(m)",
max: maxData
},
{
name: "平均速度(km/h)",
max: 10
},
{
name: "最快速度(km/h)",
max: 12
},
{
name: "总计时间(h)",
max: 3.5
}
]
},
grid: {
left: 90,
right: 80,
bottom: 40,
top: "60%"
},
xAxis: {
type: "category",
position: "bottom",
axisLine: true,
axisLabel: {
color: "rgba(255,255,255,.8)",
fontSize: 12
},
data: weekCategory
},
// 下方Y轴
yAxis: {
name: "工单",
nameLocation: "end",
nameGap: 24,
nameTextStyle: {
color: "rgba(255,255,255,.5)",
fontSize: 14
},
max: maxData,
splitNumber: 4,
axisLine: {
lineStyle: {
opacity: 0
}
},
splitLine: {
show: true,
lineStyle: {
color: "#fff",
opacity: 0.1
}
},
axisLabel: {
color: "rgba(255,255,255,.8)",
fontSize: 12
}
},
series: [
{
name: "",
type: "radar",
symbolSize: 0,
data: [
{
value: radarDataAvg[6],
name: "平均指标",
itemStyle: {
normal: {
color: "#f8d351"
}
},
lineStyle: {
normal: {
opacity: 0
}
},
areaStyle: {
normal: {
color: "#f8d351",
shadowBlur: 25,
shadowColor: "rgba(248,211,81,.3)",
shadowOffsetX: 0,
shadowOffsetY: -10,
opacity: 1
}
}
},
{
value: radarData[6],
name: "我的指标",
itemStyle: {
normal: {
color: "#43dfa2"
}
},
lineStyle: {
normal: {
opacity: 0
}
},
areaStyle: {
normal: {
color: color.linearGtoB,
shadowBlur: 15,
shadowColor: "rgba(0,0,0,.2)",
shadowOffsetX: 0,
shadowOffsetY: 5,
opacity: 0.8
}
}
}
]
},
{
name: "",
type: "line",
smooth: true,
symbol: "emptyCircle",
symbolSize: 8,
itemStyle: {
normal: {
color: "#fff"
}
},
lineStyle: {
normal: {
color: color.linearBtoG,
width: 3
}
},
areaStyle: {
normal: {
color: color.areaBtoG
}
},
data: weekLineData,
lineSmooth: true,
markLine: {
silent: true,
data: [
{
type: "average",
name: "平均值"
}
],
precision: 0,
label: {
normal: {
formatter: "平均值: \n {c}"
}
},
lineStyle: {
normal: {
color: "rgba(248,211,81,.7)"
}
}
},
tooltip: {
position: "top",
formatter: "{c} m",
backgroundColor: "rgba(28,152,232,.2)",
padding: 6
}
},
{
name: "占位背景",
type: "bar",
itemStyle: {
normal: {
show: true,
color: "#000",
opacity: 0
}
},
silent: true,
barWidth: "50%",
data: weekMaxData,
animation: false
},
]
};
myChartPieLeft.setOption(option);
// -----------------------------------------------------------------
// 响应式变化
window.addEventListener("resize", () => myChartPieLeft.resize(), false);
}
},
destroyed() {
window.onresize = null;
}
};
</script>
<style lang="scss" scoped>
</style>
+4 -4
View File
@@ -1,6 +1,6 @@
<template>
<div id="bottomLeft">
<div class>
<div class="bg-color-black ">
<div class="d-flex pt-2 pl-2">
<span style="color:#5cd9e8">
<icon name="chart-bar"></icon>
@@ -33,12 +33,12 @@ export default {
<style lang="scss">
#bottomLeft {
padding: 1rem;
height: 410px;
padding: 1.5rem 1rem;
height: 520px;
min-width: 300px;
border-radius: 5px;
.bg-color-black {
height: 385px;
height: 485px;
border-radius: 10px;
}
.text {
+62
View File
@@ -0,0 +1,62 @@
<template>
<div id="bottomRight">
<div class="bg-color-black">
<div class="d-flex pt-2 pl-2">
<span style="color:#5cd9e8">
<icon name="chart-area"></icon>
</span>
<div class="d-flex">
<span class="fs-xl text mx-2">工单修复以及满意度统计图</span>
<div class="decoration2">
<dv-decoration-2 :reverse="true" style="width:5px;height:480px;" />
</div>
</div>
</div>
<div>
<bottomRightChart />
</div>
</div>
</div>
</template>
<script>
import bottomRightChart from "@/components/echart/bottom/bottomRightChart";
export default {
data() {
return {};
},
components: {
bottomRightChart
},
mounted() {},
methods: {}
};
</script>
<style lang="scss">
#bottomRight {
padding: 1rem 1rem 0rem;
height: 520px;
min-width: 300px;
border-radius: 5px;
.bg-color-black {
height: 495px;
border-radius: 10px;
}
.text {
color: #c3cbde;
} //下滑线动态
.decoration2 {
position: absolute;
right: 10px;
}
.chart-box {
margin-top: 1rem;
width: 170px;
height: 170px;
.active-ring-name {
padding-top: 10px;
}
}
}
</style>
+10 -6
View File
@@ -2,7 +2,7 @@
<div id="index">
<dv-full-screen-container class="bg">
<dv-loading v-if="loading">Loading...</dv-loading>
<div class="host-body">
<div v-else class="host-body">
<div class="d-flex jc-center">
<dv-decoration-10 style="width:33.3%;height:5px;" />
<div class="d-flex jc-center">
@@ -83,10 +83,12 @@
<!-- 第四行数据 -->
<div class="bototm-box">
<dv-border-box-1>
<dv-border-box-13>
<bottomLeft />
</dv-border-box-1>
<div>2</div>
</dv-border-box-13>
<dv-border-box-12>
<bottomRight />
</dv-border-box-12>
</div>
</div>
</div>
@@ -101,10 +103,11 @@ import centreRight1 from "./centreRight1";
import centreRight2 from "./centreRight2";
import center from "./center";
import bottomLeft from "./bottomLeft";
import bottomRight from "./bottomRight";
export default {
data() {
return {
loading: false
loading: true
};
},
components: {
@@ -113,7 +116,8 @@ export default {
centreRight1,
centreRight2,
center,
bottomLeft
bottomLeft,
bottomRight
},
mounted() {
this.cancelLoading();