Files
screen-lnsh/src/pages/modules/homepage/two.vue
2023-06-16 10:40:06 +08:00

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 ? '&lt;&lt;' : '&gt;&gt;'"></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>