+
+
{{ i }}
+
-
-
人员{{ k }}
-
工序:切割
-
产品计划数量:10000
-
8888
-
88%
+
+
人员:{{ i.userName }}
+
工序:{{i.processName}}
+
产品计划数量:{{i.planAmount}}
+
{{i.completeAmount}}
+
{{i.processPercentage}}
-
+
@@ -30,19 +30,22 @@
-
-
-
10%
良率
+
+
+
{{ data1.passRate }}
良率
-
-
-
10%
不良率
+
+
+
{{ data1.failureRate }}
不良率
-
-
-
10%
物料利用率
+
+
+
{{ data1.availableRate }}
物料利用率
@@ -55,12 +58,9 @@ import vueSeamlessScroll from 'vue-seamless-scroll'
import Chart from '@/components/board/Chart'
import * as echarts from 'echarts'
import {
- deviceTimeCount,
- dustAnalysis,
- getDayProduction,
- getHourProduction, getLineStatus, selectLatestWorkOrder,
- workOrderProgress
-} from '@/api/board/secondFloorProduction'
+ energyFourthFloorData, getLatestProductOrderWithPlans, getQualityAndAvailablePercentage
+
+} from '@/api/board/fourthFloorProduction'
import { parseTime } from '@/utils/ruoyi'
const vw = (document.documentElement.clientWidth || document.body.clientWidth) / 100
@@ -72,7 +72,7 @@ export default {
},
data() {
return {
- vw:(window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth)/100,
+ vw: (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) / 100,
LineStatus: true,
topData: {
planAmount: [0, 0, 0, 0],
@@ -93,15 +93,15 @@ export default {
],
titlePosition: [
{
- top: 11.3,
+ top: 11.8,
left: 5.5
},
{
- top: 11.3,
- left: 75
+ top: 11.8,
+ left: 68.4
},
{
- top: 70.3,
+ top: 60,
left: 5.5
},
{
@@ -113,11 +113,11 @@ export default {
left: 75
},
{
- top: 11.3,
+ top: 11.8,
left: 30.5
},
{
- top: 11.3,
+ top: 11.8,
left: 45
},
{
@@ -139,7 +139,14 @@ export default {
singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
waitTime: 0
},
- scrollTableData: []
+
+ scrollTableData: [],
+ data1: {
+ "passRate": "99.7%",
+ "failureRate": "0.3%",
+ "availableRate": "98.6%"
+ }
+
}
},
mounted() {
@@ -156,287 +163,264 @@ export default {
},
methods: {
getData() {
- workOrderProgress().then(e => {
- this.scrollTableData = e.data.map((v, k) => {
- return {
- no: k + 1,
- orderCode: v.orderCode,
- planAmount: v.planAmount,
- completeAmount: v.completeAmount,
- quantityAmount: parseFloat(v.planAmount) - parseFloat(v.completeAmount),
- finishingRate: parseFloat(v.completeAmount) === 0 ? 0 : (parseFloat(v.completeAmount) / parseFloat(v.completeAmount)) * 100
- }
+ energyFourthFloorData().then(e=>{
+ this.$refs.chart5.setData({
+ // color: ["#EAEA26", "#906BF9", "#FE5656", "#01E17E", "#3DD1F9", "#FFAD05"],
+ grid: {
+ left: -100,
+ top: 50,
+ bottom: 10,
+ right: 10,
+ containLabel: true,
+ },
+ tooltip: {
+ trigger: "item",
+ formatter: "{b} : {c} ({d}%)",
+ },
+ legend: {
+ type: "scroll",
+ orient: "vartical",
+ // x: "right",
+ top: "center",
+ right: "15",
+ // bottom: "0%",
+ itemWidth: 16,
+ itemHeight: 8,
+ itemGap: 16,
+ textStyle: {
+ color: "#A3E2F4",
+ fontSize: 12,
+ fontWeight: 0,
+ },
+ },
+ polar: {},
+ angleAxis: {
+ interval: 1,
+ type: "category",
+ data: [],
+ z: 10,
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#0B4A6B",
+ width: 1,
+ type: "solid",
+ },
+ },
+ axisLabel: {
+ interval: 0,
+ show: true,
+ color: "#0B4A6B",
+ margin: 8,
+ fontSize: 16,
+ },
+ },
+ radiusAxis: {
+ min: 40,
+ max: 120,
+ interval: 20,
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#0B3E5E",
+ width: 1,
+ type: "solid",
+ },
+ },
+ axisLabel: {
+ formatter: "{value} %",
+ show: false,
+ padding: [0, 0, 20, 0],
+ color: "#0B3E5E",
+ fontSize: 16,
+ },
+ splitLine: {
+ lineStyle: {
+ color: "#0B3E5E",
+ width: 2,
+ type: "solid",
+ },
+ },
+ },
+ calculable: true,
+ series: [
+ {
+ stack: "a",
+ type: "pie",
+ radius: ["20%", "80%"],
+ roseType: "area",
+ zlevel: 10,
+ label: {
+ normal: {
+ show: true,
+ formatter: "{c}",
+ textStyle: {
+ fontSize: 12,
+ },
+ position: "outside",
+ },
+ emphasis: {
+ show: true,
+ },
+ },
+ labelLine: {
+ normal: {
+ show: true,
+ length: 20,
+ length2: 55,
+ },
+ emphasis: {
+ show: false,
+ },
+ },
+ data: e.rows.map(v=>{
+ return {
+ value: v.meterValue,
+ name: v.monitorName,
+ }
+ })
+ },
+ ],
})
})
- this.$refs.chart1.setData({
- tooltip: {},
- radar: {
- indicator: [
- { name: '打磨', max: 6500 },
- { name: '折弯', max: 16000 },
- { name: '组装', max: 30000 },
- { name: '下料', max: 38000 },
- { name: '机加', max: 52000 },
- { name: '1', max: 25000 }
- ]
- },
- series: [
- {
- name: '时间',
- type: 'radar',
- // areaStyle: {normal: {}},
- data: [
- {
- value: [4300, 10000, 28000, 35000, 50000, 19000],
- name: '时间'
+ getLatestProductOrderWithPlans().then(e=>{
+ this.scrollTableData = e.data.mesProductPlanList
+ this.$refs.chart1.setData({
+ tooltip: {},
+ radar: {
+ indicator: e.data.baseProcessInfoList.map(e => {
+ return {
+ name: e.processName,
+ max: 100
}
- ]
- }
- ]
- })
- this.$refs.chart3.setData({
- tooltip: {
- trigger: 'item'
- },
- grid: {
- borderWidth: 0,
- top: '10%',
- left: '10%',
- right: '10%',
- bottom: '10%'
- },
- yAxis: {
- type: 'category',
- axisLabel: {
- margin: 10,
- color: '#ffffff63'
+ })
},
+ series: [
+ {
+ name: '时间',
+ type: 'radar',
+ // areaStyle: {normal: {}},
+ data: [
+ {
+ value: e.data.baseProcessInfoList.map(e => parseFloat(e.processPercentage)),
+ name: '时间'
+ }
+ ]
+ }
+ ]
+ })
+ let chartData=e.data
+ this.$refs.chart3.setData({
+ tooltip: {
+ trigger: 'item'
+ },
+ grid: {
+ borderWidth: 0,
+ top: '10%',
+ left: '10%',
+ right: '10%',
+ bottom: '10%'
+ },
+ yAxis: {
+ type: 'category',
+ axisLabel: {
+ margin: 10,
+ color: '#ffffff63'
+ },
- axisTick: {
- show: true,
- lineStyle: {
- color: '#ffffff1f'
+ axisTick: {
+ show: true,
+ lineStyle: {
+ color: '#ffffff1f'
+ }
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ type: 'dashed',
+ color: '#ffffff1f'
+ }
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff3',
+ width: 2
+ }
+ },
+ data: ['计划', '实际', '差异']
+ },
+ xAxis: {
+ type: 'value',
+ axisLabel: {
+ margin: 10,
+ color: '#ffffff63'
+ },
+ axisLine: {
+ show: false
+ },
+ axisTick: {
+ show: true,
+ lineStyle: {
+ color: '#ffffff1f'
+ }
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ type: 'dashed',
+ color: '#ffffff1f'
+ }
}
},
- splitLine: {
- show: true,
- lineStyle: {
- type: 'dashed',
- color: '#ffffff1f'
- }
- },
- axisLine: {
- lineStyle: {
- color: '#fff3',
- width: 2
- }
- },
- data: [1,2,3]
- },
- xAxis: {
- type: 'value',
- axisLabel: {
- margin: 10,
- color: '#ffffff63'
- },
- axisLine: {
- show: false
- },
- axisTick: {
- show: true,
- lineStyle: {
- color: '#ffffff1f'
- }
- },
- splitLine: {
- show: true,
- lineStyle: {
- type: 'dashed',
- color: '#ffffff1f'
- }
- }
- },
- series: [
- {
- name: '',
- type: 'bar',
- barMaxWidth: '40px',
- barWidth: '40%',
- itemStyle: {
+ series: [
+ {
+ name: '',
+ type: 'bar',
+ barMaxWidth: '40px',
+ barWidth: '40%',
+ itemStyle: {
- color: new echarts.graphic.LinearGradient(
- 0,
- 0,
- 1,
- 0,
- [
- {
- offset: 0,
- color: '#0a2ad7'
- },
- {
- offset: 1,
- color: '#138dd7'
- }
- ],
- false
- )
+ color: new echarts.graphic.LinearGradient(
+ 0,
+ 0,
+ 1,
+ 0,
+ [
+ {
+ offset: 0,
+ color: '#0a2ad7'
+ },
+ {
+ offset: 1,
+ color: '#138dd7'
+ }
+ ],
+ false
+ )
+ },
+ data: [chartData.planAmount, chartData.completeAmount, chartData.planAmount-chartData.completeAmount]
},
- data:[11,22,3]
- },
- {
- name: '',
- type: 'pictorialBar',
- barWidth: '40%',
- barMaxWidth: '40px',
- symbolSize: [5, '100%'],
- symbolPosition: 'end',
- symbolOffset: [3, 0],
- barGap: '-100%',
- itemStyle: {
- color: '#138dd7'
- },
- data:[11,22,3]
- }
- ]
+ {
+ name: '',
+ type: 'pictorialBar',
+ barWidth: '40%',
+ barMaxWidth: '40px',
+ symbolSize: [5, '100%'],
+ symbolPosition: 'end',
+ symbolOffset: [3, 0],
+ barGap: '-100%',
+ itemStyle: {
+ color: '#138dd7'
+ },
+ data: [chartData.planAmount, chartData.completeAmount, chartData.planAmount-chartData.completeAmount]
+ }
+ ]
+ })
+
})
- this.$refs.chart5.setData({
- color: ["#EAEA26", "#906BF9", "#FE5656", "#01E17E", "#3DD1F9", "#FFAD05"],
- grid: {
- left: -100,
- top: 50,
- bottom: 10,
- right: 10,
- containLabel: true,
- },
- tooltip: {
- trigger: "item",
- formatter: "{b} : {c} ({d}%)",
- },
- legend: {
- type: "scroll",
- orient: "vartical",
- // x: "right",
- top: "center",
- right: "15",
- // bottom: "0%",
- itemWidth: 16,
- itemHeight: 8,
- itemGap: 16,
- textStyle: {
- color: "#A3E2F4",
- fontSize: 12,
- fontWeight: 0,
- },
- },
- polar: {},
- angleAxis: {
- interval: 1,
- type: "category",
- data: [],
- z: 10,
- axisLine: {
- show: false,
- lineStyle: {
- color: "#0B4A6B",
- width: 1,
- type: "solid",
- },
- },
- axisLabel: {
- interval: 0,
- show: true,
- color: "#0B4A6B",
- margin: 8,
- fontSize: 16,
- },
- },
- radiusAxis: {
- min: 40,
- max: 120,
- interval: 20,
- axisLine: {
- show: false,
- lineStyle: {
- color: "#0B3E5E",
- width: 1,
- type: "solid",
- },
- },
- axisLabel: {
- formatter: "{value} %",
- show: false,
- padding: [0, 0, 20, 0],
- color: "#0B3E5E",
- fontSize: 16,
- },
- splitLine: {
- lineStyle: {
- color: "#0B3E5E",
- width: 2,
- type: "solid",
- },
- },
- },
- calculable: true,
- series: [
- {
- stack: "a",
- type: "pie",
- radius: ["20%", "80%"],
- roseType: "area",
- zlevel: 10,
- label: {
- normal: {
- show: true,
- formatter: "{c}",
- textStyle: {
- fontSize: 12,
- },
- position: "outside",
- },
- emphasis: {
- show: true,
- },
- },
- labelLine: {
- normal: {
- show: true,
- length: 20,
- length2: 55,
- },
- emphasis: {
- show: false,
- },
- },
- data: [
- {
- value: 10,
- name: "设备1",
- },
- {
- value: 5,
- name: "设备2",
- },
- {
- value: 15,
- name: "设备3",
- },
- {
- value: 25,
- name: "设备4",
- },
- {
- value: 20,
- name: "设备5",
- },
- {
- value: 35,
- name: "设备6",
- },
- ],
- },
- ],
+ getQualityAndAvailablePercentage().then(e=>{
+ console.log(e)
+ this.data1 = e.data
})
}
@@ -444,7 +428,6 @@ export default {
}
diff --git a/hw-ui/src/views/board/production/secondFloor.vue b/hw-ui/src/views/board/production/secondFloor.vue
index 68d3f1b4..27dc0d60 100644
--- a/hw-ui/src/views/board/production/secondFloor.vue
+++ b/hw-ui/src/views/board/production/secondFloor.vue
@@ -8,23 +8,26 @@
{{ i }}