pressprod
109
src/components/header2.vue
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<template>
|
||||||
|
<header>
|
||||||
|
<p>{{title}}</p>
|
||||||
|
<div class="data_box clearfix">
|
||||||
|
<div class="date_item date">{{date}}</div>
|
||||||
|
<div class="date_item week">{{week}}</div>
|
||||||
|
<div class="date_item time clearfix">
|
||||||
|
<div class="tiem_item hours">{{hours}}</div>
|
||||||
|
<div class="colon">:</div>
|
||||||
|
<div class="tiem_item minutes">{{minutes}}</div>
|
||||||
|
<div class="colon">:</div>
|
||||||
|
<div class="tiem_item seconds">{{seconds}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<slot></slot>
|
||||||
|
</header>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'Header',
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
timer: null,
|
||||||
|
time: '',
|
||||||
|
hours: '',
|
||||||
|
minutes: '',
|
||||||
|
seconds: '',
|
||||||
|
date: '',
|
||||||
|
week: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
title: String
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.updateTime()
|
||||||
|
this.timer = window.setInterval(this.updateTime, 1000)
|
||||||
|
},
|
||||||
|
beforeDestroy () {
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
clearInterval(this.timer)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
updateTime () {
|
||||||
|
let cd = new Date()
|
||||||
|
let year = cd.getFullYear()
|
||||||
|
let month = cd.getMonth() + 1 < 10 ? '0' + (cd.getMonth() + 1) : cd.getMonth() + 1
|
||||||
|
let date = cd.getDate() < 10 ? '0' + cd.getDate() : cd.getDate()
|
||||||
|
let hh = cd.getHours() < 10 ? '0' + cd.getHours() : cd.getHours()
|
||||||
|
let mm = cd.getMinutes() < 10 ? '0' + cd.getMinutes() : cd.getMinutes()
|
||||||
|
let ss = cd.getSeconds() < 10 ? '0' + cd.getSeconds() : cd.getSeconds()
|
||||||
|
var weekday = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
|
||||||
|
let myddy = new Date().getDay()
|
||||||
|
let week = weekday[myddy]
|
||||||
|
this.time = `${hh}:${mm}:${ss}`
|
||||||
|
this.hours = `${hh}`
|
||||||
|
this.minutes = `${mm}`
|
||||||
|
this.seconds = `${ss}`
|
||||||
|
this.date = `${year}年${month}月${date}日`
|
||||||
|
this.week = `${week}`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="stylus" scoped>
|
||||||
|
@import '../css/mixin'
|
||||||
|
header
|
||||||
|
position relative
|
||||||
|
width 100%
|
||||||
|
// height 1rem
|
||||||
|
height 60px
|
||||||
|
position relative
|
||||||
|
background center center / 100% 100% url(../images/screen1/header.png) no-repeat
|
||||||
|
p
|
||||||
|
font-family "PangMenZhengDao"
|
||||||
|
_font(.4rem, 1rem, #ffffff, lighter, center)
|
||||||
|
font-size 28px
|
||||||
|
line-height 60px
|
||||||
|
font-weight bold
|
||||||
|
letter-spacing .05rem
|
||||||
|
text-shadow 0 .08rem .08rem rgba(0,0,0,0.30)
|
||||||
|
.data_box
|
||||||
|
position absolute
|
||||||
|
// right 0
|
||||||
|
right 20px
|
||||||
|
// top .14rem
|
||||||
|
top 1.3rem
|
||||||
|
height .37rem
|
||||||
|
.date, .week
|
||||||
|
padding-right .2rem
|
||||||
|
.time
|
||||||
|
// width 1.7rem
|
||||||
|
text-align center
|
||||||
|
.date_item
|
||||||
|
float left
|
||||||
|
_font(.2rem, .37rem, #fff,,)
|
||||||
|
font-size 20px
|
||||||
|
.tiem_item
|
||||||
|
float left
|
||||||
|
_font(.32rem, .37rem, #fff,,)
|
||||||
|
font-size 20px
|
||||||
|
.colon
|
||||||
|
float left
|
||||||
|
_font(.32rem, .37rem, #fff,,)
|
||||||
|
font-size 20px
|
||||||
|
</style>
|
||||||
4
src/config/getData1.js
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import {post} from '@js/http.js'
|
||||||
|
|
||||||
|
/** 压制看板 */
|
||||||
|
export const cockpitpress = (id) => post('api/cockpit/press', {})
|
||||||
49
src/css/mixin.styl
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
$red = #ed4754
|
||||||
|
$green = #67c23a
|
||||||
|
$yellow = #f2d648
|
||||||
|
$orange = #f17d3a
|
||||||
|
$blue = #6798ef
|
||||||
|
$gray = #c9c9c9
|
||||||
|
$fc1 = #323232
|
||||||
|
|
||||||
|
.green
|
||||||
|
background-color #11ff0d
|
||||||
|
.yellow
|
||||||
|
background-color #fdfd0f
|
||||||
|
.gray
|
||||||
|
background-color #bfbfbf
|
||||||
|
.red
|
||||||
|
background-color #ff1016
|
||||||
|
|
||||||
|
//宽高
|
||||||
|
_wh(w, h)
|
||||||
|
width: w
|
||||||
|
height: h
|
||||||
|
|
||||||
|
//字体大小、行高、颜色
|
||||||
|
_font(size,height,color=$fc1,weight=normal,align=left)
|
||||||
|
font-size: size
|
||||||
|
line-height: height
|
||||||
|
color: color
|
||||||
|
font-weight: weight
|
||||||
|
text-align: align
|
||||||
|
|
||||||
|
//flex 布局和 子元素 对其方式
|
||||||
|
_fj(x=space-between,y=center)
|
||||||
|
display: flex
|
||||||
|
justify-content: x
|
||||||
|
align-items: y
|
||||||
|
|
||||||
|
// 背景图片地址和大小
|
||||||
|
_bis(url,w,h=auto,x=center,y=center)
|
||||||
|
background-position: x y
|
||||||
|
background-size: w h
|
||||||
|
background-image: url(url)
|
||||||
|
background-repeat: no-repeat
|
||||||
|
|
||||||
|
// 定位上下居中
|
||||||
|
_ct()
|
||||||
|
position: absolute
|
||||||
|
top: 50%
|
||||||
|
transform: translateY(-50%)
|
||||||
|
|
||||||
BIN
src/images/screen1/bg.jpg
Normal file
|
After Width: | Height: | Size: 182 KiB |
BIN
src/images/screen1/bg.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
src/images/screen1/bg_title_j.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
src/images/screen1/bg_title_l.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
src/images/screen1/bg_title_s.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/images/screen1/bg_title_tip.png
Normal file
|
After Width: | Height: | Size: 895 B |
BIN
src/images/screen1/bottom.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
src/images/screen1/cp1.jpg
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
src/images/screen1/dot.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/images/screen1/dot_1.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
src/images/screen1/header.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
src/images/screen1/item_1.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
src/images/screen1/item_2.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
src/images/screen1/item_3.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
src/images/screen1/item_4.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
src/images/screen1/item_5.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
src/images/screen1/item_6.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/images/screen1/item_7.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/images/screen1/line_1.png
Normal file
|
After Width: | Height: | Size: 492 B |
BIN
src/images/screen1/line_2.png
Normal file
|
After Width: | Height: | Size: 979 B |
BIN
src/images/screen1/line_3.png
Normal file
|
After Width: | Height: | Size: 871 B |
BIN
src/images/screen1/popover_1.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
BIN
src/images/screen1/sctj_bg1.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
src/images/screen1/sctj_bg2.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/images/screen1/sctj_bg3.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/images/screen1/sctj_icon.png
Normal file
|
After Width: | Height: | Size: 581 B |
BIN
src/images/screen1/sctj_top.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
src/images/screen1/tip.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
src/images/screen1/title_bg_1.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/images/screen1/title_bg_2.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
src/images/screen1/title_bg_d1.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/images/screen1/title_bg_d2.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
src/images/screen1/top_1.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/images/screen1/top_2.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/images/screen1/top_3.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/images/screen1/zhong.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
805
src/pages/modules/PressProd.vue
Normal file
@@ -0,0 +1,805 @@
|
|||||||
|
<template>
|
||||||
|
<section class="bg">
|
||||||
|
<t-header title="压 制 生 产 看 板">
|
||||||
|
</t-header>
|
||||||
|
<div class="container">
|
||||||
|
<div class="con1">
|
||||||
|
<div class="cbox">
|
||||||
|
<div>当前班次:</div>
|
||||||
|
<div class="num" style="color: #f7b502; font-size: 0.46rem; letter-spacing: 15px;">
|
||||||
|
{{showText}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cbox">
|
||||||
|
<div>计划生产:</div>
|
||||||
|
<div class="num">
|
||||||
|
<div class="bg" v-for="(item, i) in showNum1" :key="i" :class="{dot: item === '.'}">{{item}}</div>
|
||||||
|
</div>
|
||||||
|
<div>块</div>
|
||||||
|
</div>
|
||||||
|
<div class="cbox">
|
||||||
|
<div>已生产:</div>
|
||||||
|
<div class="num">
|
||||||
|
<div class="bg" v-for="(item, i) in showNum2" :key="i" :class="{dot: item === '.'}">{{item}}</div>
|
||||||
|
</div>
|
||||||
|
<div>块</div>
|
||||||
|
</div>
|
||||||
|
<div class="cbox">
|
||||||
|
<div>不合格数:</div>
|
||||||
|
<div class="num">
|
||||||
|
<div class="bg" v-for="(item, i) in showNum3" :key="i" :class="{dot: item === '.'}">{{item}}</div>
|
||||||
|
</div>
|
||||||
|
<div>块</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="center_wrapper" style="display:flex">
|
||||||
|
<div class="con2">
|
||||||
|
<div class="title"><span class="dotIncon"></span><span class="tltxt">当班生产</span></div>
|
||||||
|
<div class="item_content_0">
|
||||||
|
<div id="echart_d1" style="width: 100%; height: 100%"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="con3">
|
||||||
|
<div class="title"><span class="dotIncon"></span><span class="tltxt">当月订单</span></div>
|
||||||
|
<div class="item_content_1">
|
||||||
|
<div id="echart_d2" style="width: 100%; height: 100%"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="con4">
|
||||||
|
<div class="block_h2">
|
||||||
|
<div class="title"><span class="dotIncon"></span><span class="tltxt">生产任务</span></div>
|
||||||
|
</div>
|
||||||
|
<div class="list_scroll_title">
|
||||||
|
<span>设备</span><span>工单号</span><span>班次类型</span><span>生产物料</span><span>订单客户</span><span>计划开始</span><span>计划数(块)</span><span>已生产(块)</span><span>不合格(块)</span><span>合格率</span><span>状态</span><span>开工人</span><span>开工时间</span><span>完工时间</span>
|
||||||
|
</div>
|
||||||
|
<vue-seamless-scroll :data="ProductionTask" :class-option="classOption" class="content-block-scroll">
|
||||||
|
<ul class="content-block-scroll-ul">
|
||||||
|
<li v-for="(e, i) in ProductionTask" :key="i">
|
||||||
|
<span>{{e.device}}</span><span>{{e.workorder_code}}</span><span>{{e.team}}</span><span>{{e.material_name}}</span><span>{{e.material_spec}}</span><span>{{e.planproducestart_date}}</span><span>{{e.plan_qty}}</span><span>{{e.real_qty}}</span><span>{{e.unqualified_qty}}</span><span>{{e.qualified_rate}}</span><span>{{e.workorder_status}}</span><span>{{e.operator}}</span><span>{{e.realproducestart_date}}</span><span>{{e.realproduceend_date}}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</vue-seamless-scroll>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<section class="bottom"></section>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import THeader from '@components/header2.vue'
|
||||||
|
// import * as echarts from 'echarts'
|
||||||
|
import { cockpitpress } from '@js/getData1'
|
||||||
|
export default {
|
||||||
|
name: 'ProdCount',
|
||||||
|
components: {
|
||||||
|
THeader
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
timeOut: null,
|
||||||
|
interTime: this.$store.getters.setTime,
|
||||||
|
timer: null,
|
||||||
|
showText: '',
|
||||||
|
showNum1: '0',
|
||||||
|
showNum2: '0',
|
||||||
|
showNum3: '0',
|
||||||
|
myCharts02: '',
|
||||||
|
myCharts01: '',
|
||||||
|
materData: [],
|
||||||
|
deviceData: [],
|
||||||
|
PersonnelMonthlyProduction: [],
|
||||||
|
MonthlyWorkOrder: [],
|
||||||
|
// MonthlyWorkOrder: [
|
||||||
|
// {guada_num: 1200, name: 'XC-0', order_num: 1655, residue_num: 455},
|
||||||
|
// {guada_num: 1200, name: 'XC-1', order_num: 1655, residue_num: 455},
|
||||||
|
// {guada_num: 1200, name: 'XC-2', order_num: 1655, residue_num: 455},
|
||||||
|
// {guada_num: 1200, name: 'XC-3', order_num: 1655, residue_num: 455},
|
||||||
|
// {guada_num: 1200, name: 'XC-4', order_num: 1655, residue_num: 455},
|
||||||
|
// {guada_num: 1200, name: 'XC-5', order_num: 1655, residue_num: 455},
|
||||||
|
// {guada_num: 1200, name: 'XC-6', order_num: 1655, residue_num: 455}
|
||||||
|
// ],
|
||||||
|
// MonthlyWorkOrder: [
|
||||||
|
// {
|
||||||
|
// name: 'A1',
|
||||||
|
// order_num: '150',
|
||||||
|
// guada_num: '100',
|
||||||
|
// residue_num: '50'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// name: 'A2',
|
||||||
|
// order_num: '130',
|
||||||
|
// guada_num: '120',
|
||||||
|
// residue_num: '10'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// name: 'A3',
|
||||||
|
// order_num: '300',
|
||||||
|
// guada_num: '30',
|
||||||
|
// residue_num: '270',
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// name: 'A4',
|
||||||
|
// order_num: '150',
|
||||||
|
// guada_num: '100',
|
||||||
|
// residue_num: '50'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// name: 'A5',
|
||||||
|
// order_num: '300',
|
||||||
|
// guada_num: '100',
|
||||||
|
// residue_num: '200'
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
ProductionTask: [],
|
||||||
|
ShiftProductionList: [],
|
||||||
|
resData: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
classOption () {
|
||||||
|
return {
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
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 cockpitpress()
|
||||||
|
clearInterval(this.timeOut)
|
||||||
|
this.resData = res
|
||||||
|
// this.showNum1 = '3020'
|
||||||
|
// this.showNum2 = '3000'
|
||||||
|
// this.showNum3 = '220'
|
||||||
|
this.showText = res.DayShift
|
||||||
|
this.showNum1 = (res.DayShiftList[0].plan_qty + '').split('')
|
||||||
|
this.showNum2 = (res.DayShiftList[0].real_qty + '').split('')
|
||||||
|
this.showNum3 = (res.DayShiftList[0].unqualified_qty + '').split('')
|
||||||
|
// this.PersonnelMonthlyProduction = res.PersonnelMonthlyProduction
|
||||||
|
this.MonthlyWorkOrder = res.MonthlyWorkOrder
|
||||||
|
this.ProductionTask = res.ProductionTask
|
||||||
|
this.ShiftProductionList = res.ShiftProductionList
|
||||||
|
this.setEchart01()
|
||||||
|
this.setEchart02()
|
||||||
|
},
|
||||||
|
setEchart01 () {
|
||||||
|
let data1 = []
|
||||||
|
let data2 = []
|
||||||
|
let data3 = []
|
||||||
|
let device = []
|
||||||
|
this.ShiftProductionList.map(e => {
|
||||||
|
data1.push(e.qualified_qty)
|
||||||
|
data2.push(e.unqualified_qty)
|
||||||
|
data3.push(e.total_difference)
|
||||||
|
device.push(e.column_name)
|
||||||
|
})
|
||||||
|
let option = {
|
||||||
|
grid: {
|
||||||
|
top: 50,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
bottom: 0,
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
icon: 'rect',
|
||||||
|
// right: 0,
|
||||||
|
textStyle: {
|
||||||
|
color: '#fff',
|
||||||
|
fontSize: 14,
|
||||||
|
lineHeight: 14
|
||||||
|
},
|
||||||
|
itemGap: 40.86,
|
||||||
|
itemWidth: 20.16,
|
||||||
|
itemHeight: 7.38,
|
||||||
|
data: [{name: '合格数', itemStyle: {color: '#33CCCC'}}, {name: '不合格数', itemStyle: {color: '#EAAD24'}}, {name: '剩余数', itemStyle: {color: '#0E90FD'}}]
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
axisTick: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
width: 2,
|
||||||
|
color: '#8FABBF'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
interval: 0,
|
||||||
|
textStyle: {
|
||||||
|
color: '#8FABBF',
|
||||||
|
fontSize: 16
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: device
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
axisLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
splitNumber: 2,
|
||||||
|
axisTick: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
textStyle: {
|
||||||
|
color: '#8FABBF',
|
||||||
|
fontSize: 14
|
||||||
|
}
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
type: [8, 4],
|
||||||
|
dashOffset: 4,
|
||||||
|
color: '#8FABBF'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '合格数',
|
||||||
|
type: 'bar',
|
||||||
|
barWidth: '12',
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'top', // 位置
|
||||||
|
color: '#A7D6F4',
|
||||||
|
fontSize: 14,
|
||||||
|
distance: 15, // 距离
|
||||||
|
formatter: '{c}' // 这里是数据展示的时候显示的数据
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||||
|
{
|
||||||
|
offset: 0,
|
||||||
|
color: '#33CCCC',
|
||||||
|
opacity: 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 1,
|
||||||
|
color: 'rgba(31,89,89,0.25)',
|
||||||
|
opacity: 0.25
|
||||||
|
}
|
||||||
|
])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: data1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '不合格数',
|
||||||
|
type: 'bar',
|
||||||
|
barWidth: '12',
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'top', // 位置
|
||||||
|
color: '#A7D6F4',
|
||||||
|
fontSize: 14,
|
||||||
|
distance: 15, // 距离
|
||||||
|
formatter: '{c}' // 这里是数据展示的时候显示的数据
|
||||||
|
},
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||||
|
{
|
||||||
|
offset: 0,
|
||||||
|
color: '#B68845',
|
||||||
|
opacity: 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 1,
|
||||||
|
color: 'rgba(134,98,45,0.25)',
|
||||||
|
opacity: 0.25
|
||||||
|
}
|
||||||
|
])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: data2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '剩余数',
|
||||||
|
type: 'bar',
|
||||||
|
barWidth: '12',
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'top', // 位置
|
||||||
|
color: '#A7D6F4',
|
||||||
|
fontSize: 14,
|
||||||
|
distance: 15, // 距离
|
||||||
|
formatter: '{c}' // 这里是数据展示的时候显示的数据
|
||||||
|
},
|
||||||
|
barGap: '200%',
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||||
|
{
|
||||||
|
offset: 1,
|
||||||
|
color: 'rgba(96,112,128,0.10)',
|
||||||
|
opacity: 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
offset: 0,
|
||||||
|
color: '#0E90FD',
|
||||||
|
opacity: 0.1
|
||||||
|
}
|
||||||
|
])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: data3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
let echart = document.getElementById('echart_d1')
|
||||||
|
// if (this.myCharts01 !== '') {
|
||||||
|
// this.myCharts01.dispose()
|
||||||
|
// }
|
||||||
|
if (echart !== null) {
|
||||||
|
this.myCharts01 = this.$echarts.init(echart)
|
||||||
|
this.myCharts01.setOption(option)
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
this.myCharts01.resize()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setEchart02 () {
|
||||||
|
let max = 1
|
||||||
|
this.MonthlyWorkOrder.map(el => {
|
||||||
|
if (Number(el.order_num) >= Number(max)) {
|
||||||
|
max = Number(el.order_num)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
let option = {
|
||||||
|
grid: {
|
||||||
|
top: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 58,
|
||||||
|
bottom: 0,
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
dataZoom: [
|
||||||
|
{
|
||||||
|
show: false, // 为true滚动条出现
|
||||||
|
type: 'slider', // type:'inside',滚动条在最下面,鼠标点击滚动
|
||||||
|
orient: 'vertical',
|
||||||
|
startValue: 0, // 从头开始。
|
||||||
|
endValue: 3 // end百分比显示范围,endValue具体显示几个数值
|
||||||
|
}
|
||||||
|
],
|
||||||
|
xAxis: {
|
||||||
|
type: 'value',
|
||||||
|
min: 0,
|
||||||
|
max: max,
|
||||||
|
boundaryGap: false,
|
||||||
|
axisTick: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
splitLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
type: [8, 4],
|
||||||
|
dashOffset: 4,
|
||||||
|
color: '#8FABBF'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
interval: 0,
|
||||||
|
textStyle: {
|
||||||
|
color: '#8FABBF',
|
||||||
|
fontSize: 16
|
||||||
|
// align: 'center'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatter: '{value}'
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'category',
|
||||||
|
inverse: true,
|
||||||
|
axisLine: {
|
||||||
|
show: true,
|
||||||
|
lineStyle: {
|
||||||
|
width: 2,
|
||||||
|
color: '#8FABBF'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
splitNumber: 2,
|
||||||
|
axisTick: {
|
||||||
|
show: false
|
||||||
|
},
|
||||||
|
axisLabel: {
|
||||||
|
textStyle: {
|
||||||
|
color: '#8FABBF',
|
||||||
|
fontSize: 14
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: this.MonthlyWorkOrder.map((it) => it.name)
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '订单1',
|
||||||
|
type: 'bar',
|
||||||
|
stack: '总量',
|
||||||
|
barWidth: 30,
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
// color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [
|
||||||
|
// {
|
||||||
|
// offset: 0,
|
||||||
|
// // color: '#f6b643'
|
||||||
|
// color: '#ed7d39'
|
||||||
|
// // color: '#EAAD24'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// offset: 1,
|
||||||
|
// color: '#ed7d39'
|
||||||
|
// // color: '#EAAD24'
|
||||||
|
// }
|
||||||
|
// ], false),
|
||||||
|
label: {
|
||||||
|
color: '#fff',
|
||||||
|
show: true,
|
||||||
|
position: 'inside'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// data: [8, 10, 20, 20, 10, 10, 20],
|
||||||
|
data: this.MonthlyWorkOrder.map((it) => it.guada_num)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '订单2',
|
||||||
|
type: 'bar',
|
||||||
|
stack: '总量',
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
// color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [
|
||||||
|
// {
|
||||||
|
// offset: 0,
|
||||||
|
// color: '#94d153'
|
||||||
|
// // color: '#33CCCC'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// offset: 1,
|
||||||
|
// color: '#94d153'
|
||||||
|
// // color: '#33CCCC'
|
||||||
|
// }
|
||||||
|
// ], false),
|
||||||
|
label: {
|
||||||
|
color: '#333',
|
||||||
|
show: true,
|
||||||
|
position: 'inside'
|
||||||
|
// position: 'insideRight',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// data: [10, 20, 10, 10, 20, 20, 20],
|
||||||
|
data: this.MonthlyWorkOrder.map((it) => it.residue_num)
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// type: 'bar',
|
||||||
|
// barWidth: '16',
|
||||||
|
// zlevel: 1,
|
||||||
|
// label: {
|
||||||
|
// show: true,
|
||||||
|
// position: 'right', // 位置
|
||||||
|
// color: '#A7D6F4',
|
||||||
|
// fontSize: 14,
|
||||||
|
// distance: 15, // 距离
|
||||||
|
// formatter: '{c}' // 这里是数据展示的时候显示的数据
|
||||||
|
// },
|
||||||
|
// itemStyle: {
|
||||||
|
// normal: {
|
||||||
|
// color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [
|
||||||
|
// {
|
||||||
|
// offset: 0,
|
||||||
|
// color: '#2DB796'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// offset: 1,
|
||||||
|
// color: '#6BBBA8'
|
||||||
|
// }
|
||||||
|
// ], false)
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// data: this.MonthlyWorkOrder.map((it) => it.order_num)
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// type: 'bar',
|
||||||
|
// barWidth: '16',
|
||||||
|
// zlevel: 1,
|
||||||
|
// label: {
|
||||||
|
// show: true,
|
||||||
|
// position: 'right', // 位置
|
||||||
|
// color: '#A7D6F4',
|
||||||
|
// fontSize: 14,
|
||||||
|
// distance: 15, // 距离
|
||||||
|
// formatter: '{c}' // 这里是数据展示的时候显示的数据
|
||||||
|
// },
|
||||||
|
// itemStyle: {
|
||||||
|
// normal: {
|
||||||
|
// color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [
|
||||||
|
// {
|
||||||
|
// offset: 0,
|
||||||
|
// color: '#f6b643'
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// offset: 1,
|
||||||
|
// color: '#ed7d39'
|
||||||
|
// }
|
||||||
|
// ], false)
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// data: this.MonthlyWorkOrder.map((it) => it.guada_num)
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
let echart = document.getElementById('echart_d2')
|
||||||
|
this.myCharts02 = this.$echarts.init(echart)
|
||||||
|
this.myCharts02.setOption(option)
|
||||||
|
this.autoMove(option)
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
this.myCharts02.resize()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
autoMove (option) {
|
||||||
|
this.timeOut = setInterval(() => {
|
||||||
|
if (Number(option.dataZoom[0].endValue) === option.series[0].data.length - 1) {
|
||||||
|
option.dataZoom[0].endValue = 3
|
||||||
|
option.dataZoom[0].startValue = 0
|
||||||
|
} else {
|
||||||
|
option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1
|
||||||
|
option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1
|
||||||
|
}
|
||||||
|
this.myCharts02.setOption(option)
|
||||||
|
}, 2000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="stylus" scoped>
|
||||||
|
// @import '~@css/mixin'
|
||||||
|
@import '../../css/mixin'
|
||||||
|
// @import '~@style/mixin'
|
||||||
|
.pages
|
||||||
|
position absolute
|
||||||
|
left .2509rem
|
||||||
|
top 11%
|
||||||
|
_wh(20%, .4rem)
|
||||||
|
_fj(flex-start)
|
||||||
|
a
|
||||||
|
cursor pointer
|
||||||
|
font-family "SourceHanSansCN"
|
||||||
|
_font(.18rem, .30rem, #fff, 700,)
|
||||||
|
letter-spacing .01rem
|
||||||
|
padding .05rem .2rem
|
||||||
|
border-radius .05rem
|
||||||
|
background: radial-gradient(circle at 7.2% 13.6%, rgb(37, 249, 245) 0%, #004c92 90%)
|
||||||
|
+a
|
||||||
|
margin-left .2rem
|
||||||
|
.bg
|
||||||
|
_wh(100%, 100%)
|
||||||
|
overflow hidden
|
||||||
|
.container
|
||||||
|
_wh(100%, calc(100% - 1.38rem))
|
||||||
|
padding .1rem .2509rem 0
|
||||||
|
overflow hidden
|
||||||
|
clear both
|
||||||
|
.bottom
|
||||||
|
_wh(100%, .38rem)
|
||||||
|
background center bottom / 19.06rem 100% url(../../images/screen1/bottom.png) no-repeat
|
||||||
|
.blue
|
||||||
|
color #32C5FF !important
|
||||||
|
.green
|
||||||
|
color #30EBC9 !important
|
||||||
|
.gray
|
||||||
|
color #516282 !important
|
||||||
|
.yellow
|
||||||
|
color #E2BB0E !important
|
||||||
|
.orange
|
||||||
|
color #F96700 !important
|
||||||
|
.red
|
||||||
|
color #FF0000 !important
|
||||||
|
.con1
|
||||||
|
width 100%
|
||||||
|
height 123px
|
||||||
|
overflow hidden
|
||||||
|
position relative
|
||||||
|
background center center / 100% 100% url(../../images/screen1/sctj_top.png) no-repeat
|
||||||
|
margin 5px 0
|
||||||
|
text-align center
|
||||||
|
display flex
|
||||||
|
justify-content space-between
|
||||||
|
align-items center
|
||||||
|
// .c-title
|
||||||
|
// float left
|
||||||
|
// // line-height 1.23rem
|
||||||
|
// line-height 123px
|
||||||
|
// .c-left
|
||||||
|
// margin 0 1.3rem 0 1.3rem
|
||||||
|
// display flex
|
||||||
|
// align-items center
|
||||||
|
// .c-right
|
||||||
|
// // margin 0 2.9rem 0 2.5rem
|
||||||
|
// display flex
|
||||||
|
// align-items center
|
||||||
|
.cbox
|
||||||
|
width 30%
|
||||||
|
display flex
|
||||||
|
align-items center
|
||||||
|
justify-content center
|
||||||
|
div
|
||||||
|
// font-size .24rem
|
||||||
|
font-size 24px
|
||||||
|
color #32C5FF
|
||||||
|
.icon1
|
||||||
|
display inline-block
|
||||||
|
width .19rem
|
||||||
|
height .19rem
|
||||||
|
overflow hidden
|
||||||
|
position relative
|
||||||
|
background center center / 100% 100% url(../../images/screen1/sctj_icon.png) no-repeat
|
||||||
|
margin-right .2rem
|
||||||
|
.num
|
||||||
|
display flex
|
||||||
|
align-items center
|
||||||
|
.bg
|
||||||
|
// width .44rem
|
||||||
|
// height .6rem
|
||||||
|
width 44px
|
||||||
|
height 60px
|
||||||
|
background rgba(50,197,255,0.10)
|
||||||
|
display flex
|
||||||
|
align-items center
|
||||||
|
justify-content center
|
||||||
|
margin-right .1rem
|
||||||
|
// font-size .5rem
|
||||||
|
font-size 50px
|
||||||
|
color #F7B502
|
||||||
|
.dot
|
||||||
|
background none
|
||||||
|
width .14rem
|
||||||
|
.center_wrapper
|
||||||
|
_wh(100%, calc(50% - 69px))
|
||||||
|
_fj(row)
|
||||||
|
.con2
|
||||||
|
width 70%
|
||||||
|
// height 100%
|
||||||
|
height calc(100% - 34px)
|
||||||
|
.title
|
||||||
|
// _wh(calc(100% - 34px), 32px)
|
||||||
|
_wh(100%, 32px)
|
||||||
|
margin 17px 0
|
||||||
|
padding-left 0.18rem
|
||||||
|
_font(16px, 32px, #fff,,left)
|
||||||
|
background center center / 100% 100% url(../../images/screen1/bg_title_l.png) no-repeat
|
||||||
|
.item_content_0
|
||||||
|
// _wh(calc(100% - 44px), calc(100% - 112px))
|
||||||
|
_wh(calc(100% - 44px), 100%)
|
||||||
|
height 100%
|
||||||
|
// margin 17px auto
|
||||||
|
float right
|
||||||
|
.tltxt
|
||||||
|
position relative
|
||||||
|
top -3px
|
||||||
|
.dotIncon
|
||||||
|
display inline-block
|
||||||
|
width 26px
|
||||||
|
height 26px
|
||||||
|
position relative
|
||||||
|
top 3px
|
||||||
|
left -6px
|
||||||
|
background center center / 100% 100% url(../../images/screen1/bg_title_tip.png) no-repeat
|
||||||
|
.con3
|
||||||
|
width 30%
|
||||||
|
// height 100%
|
||||||
|
height calc(100% - 34px)
|
||||||
|
// overflow hidden
|
||||||
|
position relative
|
||||||
|
.title
|
||||||
|
position absolute
|
||||||
|
_wh(calc(100% - 34px), 32px)
|
||||||
|
margin 17px 0
|
||||||
|
right 0
|
||||||
|
padding-left 0.18rem
|
||||||
|
_font(16px, 32px, #fff,,left)
|
||||||
|
background center center / 100% 100% url(../../images/screen1/bg_title_s.png) no-repeat
|
||||||
|
.item_content_1
|
||||||
|
_wh(calc(100% - 44px), 100%)
|
||||||
|
margin 60px auto
|
||||||
|
float right
|
||||||
|
.con4
|
||||||
|
_wh(100%, calc(50% - 85px))
|
||||||
|
margin-top 66px
|
||||||
|
overflow hidden
|
||||||
|
position relative
|
||||||
|
.block_h2
|
||||||
|
_wh(calc(100% - 0px), 32px)
|
||||||
|
margin 17px 0 10px 0
|
||||||
|
padding-left 0.18rem
|
||||||
|
background center center / 100% 100% url(../../images/screen1/bg_title_j.png) no-repeat
|
||||||
|
color #fff
|
||||||
|
h2
|
||||||
|
_font(16px, 32px, #fff,,left)
|
||||||
|
.list_scroll_title
|
||||||
|
_wh(calc(100% - 0px), 32px)
|
||||||
|
margin 0 auto
|
||||||
|
background #262F52
|
||||||
|
line-height 32px
|
||||||
|
color #fff
|
||||||
|
span
|
||||||
|
display inline-block
|
||||||
|
width 5%
|
||||||
|
text-align center
|
||||||
|
line-height 32px
|
||||||
|
font-size 14px
|
||||||
|
&:nth-child(4)
|
||||||
|
width 16%
|
||||||
|
&:nth-child(5)
|
||||||
|
width 6.5%
|
||||||
|
&:nth-child(6)
|
||||||
|
width 6.5%
|
||||||
|
&:nth-child(7)
|
||||||
|
width 8%
|
||||||
|
&:nth-child(14)
|
||||||
|
width 9%
|
||||||
|
&:nth-child(15)
|
||||||
|
width 9%
|
||||||
|
.content-block-scroll
|
||||||
|
_wh(calc(100% - 0px), calc(100% - 113px))
|
||||||
|
margin 0 auto 25px auto
|
||||||
|
overflow hidden
|
||||||
|
.content-block-scroll-ul
|
||||||
|
width 100%
|
||||||
|
li
|
||||||
|
width 100%
|
||||||
|
height 38px
|
||||||
|
_fj(row, center)
|
||||||
|
&:nth-child(2n)
|
||||||
|
background rgba(38,47,82,0.50)
|
||||||
|
span
|
||||||
|
display inline-block
|
||||||
|
width 5%
|
||||||
|
font-size 12px
|
||||||
|
// padding 0 .1rem
|
||||||
|
text-align center
|
||||||
|
line-height 38px
|
||||||
|
box-sizing border-box
|
||||||
|
&:nth-child(4)
|
||||||
|
width 16%
|
||||||
|
&:nth-child(5)
|
||||||
|
width 6.5%
|
||||||
|
&:nth-child(6)
|
||||||
|
width 6.5%
|
||||||
|
&:nth-child(7)
|
||||||
|
width 8%
|
||||||
|
&:nth-child(14)
|
||||||
|
width 9%
|
||||||
|
&:nth-child(15)
|
||||||
|
width 9%
|
||||||
|
</style>
|
||||||
@@ -5,6 +5,7 @@ const Setup = r => require.ensure([], () => r(require('@page/Setup')), 'Setup')
|
|||||||
const lIndex = r => require.ensure([], () => r(require('@page/modules/home/left/index')), 'newscreen')
|
const lIndex = r => require.ensure([], () => r(require('@page/modules/home/left/index')), 'newscreen')
|
||||||
const rIndex = r => require.ensure([], () => r(require('@page/modules/home/right/index')), 'newscreen')
|
const rIndex = r => require.ensure([], () => r(require('@page/modules/home/right/index')), 'newscreen')
|
||||||
const pinye = r => require.ensure([], () => r(require('@page/modules/pinye')), 'pinye')
|
const pinye = r => require.ensure([], () => r(require('@page/modules/pinye')), 'pinye')
|
||||||
|
const PressProd = r => require.ensure([], () => r(require('@page/modules/PressProd')), 'PressProd')
|
||||||
|
|
||||||
Vue.use(Router)
|
Vue.use(Router)
|
||||||
|
|
||||||
@@ -30,6 +31,10 @@ export default new Router({
|
|||||||
{
|
{
|
||||||
path: '/pinye',
|
path: '/pinye',
|
||||||
component: pinye
|
component: pinye
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/pressprod',
|
||||||
|
component: PressProd
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|||||||