驾驶舱对接

This commit is contained in:
‘937886381’
2024-05-17 10:31:47 +08:00
parent 6f0c8503c6
commit 208af7b565
24 changed files with 676 additions and 393 deletions

View File

@@ -11,7 +11,7 @@
<span v-for="item in legend" :key="item.label" class="legend-item"
:style="{ fontSize: isFullscreen ? '0.58vw' : '0.54vw' }">{{ item.label }}</span>
</div>
<div ref="elsChart" :style="{ height: '100%',width: width}"></div>
<div ref="elsChart" :style="{ height: '95%',width: width}"></div>
</chart-container>
</template>
@@ -36,12 +36,12 @@ export default {
type: Array,
required: true,
},
xAxis: {
type: Array,
required: true,
},
// xAxis: {
// type: Array,
// required: true,
// },
series: {
type: Array,
type: Object,
required: true,
},
in: {
@@ -84,19 +84,16 @@ export default {
// },
grid: {
left: '3%',
right: '4%',
right: '2%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
xAxis:{
type: 'category',
boundaryGap: false,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
}
],
yAxis: [
{
},
yAxis: {
min: function () { // 取最小值向下取整为最小刻度
return 0
},
@@ -143,7 +140,6 @@ export default {
// }
// },
},
],
series: [
{
name: '瑞昌',
@@ -367,22 +363,31 @@ export default {
watch: {
isOpen(val) {
if (val === true) {
this.width = '99%'
this.width = 97 + '%'
this.canvasReset()
console.log(this.width)
} else {
this.watch = 100 + '%'
this.canvasReset()
}
},
/** 全屏状态切换时,对柱子粗细和字体大小进行相应调整 */
isFullscreen(val) {
this.actualOptions.series.map((item) => {
item.barWidth = val ? 18 : 12;
});
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
if (val === false && this.isOpen === true) {
this.width = 97 + '%'
this.canvasReset()
} else if (val === false && this.isOpen === false) {
this.watch = 100 + '%'
this.canvasReset()
}
// this.actualOptions.series.map((item) => {
// item.barWidth = val ? 18 : 12;
// });
// this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
// this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
// this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
this.initChart(this.actualOptions);
},
series(val) {
@@ -391,21 +396,26 @@ export default {
return;
}
const actualOptions = JSON.parse(JSON.stringify(this.options));
actualOptions.series[0].data = val[0].data;
actualOptions.series[0].name = val[0].name;
actualOptions.series[1].data = val?.[1]?.data || [];
actualOptions.series[1].name = val?.[1]?.name || "";
actualOptions.xAxis.data = val.times
actualOptions.series[0].data = val[0]
actualOptions.series[1].data = val[1];
actualOptions.series[2].data = val[2];
actualOptions.series[3].data = val[3];
actualOptions.series[4].data = val[4];
actualOptions.series[5].data = val[5];
actualOptions.series[6].data = val[6];
this.actualOptions = actualOptions;
this.initChart(actualOptions);
},
},
mounted() {
// if (screenfull.isEnabled) {
// screenfull.on("change", () => {
// this.isFullscreen = screenfull.isFullscreen;
// });
// }
if (screenfull.isEnabled) {
screenfull.on("change", () => {
this.isFullscreen = screenfull.isFullscreen;
});
}
this.actualOptions = this.options
this.canvasReset();
window.addEventListener("resize", this.canvasReset);

View File

@@ -11,7 +11,7 @@
<span v-for="item in legend" :key="item.label" class="legend-item"
:style="{ fontSize: isFullscreen ? '0.58vw' : '0.54vw' }">{{ item.label }}</span>
</div>
<div ref="waterChart" :style="{ height: '100%',width: width}"></div>
<div ref="waterChart" :style="{ height: '95%',width: width}"></div>
</chart-container>
</template>
@@ -36,12 +36,12 @@ export default {
type: Array,
required: true,
},
xAxis: {
type: Array,
required: true,
},
// xAxis: {
// type: Array,
// required: true,
// },
series: {
type: Array,
type: Object,
required: true,
},
in: {
@@ -56,8 +56,8 @@ export default {
actualOptions: null,
options: {
grid: {
left: "1%",
right: "4%",
left: "3%",
right: "2%",
bottom: "3%",
top: "15%",
containLabel: true,
@@ -88,15 +88,12 @@ export default {
bottom: '3%',
containLabel: true
},
xAxis: [
{
xAxis:{
type: 'category',
boundaryGap: false,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
}
],
yAxis: [
{
// boundaryGap: false,
data: []
},
yAxis: {
min: function () { // 取最小值向下取整为最小刻度
return 0
},
@@ -143,7 +140,6 @@ export default {
// }
// },
},
],
series: [
{
name: '瑞昌',
@@ -173,7 +169,7 @@ export default {
// emphasis: {
// focus: 'series'
// },
data: [120, 132, 101, 134, 90, 230, 210]
data: []
},
{
name: '邯郸',
@@ -203,7 +199,7 @@ export default {
// emphasis: {
// focus: 'series'
// },
data: [120, 132, 101, 134, 90, 230, 210]
data: []
},
{
name: '株洲',
@@ -233,7 +229,7 @@ export default {
// emphasis: {
// focus: 'series'
// },
data: [120, 132, 101, 134, 90, 230, 210]
data: []
},
{
name: '佳木斯',
@@ -263,7 +259,7 @@ export default {
// emphasis: {
// focus: 'series'
// },
data: [120, 132, 101, 134, 90, 230, 210]
data: []
},
{
name: '成都',
@@ -293,7 +289,7 @@ export default {
// emphasis: {
// focus: 'series'
// },
data: [120, 132, 101, 134, 90, 230, 210]
data: []
},
{
name: '凯盛',
@@ -323,7 +319,7 @@ export default {
// emphasis: {
// focus: 'series'
// },
data: [120, 132, 101, 134, 90, 230, 210]
data: []
},
{
name: '蚌埠',
@@ -353,7 +349,7 @@ export default {
// emphasis: {
// focus: 'series'
// },
data: [120, 132, 101, 134, 90, 230, 210]
data: []
},
]
},
@@ -364,8 +360,9 @@ export default {
// console.log(val)
if (val === true) {
console.log('ztl')
this.width = '99%'
this.width = 97 + '%'
this.canvasReset()
console.log(this.width)
} else {
this.watch = 100 + '%'
@@ -374,15 +371,20 @@ export default {
},
/** 全屏状态切换时,对柱子粗细和字体大小进行相应调整 */
isFullscreen(val) {
if (val === true && this.isOpen === true) {
this.width = '99%'
if (val === false && this.isOpen === true) {
console.log(val)
this.width = 97 + '%'
this.canvasReset()
} else if(val === false && this.isOpen === false) {
this.watch = 100 + '%'
this.canvasReset()
}
this.actualOptions.series.map((item) => {
item.barWidth = val ? 18 : 12;
});
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
// this.actualOptions.series.map((item) => {
// item.barWidth = val ? 18 : 12;
// });
// this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
// this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
// this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
this.initChart(this.actualOptions);
},
series(val) {
@@ -390,11 +392,22 @@ export default {
this.initChart(this.options);
return;
}
const actualOptions = JSON.parse(JSON.stringify(this.options));
actualOptions.series[0].data = val[0].data;
actualOptions.series[0].name = val[0].name;
actualOptions.series[1].data = val?.[1]?.data || [];
actualOptions.series[1].name = val?.[1]?.name || "";
const actualOptions = JSON.parse(JSON.stringify(this.options))
// console.log(actualOptions)
actualOptions.xAxis.data = val.times
// actualOptions.series.forEach((ele,index) => {
// ele.data = val.index
// })
actualOptions.series[0].data = val[0]
actualOptions.series[1].data = val[1];
actualOptions.series[2].data = val[2];
actualOptions.series[3].data = val[3];
actualOptions.series[4].data = val[4];
actualOptions.series[5].data = val[5];
actualOptions.series[6].data = val[6];
// actualOptions.series[1].data = val?.[1]?.data || [];
// actualOptions.series[1].name = val?.[1]?.name || "";
this.actualOptions = actualOptions;
this.initChart(actualOptions);
},

View File

@@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-05-13 14:08:51
* @LastEditTime: 2024-05-14 08:46:07
* @LastEditTime: 2024-05-17 09:37:01
* @LastEditors: zhp
* @Description:
-->
@@ -12,7 +12,7 @@
<!-- <span v-for="item in legend" :key="item.label" class="legend-item"
:style="{ fontSize: isFullscreen ? '0.58vw' : '0.54vw' }">{{ item.label }}</span> -->
</div>
<div ref="gasChart" :style="{ height: '100%',width: width}"></div>
<div ref="gasChart" :style="{ height: '95%',width: width}"></div>
</chart-container>
</template>
@@ -33,22 +33,22 @@ export default {
type: Number,
default: 38,
},
legend: {
type: Array,
required: false,
},
// legend: {
// type: Array,
// required: false,
// },
xAxis: {
type: Array,
required: true,
},
series: {
type: Array,
required: true,
},
in: {
type: String,
default: "",
required: false,
},
// in: {
// type: String,
// default: "",
// },
},
data() {
return {
@@ -57,8 +57,8 @@ export default {
actualOptions: null,
options: {
grid: {
left: "1%",
right: "4%",
left: "3%",
right: "2%",
bottom: "3%",
top: "15%",
containLabel: true,
@@ -140,38 +140,38 @@ export default {
},
data: [], // this.series[0].data,
},
{
name: "", // this.series[1].name,
type: "bar",
barWidth: 12,
// tooltip: {
// valueFormatter: function (value) {
// return value + " ml";
// },
// },
itemStyle: {
borderRadius: [10, 10, 0, 0],
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "#57abf8", // 0% 处的颜色
},
{
offset: 1,
color: "#364BFE66", // 100% 处的颜色
},
],
global: false, // 缺省为 false
},
},
data: [], // this.series[1].data,
},
// {
// name: "", // this.series[1].name,
// type: "bar",
// barWidth: 12,
// // tooltip: {
// // valueFormatter: function (value) {
// // return value + " ml";
// // },
// // },
// itemStyle: {
// borderRadius: [10, 10, 0, 0],
// color: {
// type: "linear",
// x: 0,
// y: 0,
// x2: 0,
// y2: 1,
// colorStops: [
// {
// offset: 0,
// color: "#57abf8", // 0% 处的颜色
// },
// {
// offset: 1,
// color: "#364BFE66", // 100% 处的颜色
// },
// ],
// global: false, // 缺省为 false
// },
// },
// data: [], // this.series[1].data,
// },
],
},
};
@@ -185,39 +185,44 @@ export default {
isOpen(val) {
// console.log(val)
if (val === true) {
console.log('ryf')
this.width = '99%'
this.width = 97 + '%'
this.canvasReset()
console.log(this.width)
} else {
console.log('ryf')
this.watch = 100 + '%'
this.canvasReset()
}
},
/** 全屏状态切换时,对柱子粗细和字体大小进行相应调整 */
isFullscreen(val) {
if (val === true && this.isOpen === true) {
this.width = '99%'
if (val === false && this.isOpen === true) {
this.width = 97 + '%'
this.canvasReset()
} else if (val === false && this.isOpen === false) {
this.watch = 100 + '%'
this.canvasReset()
}
this.actualOptions.series.map((item) => {
item.barWidth = val ? 18 : 12;
});
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
this.initOptions(this.actualOptions);
// this.actualOptions.series.map((item) => {
// item.barWidth = val ? 18 : 12;
// });
// this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
// this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
// this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
this.initChart(this.actualOptions);
},
series(val) {
if (!val) {
this.initOptions(this.options);
this.initChart(this.options);
return;
}
const actualOptions = JSON.parse(JSON.stringify(this.options));
console.log('actualOptions', this.options)
actualOptions.series[0].data = val[0].data;
actualOptions.series[0].name = val[0].name;
actualOptions.series[1].data = val?.[1]?.data || [];
actualOptions.series[1].name = val?.[1]?.name || "";
actualOptions.series[0].data = val;
// actualOptions.series[0].name = val[0].name;
// actualOptions.series[1].data = val?.[1]?.data || [];
// actualOptions.series[1].name = val?.[1]?.name || "";
this.actualOptions = actualOptions;
this.initChart(actualOptions);
},

View File

@@ -1,8 +1,8 @@
<!--
<!--
filename: select.vue
author: liubin
date: 2024-04-17 09:50:03
description:
description:
-->
<template>