1132 lines
38 KiB
Vue
1132 lines
38 KiB
Vue
<template>
|
|
<div class="n_container">
|
|
<div class="n_header">
|
|
<div class="n_header_h1">
|
|
<h1>据控制中心</h1>
|
|
</div>
|
|
</div>
|
|
<div class="n_body_container">
|
|
<div class="n_body_container_wraper">
|
|
<div class="n_left_content">
|
|
<div class="status_wrap">
|
|
<!-- 关机0 待机1 运行中2 故障3-->
|
|
<div class="status_item">
|
|
<div class="status_tip green"></div>
|
|
<div class="status_name">运行中/困料中</div>
|
|
</div>
|
|
<div class="status_item">
|
|
<div class="status_tip yellow"></div>
|
|
<div class="status_name">待机/困料完成</div>
|
|
</div>
|
|
<div class="status_item">
|
|
<div class="status_tip gray"></div>
|
|
<div class="status_name">关机</div>
|
|
</div>
|
|
<div class="status_item">
|
|
<div class="status_tip red"></div>
|
|
<div class="status_name">故障/困料超时</div>
|
|
</div>
|
|
</div>
|
|
<div class="right_wrap">
|
|
<div class="machine_wrap mtp_wrap_1">
|
|
<div v-for="(e,i) in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]" :key="i" class="mtp">
|
|
<img src="../../../images/workshop/mtp.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap gtssj_wrap_1">
|
|
<div v-for="(e,i) in [1,2,3,4,5]" :key="i" class="gtssj">
|
|
<img src="../../../images/workshop/gtssj.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap cpj_wrap_1">
|
|
<div class="cpj">
|
|
<img src="../../../images/workshop/cpj.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap cdz_wrap_1">
|
|
<div class="cdz">
|
|
<img src="../../../images/workshop/cdz.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap cdz_wrap_1 cdz_wrap_2">
|
|
<div class="cdz">
|
|
<img src="../../../images/workshop/cdz.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap yao_wrap">
|
|
<div class="yaosb">
|
|
<img src="../../../images/workshop/yao.png" alt="">
|
|
</div>
|
|
<div class="sh_machine yjbyx_1">
|
|
<img src="../../../images/workshop/yjbyx.png" alt="">
|
|
</div>
|
|
<div class="sh_machine yjbyx_2">
|
|
<img src="../../../images/workshop/yjbyx.png" alt="">
|
|
</div>
|
|
<div class="machine_wrap mtp_wrap_3">
|
|
<div v-for="(e,i) in [1,2,3,4]" :key="i" class="mtp">
|
|
<img src="../../../images/workshop/mtp.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div v-if="SemiFinishedProductShelfList.length > 0" class="machine_wrap mtp_wrap_3 mtp_wrap_4">
|
|
<div v-for="(e,i) in SemiFinishedProductShelfList.slice(0, 26)" :key="i" class="mtp">
|
|
<img v-show="String(e.point_status) === '0'" src="../../../images/workshop/ktp_gray.png" alt="">
|
|
<img v-show="String(e.point_status) === '1'" src="../../../images/workshop/mtp.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap mtp_wrap_3 mtp_wrap_4 mtp_wrap_5">
|
|
<div v-for="(e,i) in SemiFinishedProductShelfList.slice(26)" :key="i" class="mtp">
|
|
<img v-show="String(e.point_status) === '0'" src="../../../images/workshop/ktp_gray.png" alt="">
|
|
<img v-show="String(e.point_status) === '1'" src="../../../images/workshop/mtp.png" alt="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="cmd_block">
|
|
<div class="machine_wrap ktp_wrap_1">
|
|
<div class="ktp">
|
|
<img src="../../../images/workshop/ktp_gray.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap cmd_wrap_1">
|
|
<div class="sh_machine weilan1">
|
|
<img src="../../../images/workshop/weilan_5.png" alt="">
|
|
</div>
|
|
<div class="sh_machine fjfztb">
|
|
<img src="../../../images/workshop/fjfztb.png" alt="">
|
|
</div>
|
|
<div v-if="SortAndPalletizingList.length > 0" class="sh_machine kongtuopan_1">
|
|
<img v-show="SortAndPalletizingList[0].color_status === 0" src="../../../images/workshop/ktp_gray.png" alt="">
|
|
<img v-show="SortAndPalletizingList[0].color_status === 1" src="../../../images/workshop/ktp_green.png" alt="">
|
|
<img v-show="SortAndPalletizingList[0].color_status === 2" src="../../../images/workshop/ktp_red.png" alt="">
|
|
<img v-show="SortAndPalletizingList[0].color_status === 3" src="../../../images/workshop/ktp_yellow.png" alt="">
|
|
</div>
|
|
<div v-if="SortAndPalletizingList.length > 0" class="sh_machine kongtuopan_2">
|
|
<img v-show="SortAndPalletizingList[1].color_status === 0" src="../../../images/workshop/ktp_gray.png" alt="">
|
|
<img v-show="SortAndPalletizingList[1].color_status === 1" src="../../../images/workshop/ktp_green.png" alt="">
|
|
<img v-show="SortAndPalletizingList[1].color_status === 2" src="../../../images/workshop/ktp_red.png" alt="">
|
|
<img v-show="SortAndPalletizingList[1].color_status === 3" src="../../../images/workshop/ktp_yellow.png" alt="">
|
|
</div>
|
|
<div v-if="ManipulatorInfoList.length > 0" class="sh_machine robot_1" :class="{'rotate_1': String(ManipulatorInfoList[4].color_status) === '1'}">
|
|
<img v-show="String(ManipulatorInfoList[4].color_status) === '0'" src="../../../images/workshop/robot_cmd_gray.png" alt="">
|
|
<img v-show="String(ManipulatorInfoList[4].color_status) === '1'" src="../../../images/workshop/robot_cmd_green.png" alt="">
|
|
<img v-show="String(ManipulatorInfoList[4].color_status) === '2'" src="../../../images/workshop/robot_cmd_red.png" alt="">
|
|
<img v-show="String(ManipulatorInfoList[4].color_status) === '3'" src="../../../images/workshop/robot_cmd_yellow.png" alt="">
|
|
</div>
|
|
<div class="sh_machine weilan2">
|
|
<img src="../../../images/workshop/weilan_5.png" alt="">
|
|
</div>
|
|
<div v-if="SortAndPalletizingList.length > 0" class="sh_machine cmdssj_1">
|
|
<img v-show="SortAndPalletizingList[2].color_status === 0" src="../../../images/workshop/cmdssj_gray.png" alt="">
|
|
<img v-show="SortAndPalletizingList[2].color_status === 1" src="../../../images/workshop/cmdssj_green.png" alt="">
|
|
<img v-show="SortAndPalletizingList[2].color_status === 2" src="../../../images/workshop/cmdssj_red.png" alt="">
|
|
<img v-show="SortAndPalletizingList[2].color_status === 3" src="../../../images/workshop/cmdssj_yellow.png" alt="">
|
|
</div>
|
|
<div v-if="SortAndPalletizingList.length > 0" class="sh_machine cmdssj_1 cmdssj_2">
|
|
<img v-show="SortAndPalletizingList[3].color_status === 0" src="../../../images/workshop/cmdssj_gray.png" alt="">
|
|
<img v-show="SortAndPalletizingList[3].color_status === 1" src="../../../images/workshop/cmdssj_green.png" alt="">
|
|
<img v-show="SortAndPalletizingList[3].color_status === 2" src="../../../images/workshop/cmdssj_red.png" alt="">
|
|
<img v-show="SortAndPalletizingList[3].color_status === 3" src="../../../images/workshop/cmdssj_yellow.png" alt="">
|
|
</div>
|
|
<div class="sh_machine robot_2 rotate_2">
|
|
<img src="../../../images/workshop/robot_cmd_green.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap cmd_wrap_1 cmd_wrap_2">
|
|
<div class="sh_machine weilan1">
|
|
<img src="../../../images/workshop/weilan_5.png" alt="">
|
|
</div>
|
|
<div class="sh_machine fjfztb">
|
|
<img src="../../../images/workshop/fjfztb.png" alt="">
|
|
</div>
|
|
<div class="sh_machine kongtuopan_1">
|
|
<img src="../../../images/workshop/mtp.png" alt="">
|
|
</div>
|
|
<div class="sh_machine kongtuopan_2">
|
|
<img src="../../../images/workshop/mtp.png" alt="">
|
|
</div>
|
|
<div class="sh_machine robot_1">
|
|
<img src="../../../images/workshop/robot_cmd_gray.png" alt="">
|
|
</div>
|
|
<div class="sh_machine weilan2">
|
|
<img src="../../../images/workshop/weilan_5.png" alt="">
|
|
</div>
|
|
<div class="sh_machine cmdssj_1">
|
|
<img src="../../../images/workshop/cmdssj_gray.png" alt="">
|
|
</div>
|
|
<div class="sh_machine cmdssj_1 cmdssj_2">
|
|
<img src="../../../images/workshop/cmdssj_gray.png" alt="">
|
|
</div>
|
|
<div class="sh_machine robot_2">
|
|
<img src="../../../images/workshop/robot_cmd_gray.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap liu_wrap">
|
|
<!-- <div class="sh_machine liu">
|
|
<img src="../../../images/workshop/liu.png" alt="">
|
|
</div> -->
|
|
<div class="sh_machine cmdssj_1">
|
|
<img src="../../../images/workshop/cmdssj_gray.png" alt="">
|
|
</div>
|
|
<div class="sh_machine cmdssj_1 cmdssj_2">
|
|
<img src="../../../images/workshop/cmdssj_gray.png" alt="">
|
|
</div>
|
|
<div class="rgv_line_wrap">
|
|
<div class="rgv_line_1">
|
|
<div class="rgv_line_begine"></div>
|
|
<div class="rgv_line_begine rgv_line_end"></div>
|
|
<div class="rgv_line_node" v-for="(e,i) in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]" :key="i"></div>
|
|
</div>
|
|
<div class="rgv_line_1 rgv_line_2">
|
|
<div class="rgv_line_begine"></div>
|
|
<div class="rgv_line_begine rgv_line_end"></div>
|
|
<div class="rgv_line_node" v-for="(e,i) in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]" :key="i"></div>
|
|
</div>
|
|
<div class="rgv_line_3"></div>
|
|
</div>
|
|
<div class="sh_machine rgvct">
|
|
<img src="../../../images/workshop/rgv_ct.png" alt="">
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="" v-for="(e,i) in [1,2,3]" :key="i">
|
|
</div>
|
|
<div class="sh_machine fmj">
|
|
<img src="../../../images/workshop/fmj.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_2">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_3">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_4">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="" v-for="(e,i) in [1,2,3]" :key="i">
|
|
</div>
|
|
<div class="sh_machine fmj">
|
|
<img src="../../../images/workshop/fmj.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_5">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_6">
|
|
<div class="sh_machine rgpt">
|
|
<img src="../../../images/workshop/rgpt.png" alt="">
|
|
</div>
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj.png" alt="" v-for="(e,i) in [1,2,3,4,5,6,7,8,9]" :key="i">
|
|
</div>
|
|
<div class="sh_machine ltssj">
|
|
<img src="../../../images/workshop/ltssj_g.png" alt="">
|
|
</div>
|
|
<div class="sh_machine fmj_bzd">
|
|
<img src="../../../images/workshop/fmj_bzd.png" alt="">
|
|
</div>
|
|
<div class="sh_machine crj">
|
|
<img src="../../../images/workshop/crj.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_7">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_8">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_9">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_10">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_11">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj_y.png" alt="">
|
|
</div>
|
|
</div>
|
|
<div class="machine_wrap ggtj_wrap_1 ggtj_wrap_12">
|
|
<div class="machine_wrap ggtj">
|
|
<img src="../../../images/workshop/ggtssj.png" alt="" v-for="(e,i) in [1,2,3,4,5,6,7,8,9]" :key="i">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="n_right_content">
|
|
<div class="item_wrap">
|
|
<div class="item_tip item_tip_bg_s">
|
|
<div class="item_tip_left">设备运行情况</div>
|
|
</div>
|
|
<div class="item_content">
|
|
<div id="home_echart_4" style="width: 100%; height: 100%;"></div>
|
|
</div>
|
|
</div>
|
|
<div class="item_wrap">
|
|
<div class="item_tip item_tip_bg_s">
|
|
<div class="item_tip_left">近一月故障次数前5设备</div>
|
|
</div>
|
|
<div class="item_content">
|
|
<div id="home_echart_5" style="width: 100%; height: 100%;"></div>
|
|
</div>
|
|
</div>
|
|
<div class="item_wrap">
|
|
<div class="item_tip item_tip_bg_s">
|
|
<div class="item_tip_left">最近10次设备故障</div>
|
|
</div>
|
|
<div class="item_content">
|
|
<div class="scroll_wrap">
|
|
<ul class="scroll_tab_1">
|
|
<li>故障时间</li>
|
|
<li>设备编码</li>
|
|
<li>设备名称</li>
|
|
<li>故障信息</li>
|
|
<li>当前状态</li>
|
|
</ul>
|
|
<div class="scroll_container_1">
|
|
<vue-seamless-scroll :data="LastTenFailureList" :class-option="defaultOption1">
|
|
<ul class="scroll-ul_1">
|
|
<li v-for="(e, i) in LastTenFailureList" :key="i">
|
|
<div class="scroll-ul_1_div">{{e.failure_time}}</div>
|
|
<div class="scroll-ul_1_div">{{e.device_code}}</div>
|
|
<div class="scroll-ul_1_div">{{e.device_name}}</div>
|
|
<div class="scroll-ul_1_div">{{e.failure_info}}</div>
|
|
<div class="scroll-ul_1_div">{{e.device_status_name}}</div>
|
|
</li>
|
|
</ul>
|
|
</vue-seamless-scroll>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tooltip_wrap right_tooltip_wrap" :style="expand ? 'opacity: 1' : 'opacity: 0.1'">
|
|
<div class="tooltip_pages" :style="expand ? 'width: 240px' : 'width: 0'">
|
|
<div class="tooltip_page current_page pointer" @click="toJumpPage(1)">1</div>
|
|
<div class="tooltip_page pointer" @click="toJumpPage(2)">2</div>
|
|
<div class="tooltip_page pointer" @click="toJumpPage(3)">3</div>
|
|
<div class="tooltip_page pointer" @click="toJumpPage(4)">4</div>
|
|
<div class="tooltip_page pointer" @click="toJumpPage(5)">5</div>
|
|
<div class="tooltip_page pointer" @click="toJumpPage(6)">6</div>
|
|
</div>
|
|
<div class="tooltip_arrow pointer" @click="expandTooltip" v-text="expand ? '<<' : '>>'"></div>
|
|
</div>
|
|
<!-- <div class="style_block" style="left: calc(100% / 3);top:0;"></div>
|
|
<div class="style_block" style="background: green;left: calc(100% / 3);top:calc(100% / 3);"></div>
|
|
<div class="style_block" style="left: calc(100% / 3);bottom: 0"></div>
|
|
<div class="style_block" style="background: green;left: calc(200% / 3);top:0;"></div>
|
|
<div class="style_block" style="left: calc(200% / 3);top:calc(100% / 3);"></div>
|
|
<div class="style_block" style="background: blue;left: calc(200% / 3);bottom: 0"></div>
|
|
<div class="style_block" style="background: green;left: 0;top:0;"></div>
|
|
<div class="style_block" style="left: 0;top:calc(100% / 3);"></div>
|
|
<div class="style_block" style="background: green;left: 0;bottom: 0"></div> -->
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { workshopCondition } from '@js/getData2'
|
|
export default {
|
|
name: 'two',
|
|
data () {
|
|
return {
|
|
interTime: this.$store.getters.setTime,
|
|
timer: null,
|
|
expand: false,
|
|
myCharts1: '',
|
|
myCharts2: '',
|
|
DeviceConditionList: [],
|
|
LastMonthFailureList: [],
|
|
LastTenFailureList: [],
|
|
SortAndPalletizingList: [], // 分拣拆码垛对接位
|
|
SemiFinishedProductShelfList: [], // 半成品货架数据
|
|
ManipulatorInfoList: [] // 机械手数据
|
|
}
|
|
},
|
|
computed: {
|
|
defaultOption1 () {
|
|
return {
|
|
step: 0.4, // 数值越大速度滚动越快
|
|
limitMoveNum: 5, // 开始无缝滚动的数据量 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._workshopCondition()
|
|
// this.refresh()
|
|
},
|
|
beforeDestroy () {
|
|
clearInterval(this.timer)
|
|
},
|
|
methods: {
|
|
refresh () {
|
|
this.timer = setInterval(() => {
|
|
this._workshopCondition()
|
|
}, this.interTime)
|
|
},
|
|
async _workshopCondition () {
|
|
let res = await workshopCondition()
|
|
if (res.code === 200) {
|
|
this.DeviceConditionList = [...res.result.DeviceConditionList]
|
|
this.LastMonthFailureList = [...res.result.LastMonthFailureList]
|
|
this.LastTenFailureList = [...res.result.LastTenFailureList]
|
|
this.SortAndPalletizingList = [...res.result.SortAndPalletizingList]
|
|
this.SemiFinishedProductShelfList = [...res.result.SemiFinishedProductShelfList]
|
|
this.ManipulatorInfoList = [...res.result.ManipulatorInfoList]
|
|
this.setEchart1()
|
|
this.setEchart2()
|
|
}
|
|
},
|
|
setEchart1 () {
|
|
let colors = ['#30EBC9', '#E2BB0E', '#516282', '#F96700']
|
|
let status = ['运行', '待机', '关机', '故障']
|
|
// let barName = ['混料', '压制', '干燥', '包装']
|
|
// let data = [[16, 14, 6, 9], [2, 1, 2, 3], [0, 0, 2, 2], [2, 1, 2, 3]]
|
|
let barName = []
|
|
let data = []
|
|
let running = []
|
|
let standby = []
|
|
let shutdown = []
|
|
let failure = []
|
|
this.DeviceConditionList.map(el => {
|
|
barName.push(el.device_name)
|
|
running.push(el.running)
|
|
standby.push(el.standby)
|
|
shutdown.push(el.shutdown)
|
|
failure.push(el.failure)
|
|
})
|
|
data.push(running)
|
|
data.push(standby)
|
|
data.push(shutdown)
|
|
data.push(failure)
|
|
let option = {
|
|
grid: {
|
|
top: 50,
|
|
left: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
containLabel: true
|
|
},
|
|
legend: {
|
|
textStyle: {
|
|
color: '#fff',
|
|
fontSize: 14,
|
|
lineHeight: 14
|
|
},
|
|
itemGap: 30.86,
|
|
itemWidth: 14.16,
|
|
itemHeight: 7.38,
|
|
data: status
|
|
},
|
|
color: colors,
|
|
xAxis: {
|
|
type: 'category',
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
show: true,
|
|
lineStyle: {
|
|
width: 2,
|
|
color: '#8FABBF'
|
|
}
|
|
},
|
|
axisLabel: {
|
|
interval: 0,
|
|
textStyle: {
|
|
color: '#8FABBF',
|
|
fontSize: 16
|
|
}
|
|
},
|
|
data: barName
|
|
},
|
|
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: []
|
|
}
|
|
for (let j = 0; j < status.length; j++) {
|
|
option.series.push({
|
|
name: status[j],
|
|
type: 'bar',
|
|
stack: '总数',
|
|
barWidth: '20',
|
|
label: {
|
|
show: false,
|
|
position: 'insideRight'
|
|
},
|
|
data: data[j]
|
|
// itemStyle: {
|
|
// normal: {
|
|
// label: {
|
|
// show: true, // 开启显示
|
|
// position: 'top', // 在上方显示
|
|
// textStyle: {
|
|
// // 数值样式
|
|
// color: '#fff',
|
|
// fontSize: 14,
|
|
// fontWeight: 600
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
})
|
|
}
|
|
let echart = document.getElementById('home_echart_4')
|
|
if (this.myCharts1 !== '') {
|
|
this.myCharts1.dispose()
|
|
}
|
|
if (echart !== null) {
|
|
this.myCharts1 = this.$echarts.init(echart)
|
|
this.myCharts1.setOption(option)
|
|
window.addEventListener('resize', () => {
|
|
this.myCharts1.resize()
|
|
})
|
|
}
|
|
},
|
|
setEchart2 () {
|
|
// let barName = ['机器5', '混碾5', '机器1', '混碾2', '压机1']
|
|
// let barData = [6, 7, 8, 9, 10]
|
|
let barName = []
|
|
let barData = []
|
|
this.LastMonthFailureList.map(el => {
|
|
barName.push(el.device_name)
|
|
barData.push(el.failure)
|
|
})
|
|
let maxNum = 0
|
|
for (let i = 0; i < barData.length; i++) {
|
|
if (barData[i] > maxNum) {
|
|
maxNum = barData[i]
|
|
}
|
|
}
|
|
maxNum = Math.ceil(maxNum / 5) * 5
|
|
let option = {
|
|
grid: {
|
|
top: 5,
|
|
left: 0,
|
|
right: 70,
|
|
bottom: 0,
|
|
containLabel: true
|
|
},
|
|
xAxis: {
|
|
show: false,
|
|
type: 'value'
|
|
},
|
|
yAxis: [{
|
|
type: 'category',
|
|
axisLabel: {
|
|
show: true,
|
|
textStyle: {
|
|
color: '#8FABBF', // y轴字体颜色
|
|
fontSize: '12'
|
|
}
|
|
},
|
|
splitLine: {
|
|
show: false
|
|
},
|
|
axisTick: {
|
|
show: false
|
|
},
|
|
axisLine: {
|
|
lineStyle: {
|
|
type: [8, 4],
|
|
dashOffset: 4,
|
|
color: '#3D5266', // y轴线颜色
|
|
opacity: 0.4
|
|
}
|
|
},
|
|
data: barName
|
|
}, {
|
|
type: 'category',
|
|
inverse: true,
|
|
axisTick: 'none',
|
|
axisLine: 'none',
|
|
show: false,
|
|
axisLabel: {
|
|
textStyle: {
|
|
color: '#ffffff',
|
|
fontSize: 12
|
|
},
|
|
formatter: function (value) {
|
|
return value + ' %'
|
|
}
|
|
},
|
|
data: barData
|
|
}],
|
|
series: [
|
|
{
|
|
name: '故障次数',
|
|
type: 'bar',
|
|
zlevel: 1,
|
|
itemStyle: {
|
|
normal: {
|
|
color: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [
|
|
{
|
|
offset: 0,
|
|
color: '#B68845',
|
|
opacity: 1
|
|
},
|
|
{
|
|
offset: 1,
|
|
color: 'rgba(134,98,45,0.25)',
|
|
opacity: 0.25
|
|
}
|
|
]),
|
|
barBorderRadius: 0
|
|
}
|
|
},
|
|
barWidth: 10,
|
|
data: barData
|
|
},
|
|
{
|
|
type: 'bar',
|
|
barWidth: 10,
|
|
barGap: '-100%',
|
|
data: barData.map(function (item) {
|
|
return {
|
|
realValue: item,
|
|
value: maxNum
|
|
}
|
|
}),
|
|
label: {
|
|
show: true,
|
|
position: 'right',
|
|
distance: 70,
|
|
align: 'right',
|
|
formatter: function (params) {
|
|
return params.data.realValue + ' 次'
|
|
},
|
|
color: '#fff',
|
|
fontSize: 15
|
|
},
|
|
itemStyle: {
|
|
normal: {
|
|
color: 'rgba(255, 255, 255, 0)'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
let echart = document.getElementById('home_echart_5')
|
|
if (this.myCharts2 !== '') {
|
|
this.myCharts2.dispose()
|
|
}
|
|
if (echart !== null) {
|
|
this.myCharts2 = this.$echarts.init(echart)
|
|
this.myCharts2.setOption(option)
|
|
window.addEventListener('resize', () => {
|
|
this.myCharts2.resize()
|
|
})
|
|
}
|
|
},
|
|
expandTooltip () {
|
|
this.expand = !this.expand
|
|
},
|
|
toJumpPage (type) {
|
|
switch (type) {
|
|
case 1:
|
|
break
|
|
case 2:
|
|
this.$router.push('/hnlktwo')
|
|
break
|
|
case 3:
|
|
this.$router.push('/takeshapetwo')
|
|
break
|
|
case 4:
|
|
this.$router.push('/firedrytwo')
|
|
break
|
|
case 5:
|
|
this.$router.push('/sortpacktwo')
|
|
break
|
|
case 6:
|
|
this.$router.push('/pdtwo')
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="stylus" scoped>
|
|
@import '~@css/mixin'
|
|
.n_container
|
|
position relative
|
|
_wh(100%, 100%)
|
|
overflow hidden
|
|
.n_header
|
|
_wh(100%, 8%)
|
|
_bis('../../../images/bg_header.jpg')
|
|
.n_header_h1
|
|
_wh(100%, 100%)
|
|
_fj(row, flex-start)
|
|
_bis('../../../images/top_right.png',auto,,left)
|
|
h1
|
|
_font(32px, 1, #fff,,right)
|
|
padding-bottom 2%
|
|
letter-spacing 6px
|
|
font-family "阿里妈妈数黑体" !important
|
|
padding-left 3px
|
|
.n_body_container
|
|
_wh(100%, 92%)
|
|
padding 40px 0 20px 0
|
|
_bis('../../../images/bg_content_r.jpg')
|
|
.n_body_container_wraper
|
|
_wh(100%, 100%)
|
|
_fj(row)
|
|
.n_left_content
|
|
position relative
|
|
padding-right calc(100% / 3)
|
|
_wh(100%, 100%)
|
|
.n_right_content
|
|
position absolute
|
|
right 0
|
|
top 0
|
|
_wh(calc(100% / 3), 100%)
|
|
// background-color #070b1c
|
|
background-image linear-gradient(to bottom, #070b1c, transparent)
|
|
.item_wrap
|
|
_wh(100%, calc(100% / 3))
|
|
.item_tip
|
|
_wh(100%, 32px)
|
|
line-height 32px
|
|
padding 0 10px
|
|
.item_tip_bg_s
|
|
_bis('../../../images/bg_title_s.png')
|
|
.item_tip_left
|
|
_wh(60%, 100%)
|
|
font-family "SourceHanSansCN"
|
|
_font(18px, inherit, #fff, 700, left)
|
|
letter-spacing 2px
|
|
text-shadow 0 0 9px #159AFF
|
|
padding-left 34px
|
|
_bis('../../../images/bg_title_tip.png', 22px, 22px, left)
|
|
.item_content
|
|
_wh(100%, calc(100% - 32px))
|
|
padding 10px 5px
|
|
.right_wrap
|
|
position relative
|
|
z-index 1
|
|
_wh(100%, 100%)
|
|
top -5%
|
|
// _bis('../../../images/workshop/workshop_r.png')
|
|
.scroll_wrap
|
|
_wh(100%, 100%)
|
|
border 1px solid rgba(8,205,248,0.3)
|
|
.scroll_tab_1
|
|
_wh(100%, 40px)
|
|
border-bottom 1px solid rgba(8,205,248,0.3)
|
|
li
|
|
float left
|
|
width 20%
|
|
_font(14px,40px,#78B1DE,,center)
|
|
word-wrap break-word
|
|
word-break break-all
|
|
white-space nowrap
|
|
padding 0 5px
|
|
overflow hidden
|
|
box-sizing border-box
|
|
.scroll_container_1
|
|
width 100%
|
|
height calc(100% - 40px)
|
|
overflow hidden
|
|
.scroll-ul_1
|
|
li
|
|
_wh(100%, 44px)
|
|
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_1_div
|
|
float left
|
|
_wh(20%, 44px)
|
|
_fj(row, center)
|
|
_font(14px, 16px, #fff,,center)
|
|
word-wrap break-word
|
|
word-break break-all
|
|
// white-space nowrap
|
|
padding 0 5px
|
|
overflow hidden
|
|
.status_wrap
|
|
position absolute
|
|
top -26px
|
|
right calc(100% / 3)
|
|
z-index 1
|
|
_fj(row)
|
|
.status_item
|
|
_fj(row)
|
|
margin-right 20px
|
|
.status_tip
|
|
_wh(15px, 15px)
|
|
border-radius 50%
|
|
margin-right 10px
|
|
box-shadow 0px 0px 4px 0px rgba(33,121,195,0.88)
|
|
.status_name
|
|
_font(16px, 1, #fff)
|
|
.machine_wrap
|
|
position absolute
|
|
z-index 2
|
|
.sh_machine
|
|
position absolute
|
|
top 0
|
|
left 0
|
|
z-index 3
|
|
width 100%
|
|
img
|
|
position absolute
|
|
top 0
|
|
left 0
|
|
z-index 4
|
|
_wh(100%, auto)
|
|
.mtp_wrap_1
|
|
width 2.5%
|
|
top 39%
|
|
left 1%
|
|
.mtp
|
|
width 100%
|
|
img
|
|
_wh(100%, auto)
|
|
.gtssj_wrap_1
|
|
width 2.5%
|
|
top 39%
|
|
left 7.6%
|
|
.gtssj
|
|
width 100%
|
|
img
|
|
_wh(100%, auto)
|
|
.cpj_wrap_1
|
|
width: 4%;
|
|
top: 42%;
|
|
left: 6.3%;
|
|
.cpj
|
|
width 100%
|
|
img
|
|
_wh(100%, auto)
|
|
.cdz_wrap_1
|
|
width: 3%;
|
|
top: 9%;
|
|
left: 3.5%;
|
|
.cdz
|
|
width 100%
|
|
img
|
|
_wh(100%, auto)
|
|
.cdz_wrap_2
|
|
top: 16%;
|
|
.yao_wrap
|
|
width 69%
|
|
top 7%
|
|
left auto
|
|
right 7%
|
|
background-color #676767
|
|
.yaosb
|
|
width 100%
|
|
img
|
|
_wh(100%, auto)
|
|
.yjbyx_1
|
|
width: 4%;
|
|
top: -2%;
|
|
left: 2%;
|
|
img
|
|
_wh(100%, auto)
|
|
.yjbyx_2
|
|
width: 4%;
|
|
top: -2%;
|
|
left: auto;
|
|
right: 2%;
|
|
img
|
|
_wh(100%, auto)
|
|
.mtp_wrap_3
|
|
width: 3.5%;
|
|
height: 10%;
|
|
top: 85%;
|
|
left: -0.8%;
|
|
transform rotate(-90deg)
|
|
z-index 4
|
|
.mtp
|
|
width 100%
|
|
margin-bottom 10%
|
|
img
|
|
_wh(100%, auto)
|
|
.mtp_wrap_4
|
|
left 18.3%
|
|
top: 87%
|
|
.mtp_wrap_5
|
|
top 105%
|
|
.cmd_block
|
|
width 40%
|
|
height 50%
|
|
position absolute
|
|
top: 39%;
|
|
left: 28%;
|
|
.ktp_wrap_1
|
|
width: 6.3%;
|
|
top: 0;
|
|
left: -12.5%;
|
|
.ktp
|
|
width 100%
|
|
img
|
|
_wh(100%, auto)
|
|
.cmd_wrap_1
|
|
width: 24%;
|
|
height: 36%;
|
|
top: 0
|
|
left: 0
|
|
.robot_1
|
|
left: 48%;
|
|
top: 12%;
|
|
width 1%
|
|
height 1%
|
|
transform: rotate(-90deg)
|
|
img
|
|
width: 2000%;
|
|
top: -2000%;
|
|
left: -1000%;
|
|
.kongtuopan_1
|
|
width 26%
|
|
top 3%
|
|
left 3%
|
|
.kongtuopan_2
|
|
width 26%
|
|
top 3%
|
|
left auto
|
|
right 3%
|
|
.fjfztb
|
|
width: 59%;
|
|
top: 9%;
|
|
left: 17%;
|
|
.weilan1
|
|
width: 100%;
|
|
height: 53%;
|
|
left: 0;
|
|
transform rotate(180deg)
|
|
img
|
|
_wh(100%, 100%)
|
|
.weilan2
|
|
width: 100%;
|
|
height: 53%;
|
|
top: auto;
|
|
bottom: -19%;
|
|
left: 0;
|
|
img
|
|
_wh(100%, 100%)
|
|
.cmdssj_1
|
|
width: 26%
|
|
top: 95%;
|
|
left: 4%;
|
|
img
|
|
transform rotateY(180deg)
|
|
.cmdssj_2
|
|
left auto
|
|
right 4%
|
|
img
|
|
transform rotate(0deg)
|
|
.robot_2
|
|
top: auto;
|
|
bottom: -8%
|
|
left: 48%;
|
|
width 1%
|
|
height 1%
|
|
transform: rotate(-90deg)
|
|
img
|
|
width: 2000%;
|
|
top: -2000%;
|
|
left: -1000%;
|
|
.cmd_wrap_2
|
|
left 30%
|
|
.liu_wrap
|
|
_wh(130%, 78%)
|
|
top 43%
|
|
left -15%
|
|
.cmdssj_1
|
|
width: 4.8%;
|
|
top: -11%;
|
|
left: 74%;
|
|
img
|
|
transform rotateY(180deg)
|
|
.cmdssj_2
|
|
left: 84%;
|
|
img
|
|
transform rotate(0deg)
|
|
.rgv_line_wrap
|
|
position absolute
|
|
top 0
|
|
left 0
|
|
_wh(100%, 9%)
|
|
.rgv_line_1
|
|
position absolute
|
|
top 0
|
|
left 2%
|
|
z-index 4
|
|
width 96%
|
|
height 10%
|
|
background-color #b2b2b2
|
|
margin 0 auto
|
|
box-shadow 0px 3px 10px #333333
|
|
_fj(row)
|
|
.rgv_line_begine
|
|
position absolute
|
|
top -100%
|
|
left 0
|
|
z-index 5
|
|
_wh(0.5%, 300%)
|
|
height 300%
|
|
background-color #b2b2b2
|
|
border-radius 50%
|
|
box-shadow 0px 3px 10px #333333
|
|
.rgv_line_end
|
|
left auto
|
|
right 0
|
|
.rgv_line_node
|
|
_wh(0.2%, 150%)
|
|
background-color #b2b2b2
|
|
border-radius 50%
|
|
box-shadow 0px 1px 4px #333333
|
|
.rgv_line_2
|
|
top auto
|
|
bottom 0
|
|
.rgv_line_3
|
|
position absolute
|
|
top 47.5%
|
|
left 0
|
|
z-index 4
|
|
width 100%
|
|
height 5%
|
|
background-color #b2b2b2
|
|
margin 0 auto
|
|
box-shadow 0px 3px 10px #333333
|
|
.rgvct
|
|
width: 10%;
|
|
top: 0.6%;
|
|
left: 75%;
|
|
.ggtj_wrap_1
|
|
_wh(5%, 90%)
|
|
top: 9%;
|
|
left: 7%;
|
|
.ggtj
|
|
width 100%
|
|
img
|
|
_wh(100%, auto)
|
|
.fmj
|
|
width: 120%;
|
|
left: -10%;
|
|
top 5%
|
|
.ggtj_wrap_2
|
|
left 14%
|
|
.ggtj_wrap_3
|
|
left 24%
|
|
.ggtj_wrap_4
|
|
left 31%
|
|
.ggtj_wrap_5
|
|
left 40%
|
|
.ggtj_wrap_6
|
|
left 48%
|
|
.rgpt
|
|
top 57%
|
|
width: 200%;
|
|
left: -50%;
|
|
z-index 1
|
|
.ltssj
|
|
top 55%
|
|
width: 120%;
|
|
left: -10%;
|
|
.fmj_bzd
|
|
top 80%
|
|
width: 120%;
|
|
left: -10%;
|
|
.crj
|
|
top: 98%;
|
|
width: 180%;
|
|
left: -74%;
|
|
.ggtj_wrap_7
|
|
left 56%
|
|
.ggtj_wrap_8
|
|
left 62%
|
|
.ggtj_wrap_9
|
|
left 68%
|
|
.ggtj_wrap_10
|
|
left 74%
|
|
.ggtj_wrap_11
|
|
left 80%
|
|
.ggtj_wrap_12
|
|
left: 76%;
|
|
top: 58%;
|
|
transform: rotate(-90deg);
|
|
.rotate_1
|
|
animation rotate_1 1.5s linear 1.5s infinite alternate-reverse
|
|
@keyframes rotate_1 {
|
|
0% {
|
|
transform: rotateZ(-90deg)
|
|
}
|
|
10% {
|
|
transform: rotateZ(-90deg)
|
|
}
|
|
90% {
|
|
transform: rotateZ(-180deg)
|
|
}
|
|
100% {
|
|
transform: rotateZ(-180deg)
|
|
}
|
|
}
|
|
.rotate_2
|
|
animation rotate_2 1.5s linear 1.5s infinite alternate-reverse
|
|
@keyframes rotate_2 {
|
|
0% {
|
|
transform: rotateZ(0deg)
|
|
}
|
|
10% {
|
|
transform: rotateZ(0deg)
|
|
}
|
|
90% {
|
|
transform: rotateZ(-90deg)
|
|
}
|
|
100% {
|
|
transform: rotateZ(-90deg)
|
|
}
|
|
}.style_block
|
|
position absolute
|
|
_wh(calc(100% / 3), calc(100% / 3))
|
|
background red
|
|
</style>
|