update
This commit is contained in:
parent
9877f6ca84
commit
e65a288533
@ -2,26 +2,37 @@
|
|||||||
<div class="left-box">
|
<div class="left-box">
|
||||||
<div class="sheng">
|
<div class="sheng">
|
||||||
<p>升到位</p>
|
<p>升到位</p>
|
||||||
<p><i class="iconfont icon-zhengque"></i></p>
|
<p><i class="iconfont icon-zhengque" :class="{color:leftStatus == 'top'}"></i></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="zhong">
|
<div class="zhong">
|
||||||
<div class="zhong-left">
|
<div class="zhong-left">
|
||||||
<div>上升中</div>
|
<div>上升中</div>
|
||||||
<div><i class="iconfont icon-shangshengzhong"></i></div>
|
<div><i class="iconfont icon-shangshengzhong" :class="{color:leftStatus == 'up'}"></i></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="zhong-right">
|
<div class="zhong-right">
|
||||||
<div><i class="iconfont icon-xiajiangzhong"></i></div>
|
<div><i class="iconfont icon-xiajiangzhong" :class="{color:leftStatus == 'down'}"></i></div>
|
||||||
<div>下降中</div>
|
<div>下降中</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="jiang">
|
<div class="jiang">
|
||||||
<p><i class="iconfont icon-zhengque"></i></p>
|
<p><i class="iconfont icon-zhengque" :class="{color:leftStatus == 'bottom'}"></i></p>
|
||||||
<p>降到位</p>
|
<p>降到位</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang='ts'>
|
<script setup lang='ts'>
|
||||||
|
import { onMounted, onUnmounted, ref, reactive,watch } from 'vue'
|
||||||
|
const prop = defineProps({
|
||||||
|
leftStatusObj: {
|
||||||
|
type: Object,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
leftStatus: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@ -60,4 +71,7 @@
|
|||||||
font-size: 50px;
|
font-size: 50px;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
}
|
}
|
||||||
|
.color {
|
||||||
|
color: #00FFFF;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<div class="l-content">
|
<div class="l-content">
|
||||||
<div class="l-content-box">
|
<div class="l-content-box">
|
||||||
<Border title="实时状态">
|
<Border title="实时状态">
|
||||||
<LeftStatus></LeftStatus>
|
<LeftStatus :leftStatus="thatstatus"></LeftStatus>
|
||||||
</Border>
|
</Border>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -19,15 +19,15 @@
|
|||||||
<div class="center">
|
<div class="center">
|
||||||
<div class="left-column"></div>
|
<div class="left-column"></div>
|
||||||
<div class="right-column"></div>
|
<div class="right-column"></div>
|
||||||
<div class="sec_floor" :class="{sec_door}">
|
<div class="sec_floor" :class="{ sec_door }">
|
||||||
<img src="./images/left.png" class="left-door" alt="">
|
<img src="./images/left.png" class="left-door" alt="">
|
||||||
<img src="./images/right.png" class="right-door" alt="">
|
<img src="./images/right.png" class="right-door" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="fir_floor" :class="{fir_door}">
|
<div class="fir_floor" :class="{ fir_door }">
|
||||||
<img src="./images/left.png" class="left-door" alt="">
|
<img src="./images/left.png" class="left-door" alt="">
|
||||||
<img src="./images/right.png" class="right-door" alt="">
|
<img src="./images/right.png" class="right-door" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="elevator">
|
<div class="elevator" :style="{ transform: 'translateY(' + y_px + 'px)' }">
|
||||||
<img src="./images/elevator.svg" alt="">
|
<img src="./images/elevator.svg" alt="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -47,15 +47,33 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang='ts'>
|
<script setup lang='ts'>
|
||||||
import { onMounted, onUnmounted, ref, reactive } from 'vue'
|
import { onMounted, onUnmounted, ref, reactive, watch } from 'vue'
|
||||||
import Border from './components/Border.vue'
|
import Border from './components/Border.vue'
|
||||||
import LeftStatus from './components/LeftStatus.vue'
|
import LeftStatus from './components/LeftStatus.vue'
|
||||||
import Buttons from './components/Buttons.vue'
|
import Buttons from './components/Buttons.vue'
|
||||||
import useNowTime from "@/hook/nowTime";
|
import useNowTime from "@/hook/nowTime";
|
||||||
let { timeHtml } = useNowTime();
|
let { timeHtml } = useNowTime();
|
||||||
|
|
||||||
|
let timer = null;
|
||||||
let thatstatus = ref(true)
|
let leftStatusObj = {
|
||||||
|
'up': {
|
||||||
|
name: '上升中',
|
||||||
|
status: false
|
||||||
|
},
|
||||||
|
'down': {
|
||||||
|
name: '下降中',
|
||||||
|
status: false
|
||||||
|
},
|
||||||
|
'top': {
|
||||||
|
name: '升到位',
|
||||||
|
status: true
|
||||||
|
},
|
||||||
|
'bottom': {
|
||||||
|
name: '降到位',
|
||||||
|
status: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let thatstatus = ref('top')
|
||||||
//二楼电梯门
|
//二楼电梯门
|
||||||
let sec_door = ref(false)
|
let sec_door = ref(false)
|
||||||
//一楼电梯门
|
//一楼电梯门
|
||||||
@ -82,6 +100,9 @@ let sec_floor = reactive([
|
|||||||
status: false
|
status: false
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
let y_px = ref(0)
|
||||||
|
let max_px = 680;
|
||||||
|
let min_px = 0;
|
||||||
|
|
||||||
let fir_floor = reactive([
|
let fir_floor = reactive([
|
||||||
{
|
{
|
||||||
@ -101,6 +122,45 @@ let fir_floor = reactive([
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
|
watch(() => thatstatus.value, (val) => {
|
||||||
|
console.log(val)
|
||||||
|
if (val == 'up') {
|
||||||
|
elevatorUp('up')
|
||||||
|
} else if (val == 'down') {
|
||||||
|
elevatorUp('down')
|
||||||
|
} else if (val == 'top') {
|
||||||
|
elevatorUp('top')
|
||||||
|
} else if (val == 'bottom') {
|
||||||
|
elevatorUp('bottom')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电梯上升/下降
|
||||||
|
*/
|
||||||
|
function elevatorUp(type) {
|
||||||
|
if (type == 'top') {
|
||||||
|
y_px.value = min_px
|
||||||
|
return
|
||||||
|
} else if (type == 'bottom') {
|
||||||
|
y_px.value = max_px
|
||||||
|
return
|
||||||
|
}
|
||||||
|
timer = setInterval(() => {
|
||||||
|
if (type == 'up') {
|
||||||
|
y_px.value -= 1
|
||||||
|
if (y_px.value <= min_px) {
|
||||||
|
clearInterval(timer)
|
||||||
|
}
|
||||||
|
} else if (type == 'down') {
|
||||||
|
y_px.value += 1
|
||||||
|
if (y_px.value >= max_px) {
|
||||||
|
clearInterval(timer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 100)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
document.getElementById('app').style.backgroundColor = '#000928'
|
document.getElementById('app').style.backgroundColor = '#000928'
|
||||||
@ -154,16 +214,18 @@ onUnmounted(() => {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border: 1px solid rgba(0, 255, 255, 1);
|
border: 1px solid rgba(0, 255, 255, 1);
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.elevator {
|
.elevator {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
transition: all 0.5s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.elevator img {
|
.elevator img {
|
||||||
width: 70%;
|
height: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-column {
|
.left-column {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 21px;
|
width: 21px;
|
||||||
@ -197,6 +259,7 @@ onUnmounted(() => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
perspective: 2000px;
|
perspective: 2000px;
|
||||||
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fir_floor {
|
.fir_floor {
|
||||||
@ -208,6 +271,7 @@ onUnmounted(() => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
perspective: 2000px;
|
perspective: 2000px;
|
||||||
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-door,
|
.left-door,
|
||||||
@ -228,12 +292,14 @@ onUnmounted(() => {
|
|||||||
border-left: 1px solid rgb(8, 8, 8);
|
border-left: 1px solid rgb(8, 8, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
.sec_door .left-door,.fir_door .left-door {
|
.sec_door .left-door,
|
||||||
|
.fir_door .left-door {
|
||||||
/* transform: rotateY(-140deg); */
|
/* transform: rotateY(-140deg); */
|
||||||
transform: translateX(-90%);
|
transform: translateX(-90%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.sec_door .right-door,.fir_door .right-door {
|
.sec_door .right-door,
|
||||||
|
.fir_door .right-door {
|
||||||
/* transform: rotateY(140deg); */
|
/* transform: rotateY(140deg); */
|
||||||
transform: translateX(90%);
|
transform: translateX(90%);
|
||||||
}
|
}
|
||||||
@ -307,5 +373,4 @@ onUnmounted(() => {
|
|||||||
.right .r-box {
|
.right .r-box {
|
||||||
width: 482px;
|
width: 482px;
|
||||||
height: 328px;
|
height: 328px;
|
||||||
}
|
}</style>
|
||||||
</style>
|
|
||||||
|
Loading…
Reference in New Issue
Block a user