diff --git a/hw-ui/src/api/board/fifthFloorWarehouse.js b/hw-ui/src/api/board/fifthFloorWarehouse.js index 90871699..af6dae95 100644 --- a/hw-ui/src/api/board/fifthFloorWarehouse.js +++ b/hw-ui/src/api/board/fifthFloorWarehouse.js @@ -15,3 +15,12 @@ export function fifthPanake(query) { params: query }) } + + +export function agvStatus(query) { + return request({ + url: '/wms/FifthWmsBorder/agvStatus', + method: 'get', + params: query + }) +} diff --git a/hw-ui/src/views/board/warehouse/fifthFloor.vue b/hw-ui/src/views/board/warehouse/fifthFloor.vue index 34a9ba64..09f8acfe 100644 --- a/hw-ui/src/views/board/warehouse/fifthFloor.vue +++ b/hw-ui/src/views/board/warehouse/fifthFloor.vue @@ -21,6 +21,30 @@ +
+
+ agv1 + 充电 + 待机 + 运行 + 故障 +
+
+ agv2 + 充电 + 待机 + 运行 + 故障 +
+
+ agv3 + 充电 + 待机 + 运行 + 故障 +
+
+
{{ topData.rawInStock[0] }}
{{ topData.rawInStock[1] }}
{{ topData.rawInStock[2] }}
@@ -57,7 +81,7 @@ import vueSeamlessScroll from 'vue-seamless-scroll' import Chart from '@/components/board/Chart' import HighChart from '@/components/board/HighChart' import * as echarts from 'echarts' -import { fifthPanake, locationCount } from '@/api/board/fifthFloorWarehouse' +import { agvStatus, fifthPanake, locationCount } from '@/api/board/fifthFloorWarehouse' const vw = (document.documentElement.clientWidth || document.body.clientWidth) / 100 export default { @@ -76,6 +100,7 @@ export default { rawInStock: [0, 0, 0, 0], rawOutStock: [0, 0, 0, 0] }, + AGVData:[], title: [ '原料库入库数量:', '成品入库数量:', @@ -124,6 +149,10 @@ export default { }, methods: { getData() { + agvStatus().then(e=>{ + console.log(e) + this.AGVData = e.data + }) locationCount().then(e => { this.topData.furawInStock = [...[0, 0, 0, 0], ...(e.data.furawInStock || 0).toString().split('')].slice(-4) this.topData.productInStock = [...[0, 0, 0, 0], ...(e.data.productInStock || 0).toString().split('')].slice(-4) @@ -139,9 +168,9 @@ export default { color: '#fff' } }, - tooltip:{ + tooltip: { pointFormatter: function() { - return '占比:'+ this.options.y + '%' + return '占比:' + this.options.y + '%' } }, credits: { @@ -213,12 +242,12 @@ export default { { 'name': '空料箱', y: parseFloat((e.data.emptyLocationPercentage * 100).toFixed(2)), - h: Math.min(parseFloat((e.data.emptyLocationPercentage * 100).toFixed(2)),50) + h: Math.min(parseFloat((e.data.emptyLocationPercentage * 100).toFixed(2)), 50) }, { name: '非空料箱', y: parseFloat(((1 - e.data.emptyLocationPercentage) * 100).toFixed(2)), - h: Math.min(parseFloat(((1 - e.data.emptyLocationPercentage) * 100).toFixed(2)),50) + h: Math.min(parseFloat(((1 - e.data.emptyLocationPercentage) * 100).toFixed(2)), 50) } ].sort((a, b) => a.y - b.y) }] @@ -230,9 +259,9 @@ export default { color: '#fff' } }, - tooltip:{ + tooltip: { pointFormatter: function() { - return '占比:'+ this.options.y + '%' + return '占比:' + this.options.y + '%' } }, credits: { @@ -305,12 +334,12 @@ export default { { 'name': '在库内', y: parseFloat((e.data.opplyLocationPercentage * 100).toFixed(2)), - h: Math.min(parseFloat((e.data.opplyLocationPercentage * 100).toFixed(2)),50) + h: Math.min(parseFloat((e.data.opplyLocationPercentage * 100).toFixed(2)), 50) }, { name: '在库外', y: parseFloat(((1 - e.data.opplyLocationPercentage) * 100).toFixed(2)), - h: Math.min(parseFloat(((1 - e.data.opplyLocationPercentage) * 100).toFixed(2)),50) + h: Math.min(parseFloat(((1 - e.data.opplyLocationPercentage) * 100).toFixed(2)), 50) } ].sort((a, b) => a.y - b.y) }] @@ -324,9 +353,9 @@ export default { color: '#fff' } }, - tooltip:{ + tooltip: { pointFormatter: function() { - return '占比:'+ this.options.y + '%' +'
'+'数量:' + this.options.z + return '占比:' + this.options.y + '%' + '
' + '数量:' + this.options.z } }, credits: { @@ -398,9 +427,9 @@ export default { data: e.data.wmsRawStocks.map(v => { return { name: v.materialName, - z:v.totalAmount, - y: parseFloat(((v.totalAmount/total)*100).toFixed(1)), - h: Math.min(parseFloat(((v.totalAmount / total) * 100).toFixed(2)),50) + z: v.totalAmount, + y: parseFloat(((v.totalAmount / total) * 100).toFixed(1)), + h: Math.min(parseFloat(((v.totalAmount / total) * 100).toFixed(2)), 50) } }) }] @@ -413,9 +442,9 @@ export default { color: '#fff' } }, - tooltip:{ + tooltip: { pointFormatter: function() { - return '占比:'+ this.options.y + '%' +'
'+'数量:' + this.options.z + return '占比:' + this.options.y + '%' + '
' + '数量:' + this.options.z } }, credits: { @@ -488,8 +517,8 @@ export default { return { name: v.materialName, z: v.totalAmount, - y: parseFloat(((v.totalAmount/total1)*100).toFixed(1)), - h: Math.min(parseFloat(((v.totalAmount / total1) * 100).toFixed(2)),50) + y: parseFloat(((v.totalAmount / total1) * 100).toFixed(1)), + h: Math.min(parseFloat(((v.totalAmount / total1) * 100).toFixed(2)), 50) } }) }] @@ -590,15 +619,38 @@ export default { position: absolute; transform: translate(-50%, -50%); } -.img{ + +.img { background-image: url("../../../assets/board/warehouse.png"); background-repeat: no-repeat; background-size: 100% 100%; position: absolute; - top: 59%; + top: 48%; left: 73.5%; width: 33%; height: 24.63vw; - transform: translate(-50%,-50%); + transform: translate(-50%, -50%); +} + +.agvData { + position: absolute; + bottom: 8%; + left: 73.5%; + height: 10vw; + transform: translateX(-50%); + color: #fff; +} +/deep/.el-button{ + background:#0000; + color: #fff; +} +/deep/.el-button--success{ + background-color: #13ce66; +} +/deep/.el-button--danger{ + background-color: #ff4949; +} +/deep/.el-button--primary{ + background-color: #1890ff; }