feat: 新效果大屏暂存

This commit is contained in:
wangjr 2025-09-20 16:16:06 +08:00
parent fa85e41008
commit cdccfbfdd1
17 changed files with 568 additions and 97 deletions

View File

@ -1,3 +1,4 @@
NODE_ENV=development NODE_ENV=development
VUE_APP_PREVIEW=true VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL=http://localhost:82 VUE_APP_API_BASE_URL=http://47.94.254.249:3182
VUE_APP_API_BASE_URL_PSPACE=/pspace-server

View File

@ -0,0 +1,49 @@
import axios from 'axios'
const isDevelopment = process.env.NODE_ENV === 'development'
export const getPSpaceData = async (url, params) => {
// const data = JSON.stringify(params)
try {
const res = await axios({
baseURL: isDevelopment ? undefined : process.env.VUE_APP_PSPACE_API_BASE_URL,
url: isDevelopment ? `/pspace-server${url}` : url,
method: 'get',
headers: {
'ngrok-skip-browser-warning': 'true'
},
params
})
return res.data
} catch (error) {
console.log(error)
}
}
/**
* 炉温变化率炉温变化率DELTA*10000/AVG得出万分之几大屏上显示万分之炉温稳定率-百分比
*/
export function getFurnaceTemperatureChangeRate (parameter) {
return getPSpaceData('/HistDataByAggre', parameter)
}
/**
* 中心炉底温度变化量炉温变化曲线每个炉子一条炉温稳定率-柱状图
*/
export function getFurnaceTemperatureChangeRateBar (parameter) {
return getPSpaceData('/HistAggreData', parameter)
}
/**
* 每天耗电量1单位耗电量用这个除以每天产品产量2总耗电量指标把日期调成每月1号单位电耗
*/
export function getDailyPowerConsumption (parameter) {
return getPSpaceData('/HistAggreData', parameter)
}
/**
* 能耗与电耗Kvar无功功率 Kvarh无功电量 KW有功功率 KWh有功电量 cos功率因数大屏左边第一块用这个能耗与电耗数据
*/
export function getEnergyAndElectricityConsumption(parameter) {
return getPSpaceData('/HistDataByAggre', parameter)
}

View File

@ -13,3 +13,36 @@ export function productionCommandCenterPage (parameter) {
params: parameter params: parameter
}) })
} }
const commonParams = {
charset: 'utf-8',
archived: 0
}
/**
* 炉温
*/
export function getFurnaceTemperature (parameter) {
return axios({
url: '/HistAtTime',
method: 'post',
params: {
...parameter,
...commonParams
}
})
}
/**
* 功率因数每月和每小时功率因数用这个平均值调整时间
*/
export function getHistAggreData (parameter) {
return axios({
url: '/HistAggreData',
method: 'get',
params: {
...parameter,
...commonParams
}
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 966 KiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

View File

@ -3,6 +3,13 @@
import PieChart from './components/PieChart.vue' import PieChart from './components/PieChart.vue'
import BarChart from './components/BarChart.vue' import BarChart from './components/BarChart.vue'
import ElectrodeConsumption from './components/ElectrodeConsumption.vue' import ElectrodeConsumption from './components/ElectrodeConsumption.vue'
import {
getFurnaceTemperatureChangeRate,
getDailyPowerConsumption,
getFurnaceTemperatureChangeRateBar,
getEnergyAndElectricityConsumption
} from '@/api/modular/largeScreen/pSpaceApi'
// import { getFurnaceTemperatureChangeRate } from '@/api/modular/largeScreen/productionCommandCenterManage'
export default { export default {
components: { components: {
@ -10,7 +17,137 @@ export default {
BarChart, BarChart,
ElectrodeConsumption ElectrodeConsumption
}, },
data() {
return {
//
totalElectricityConsumption: 0,
//
unitElectricityConsumption: 0,
//
totalPowerGeneration: 0,
//
powerFactor: 0,
productionData: [
{
icon: 'icon-guimeng',
value: '2,234',
unit: 't',
description: '耗电量:999kavrh',
silica: '120.05',
petroleumCoke: '120.05',
lanzhouCoal: '120.05'
},
{
icon: 'icon-getie',
value: '10.4',
unit: 't',
description: '耗电量:999kavrh',
silica: '120.05',
petroleumCoke: '120.05',
lanzhouCoal: '120.05'
},
{
icon: 'icon-guitie',
value: '20.5',
unit: 't',
description: '耗电量:999kavrh',
silica: '120.05',
petroleumCoke: '120.05',
lanzhouCoal: '120.05'
}
]
}
},
mounted() {
// this.getFurnaceTemperatureChangeRate()
// this.getFurnaceTemperatureChangeRateBar()
// this.getDailyPowerConsumption()
// this.getEnergyAndElectricityConsumption()
},
methods: { methods: {
//
async getFurnaceTemperatureChangeRate() {
const parameter = {
'btime': '2025-08-07 16:00:00',
'etime': '2025-08-08 16:00:10',
'aggredata':
[{
'aggfunc': 'AVG',
'tagnames': '/corp/factory1/boiler/luwen/中心炉底温度'
}, {
'aggfunc': 'DELTA',
'tagnames': '/corp/factory1/boiler/luwen/中心炉底温度'
}],
'interval': 3600,
'charset': 'utf-8',
'archived': 0
}
const data = await getFurnaceTemperatureChangeRate(parameter)
console.log(data)
},
//
async getFurnaceTemperatureChangeRateBar() {
const parameter = {
'btime': '2025-08-07 16:00:00',
'etime': '2025-08-08 16:00:10',
'aggredata':
{
'aggfunc': 'DELTA',
'tagnames': '/corp/factory1/boiler/luwen/中心炉底温度'
},
'interval': 3600,
'charset': 'utf-8',
'archived': 0
}
const data = await getFurnaceTemperatureChangeRateBar(parameter)
console.log(data)
},
//
async getDailyPowerConsumption() {
const parameter = {
'btime': '2025-08-07 16:00:10',
'etime': '2025-08-08 16:00:00',
'aggredata':
{
'aggfunc': 'DELTA',
'tagnames': '/corp/factory1/boiler/yibiao/kWh'
},
'interval': 86400,
'charset': 'utf-8',
'archived': 0
}
const data = await getDailyPowerConsumption(parameter)
console.log(data)
},
//
async getEnergyAndElectricityConsumption() {
const parameter = {
'btime': '2025-08-07 16:00:00',
'etime': '2025-08-07 18:00:10',
'aggredata':
[{
'aggfunc': 'AVG',
'tagnames': '/corp/factory1/boiler/yibiao/kW'
}, {
'aggfunc': 'AVG',
'tagnames': '/corp/factory1/boiler/yibiao/Kvarh'
}, {
'aggfunc': 'AVG',
'tagnames': '/corp/factory1/boiler/yibiao/cos'
}, {
'aggfunc': 'DELTA',
'tagnames': '/corp/factory1/boiler/yibiao/kWh'
}, {
'aggfunc': 'DELTA',
'tagnames': '/corp/factory1/boiler/yibiao/Kvarh'
}],
'interval': 3600,
'charset': 'utf-8',
'archived': 0
}
const data = await getEnergyAndElectricityConsumption(parameter)
console.log(data)
},
getItemStyle(item) { getItemStyle(item) {
return { return {
backgroundImage: `url(${require('@/assets/big-screen/nav/' + item + '.png')})`, backgroundImage: `url(${require('@/assets/big-screen/nav/' + item + '.png')})`,
@ -36,23 +173,25 @@ export default {
<div class="container-content-top"> <div class="container-content-top">
<div class="title-box yunxingzhuangtai"></div> <div class="title-box yunxingzhuangtai"></div>
<div class="box-container"> <div class="box-container first">
<div class="line-item bg"> <div class="line-item bg tc">
<div class="lint-item-title">本月累计产量</div> <div class="lint-item-title">本月累计产量</div>
<div class="icon"><img src="@/assets/big-screen/icon-chanliang.png" alt="" /><</div> <div class="lint-item-content">
<div class="value">432,928<span class="unit">t</span></div> <div class="icon"><img src="@/assets/big-screen/icon-chanliang.png"/></div>
<div class="end-time">截止到8-20</div> <div class="value t-white">432,928<span class="unit t-light-blue">t</span></div>
<div class="end-time t-light-blue">截止到8-20</div>
</div>
</div> </div>
<div class="line-item bg"> <div class="line-item bg">
<div class="lint-item-title">产品回收率</div> <div class="lint-item-title">产品回收率</div>
<div style="width: 100%; height: calc(100% - 60px);"> <div style="width: 100%; height: calc(100% - 150px);">
<PieChart></PieChart> <PieChart color="blue" :data="75"></PieChart>
</div> </div>
</div> </div>
<div class="line-item bg"> <div class="line-item bg">
<div class="lint-item-title">炉温稳定率</div> <div class="lint-item-title">炉温稳定率</div>
<div style="width: 100%; height: calc(100% - 60px);"> <div style="width: 100%; height: calc(100% - 150px);">
<PieChart></PieChart> <PieChart color="orange" :data="75"></PieChart>
</div> </div>
</div> </div>
</div> </div>
@ -69,10 +208,44 @@ export default {
<div class="lint-item-title">硅铁合计</div> <div class="lint-item-title">硅铁合计</div>
</div> </div>
</div> </div>
<div class="box-container title-box"> <div class="box-container title-box chanliang-item">
<div class="line-item bg"></div> <div class="line-item bg" v-for="(item, index) in productionData" :key="index">
<div class="line-item bg"></div> <div class="production-card">
<div class="line-item bg"></div> <div class="card-icon" v-if="item.icon">
<img :src="require(`@/assets/big-screen/${item.icon}.png`)" alt="" />
</div>
<div class="card-content">
<div class="card-value">
<span class="value-number t-white">{{ item.value }}</span>
<span class="value-unit t-light-blue">{{ item.unit }}</span>
</div>
<div class="card-description t-light-blue">{{ item.description }}</div>
</div>
</div>
<div class="production-item-card">
<div>
<div class="tl">
<img src="@/assets/big-screen/icon-silica.png" alt="">
<span>硅石</span>
</div>
<div class="tr">{{ item.silica }} <span></span></div>
</div>
<div>
<div class="tl">
<img src="@/assets/big-screen/icon-petroleum-coke.png" alt="">
<span>石油焦</span>
</div>
<div class="tr">{{ item.petroleumCoke }} <span></span></div>
</div>
<div>
<div class="tl">
<img src="@/assets/big-screen/icon-lanzhou-coal.png" alt="">
<span>兰炭</span>
</div>
<div class="tr">{{ item.lanzhouCoal }} <span></span></div>
</div>
</div>
</div>
</div> </div>
</div> </div>
@ -89,15 +262,35 @@ export default {
</div> </div>
<div class="right-container"> <div class="right-container">
<div class="container-content" style="display: flex;"> <div class="container-content" style="display: flex; justify-content: space-evenly;">
<div class="left"> <div class="left">
<div class="container-content-top"> <div class="container-content-top">
<div class="title-box xiaohaoshuju"></div> <div class="title-box xiaohaoshuju"></div>
<div class="box-container"> <div class="box-container xiaohaoshuju">
<div class="line-item">1</div> <div class="line-item">
<div class="line-item">2</div> <div class="tl">
<div class="line-item">3</div> <p class="t-blue">本月累计用电量</p>
<p>{{ totalElectricityConsumption }}kWh</p>
</div>
<div class="tl">
<p class="t-blue">单位电耗</p>
<p>{{ unitElectricityConsumption }}mkWh/t</p>
</div>
</div>
<div class="line-item" style="display: flex; justify-content: center;">
<img src="@/assets/big-screen/icon-energy.png"/>
</div>
<div class="line-item">
<div class="tr">
<p class="t-blue">发电厂发电量</p>
<p>{{ totalPowerGeneration }}kWh</p>
</div>
<div class="tr">
<p class="t-blue">功率因数</p>
<p>{{ powerFactor }}</p>
</div>
</div>
</div> </div>
<div class="chart-container danweidianhao"> <div class="chart-container danweidianhao">
@ -114,12 +307,12 @@ export default {
<div class="chart-container anquanjiance"> <div class="chart-container anquanjiance">
<div> <div>
<div>2022-11-23 11:37:25</div> <div class="time">2022-11-23 11:37:25</div>
<div>Ⅱ级 xxxx段发生严重xx请立即前往处理!</div> <div class="content danger">xxxx段发生严重xx请立即前往处理!</div>
</div> </div>
<div> <div>
<div>2022-11-23 09:37:25</div> <div class="time">2022-11-23 09:37:25</div>
<div>Ⅱ级 xxxx段发生严重xx请立即前往处理!</div> <div class="content warning">xxxx段发生严重xx请立即前往处理!</div>
</div> </div>
</div> </div>
</div> </div>
@ -139,14 +332,39 @@ export default {
</template> </template>
<style scoped lang="less"> <style scoped lang="less">
.tc {
text-align: center;
}
.tl {
text-align: left;
}
.tr {
text-align: right;
}
.t-white {
color: #fff;
}
.t-blue {
color: #40a9ff !important;
}
.t-light-blue {
color: #40ccff;
}
.bg-image-mixin(@image-path) { .bg-image-mixin(@image-path) {
background-image: url(@image-path); background-image: url(@image-path);
background-size: 100% 100%; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.lint-item-title { .first {
color: #40a9ff; .line-item {
font-size: 2rem; padding-top: 4rem;
}
.lint-item-content {
display: flex;
flex-direction: column;
justify-content: space-around;
height: 65%;
}
} }
.line-item { .line-item {
width: 32%; width: 32%;
@ -154,10 +372,70 @@ export default {
float: left; float: left;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: flex-start;
flex-direction: column;
font-size: 2rem;
&.bg, .bg { &.bg, .bg {
.bg-image-mixin('~@/assets/big-screen/bg-line-item.png'); .bg-image-mixin('~@/assets/big-screen/bg-line-item.png');
} }
> div {
width: 100%;
}
.production-card {
display: flex;
justify-content: space-around;
align-items: center;
margin-top: 2rem;
img {
width: 5rem;
height: 6rem;
display: block;
}
}
.production-item-card {
color: #40a9ff;
margin-top: 2rem;
padding: 1rem;
> div {
display: flex;
justify-content: space-between;
margin: 1rem;
padding-bottom: 1rem;
img {
width: 2.5rem;
height: 2.5rem;
margin-right: 1rem;
}
border-bottom: 1px solid #234c6d87;
&:last-child {
border-bottom: none;
}
}
}
.lint-item-title {
color: #40a9ff;
font-size: 2rem;
text-align: center;
}
.icon {
img {
width: 6rem;
height: 6rem;
margin: 1rem;
}
}
.value {
font-size: 3rem;
font-family: 'DingTalk JinBuTi';
font-weight: 700;
}
.unit {
font-size: 2rem;
font-weight: 700;
}
.end-time {
font-size: 2rem;
}
} }
.main-container { .main-container {
position: relative; position: relative;
@ -178,15 +456,15 @@ export default {
.center-container { .center-container {
position: absolute; position: absolute;
z-index: 20; z-index: 20;
width: 36%; width: 50%;
height: 100%; height: 100%;
left: 50%; left: 50%;
margin-left: -18%; margin-left: -25%;
} }
.left-container, .right-container { .left-container, .right-container {
position: absolute; position: absolute;
z-index: 20; z-index: 20;
width: 36%; width: 28%;
height: 100%; height: 100%;
background-image: url('~@/assets/big-screen/bg-right.png'); background-image: url('~@/assets/big-screen/bg-right.png');
background-size: 100% 100%; background-size: 100% 100%;
@ -196,7 +474,7 @@ export default {
.container-content { .container-content {
width: 90%; width: 90%;
height: 91%; height: 91%;
margin: 7% 5% 2%; margin: 9% 5% 2%;
background-image: url('~@/assets/big-screen/bg-border-right.png'); background-image: url('~@/assets/big-screen/bg-border-right.png');
background-size: auto 100%; background-size: auto 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
@ -207,11 +485,11 @@ export default {
padding-right: 5%; padding-right: 5%;
} }
.container-content-top { .container-content-top {
height: 60%; height: 70%;
padding-top: 3rem; padding-top: 3rem;
} }
.container-content-bottom { .container-content-bottom {
height: 40%; height: 30%;
} }
} }
.title-chart-box { .title-chart-box {
@ -237,6 +515,13 @@ export default {
&.chanliang { &.chanliang {
background-image: url('~@/assets/big-screen/title-chanliang.png'); background-image: url('~@/assets/big-screen/title-chanliang.png');
} }
&.chanliang-item {
height: 40%;
> div {
display: flex;
justify-content: space-around;
}
}
&.xiaohaoshuju { &.xiaohaoshuju {
background-image: url('~@/assets/big-screen/title-xiaohaoshuju.png'); background-image: url('~@/assets/big-screen/title-xiaohaoshuju.png');
} }
@ -252,6 +537,32 @@ export default {
&.title { &.title {
height: 5rem; height: 5rem;
} }
&.xiaohaoshuju {
height: 35%;
.line-item {
display: block;
> div {
background-image: url('~@/assets/big-screen/bg-energy.png');
background-size: 100% 100%;
background-repeat: no-repeat;
padding: 1rem;
height: 50%;
display: flex;
flex-direction: column;
justify-content: space-evenly;
}
img {
display: block;
width: 98%;
margin-left: 1%;
}
p {
margin: 0;
color: #fff;
margin-bottom: 1rem;
}
}
}
} }
.chart-container { .chart-container {
width: 100%; width: 100%;
@ -271,29 +582,54 @@ export default {
} }
&.danweidianhao { &.danweidianhao {
padding-top: 0.5rem; padding-top: 0.5rem;
height: 40%; height: 50%;
background-image: url('~@/assets/big-screen/border-danweidianhao.png'); background-image: url('~@/assets/big-screen/border-danweidianhao.png');
} }
&.anquanjiance { &.anquanjiance {
height: 77%; height: 77%;
background-image: url('~@/assets/big-screen/border-anquanjiance.png'); background-image: url('~@/assets/big-screen/border-anquanjiance.png');
display: flex;
flex-direction: column;
color: #fff;
font-size: 2rem;
> div {
height: 50%;
display: flex;
flex-direction: column;
justify-content: center;
padding: 0 5%;
.time {
color: #40a9ff;
font-size: 2.5rem;
margin-bottom: 1.5rem;
}
.content {
padding-left: 20%;
background-size: 100% 100%;
background-repeat: no-repeat;
&.danger {
background-image: url('~@/assets/big-screen/bg-danger.png');
}
&.warning {
background-image: url('~@/assets/big-screen/bg-warning.png');
}
}
}
} }
} }
} }
.right-container { .right-container {
.container-content { .container-content {
background: none; background: none;
margin-right: 15px;
width: 100%;
.left, .right { .left, .right {
height: 100%; height: 100%;
display: inline-block; display: inline-block;
} }
.left { .left {
width: 70%; width: 74%;
} }
.right { .right {
width: 26%; width: 25%;
} }
.left { .left {
background-image: url('~@/assets/big-screen/bg-border-right.png'); background-image: url('~@/assets/big-screen/bg-border-right.png');

View File

@ -9,13 +9,19 @@ import * as echarts from 'echarts'
export default { export default {
name: 'PieChart', name: 'PieChart',
props: {
color: {
type: String,
default: 'blue'
},
data: {
type: Number,
default: 0
}
},
data() { data() {
return { return {
chart: null, chart: null
productionData: {
dates: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'],
values: [7000, 5000, 6000, 4500, 3000, 5000, 9000, 4500, 6000, 3500, 2000, 6500, 4500, 7500, 5000, 5000, 4500, 6000, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
} }
}, },
mounted() { mounted() {
@ -25,112 +31,114 @@ export default {
}, },
beforeDestroy() { beforeDestroy() {
window.removeEventListener('resize', this.resizeChart) window.removeEventListener('resize', this.resizeChart)
if (this.productionChart) { if (this.chart) {
this.productionChart.dispose() this.chart.dispose()
} }
}, },
methods: { methods: {
initChart() { initChart() {
const [color1, color2] = this.color === 'blue' ? ['#0060D5', '#85EDFF'] : ['#DD8323', '#FFEE9A']
const data = [this.data]
this.chart = echarts.init(this.$refs.chart) this.chart = echarts.init(this.$refs.chart)
const option = { const option = {
title: [ title: [
{ {
x: 'center', x: 'center',
top: '55%', top: '55%',
textStyle: { textStyle: {
color: '#FFFFFF', color: '#FFFFFF',
fontSize: 16, fontSize: 16,
fontWeight: '100' fontWeight: '100'
} }
}, },
{ {
text: '75%', text: `${this.data}%`,
x: 'center', x: 'center',
y: 'center', y: 'center',
textStyle: { textStyle: {
fontSize: '60', fontSize: '60',
color: '#FFFFFF', color: '#FFFFFF',
fontFamily: 'DINAlternate-Bold, DINAlternate', fontFamily: 'DINAlternate-Bold, DINAlternate',
foontWeight: '600' foontWeight: '600'
}
} }
}
], ],
polar: { polar: {
radius: ['42%', '52%'], radius: ['70%', '90%'],
center: ['50%', '50%'] center: ['50%', '50%']
}, },
angleAxis: { angleAxis: {
max: 100, max: 100,
show: false show: false
}, },
radiusAxis: { radiusAxis: {
type: 'category', type: 'category',
show: true, show: true,
axisLabel: { axisLabel: {
show: false show: false
}, },
axisLine: { axisLine: {
show: false show: false
}, },
axisTick: { axisTick: {
show: false show: false
} }
}, },
series: [ series: [
{ {
name: '', name: '',
type: 'bar', type: 'bar',
roundCap: true, roundCap: true,
barWidth: 30, barWidth: 30,
showBackground: true, showBackground: true,
backgroundStyle: { backgroundStyle: {
color: 'rgba(66, 66, 66, .3)' color: 'rgba(66, 66, 66, .3)'
}, },
data: [60], data,
coordinateSystem: 'polar', coordinateSystem: 'polar',
itemStyle: { itemStyle: {
normal: { normal: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [ color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{ {
offset: 0, offset: 0,
color: '#16CEB9' color: color1
}, },
{ {
offset: 1, offset: 1,
color: '#6648FF' color: color2
} }
]) ])
} }
} }
}, },
{ {
name: '', name: '',
type: 'pie', type: 'pie',
startAngle: 80, startAngle: 80,
radius: ['56%'], radius: ['86%'],
hoverAnimation: false, hoverAnimation: false,
center: ['50%', '50%'], center: ['50%', '50%'],
itemStyle: { itemStyle: {
color: 'rgba(66, 66, 66, .1)', color: 'rgba(66, 66, 66, .1)',
borderWidth: 1, borderWidth: 1,
borderColor: '#5269EE' borderColor: '#5269EE'
}, },
data: [100] data: [100]
}, },
{ {
name: '', name: '',
type: 'pie', type: 'pie',
startAngle: 80, startAngle: 80,
radius: ['38%'], radius: ['68%'],
hoverAnimation: false, hoverAnimation: false,
center: ['50%', '50%'], center: ['50%', '50%'],
itemStyle: { itemStyle: {
color: 'rgba(66, 66, 66, .1)', color: 'rgba(66, 66, 66, .1)',
borderWidth: 1, borderWidth: 1,
borderColor: '#5269EE' borderColor: '#5269EE'
}, },
data: [100] data: [100]
} }
] ]
} }
this.chart.setOption(option) this.chart.setOption(option)

View File

@ -19,11 +19,26 @@
<script> <script>
import * as echarts from 'echarts' import * as echarts from 'echarts'
import chartMixins from './chartMixins'
export default { export default {
name: 'ProductData', name: 'ProductData',
mixins: [chartMixins],
data() { data() {
return { return {
pspaceApiInfo: {
url: '/HistAggreData',
params: {
btime: '2025-09-01 00:00:00',
etime: '2025-09-30 23:59:59',
aggredata: {
aggfunc: 'count'
},
interval: 86400,
charset: 'utf-8',
archived: 0
}
},
productionData: { productionData: {
monthlyProduction: '432,928', monthlyProduction: '432,928',
date: '8-20', date: '8-20',
@ -34,11 +49,11 @@ export default {
temperatureStabilityChart: null temperatureStabilityChart: null
} }
}, },
mounted() {
this.initQualifiedRateChart()
this.initTemperatureStabilityChart()
},
methods: { methods: {
initChart() {
this.initQualifiedRateChart()
this.initQualifiedRateChart()
},
initQualifiedRateChart() { initQualifiedRateChart() {
this.qualifiedRateChart = echarts.init(this.$refs.qualifiedRateChart) this.qualifiedRateChart = echarts.init(this.$refs.qualifiedRateChart)
const option = { const option = {

View File

@ -0,0 +1,21 @@
import { getPSpaceData } from '@/api/modular/largeScreen/pSpaceApi'
export default {
data() {
return {
pspaceApiInfo: {}
}
},
methods: {
initChart() {},
async getData() {
const { url, params } = this.pspaceApiInfo
const res = await getPSpaceData(
url,
params
)
console.log('getPSpaceData', res)
this.initChart(res)
}
}
}

View File

@ -101,6 +101,14 @@ const vueConfig = {
pathRewrite: { pathRewrite: {
'^/api': '' // 需要rewrite的, '^/api': '' // 需要rewrite的,
} }
},
'/pspace-server': {
target: 'https://c3abc956bca5.ngrok-free.app',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/pspace-server': '/',
},
} }
} }
}, },