507 lines
16 KiB
Vue
507 lines
16 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 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>
|