add:增加看板及报表
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!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">
|
<select id="queryConsumeReport" resultType="org.nl.wms.biBoard.consumptionReport.dto.ConsumeReportDto">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!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">
|
<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),
|
component: (resolve) => require(['@/views/features/404'], resolve),
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/screen/fullscreen',
|
||||||
|
meta: { title: '智慧看板', noCache: true },
|
||||||
|
component: (resolve) => require(['@/views/wms/biBoard/screen/index'], resolve),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/401',
|
path: '/401',
|
||||||
component: (resolve) => require(['@/views/features/401'], resolve),
|
component: (resolve) => require(['@/views/features/401'], resolve),
|
||||||
|
|||||||
@@ -36,12 +36,12 @@
|
|||||||
|
|
||||||
<div class="panel-title">焊材库存占比</div>
|
<div class="panel-title">焊材库存占比</div>
|
||||||
<div class="chart-container">
|
<div class="chart-container">
|
||||||
<div id="structChart" style="width: 100%; height: 280px;"></div>
|
<div id="structChart" style="width: 100%; height: 280px;" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-title">焊材领料Top5</div>
|
<div class="panel-title">焊材领料Top5</div>
|
||||||
<div class="chart-container">
|
<div class="chart-container">
|
||||||
<div id="materialTop5Chart" style="width: 100%; height: 300px;"></div>
|
<div id="materialTop5Chart" style="width: 100%; height: 300px;" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
<!-- 温湿度监控 -->
|
<!-- 温湿度监控 -->
|
||||||
<div class="temp-monitor">
|
<div class="temp-monitor">
|
||||||
<div class="monitor-title">温湿度监控</div>
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
|
|
||||||
<div class="panel-title">班组焊材消耗</div>
|
<div class="panel-title">班组焊材消耗</div>
|
||||||
<div class="chart-container">
|
<div class="chart-container">
|
||||||
<div id="consumeChart" style="width: 100%; height: 250px;"></div>
|
<div id="consumeChart" style="width: 100%; height: 250px;" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-title">当日领退明细</div>
|
<div class="panel-title">当日领退明细</div>
|
||||||
@@ -162,32 +162,6 @@ export default {
|
|||||||
scrollIndex3: 0
|
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: {
|
computed: {
|
||||||
displayIosReportData() {
|
displayIosReportData() {
|
||||||
if (this.iosReportData.length <= 5) {
|
if (this.iosReportData.length <= 5) {
|
||||||
@@ -223,6 +197,32 @@ export default {
|
|||||||
return result
|
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: {
|
methods: {
|
||||||
updateTime() {
|
updateTime() {
|
||||||
const now = new Date()
|
const now = new Date()
|
||||||
@@ -394,16 +394,16 @@ export default {
|
|||||||
radius: ['40%', '70%'],
|
radius: ['40%', '70%'],
|
||||||
center: ['40%', '50%'],
|
center: ['40%', '50%'],
|
||||||
data: [
|
data: [
|
||||||
{ value: data.hasGoods || 0, name: '有货', itemStyle: { color: '#5470c6' } },
|
{ value: data.hasGoods || 0, name: '有货', itemStyle: { color: '#5470c6' }},
|
||||||
{ value: data.emptyBox || 0, name: '空料箱', itemStyle: { color: '#91cc75' } },
|
{ value: data.emptyBox || 0, name: '空料箱', itemStyle: { color: '#91cc75' }},
|
||||||
{ value: data.noGoods || 0, name: '无货', itemStyle: { color: '#fac858' } }
|
{ value: data.noGoods || 0, name: '无货', itemStyle: { color: '#fac858' }}
|
||||||
],
|
],
|
||||||
label: {
|
label: {
|
||||||
color: '#fff'
|
color: '#fff'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
}
|
||||||
|
|
||||||
chart.setOption(option)
|
chart.setOption(option)
|
||||||
},
|
},
|
||||||
@@ -428,14 +428,14 @@ export default {
|
|||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: times,
|
data: times,
|
||||||
axisLine: { lineStyle: { color: '#fff' } },
|
axisLine: { lineStyle: { color: '#fff' }},
|
||||||
axisLabel: { color: '#fff' }
|
axisLabel: { color: '#fff' }
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
axisLine: { lineStyle: { color: '#fff' } },
|
axisLine: { lineStyle: { color: '#fff' }},
|
||||||
axisLabel: { color: '#fff' },
|
axisLabel: { color: '#fff' },
|
||||||
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }
|
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' }}
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
@@ -477,14 +477,14 @@ export default {
|
|||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: groups,
|
data: groups,
|
||||||
axisLine: { lineStyle: { color: '#fff' } },
|
axisLine: { lineStyle: { color: '#fff' }},
|
||||||
axisLabel: { color: '#fff', rotate: 30 }
|
axisLabel: { color: '#fff', rotate: 30 }
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
axisLine: { lineStyle: { color: '#fff' } },
|
axisLine: { lineStyle: { color: '#fff' }},
|
||||||
axisLabel: { color: '#fff' },
|
axisLabel: { color: '#fff' },
|
||||||
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }
|
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' }}
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
@@ -524,14 +524,14 @@ export default {
|
|||||||
},
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'value',
|
type: 'value',
|
||||||
axisLine: { lineStyle: { color: '#fff' } },
|
axisLine: { lineStyle: { color: '#fff' }},
|
||||||
axisLabel: { color: '#fff' },
|
axisLabel: { color: '#fff' },
|
||||||
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' } }
|
splitLine: { lineStyle: { color: 'rgba(255,255,255,0.1)' }}
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: materials,
|
data: materials,
|
||||||
axisLine: { lineStyle: { color: '#fff' } },
|
axisLine: { lineStyle: { color: '#fff' }},
|
||||||
axisLabel: { color: '#fff' }
|
axisLabel: { color: '#fff' }
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
@@ -642,7 +642,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.center-left {
|
.center-left {
|
||||||
flex: 0 0 50%;
|
flex: 0 0 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
@@ -747,7 +747,7 @@ export default {
|
|||||||
|
|
||||||
.agv-icon {
|
.agv-icon {
|
||||||
flex: 0 0 40px;
|
flex: 0 0 40px;
|
||||||
|
|
||||||
.agv-img {
|
.agv-img {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
|
|||||||
Reference in New Issue
Block a user