add:增加看板及报表

This commit is contained in:
zhangzq
2026-03-09 17:25:58 +08:00
parent 5c4ac88b22
commit 8eb4c5889f
6 changed files with 53 additions and 47 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.biBoard.report.service.dao.mapper.ConsumeReportMapper">
<mapper namespace="org.nl.wms.biBoard.consumptionReport.service.dao.mapper.ConsumeReportMapper">
<!-- 班组焊材消耗报表分页查询 -->
<select id="queryConsumeReport" resultType="org.nl.wms.biBoard.consumptionReport.dto.ConsumeReportDto">

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.biBoard.iosReport.service.dao.mapper.IosReportMapper">
<mapper namespace="org.nl.wms.biBoard.materialRequisition.service.dao.mapper.IosReportMapper">
<!-- 领料出库及退料入库数据报表分页查询 -->
<select id="queryIosReport" resultType="org.nl.wms.biBoard.materialRequisition.dto.IosReportDto">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

View File

@@ -17,6 +17,12 @@ export const constantRouterMap = [
component: (resolve) => require(['@/views/features/404'], resolve),
hidden: true
},
{
path: '/screen/fullscreen',
meta: { title: '智慧看板', noCache: true },
component: (resolve) => require(['@/views/wms/biBoard/screen/index'], resolve),
hidden: true
},
{
path: '/401',
component: (resolve) => require(['@/views/features/401'], resolve),

View File

@@ -36,12 +36,12 @@
<div class="panel-title">焊材库存占比</div>
<div class="chart-container">
<div id="structChart" style="width: 100%; height: 280px;"></div>
<div id="structChart" style="width: 100%; height: 280px;" />
</div>
<div class="panel-title">焊材领料Top5</div>
<div class="chart-container">
<div id="materialTop5Chart" style="width: 100%; height: 300px;"></div>
<div id="materialTop5Chart" style="width: 100%; height: 300px;" />
</div>
</div>
@@ -76,7 +76,7 @@
<!-- 温湿度监控 -->
<div class="temp-monitor">
<div class="monitor-title">温湿度监控</div>
<div id="tempChart" style="width: 100%; height: 200px;"></div>
<div id="tempChart" style="width: 100%; height: 200px;" />
</div>
</div>
</div>
@@ -109,7 +109,7 @@
<div class="panel-title">班组焊材消耗</div>
<div class="chart-container">
<div id="consumeChart" style="width: 100%; height: 250px;"></div>
<div id="consumeChart" style="width: 100%; height: 250px;" />
</div>
<div class="panel-title">当日领退明细</div>
@@ -162,32 +162,6 @@ export default {
scrollIndex3: 0
}
},
mounted() {
this.updateTime()
this.timer = setInterval(this.updateTime, 1000)
this.loadAllData()
this.dataTimer = setInterval(this.loadAllData, 30000) // 30秒刷新一次
this.startScrolling()
},
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer)
}
if (this.dataTimer) {
clearInterval(this.dataTimer)
}
if (this.scrollTimer1) {
clearInterval(this.scrollTimer1)
}
if (this.scrollTimer2) {
clearInterval(this.scrollTimer2)
}
if (this.scrollTimer3) {
clearInterval(this.scrollTimer3)
}
},
computed: {
displayIosReportData() {
if (this.iosReportData.length <= 5) {
@@ -223,6 +197,32 @@ export default {
return result
}
},
mounted() {
this.updateTime()
this.timer = setInterval(this.updateTime, 1000)
this.loadAllData()
this.dataTimer = setInterval(this.loadAllData, 30000) // 30秒刷新一次
this.startScrolling()
},
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer)
}
if (this.dataTimer) {
clearInterval(this.dataTimer)
}
if (this.scrollTimer1) {
clearInterval(this.scrollTimer1)
}
if (this.scrollTimer2) {
clearInterval(this.scrollTimer2)
}
if (this.scrollTimer3) {
clearInterval(this.scrollTimer3)
}
},
methods: {
updateTime() {
const now = new Date()
@@ -394,16 +394,16 @@ export default {
radius: ['40%', '70%'],
center: ['40%', '50%'],
data: [
{ value: data.hasGoods || 0, name: '有货', itemStyle: { color: '#5470c6' } },
{ value: data.emptyBox || 0, name: '空料箱', itemStyle: { color: '#91cc75' } },
{ value: data.noGoods || 0, name: '无货', itemStyle: { color: '#fac858' } }
{ value: data.hasGoods || 0, name: '有货', itemStyle: { color: '#5470c6' }},
{ value: data.emptyBox || 0, name: '空料箱', itemStyle: { color: '#91cc75' }},
{ value: data.noGoods || 0, name: '无货', itemStyle: { color: '#fac858' }}
],
label: {
color: '#fff'
}
}
]
};
}
chart.setOption(option)
},
@@ -428,14 +428,14 @@ export default {
xAxis: {
type: 'category',
data: times,
axisLine: { lineStyle: { color: '#fff' } },
axisLine: { lineStyle: { color: '#fff' }},
axisLabel: { color: '#fff' }
},
yAxis: {
type: 'value',
axisLine: { lineStyle: { color: '#fff' } },
axisLine: { lineStyle: { color: '#fff' }},
axisLabel: { color: '#fff' },
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' }}
},
series: [
{
@@ -477,14 +477,14 @@ export default {
xAxis: {
type: 'category',
data: groups,
axisLine: { lineStyle: { color: '#fff' } },
axisLine: { lineStyle: { color: '#fff' }},
axisLabel: { color: '#fff', rotate: 30 }
},
yAxis: {
type: 'value',
axisLine: { lineStyle: { color: '#fff' } },
axisLine: { lineStyle: { color: '#fff' }},
axisLabel: { color: '#fff' },
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' }}
},
series: [
{
@@ -524,14 +524,14 @@ export default {
},
xAxis: {
type: 'value',
axisLine: { lineStyle: { color: '#fff' } },
axisLine: { lineStyle: { color: '#fff' }},
axisLabel: { color: '#fff' },
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' }}
},
yAxis: {
type: 'category',
data: materials,
axisLine: { lineStyle: { color: '#fff' } },
axisLine: { lineStyle: { color: '#fff' }},
axisLabel: { color: '#fff' }
},
series: [
@@ -642,7 +642,7 @@ export default {
}
.center-left {
flex: 0 0 50%;
flex: 0 0 100%;
display: flex;
flex-direction: column;
gap: 20px;
@@ -747,7 +747,7 @@ export default {
.agv-icon {
flex: 0 0 40px;
.agv-img {
width: 40px;
height: 25px;