|
|
|
@ -8,13 +8,13 @@
|
|
|
|
|
<div class="card-footer-item">
|
|
|
|
|
<div class="footer-title">数量</div>
|
|
|
|
|
<div class="footer-detail">
|
|
|
|
|
<dv-digital-flop :config="card.total" style="width:70%;height:35px;" />张
|
|
|
|
|
<dv-digital-flop v-if="show" :config="card.total" style="width:70%;height:35px;" />张
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="card-footer-item">
|
|
|
|
|
<div class="footer-title">重量</div>
|
|
|
|
|
<div class="footer-detail">
|
|
|
|
|
<dv-digital-flop :config="card.num" style="width:70%;height:35px;" />吨
|
|
|
|
|
<dv-digital-flop v-if="show" :config="card.num" style="width:70%;height:35px;" />吨
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@ -24,22 +24,39 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import {getGkjhwcqk} from "@/api/kban";
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
name:'MainGxChanLiang',
|
|
|
|
|
data(){
|
|
|
|
|
return {
|
|
|
|
|
cards:[]
|
|
|
|
|
show:false,
|
|
|
|
|
cards:[],
|
|
|
|
|
delay:null,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted () {
|
|
|
|
|
this.getData()
|
|
|
|
|
this.delay=setInterval(this.getData, 30000)
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
createData () {
|
|
|
|
|
const { randomExtend } = this
|
|
|
|
|
|
|
|
|
|
const arr=['上料','抛丸','理料','划线','切割']
|
|
|
|
|
this.cards = new Array(5).fill(0).map((foo, i) => ({
|
|
|
|
|
title: arr[i],
|
|
|
|
|
async getData() {
|
|
|
|
|
const res=await getGkjhwcqk()
|
|
|
|
|
const {上料, 抛丸, 理料, 划线, 切割} = this.createData(res.data)
|
|
|
|
|
this.show = false
|
|
|
|
|
this.cards = [上料, 抛丸, 理料, 划线, 切割]
|
|
|
|
|
this.show = true
|
|
|
|
|
},
|
|
|
|
|
clear(){
|
|
|
|
|
console.log("本月计划完成情况停止加载数据")
|
|
|
|
|
clearInterval(this.delay)
|
|
|
|
|
},
|
|
|
|
|
createData (list) {
|
|
|
|
|
const data={
|
|
|
|
|
"上料": {
|
|
|
|
|
title: '上料',
|
|
|
|
|
total: {
|
|
|
|
|
number: [randomExtend(100, 400)],
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
@ -48,7 +65,7 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
num: {
|
|
|
|
|
number: [randomExtend(300, 600)],
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
@ -65,7 +82,7 @@ export default {
|
|
|
|
|
arcLineWidth: 13,
|
|
|
|
|
radius: '80%',
|
|
|
|
|
data: [
|
|
|
|
|
{ name: '重量占比', value: randomExtend(40, 60) }
|
|
|
|
|
{ name: '重量占比', value: 0 }
|
|
|
|
|
],
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: false
|
|
|
|
@ -93,23 +110,287 @@ export default {
|
|
|
|
|
],
|
|
|
|
|
color: ['#03d3ec']
|
|
|
|
|
}
|
|
|
|
|
}))
|
|
|
|
|
},
|
|
|
|
|
randomExtend (minNum, maxNum) {
|
|
|
|
|
if (arguments.length === 1) {
|
|
|
|
|
return parseInt(Math.random() * minNum + 1, 10)
|
|
|
|
|
} else {
|
|
|
|
|
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10)
|
|
|
|
|
"抛丸": {
|
|
|
|
|
title: '抛丸',
|
|
|
|
|
total: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#ea6027',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
num: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#26fcd8',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted () {
|
|
|
|
|
const { createData } = this
|
|
|
|
|
|
|
|
|
|
createData()
|
|
|
|
|
ring: {
|
|
|
|
|
series: [
|
|
|
|
|
{
|
|
|
|
|
type: 'gauge',
|
|
|
|
|
startAngle: -Math.PI / 2,
|
|
|
|
|
endAngle: Math.PI * 1.5,
|
|
|
|
|
arcLineWidth: 13,
|
|
|
|
|
radius: '80%',
|
|
|
|
|
data: [
|
|
|
|
|
{ name: '重量占比', value: 0 }
|
|
|
|
|
],
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
pointer: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
backgroundArc: {
|
|
|
|
|
style: {
|
|
|
|
|
stroke: '#224590'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
details: {
|
|
|
|
|
show: true,
|
|
|
|
|
formatter: '重量占比{value}%',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#1ed3e5',
|
|
|
|
|
fontSize: 20
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
color: ['#03d3ec']
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"理料": {
|
|
|
|
|
title: '理料',
|
|
|
|
|
total: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#ea6027',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
num: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#26fcd8',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ring: {
|
|
|
|
|
series: [
|
|
|
|
|
{
|
|
|
|
|
type: 'gauge',
|
|
|
|
|
startAngle: -Math.PI / 2,
|
|
|
|
|
endAngle: Math.PI * 1.5,
|
|
|
|
|
arcLineWidth: 13,
|
|
|
|
|
radius: '80%',
|
|
|
|
|
data: [
|
|
|
|
|
{ name: '重量占比', value: 0 }
|
|
|
|
|
],
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
pointer: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
backgroundArc: {
|
|
|
|
|
style: {
|
|
|
|
|
stroke: '#224590'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
details: {
|
|
|
|
|
show: true,
|
|
|
|
|
formatter: '重量占比{value}%',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#1ed3e5',
|
|
|
|
|
fontSize: 20
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
color: ['#03d3ec']
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"划线": {
|
|
|
|
|
title: '划线',
|
|
|
|
|
total: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#ea6027',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
num: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#26fcd8',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ring: {
|
|
|
|
|
series: [
|
|
|
|
|
{
|
|
|
|
|
type: 'gauge',
|
|
|
|
|
startAngle: -Math.PI / 2,
|
|
|
|
|
endAngle: Math.PI * 1.5,
|
|
|
|
|
arcLineWidth: 13,
|
|
|
|
|
radius: '80%',
|
|
|
|
|
data: [
|
|
|
|
|
{ name: '重量占比', value: 0 }
|
|
|
|
|
],
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
pointer: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
backgroundArc: {
|
|
|
|
|
style: {
|
|
|
|
|
stroke: '#224590'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
details: {
|
|
|
|
|
show: true,
|
|
|
|
|
formatter: '重量占比{value}%',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#1ed3e5',
|
|
|
|
|
fontSize: 20
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
color: ['#03d3ec']
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"切割": {
|
|
|
|
|
title: '切割',
|
|
|
|
|
total: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#ea6027',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
num: {
|
|
|
|
|
number: [0],
|
|
|
|
|
content: '{nt}',
|
|
|
|
|
textAlign: 'right',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#26fcd8',
|
|
|
|
|
fontWeight: 'bold'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ring: {
|
|
|
|
|
series: [
|
|
|
|
|
{
|
|
|
|
|
type: 'gauge',
|
|
|
|
|
startAngle: -Math.PI / 2,
|
|
|
|
|
endAngle: Math.PI * 1.5,
|
|
|
|
|
arcLineWidth: 13,
|
|
|
|
|
radius: '80%',
|
|
|
|
|
data: [
|
|
|
|
|
{ name: '重量占比', value: 0 }
|
|
|
|
|
],
|
|
|
|
|
axisLabel: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
axisTick: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
pointer: {
|
|
|
|
|
show: false
|
|
|
|
|
},
|
|
|
|
|
backgroundArc: {
|
|
|
|
|
style: {
|
|
|
|
|
stroke: '#224590'
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
details: {
|
|
|
|
|
show: true,
|
|
|
|
|
formatter: '重量占比{value}%',
|
|
|
|
|
style: {
|
|
|
|
|
fill: '#1ed3e5',
|
|
|
|
|
fontSize: 20
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
color: ['#03d3ec']
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setInterval(this.createData, 30000)
|
|
|
|
|
let totalZl=0
|
|
|
|
|
for (const item of list) {
|
|
|
|
|
totalZl+=(item.bcshzl/1000)||0
|
|
|
|
|
if (!!item.slfkrq){
|
|
|
|
|
data.上料.total.number[0]+=1
|
|
|
|
|
data.上料.num.number[0]+=(item.bcshzl/1000)||0
|
|
|
|
|
}
|
|
|
|
|
if (!!item.pwfkrq){
|
|
|
|
|
data.抛丸.total.number[0]+=1
|
|
|
|
|
data.抛丸.num.number[0]+=(item.bcshzl/1000)||0
|
|
|
|
|
}
|
|
|
|
|
if (!!item.llfkrq){
|
|
|
|
|
data.理料.total.number[0]+=1
|
|
|
|
|
data.理料.num.number[0]+=(item.bcshzl/1000)||0
|
|
|
|
|
}
|
|
|
|
|
if (!!item.hxfkrq){
|
|
|
|
|
data.划线.total.number[0]+=1
|
|
|
|
|
data.划线.num.number[0]+=(item.bcshzl/1000)||0
|
|
|
|
|
}
|
|
|
|
|
if (!!item.qgfkrq){
|
|
|
|
|
data.切割.total.number[0]+=1
|
|
|
|
|
data.切割.num.number[0]+=(item.bcshzl/1000)||0
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
let d1=data.上料.num.number[0]/totalZl*100
|
|
|
|
|
d1=d1<1?1:d1
|
|
|
|
|
data.上料.ring.series[0].data[0].value=parseFloat(d1.toFixed(2))
|
|
|
|
|
|
|
|
|
|
let d2=data.上料.num.number[0]/totalZl*100
|
|
|
|
|
d2=d2<1?1:d2
|
|
|
|
|
data.抛丸.ring.series[0].data[0].value=parseFloat(d2.toFixed(2))
|
|
|
|
|
|
|
|
|
|
let d3=data.上料.num.number[0]/totalZl*100
|
|
|
|
|
d3=d3<1?1:d3
|
|
|
|
|
data.理料.ring.series[0].data[0].value=parseFloat(d3.toFixed(2))
|
|
|
|
|
|
|
|
|
|
let d4=data.上料.num.number[0]/totalZl*100
|
|
|
|
|
d4=d4<1?1:d4
|
|
|
|
|
data.划线.ring.series[0].data[0].value=parseFloat(d4.toFixed(2))
|
|
|
|
|
|
|
|
|
|
let d5=data.上料.num.number[0]/totalZl*100
|
|
|
|
|
d5=d5<1?1:d5
|
|
|
|
|
data.切割.ring.series[0].data[0].value=parseFloat(d5.toFixed(2))
|
|
|
|
|
return data
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|