Files
screenkb-gaoce/src/pages/modules/InStore.vue
2024-04-24 18:00:17 +08:00

457 lines
14 KiB
Vue

<template>
<section class="bg">
<t-header title="宜宾高测原料入库看板">
</t-header>
<div class="container">
<div class="sec sec1">
<div class="four_wrap">
<div class="item_tip item_tip_bg_l">
<div class="item_tip_left">库存情况</div>
</div>
<div class="item_content con01">
<div class="lbox">
<div id="echart_d01" style="width: 100%; height: 100%"></div>
</div>
<div class="rbox">
<div class="rbox-con">
<div class="title">总库存</div>
<div class="desc"><span>{{ kc.sum }}</span><span></span></div>
<div class="desc"><span>{{ kc.weight }}</span><span></span></div>
</div>
<div class="rbox-con">
<div class="title">待入库存</div>
<div class="desc"><span>{{ kc.pendSum }}</span><span></span></div>
<div class="desc"><span>{{ kc.pendWeight }}</span><span></span></div>
</div>
</div>
</div>
</div>
<div class="four_wrap">
<div class="item_tip item_tip_bg_l">
<div class="item_tip_left">货位占用</div>
</div>
<div class="item_content con01">
<div class="lbox">
<div class="list-con" style="width: 100%; height: 100%;">
<div class="li">
<p class="li-left">货位数:<span>{{ hw.pointNumber }}</span></p>
<p class="li-right">已使用:<span>{{ hw.pointUsed }}</span></p>
</div>
<div class="li">
<p class="li-left">剩余数:<span>{{ hw.pointRemain }}</span></p>
</div>
<div class="li">
<p class="li-left">空托位数:<span>{{ hw.emptyNumber }}</span></p>
<p class="li-right">剩余:<span>{{ hw.emptyRemain }}</span></p>
</div>
<div class="li">
<p class="li-left">空托盘垛:<span>{{ hw.emptyUsed }}</span></p>
<p class="li-right">数量:<span>{{ hw.emptyQty }}</span></p>
</div>
</div>
</div>
<div class="rbox">
<div class="rbox-con">
<!-- <div class="title">总库存</div>
<div class="desc"><span>12000</span><span></span></div>
<div class="desc"><span>2000</span><span></span></div> -->
</div>
<div class="rbox-con">
<!-- <div class="title">待入库存</div>
<div class="desc"><span>2000</span><span></span></div>
<div class="desc"><span>50</span><span></span></div> -->
</div>
</div>
</div>
</div>
</div>
<div class="sec sec2">
<div class="four_wrap">
<div class="item_tip item_tip_bg_l">
<div class="item_tip_left">库内物料</div>
</div>
<div class="item_content">
<div class="scroll_wrap">
<ul class="scroll_tab_2">
<li>序号</li>
<li>托盘号</li>
<li>物料编码</li>
<li>名称</li>
<li>数量()</li>
<li>重量(kg)</li>
<li>供应商</li>
</ul>
<div class="scroll_container_2">
<vue-seamless-scroll :data="kn" :class-option="defaultOption2">
<ul class="scroll-ul_2">
<li v-for="(e, i) in kn" :key="i">
<div class="scroll-ul_2_div">{{i + 1}}</div>
<div class="scroll-ul_2_div">{{e.palletSN}}</div>
<div class="scroll-ul_2_div">{{e.productName}}</div>
<div class="scroll-ul_2_div">{{e.productDescription}}</div>
<div class="scroll-ul_2_div">{{e.qty}}</div>
<div class="scroll-ul_2_div">{{e.incomingWeight}}</div>
<div class="scroll-ul_2_div">{{e.supplierName}}</div>
</li>
</ul>
</vue-seamless-scroll>
</div>
</div>
</div>
</div>
<div class="four_wrap">
<div class="item_tip item_tip_bg_l">
<div class="item_tip_left">未入库物料</div>
</div>
<div class="item_content">
<div class="scroll_wrap">
<ul class="scroll_tab_2">
<li>序号</li>
<li>托盘号</li>
<li>物料编码</li>
<li>名称</li>
<li>数量()</li>
<li>重量(kg)</li>
<li>供应商</li>
</ul>
<div class="scroll_container_2">
<vue-seamless-scroll :data="wrk" :class-option="defaultOption2">
<ul class="scroll-ul_2">
<li v-for="(e, i) in wrk" :key="i">
<div class="scroll-ul_2_div">{{i + 1}}</div>
<div class="scroll-ul_2_div">{{e.palletSN}}</div>
<div class="scroll-ul_2_div">{{e.productName}}</div>
<div class="scroll-ul_2_div">{{e.productDescription}}</div>
<div class="scroll-ul_2_div">{{e.qty}}</div>
<div class="scroll-ul_2_div">{{e.incomingWeight}}</div>
<div class="scroll-ul_2_div">{{e.supplierName}}</div>
</li>
</ul>
</vue-seamless-scroll>
</div>
</div>
</div>
</div>
</div>
</div>
<section class="bottom"></section>
</section>
</template>
<script>
import THeader from '@components/header3.vue'
// import { rk } from '@js/getData1'
import {rk} from '@js/mork00.js'
export default {
name: 'InStore',
components: {
THeader
},
data () {
return {
timeOut: null,
interTime: this.$store.getters.setTime,
timer: null,
kn: [],
wrk: [],
kc: {},
hw: {},
resData: {},
myCharts01: ''
}
},
computed: {
defaultOption2 () {
return {
timer1: null,
timer2: null,
step: 0.4, // 数值越大速度滚动越快
limitMoveNum: 6, // 开始无缝滚动的数据量 this.dataList.length
hoverStop: true, // 是否开启鼠标悬停stop
direction: 1, // 0向下 1向上 2向左 3向右
openWatch: true, // 开启数据实时监控刷新dom
singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
waitTime: 1000 // 单步运动停止的时间(默认值1000ms)
}
}
},
mounted () {
this.initData()
this.refresh()
},
beforeDestroy () {
clearInterval(this.timer)
clearInterval(this.timeOut)
},
methods: {
refresh () {
this.timer = setInterval(() => {
this.initData()
}, this.interTime)
},
async initData () {
let res = await rk()
clearInterval(this.timeOut)
this.resData = res
this.kn = res.kn
this.wrk = res.wrk
this.kc = res.kc
this.hw = res.hw
this.setEchart01()
},
setEchart01 () {
// let data = [
// {
// value: 10,
// name: '1号砖'
// },
// {
// value: 20,
// name: '2号砖'
// },
// {
// value: 30,
// name: '3号砖'
// },
// {
// value: 40,
// name: '4号砖'
// },
// {
// value: 50,
// name: '5号砖'
// },
// {
// value: 60,
// name: '6号砖'
// }
// ]
let dataName = []
// this.resData.mixProduction.map(el => {
// dataName.push(el.name)
// })
// let data = this.resData.mixProduction
let data = []
this.kc.list.map(el => {
dataName.push(el.name)
data.push({
value: el.number + '',
name: el.name
})
})
var option = {
legend: {
// orient: 'vertical',
orient: 'horizontal',
top: '0%',
// right: 0,
textStyle: {
color: '#fff',
fontWeight: 'bold',
fontSize: 12
},
itemGap: 10.86,
itemWidth: 14.16,
itemHeight: 7.38,
data: dataName
// data: ['1号砖', '2号砖', '3号砖', '4号砖', '5号砖', '6号砖']
},
color: ['#0966E8', '#39E083', '#ffee0e', '#f975aa', '#32c5ff', '#f7b502'],
series: [
{
type: 'pie',
radius: ['43%', '70%'],
label: {
normal: {
show: true,
// position: 'inner',
formatter: '{d}%',
textStyle: {
color: '#fff',
fontWeight: 'bold',
fontSize: 12
}
}
},
labelLine: {
show: true
},
data: data
}
]
}
let echart = document.getElementById('echart_d01')
this.myCharts01 = this.$echarts.init(echart)
this.myCharts01.setOption(option)
window.addEventListener('resize', () => {
this.myCharts01.resize()
})
}
}
}
</script>
<style lang="stylus" scoped>
// @import '~@css/mixin'
@import '../../css/mixin'
// @import '~@style/mixin'
.bg
_wh(100%, 100%)
overflow hidden
.container
display flex
align-items center
justify-content center
flex-direction column
// _wh(100%, calc(100% - 138px))
padding 30px 25.09px 0
overflow hidden
clear both
.sec
width 100%
height 50%
.sec1
display flex
justify-content space-between
.sec2
display flex
.bottom
_wh(100%, 38px)
// background center bottom / 1906px 100% url(../../images/screen1/bottom.png) no-repeat
background center bottom / 100% 100% url(../../images/screen1/bottom.png) no-repeat
.cblue
color #32C5FF !important
.cgreen
color #6ce64e !important
.cgray
color #516282 !important
.cyellow
color #E2BB0E !important
.corange
color #F96700 !important
.cred
color #FF0000 !important
.con01
width 48%
display flex
.lbox
width 75%
.rbox
width 25%
.rbox-con
// height 50%
.title
// font-size 32px
font-size 14px
background #548ddd
color #ffffff
text-indent 10px
.desc
font-size 14px
span
display inline-block
line-height 24px
&:nth-child(1)
width 80%
text-align left
color #f7b502
font-weight bold
text-indent 10px
&:nth-child(2)
width 20%
text-align center
color #ffffff
.four_wrap
// _wh(100%, calc(39% - 20px))
// margin-top 40px
height 88%
width 50%
padding 0 1%
.scroll-ul_1
width 100%
li
width 100%
line-height 40px
span
_font(16px, 1, #fff,,)
.scroll_th
color #2ef6ff
.item_tip
_wh(100%, 32px)
line-height 32px
padding 0 10px
.item_tip_bg_l
background center center / 100% 100% url(../../images/screen1/bg_title_j.png) no-repeat
.item_tip_left
_wh(60%, 100%)
font-family "SourceHanSansCN"
_font(14px, inherit, #fff, 700, left)
letter-spacing 2px
text-shadow 0 0 9px #159AFF
padding-left 34px
background center left / 22px 22px url(../../images/screen1/bg_title_tip.png) no-repeat
.item_content
_wh(100%, calc(100% - 37px))
margin-top 7px
margin-bottom 3px
.scroll_wrap
_wh(100%, 100%)
height 210px
border 1px solid rgba(8,205,248,0.3)
.scroll_tab_2
_wh(100%, 30px)
border-bottom 1px solid rgba(8,205,248,0.3)
li
float left
width 14%
_font(12px,30px,#78B1DE,,center)
word-wrap break-word
word-break break-all
white-space nowrap
padding 0 2px
overflow hidden
box-sizing border-box
.scroll_container_2
width 100%
// height calc(100% - 40px)
// height 230px
overflow hidden
.scroll-ul_2
li
_wh(100%, 30px)
border-bottom 1px solid rgba(8,205,248,0.3)
&:nth-child(even)
background rgba(1,24,52,0.60)
box-shadow inset 0px 1px 0px 0px rgba(13,89,115,0.3)
.scroll-ul_2_div
float left
_wh(14%, 30px)
_fj(center)
_font(12px, 44px, #fff,,center)
word-wrap break-word
word-break break-all
white-space nowrap
padding 0 2px
overflow hidden
scale 0.8
.lbox
.list-con
.li
display flex
color #fff
font-weight bold
// font-size 36px
// line-height 100px
font-size 13px
line-height 34px
justify-content space-between
// padding 0 20px
padding 0 10px
span
color #f7b502
margin 0 20px
.li-right
margin-left 20px
</style>