干燥作业监控

This commit is contained in:
2024-04-26 13:12:02 +08:00
parent 6babf89e1b
commit 531846f0d1
6 changed files with 612 additions and 6 deletions

View File

@@ -23,4 +23,5 @@ For a detailed explanation on how things work, check out the [guide](http://vuej
# 注意事项 # 注意事项
+ 华弘大屏分辨率都为 1920 * 1200 + 华弘大屏分辨率都为 1920 * 1200
+ 看板分辨率为 1920 * 1080 + 看板分辨率为 1920 * 1080
+ 接口文档地址https://apifox.com/apidoc/shared-7fca569c-0233-402a-92da-74188764d4fc + 接口文档地址https://apifox.com/apidoc/shared-7fca569c-0233-402a-92da-74188764d4fc
+ https://apifox.com/apidoc/shared-7fca569c-0233-402a-92da-74188764d4fc/api-168547155

View File

@@ -7,3 +7,5 @@ export const inOutKilnDetail = () => post('api/cockpit/inOutKilnDetail', {})
export const kilnDetail = () => post('api/cockpit/kilnDetail', {}) export const kilnDetail = () => post('api/cockpit/kilnDetail', {})
// 大屏-两侧图表 // 大屏-两侧图表
export const screenTableData = () => post('api/cockpit/screenTableData', {}) export const screenTableData = () => post('api/cockpit/screenTableData', {})
// 窑看板
export const klineInfo = () => post('api/cockpit/klineInfo', {})

View File

@@ -2142,3 +2142,394 @@ export const screenTableData = () => {
} }
return res return res
} }
// 窑看板
export const klineInfo = () => {
let res = {
'outKilnInfoVos': [
{
'vehicleCode': '1026',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1008',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '0022',
'materialCode': 'ML-75B',
'materialModel': '18/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1063',
'materialCode': 'ML-75B',
'materialModel': '18/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '0019',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1035',
'materialCode': 'AP-55A',
'materialModel': '35/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '1062',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1023',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1027',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '0008',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '0045',
'materialCode': 'ML-75B',
'materialModel': '18/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1055',
'materialCode': 'MT-14A',
'materialModel': '20/40',
'materialSpec': 'BB'
},
{
'vehicleCode': '1147',
'materialCode': 'ML-75B',
'materialModel': '18/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '0039',
'materialCode': 'ML-75B',
'materialModel': '18/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1001',
'materialCode': 'MT-14BT',
'materialModel': '20/10',
'materialSpec': 'ZX'
},
{
'vehicleCode': '1064',
'materialCode': 'ML-70B',
'materialModel': '20/10',
'materialSpec': 'ZX'
},
{
'vehicleCode': '1028',
'materialCode': 'ML-60BT',
'materialModel': '18/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1029',
'materialCode': 'ML-14BT',
'materialModel': '20/10',
'materialSpec': 'ZX'
},
{
'vehicleCode': '1044',
'materialCode': 'ML-70B',
'materialModel': '20/30',
'materialSpec': 'ZX'
},
{
'vehicleCode': '1013',
'materialCode': 'ML-60BT',
'materialModel': '18/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1135',
'materialCode': 'ML-60BT',
'materialModel': '18/10',
'materialSpec': 'BB'
}
],
'inKilnInfoVos': [
{
'vehicleCode': '0009',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '0048',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '0024',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1046',
'materialCode': 'ML-75B',
'materialModel': '18/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1145',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '0016',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1085',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1801',
'materialCode': 'BP-65A',
'materialModel': '35/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '0036',
'materialCode': 'MT-14A',
'materialModel': '18/40',
'materialSpec': 'ZX'
},
{
'vehicleCode': '0018',
'materialCode': 'MT-14A',
'materialModel': '18/40',
'materialSpec': 'ZX'
},
{
'vehicleCode': '1098',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '0010',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1139',
'materialCode': 'ML-75B',
'materialModel': '18/30',
'materialSpec': 'BB'
}
],
'twoKilnInfoVos': [],
'oneKilnInfoVos': [
{
'vehicleCode': '0003',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1094',
'materialCode': 'ML-75B',
'materialModel': '18/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '0034',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1003',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1144',
'materialCode': 'BP-70A',
'materialModel': '40/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '1022',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1032',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '0026',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1066',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '1069',
'materialCode': 'BP-65A',
'materialModel': '35/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '1014',
'materialCode': 'BP-70A',
'materialModel': '40/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '1072',
'materialCode': 'MT-60AT',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1057',
'materialCode': 'ML-70BD',
'materialModel': '20/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '0049',
'materialCode': 'BP-65A',
'materialModel': '35/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '0032',
'materialCode': 'BP-70A',
'materialModel': '40/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '0027',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1065',
'materialCode': 'ML-70B',
'materialModel': '20/10',
'materialSpec': 'ZX'
},
{
'vehicleCode': '0038',
'materialCode': 'MT-14A',
'materialModel': '18/40',
'materialSpec': 'ZX'
},
{
'vehicleCode': '0006',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1038',
'materialCode': 'MT-14BT',
'materialModel': '20/10',
'materialSpec': 'ZX'
},
{
'vehicleCode': '0013',
'materialCode': 'ML-60BT',
'materialModel': '18/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1042',
'materialCode': 'ML-75B',
'materialModel': '18/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1138',
'materialCode': 'AP-70A',
'materialModel': '40/0',
'materialSpec': 'BD'
},
{
'vehicleCode': '1056',
'materialCode': 'ML-70BD',
'materialModel': '20/10',
'materialSpec': 'BB'
},
{
'vehicleCode': '1071',
'materialCode': 'ML-75B',
'materialModel': '18/30',
'materialSpec': 'BB'
},
{
'vehicleCode': '0040',
'materialCode': 'MT-14BT',
'materialModel': '20/10',
'materialSpec': 'ZX'
},
{
'vehicleCode': '1078',
'materialCode': 'MT-14BT',
'materialModel': '20/30',
'materialSpec': 'ZX'
},
{
'vehicleCode': '1041',
'materialCode': 'MT-14A',
'materialModel': '20/40',
'materialSpec': 'BB'
},
{
'vehicleCode': '1080',
'materialCode': 'ML-60BT',
'materialModel': '20/10',
'materialSpec': 'BB'
}
]
}
return res
}

View File

@@ -68,7 +68,7 @@ export default {
return { return {
loginname: '', loginname: '',
password: '', password: '',
options: [{value: '1', label: '大屏'}, {value: '2', label: '压制生产看板'}, {value: '3', label: '分拣作业监控'}], options: [{value: '1', label: '大屏'}, {value: '2', label: '压制生产看板'}, {value: '3', label: '分拣作业监控'}, {value: '4', label: '干燥作业监控'}],
value: this.$store.getters.equipId, value: this.$store.getters.equipId,
baseUrl: this.$store.getters.baseUrl, baseUrl: this.$store.getters.baseUrl,
setTime: this.$store.getters.setTime / 1000, setTime: this.$store.getters.setTime / 1000,
@@ -101,6 +101,8 @@ export default {
this.$router.push('/boardindex/pressprod') this.$router.push('/boardindex/pressprod')
} else if (this.value === '3') { } else if (this.value === '3') {
this.$router.push('/boardindex/sortwork') this.$router.push('/boardindex/sortwork')
} else if (this.value === '4') {
this.$router.push('/boardindex/drytask')
} }
let element = document.documentElement let element = document.documentElement
if (this.fullscreen) { if (this.fullscreen) {

View File

@@ -1,6 +1,211 @@
<template> <template>
<section class="bg"> <div class="dry_wraper">
<t-header title="压制生产看板"> <div class="dry_content">
</t-header> <div class="dry_item_wraper">
</section> <div class="dry_title">冷却输送线</div>
<div class="dry_item">
<div class="dry_hj dry_hj_1 fr" v-for="e in outKilnInfoVos" :key="e.vehicleCode" :style="e.active ? {'backgroundColor':'#653101'} : ''">
<div v-show="e.active" class="p1">{{ e.vehicleCode }}</div>
<div v-show="e.active" class="mater_info">
<div class="mater_p p2">{{e.materialCode}}</div>
<div class="mater_p p3">{{ e.materialModel }}</div>
<div class="mater_p p4">{{ e.materialSpec }}</div>
</div>
</div>
</div>
</div>
<div class="dry_item_line"></div>
<div class="dry_item_wraper">
<div class="dry_title">1号窑</div>
<div class="dry_item">
<div class="dry_hj fl" v-for="e in oneKilnInfoVos" :key="e.vehicleCode" :style="e.active ? {'backgroundColor':'#653101'} : ''">
<div v-show="e.active" class="p1">{{ e.vehicleCode }}</div>
<div v-show="e.active" class="mater_info">
<div class="mater_p p2">{{e.materialCode}}</div>
<div class="mater_p p3">{{ e.materialModel }}</div>
<div class="mater_p p4">{{ e.materialSpec }}</div>
</div>
</div>
</div>
</div>
<div class="dry_item_line"></div>
<div class="dry_item_wraper">
<div class="dry_title">2号窑</div>
<div class="dry_item">
<div class="dry_hj fl" v-for="e in twoKilnInfoVos" :key="e.vehicleCode" :style="e.active ? {'backgroundColor':'#653101'} : ''">
<div v-show="e.active" class="p1">{{ e.vehicleCode }}</div>
<div v-show="e.active" class="mater_info">
<div class="mater_p p2">{{e.materialCode}}</div>
<div class="mater_p p3">{{ e.materialModel }}</div>
<div class="mater_p p4">{{ e.materialSpec }}</div>
</div>
</div>
</div>
</div>
<div class="dry_item_line"></div>
<div class="dry_item_wraper">
<div class="dry_title">进窑输送线</div>
<div class="dry_item">
<div class="dry_hj dry_hj_1 fr" v-for="e in inKilnInfoVos" :key="e.vehicleCode" :style="e.active ? {'backgroundColor':'#653101'} : ''">
<div v-show="e.active" class="p1">{{ e.vehicleCode }}</div>
<div v-show="e.active" class="mater_info">
<div class="mater_p p2">{{e.materialCode}}</div>
<div class="mater_p p3">{{ e.materialModel }}</div>
<div class="mater_p p4">{{ e.materialSpec }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template> </template>
<script>
import { klineInfo } from '@js/getData2.js'
export default {
data () {
return {
interTime: this.$store.getters.setTime,
timer: null,
outKilnInfoVos: [], // 出窑缓存线信息
inKilnInfoVos: [], // 入窑缓存线
oneKilnInfoVos: [], // 窑1
twoKilnInfoVos: [] // 窑2
}
},
created () {
this._klineInfo()
this.refresh()
},
beforeDestroy () {
clearInterval(this.timer)
this.timer = null
},
destroyed () {
clearInterval(this.timer)
this.timer = null
},
methods: {
refresh () {
this.timer = setInterval(() => {
this._klineInfo()
}, this.interTime)
},
async _klineInfo () {
let res = await klineInfo()
this.outKilnInfoVos = [...res.outKilnInfoVos]
this.outKilnInfoVos.map(el => {
this.$set(el, 'active', true)
})
for (let i = this.outKilnInfoVos.length; i < 39; i++) {
this.outKilnInfoVos.push({vehicleCode: `out${i}`, active: false})
}
this.inKilnInfoVos = [...res.inKilnInfoVos]
this.inKilnInfoVos.map(el => {
this.$set(el, 'active', true)
})
for (let i = this.inKilnInfoVos.length; i < 40; i++) {
this.inKilnInfoVos.push({vehicleCode: `in${i}`, active: false})
}
this.oneKilnInfoVos = [...res.oneKilnInfoVos]
this.oneKilnInfoVos.map(el => {
this.$set(el, 'active', true)
})
for (let i = this.oneKilnInfoVos.length; i < 37; i++) {
this.oneKilnInfoVos.push({vehicleCode: `yao1${i}`, active: false})
}
this.twoKilnInfoVos = [...res.twoKilnInfoVos]
this.twoKilnInfoVos.map(el => {
this.$set(el, 'active', true)
})
for (let i = this.twoKilnInfoVos.length; i < 37; i++) {
this.twoKilnInfoVos.push({vehicleCode: `yao2${i}`, active: false})
}
}
}
}
</script>
<style lang="stylus" scoped>
@import '~@style/mixin'
.dry_wraper
position relative
border-left 4px solid #18537a
border-right 4px solid #18537a
_wh(100%, 100%)
// background-color #034c6d
background: -webkit-radial-gradient(closest-side circle,rgba(86, 188, 234, 50%) 25%, #034c6d 100%)
box-shadow inset 3px -6px 6px 0px rgba(0, 0, 0, 30%), inset -6px 3px 6px 0px rgba(0, 0, 0, 30%)
.dry_content
position relative
_wh(100%, 100%)
margin 0 auto
padding 24px 0
box-shadow inset 3px -6px 6px 0px rgba(0, 0, 0, 30%), inset -6px 3px 6px 0px rgba(0, 0, 0, 30%)
&:before
content ''
position absolute
top 0
left -4px
_wh(calc(100% + 4px), 20px)
border 2px solid #7d420b
background-color #653101
&:after
content ''
position absolute
bottom 0
left -4px
_wh(calc(100% + 4px), 20px)
border 2px solid #7d420b
background-color #653101
.dry_item_wraper
_wh(100%, calc((100% - 60px) / 4))
.dry_item_line
position relative
left -4px
_wh(calc(100% + 8px), 20px)
border 2px solid #7d420b
background-color #653101
.dry_title
font-size 24px
font-family: 'YouSheBiaoTiHei';
font-weight: 400;
color: transparent;
line-height 30px
background: linear-gradient(0deg, #F9FEFF 0%, #F5FCFF 53.3154296875%, #BAE9FF 100%);
-webkit-background-clip: text;
background-clip: text;
text-align: center;
.dry_item
clear both
_wh(100%, calc(100% - 30px))
padding 20px 10px
.dry_hj
_wh(2.5%, 100%)
background-color #02344d
border 2px solid #186189
border-right 0
&:last-child
border-right 2px solid #186189
.dry_hj_1
&:last-child
border-right 0
.p1
_font(14px, 30px, #73f440,,)
border-bottom 2px solid #186189
.mater_info
height calc(100% - 32px)
.mater_p
display flex
justify-content center
align-items center
width 100%
_font(12px, 13px, #fff,,center)
.p2
height 50%
// border-bottom 2px solid #186189
.p3
height 25%
// border-bottom 2px solid #186189
.p4
height 25%
</style>

View File

@@ -6,6 +6,7 @@ const home = r => require.ensure([], () => r(require('@page/modules/home/index')
const boardIndex = r => require.ensure([], () => r(require('@page/modules/board/index')), 'boardIndex') const boardIndex = r => require.ensure([], () => r(require('@page/modules/board/index')), 'boardIndex')
const PressProd = r => require.ensure([], () => r(require('@page/modules/board/PressProd')), 'PressProd') const PressProd = r => require.ensure([], () => r(require('@page/modules/board/PressProd')), 'PressProd')
const SortWorkMonitor = r => require.ensure([], () => r(require('@page/modules/board/SortWorkMonitor')), 'SortWorkMonitor') const SortWorkMonitor = r => require.ensure([], () => r(require('@page/modules/board/SortWorkMonitor')), 'SortWorkMonitor')
const DryTask = r => require.ensure([], () => r(require('@page/modules/board/DryTask')), 'DryTask')
Vue.use(Router) Vue.use(Router)
@@ -35,6 +36,10 @@ export default new Router({
path: 'sortwork', path: 'sortwork',
component: SortWorkMonitor, component: SortWorkMonitor,
meta: {title: '分拣作业监控'} meta: {title: '分拣作业监控'}
}, {
path: 'drytask',
component: DryTask,
meta: {title: '干燥作业监控'}
}] }]
} }
] ]