add:增加看板及报表
This commit is contained in:
@@ -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">
|
||||
|
||||
@@ -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 |
@@ -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),
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user