lg_frontend/pages/visual/PeakCoalView.vue

258 lines
5.6 KiB
Vue
Raw Normal View History

2024-02-18 13:06:37 +00:00
<template>
<div class="peak-coal-content">
<div class="container">
<div class="header-content point">
2024-02-18 13:06:37 +00:00
</div>
<div class="body-content point">
<!-- 左侧内容-->
<div class="left-content point">
<div class="left-data-panel">
<a-row :gutter="24">
<a-col :span="12">
<air-quality/>
</a-col>
<a-col :span="12">
<pollutant-trends/>
</a-col>
<a-col :span="24">
<overview-pollutants/>
</a-col>
<a-col :span="24">
<check-data/>
</a-col>
</a-row>
</div>
</div>
<!-- 中间内容-->
<div class="center-content point-none">
</div>
<!-- 右侧内容-->
<div class="right-content point">
<div class="right-data-panel">
<a-row :gutter="24">
<a-col :span="12">
<energy-use/>
</a-col>
<a-col :span="12">
<enterprise-operations/>
</a-col>
<a-col :span="24">
<device-run/>
</a-col>
<a-col :span="12">
<warning-statistics/>
</a-col>
<a-col :span="12">
<latest-warning/>
</a-col>
</a-row>
</div>
</div>
</div>
<div class="footer-content point">
</div>
2024-02-19 13:16:43 +00:00
<div class="left-icon point"></div>
2024-02-19 13:16:43 +00:00
<div class="right-icon point"></div>
</div>
<Map />
2024-02-19 13:16:43 +00:00
2024-02-18 13:06:37 +00:00
</div>
</template>
<script>
export default {
name: "PeakCoalView",
components: {},
data() {
return {
2024-02-18 13:06:37 +00:00
autoStyle: {}
}
},
mounted() {
2024-02-19 16:02:13 +00:00
this.$log.info('test')
this.$log.error('test')
this.$log.trace('test')
this.$log.info('test')
this.$log.warn('test')
2024-02-18 13:06:37 +00:00
this.getAutoStyle()
window.addEventListener('resize', (e) => {
e.stopPropagation()
this.getAutoStyle()
}, false)
},
methods: {
getAutoStyle() {
const {scale, origin} = this.getScale()
this.autoStyle = {
2024-02-18 13:06:37 +00:00
transform: `scale(${scale})`,
transformOrigin: origin
}
},
getScale() {
2024-02-18 13:06:37 +00:00
let scale = 1
let origin = 'top center'
const baseWidth = 9450
const baseHeight = 3000
const innerWidth = window.innerWidth
const innerHeight = window.innerHeight
const widthScale = innerWidth / baseWidth
const scaleHeight = baseHeight * widthScale
console.log('scaleHeight:', scaleHeight)
2024-02-18 13:06:37 +00:00
if (scaleHeight <= innerHeight) {
origin = 'left top'
scale = widthScale
if (scale > 1) {
origin = 'left top'
}
} else {
scale = innerHeight / baseHeight
}
return {scale, origin}
2024-02-18 13:06:37 +00:00
},
}
}
</script>
<style>
body, html, #__nuxt, #__layout {
width: 100%;
height: 100%;
background-color: #000;
overflow: hidden;
}
2024-02-18 13:06:37 +00:00
.list-enter-active, .list-leave-active {
transition: all 0.5s;
}
2024-02-18 13:06:37 +00:00
.list-enter, .list-leave-to
/* .list-leave-active for below version 2.1.8 */
{
2024-02-18 13:06:37 +00:00
opacity: 0;
transform: translateY(30px);
}
</style>
<style scoped lang="less">
@import "assets/styles/mixin";
.peak-coal-content {
2024-02-18 13:06:37 +00:00
height: 3000px;
width: 9450px;
overflow: hidden;
position: relative;
user-select: none;
.point-none {
pointer-events: none;
}
.point {
pointer-events: auto;
}
.container {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
z-index: 2;
pointer-events: none;
}
.header-content {
position: absolute;
top: 0px;
2024-02-18 13:06:37 +00:00
height: 507px;
width: 100%;
background: url("assets/peakCoalImages/header/first-title-bg.png") no-repeat center center;
}
.body-content {
position: absolute;
height: 100%;
width: 100%;
.left-content {
position: absolute;
left: 0px;
2024-02-19 13:16:43 +00:00
top: 136px;
width: 2935px;
height: 2721px;
background: url("assets/peakCoalImages/left/left-content-bg.png") no-repeat center 60px;
2024-02-19 14:00:33 +00:00
padding: 300px 476px 100px 412px;
2024-02-19 16:02:13 +00:00
perspective: 500px;
2024-02-19 13:16:43 +00:00
.left-data-panel {
height: 100%;
2024-02-19 13:16:43 +00:00
width: 100%;
2024-02-20 12:52:30 +00:00
transform: rotateY(2deg) ;
2024-02-19 16:02:13 +00:00
transform-origin: left center;
}
}
.right-content {
position: absolute;
right: 0px;
2024-02-19 13:16:43 +00:00
top: 136px;
width: 2935px;
height: 2721px;
background: url("assets/peakCoalImages/right/right-content-bg.png") no-repeat center 60px;
2024-02-19 14:00:33 +00:00
padding: 300px 476px 100px 480px;
2024-02-19 16:02:13 +00:00
perspective: 500px;
.right-data-panel {
2024-02-19 14:00:33 +00:00
height: 100%;
width: 100%;
2024-02-19 16:02:13 +00:00
transform: rotateY(-2deg);
transform-origin: right center;
}
}
.center-content {
position: absolute;
left: 50%;
top: 411px;
transform: translateX(-50%);
2024-02-19 13:16:43 +00:00
width: 4383px;
height: 2628px;
background: url("assets/peakCoalImages/center/center-content-bg.png") no-repeat center center;
pointer-events: none;
}
}
.footer-content {
position: absolute;
bottom: 0px;
width: 100%;
height: 220px;
background: url("assets/peakCoalImages/footer/footer-bg.png") no-repeat center center;
}
2024-02-19 13:16:43 +00:00
.left-icon {
position: absolute;
left: 0px;
width: 531px;
height: 100%;
background: url("assets/peakCoalImages/left/left-icon.png") no-repeat center center;
background-size: 100% 100%;
}
.right-icon {
position: absolute;
right: 0px;
width: 531px;
height: 100%;
background: url("assets/peakCoalImages/right/right-icon.png") no-repeat center center;
background-size: 100% 100%;
}
2024-02-18 13:06:37 +00:00
}
</style>