feat: 初步完成各模块图表的构建,后续完善细节
parent
4480923404
commit
d8e35d30a0
@ -0,0 +1,296 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import * as echarts from "echarts";
|
||||||
|
function generateData(totalNum, bigvalue, smallvalue, color) {
|
||||||
|
let dataArr = [];
|
||||||
|
for (var i = 0; i < totalNum; i++) {
|
||||||
|
if (i % 2 === 0) {
|
||||||
|
dataArr.push({
|
||||||
|
name: (i + 1).toString(),
|
||||||
|
value: bigvalue,
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: color,
|
||||||
|
borderWidth: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
dataArr.push({
|
||||||
|
name: (i + 1).toString(),
|
||||||
|
value: smallvalue,
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: "rgba(0,0,0,0)",
|
||||||
|
borderWidth: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dataArr;
|
||||||
|
}
|
||||||
|
function initChart() {
|
||||||
|
const chartDom = document.getElementById("diggerHourlyDistanceChart");
|
||||||
|
const mainChart = echarts.init(chartDom);
|
||||||
|
|
||||||
|
let data1 = [
|
||||||
|
{
|
||||||
|
name: "05:00",
|
||||||
|
value: 175,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "06:00",
|
||||||
|
value: 148,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "07:00",
|
||||||
|
value: 95,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "08:00",
|
||||||
|
value: 175,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "09:00",
|
||||||
|
value: 148,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "10:00",
|
||||||
|
value: 95,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "11:00",
|
||||||
|
value: 56,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "12:00",
|
||||||
|
value: 45,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "13:00",
|
||||||
|
value: 34,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "14:00",
|
||||||
|
value: 123,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "15:00",
|
||||||
|
value: 175,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "16:00",
|
||||||
|
value: 148,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "17:00",
|
||||||
|
value: 95,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "18:00",
|
||||||
|
value: 123,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "19:00",
|
||||||
|
value: 175,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "20:00",
|
||||||
|
value: 148,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "21:00",
|
||||||
|
value: 95,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "22:00",
|
||||||
|
value: 148,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "23:00",
|
||||||
|
value: 95,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
let xAxisData = [];
|
||||||
|
let seriesData1 = [];
|
||||||
|
|
||||||
|
data1.forEach((item) => {
|
||||||
|
xAxisData.push(item.name);
|
||||||
|
seriesData1.push(item.value);
|
||||||
|
});
|
||||||
|
const yList = [80, 100, 100, 100];
|
||||||
|
const xList = ["寿命≤100", "100<寿命≤200", "200<寿命≤300", "寿命>300"];
|
||||||
|
const color = ["#00FEEE", "#2fd28d", "#c4742d", "#c42d2d"];
|
||||||
|
const xData = xList.map((item, index) => {
|
||||||
|
return {
|
||||||
|
value: item,
|
||||||
|
textStyle: {
|
||||||
|
color: color[index],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
const dom = 200;
|
||||||
|
const barWidth = dom / 10;
|
||||||
|
const colors = [
|
||||||
|
{
|
||||||
|
type: "linear",
|
||||||
|
x: 1,
|
||||||
|
x2: 1,
|
||||||
|
y: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{
|
||||||
|
offset: 1,
|
||||||
|
color: "rgba(216,216,216,0)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 0.5,
|
||||||
|
color: "rgba(103,236,228,0.53)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 0,
|
||||||
|
color: "#00FEEE",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const colors1 = [
|
||||||
|
{
|
||||||
|
type: "linear",
|
||||||
|
x: 0,
|
||||||
|
x2: 0,
|
||||||
|
y: 1,
|
||||||
|
y2: 0,
|
||||||
|
colorStops: [
|
||||||
|
{
|
||||||
|
offset: 0.3,
|
||||||
|
color: "#4bcde4",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 1,
|
||||||
|
color: "#4b88e4",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const option = {
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
//X轴
|
||||||
|
xAxis: {
|
||||||
|
name: "X",
|
||||||
|
nameTextStyle: {
|
||||||
|
color: "#FFFFFF",
|
||||||
|
padding: [0, 0, 0, 50],
|
||||||
|
},
|
||||||
|
|
||||||
|
data: xAxisData,
|
||||||
|
show: true,
|
||||||
|
type: "category",
|
||||||
|
axisLine: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisTick: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
color: "#B4C0CC",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: "value",
|
||||||
|
axisLine: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisTick: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
lineStyle: {
|
||||||
|
color: "#35414D",
|
||||||
|
type: "dashed",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
color: "#B4C0CC",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
/**区域位置*/
|
||||||
|
grid: {
|
||||||
|
// Adjust grid for spacing
|
||||||
|
left: "5%",
|
||||||
|
right: "0%",
|
||||||
|
bottom: "5%",
|
||||||
|
top: "15%",
|
||||||
|
containLabel: true,
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: "axis",
|
||||||
|
axisPointer: {
|
||||||
|
type: "shadow",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: barWidth,
|
||||||
|
symbolOffset: ["10%", "50%"],
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: function (params) {
|
||||||
|
return colors[0];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: seriesData1,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
// 实体柱状图底部
|
||||||
|
z: 4,
|
||||||
|
type: "pictorialBar",
|
||||||
|
data: seriesData1,
|
||||||
|
|
||||||
|
symbolOffset: ["0%", "0%"],
|
||||||
|
symbolSize: [barWidth, barWidth * 0.3],
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: function (params) {
|
||||||
|
return "rgba(0,255,252,0.1)";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// 实体柱状图顶部
|
||||||
|
z: 3,
|
||||||
|
type: "pictorialBar",
|
||||||
|
symbolPosition: "end",
|
||||||
|
data: seriesData1,
|
||||||
|
symbolOffset: ["0%", "-50%"],
|
||||||
|
symbolSize: [barWidth, barWidth * 0.3],
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
borderWidth: 0,
|
||||||
|
color: function (params) {
|
||||||
|
return colors1[0];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
mainChart.setOption(option);
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
initChart();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div id="diggerHourlyDistanceChart" style="width: 100%; height: 100%"></div>
|
||||||
|
</template>
|
Loading…
Reference in New Issue