This commit is contained in:
ljx
2025-09-28 17:19:42 +08:00
parent 033c6bcbfa
commit 744b7a6d97
30 changed files with 32 additions and 35 deletions

View File

@ -29,6 +29,7 @@
"axios": "1.8.4", "axios": "1.8.4",
"crypto-js": "4.2.0", "crypto-js": "4.2.0",
"echarts": "5.6.0", "echarts": "5.6.0",
"echarts-gl": "^2.0.9",
"echarts-liquidfill": "^3.1.0", "echarts-liquidfill": "^3.1.0",
"element-plus": "2.9.8", "element-plus": "2.9.8",
"file-saver": "2.0.5", "file-saver": "2.0.5",
@ -94,4 +95,4 @@
"Safari >= 14", "Safari >= 14",
"Firefox >= 78" "Firefox >= 78"
] ]
} }

View File

@ -3,14 +3,14 @@ import request from '@/utils/request';
// 查询图表总数据 // 查询图表总数据
export function getPowerStationOverview() { export function getPowerStationOverview() {
return request({ return request({
url: '/ginlong/api/getPowerStationOverview', url: '/ops/ginlong/api/getPowerStationOverview',
method: 'get' method: 'get'
}); });
} }
//能源收益 //能源收益
export function getStationMonthOverview(params: any) { export function getStationMonthOverview(params: any) {
return request({ return request({
url: '/ginlong/api/getStationMonthOverview', url: '/ops/ginlong/api/getStationMonthOverview',
method: 'get', method: 'get',
params params
}); });
@ -18,7 +18,7 @@ export function getStationMonthOverview(params: any) {
//能源收益 //能源收益
export function getInverterListOverview(params: any) { export function getInverterListOverview(params: any) {
return request({ return request({
url: '/ginlong/api/getInverterListOverview', url: '/ops/ginlong/api/getInverterListOverview',
method: 'get', method: 'get',
params params
}); });
@ -26,7 +26,7 @@ export function getInverterListOverview(params: any) {
//警告 //警告
export function getAlarmListOverview(params?: any) { export function getAlarmListOverview(params?: any) {
return request({ return request({
url: '/ginlong/api/getAlarmListOverview', url: '/ops/ginlong/api/getAlarmListOverview',
method: 'get', method: 'get',
params params
}); });

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

BIN
src/assets/large/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
src/assets/large/income.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

BIN
src/assets/large/power.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 B

BIN
src/assets/large/right1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

BIN
src/assets/large/right2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

BIN
src/assets/large/right3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

BIN
src/assets/large/right4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 B

BIN
src/assets/large/right5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

BIN
src/assets/large/right6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 B

BIN
src/assets/large/right7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

BIN
src/assets/large/right8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

BIN
src/assets/large/right9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

BIN
src/assets/large/secure.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -3,7 +3,7 @@
.el-select__wrapper { .el-select__wrapper {
background: transparent !important; background: transparent !important;
box-shadow: none !important; box-shadow: none !important;
border: 0.1px solid #fff !important; border: 0.1px solid rgba(24, 177, 219, 0.3) !important;
} }
.el-select__placeholder { .el-select__placeholder {
@ -47,7 +47,7 @@
// transition: var(--el-transition-box-shadow); // transition: var(--el-transition-box-shadow);
// transform: translate3d(0, 0, 0); // transform: translate3d(0, 0, 0);
box-shadow: none !important; box-shadow: none !important;
border: 0.1px solid #fff !important; border: 0.1px solid rgba(24, 177, 219, 0.3) !important;
} }
.el-input__inner { .el-input__inner {

View File

@ -9,12 +9,6 @@
@use 'element-plus/dist/index.css'; @use 'element-plus/dist/index.css';
@use './dialog.scss'; @use './dialog.scss';
@font-face {
font-family: 'AlimamaShuHeiTi';
src: url('@/assets/font/庞门正道标题体2.0增强版.ttf') format('truetype');
// font-weight: normal;
// font-style: normal;
}
body { body {
height: 100%; height: 100%;

View File

@ -102,7 +102,7 @@ onUnmounted(() => {
} }
.title { .title {
color: #fff; color: #fff;
font-family: 'AlimamaShuHeiTi', sans-serif; font-family: 'Rang_men_zheng_title', sans-serif;
text-align: center; text-align: center;
} }
.title > div:first-child { .title > div:first-child {
@ -169,7 +169,7 @@ onUnmounted(() => {
.right-section { .right-section {
display: flex; display: flex;
align-items: center; align-items: center;
font-family: 'AlimamaShuHeiTi', sans-serif; font-family: 'Rang_men_zheng_title', sans-serif;
font-size: 20px; font-size: 20px;
} }
.right-section img { .right-section img {

View File

@ -57,7 +57,7 @@
</div> </div>
</div> </div>
</div> </div>
<div style="box-sizing: border-box; padding: 10px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; margin-top: 5px"> <div style="box-sizing: border-box; padding: 0 10px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; margin-top: 5px">
<div class="inverter"> <div class="inverter">
<div class="left_title"> <div class="left_title">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
@ -125,9 +125,8 @@
</div> </div>
</div> </div>
<div class="brokenLine"> <div class="brokenLine">
<EchartBoxTwo :option="lineOption"></EchartBoxTwo> <EchartBoxTwo :option="lineOption" ref="lineChart"></EchartBoxTwo>
</div> </div>
<div class="left_title"> <div class="left_title">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<div class="left_title_img"> <div class="left_title_img">
@ -138,7 +137,7 @@
</div> </div>
<div class="income"> <div class="income">
<EchartBoxTwo :option="barOption"></EchartBoxTwo> <EchartBoxTwo :option="barOption" ref="barChart"></EchartBoxTwo>
</div> </div>
<div class="income_list"> <div class="income_list">
<div style="display: flex; justify-content: space-between"> <div style="display: flex; justify-content: space-between">
@ -168,9 +167,8 @@
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import EchartBoxTwo from '@/components/EchartBox/index.vue'; import EchartBoxTwo from '@/components/EchartBox/index.vue';
import { formatDate } from '@/utils/index'; import { formatDate } from '@/utils/index';
import { getLineOption, getBarOptions } from './optionList'; import { getLineOption, getBarOptions } from './optionList';
import { getPowerStationOverview, getStationMonthOverview, getInverterListOverview } from '@/api/large'; import { getPowerStationOverview, getStationMonthOverview, getInverterListOverview } from '@/api/large/index';
// 直接在组件内部定义数据 // 直接在组件内部定义数据
const chartData = ref({ const chartData = ref({
@ -258,9 +256,9 @@ const getInverterData = () => {
getInverterListOverview(params).then((res) => { getInverterListOverview(params).then((res) => {
if (res.code == 200) { if (res.code == 200) {
pedestrianFlow(res.data.data); pedestrianFlow(res.data.data);
chartData.value.fault = res.data.fault; chartData.value.fault = res.data.fault ?? 0;
chartData.value.normal = res.data.normal; chartData.value.normal = res.data.normal ?? 0;
chartData.value.abnormal = res.data.offline; chartData.value.abnormal = res.data.offline ?? 0;
renderChart(); renderChart();
} }
}); });
@ -295,9 +293,9 @@ const calculatePercentages = () => {
} }
return { return {
normal: Number(normal), normal: Number(normal) ?? 0,
abnormal: Number(abnormal), abnormal: Number(abnormal) ?? 0,
fault: Number(fault) fault: Number(fault) ?? 0
}; };
}; };
const lineOption = ref({}); const lineOption = ref({});
@ -335,6 +333,8 @@ const initChart = () => {
getEnergyData(); getEnergyData();
getInverterData(); getInverterData();
// pedestrianFlow();
// getTurnoverList();
}; };
// 渲染图表逆变器柱状图 // 渲染图表逆变器柱状图
@ -445,6 +445,8 @@ const renderChart = () => {
chartInstance.setOption(option); chartInstance.setOption(option);
}; };
const lineChart = ref();
onMounted(() => { onMounted(() => {
initChart(); initChart();
window.addEventListener('resize', () => chartInstance?.resize()); window.addEventListener('resize', () => chartInstance?.resize());
@ -515,7 +517,7 @@ onMounted(() => {
} }
.left_title_text { .left_title_text {
font-size: 20px; font-size: 20px;
font-family: 'AlimamaShuHeiTi', sans-serif; font-family: 'Rang_men_zheng_title', sans-serif;
display: flex; display: flex;
align-items: flex-end; align-items: flex-end;
margin-left: 15px; margin-left: 15px;
@ -595,19 +597,19 @@ img {
} }
.income { .income {
width: 100%; width: 100%;
height: 20vh; height: 24vh;
// margin-top: 20px; // margin-top: 20px;
} }
.income_list { .income_list {
width: 100%; width: 100%;
height: 9vh; height: 7vh;
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
align-items: center; /* 垂直居中 */ align-items: center; /* 垂直居中 */
// grid-gap: 10px; // grid-gap: 10px;
// background-color: rgba(29, 214, 255, 0.1); // background-color: rgba(29, 214, 255, 0.1);
// border-radius: 10px; // border-radius: 10px;
padding: 10px; padding: 0 10px;
box-sizing: border-box; box-sizing: border-box;
font-size: 14px; font-size: 14px;
} }

View File

@ -601,15 +601,15 @@ export const getBarOptions = (data: any) => {
backgroundColor: '', backgroundColor: '',
grid: { grid: {
left: '7%', left: '7%',
top: '4%', top: '10%',
bottom: '25%', bottom: '23%',
right: '2%' right: '2%'
}, },
tooltip: { tooltip: {
show: true, show: true,
backgroundColor: '', backgroundColor: '',
trigger: 'axis', trigger: 'axis',
formatter: '{b0}{c0}元', formatter: '{b0}{c0}元',
textStyle: { textStyle: {
color: '#fff' color: '#fff'
} }

View File

@ -267,7 +267,7 @@ getAlarm();
} }
.left_title_text { .left_title_text {
font-size: 20px; font-size: 20px;
font-family: 'AlimamaShuHeiTi', sans-serif; font-family: 'Rang_men_zheng_title', sans-serif;
display: flex; display: flex;
align-items: flex-end; align-items: flex-end;
margin-left: 15px; margin-left: 15px;