Files
screenkb-gaoce/src/pages/modules/InStore.vue
2024-04-29 16:03:47 +08:00

507 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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 class="three_w_item">
<vue-seamless-scroll :data="kc.list" :class-option="defaultOption1">
<ul class="scroll-ul_1">
<li v-for="(e, i) in kc.list" :key="i">
<span class="scroll_th">名称:</span>
<span>{{ e.name }}</span>
<span class="scroll_th">数量:</span>
<span>{{ e.number }} </span>
<!-- <span class="scroll_th">占比:</span>
<span>{{ Number(e.number) / total }}</span> -->
</li>
</ul>
</vue-seamless-scroll>
</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 style="width: 7%;">序号</li>
<li style="width: 17%;">托盘号</li>
<li style="width: 17%;">物料编码</li>
<li>名称</li>
<!-- <li>数量()</li> -->
<li style="width: 13%;">重量(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" style="width: 7%;">{{i + 1}}</div>
<div class="scroll-ul_2_div" style="width: 17%;">{{e.palletSN}}</div>
<div class="scroll-ul_2_div" style="width: 17%;">{{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" style="width: 13%;">{{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 style="width: 7%;">序号</li>
<li style="width: 17%;">托盘号</li>
<li style="width: 17%;">物料编码</li>
<li>名称</li>
<!-- <li>数量()</li> -->
<li style="width: 13%;">重量(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" style="width: 7%;">{{i + 1}}</div>
<div class="scroll-ul_2_div" style="width: 17%;">{{e.palletSN}}</div>
<div class="scroll-ul_2_div" style="width: 17%;">{{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" style="width: 13%;">{{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: {},
total: 0,
resData: {},
myCharts01: ''
}
},
computed: {
defaultOption1 () {
return {
timer1: null,
timer2: null,
step: 0.4, // 数值越大速度滚动越快
limitMoveNum: 8, // 开始无缝滚动的数据量 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)
}
},
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.kc.list.map(el => {
this.total += Number(el.number)
if (this.total > 0) {
el.zhanbi = Number(el.number) / this.total
}
})
},
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
position: fixed;
bottom: 0;
_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 23%
_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(23%, 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.61
.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
.three_w_item
// _wh(calc(50% - 15px), 100%)
width 100%
// height 200px
background-image linear-gradient(to bottom, #040b1a, #050919)
overflow hidden
&:first-child
margin-right 30px
.three_w_item
.scroll-ul_1
li
line-height 26px
span
font-size 12px
</style>