After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 4.6 KiB |
@ -0,0 +1,53 @@ |
|||
<template> |
|||
<div class="map-box"> |
|||
<div class="map"> |
|||
<liftInfo></liftInfo> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { ref, onMounted } from 'vue'; |
|||
import liftInfo from './liftInfo.vue' |
|||
// 请求 |
|||
import { message } from 'ant-design-vue'; |
|||
|
|||
// 初始化 =========================================================== |
|||
|
|||
onMounted(() => { |
|||
|
|||
}) |
|||
|
|||
// tab页部分 ======================================================== |
|||
|
|||
// 表格数据 |
|||
const dataSource = ref([]); |
|||
|
|||
|
|||
</script> |
|||
<style lang="less" scoped> |
|||
.map-box { |
|||
// 颜色变量,用于区别颜色 |
|||
|
|||
// 正常 - 开启 - 上行 -下行 |
|||
--on: #0DFFA4; |
|||
// 关闭 |
|||
--off: #BFCDE2; |
|||
// 暂停 - 维修 |
|||
--pause: #FFBC46; |
|||
// 告警 - 急停 |
|||
--stop: #F36163; |
|||
// 故障 |
|||
--fault: #FF7636; |
|||
// 未知 |
|||
--unknown: #A742FF; |
|||
width: 100%; |
|||
height: 100%; |
|||
.map { |
|||
width: 1280px; |
|||
height: 720px; |
|||
background-image: url(../image/bg.jpg); |
|||
} |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,151 @@ |
|||
<template> |
|||
<div class="info-box"> |
|||
<div class="box-title"> |
|||
<div class="dot"></div> |
|||
<span>办公区域扶梯A</span> |
|||
</div> |
|||
<div class="box-inner"> |
|||
<!-- 是否开启 --> |
|||
<div class="item"> |
|||
<div class="item-box"> |
|||
<div class="icon"> |
|||
<div class="icon-item"> |
|||
<img src="../image/liftState/lift-normal.svg" alt=""> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="item-text">开启</div> |
|||
</div> |
|||
<!-- 是否故障 --> |
|||
<div class="item"> |
|||
<div class="item-box"> |
|||
<div class="icon"> |
|||
<div class="icon-item"> |
|||
<img src="../image/liftState/lift-normal.svg" alt=""> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="item-text">开启</div> |
|||
</div> |
|||
<!-- 如何运行 --> |
|||
<div class="item"> |
|||
<div class="item-box"> |
|||
<div class="icon"> |
|||
<div class="icon-item"> |
|||
<img src="../image/liftState/lift-normal.svg" alt=""> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="item-text">开启</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { ref, onMounted } from 'vue'; |
|||
|
|||
// 请求 |
|||
|
|||
// 初始化 =========================================================== |
|||
|
|||
onMounted(() => { |
|||
|
|||
}) |
|||
|
|||
// tab页部分 ======================================================== |
|||
|
|||
// 运行状态 |
|||
const runState = ref('1'); |
|||
// 电梯状态 |
|||
const liftState = ref('2'); |
|||
|
|||
|
|||
</script> |
|||
<style lang="less" scoped> |
|||
// 面板 |
|||
.info-box { |
|||
// 字体颜色变量 |
|||
--text: rgb(20, 255, 255); |
|||
|
|||
width: 240px; |
|||
height: 130px; |
|||
display: flex; |
|||
gap: 5px; |
|||
flex-direction: column; |
|||
background: rgb(17, 44, 86, 0.9); |
|||
border-radius: 8px; |
|||
box-sizing: border-box; |
|||
padding: 8px; |
|||
border: 3px solid var(--text); |
|||
// 面板标题 |
|||
.box-title { |
|||
height: auto; |
|||
color: var(--text); |
|||
// 标题前小方块 |
|||
.dot { |
|||
display: inline-block; |
|||
width: 2px; |
|||
height: 16px; |
|||
vertical-align: middle; |
|||
background: var(--text); |
|||
} |
|||
// 标题 |
|||
span { |
|||
padding-left: 8px; |
|||
} |
|||
} |
|||
// 下半部分 |
|||
.box-inner { |
|||
flex: 1; |
|||
display: flex; |
|||
padding: 0 10px; |
|||
// 单个盒子(3盒子) |
|||
.item { |
|||
flex: 1; |
|||
display: flex; |
|||
flex-direction: column; |
|||
// 盒子中放置图片的容器 |
|||
.item-box { |
|||
flex: 1; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
// border: 1px solid red; |
|||
.icon { |
|||
width: 55px; |
|||
height: 55px; |
|||
background-image: url(../image/box.svg); |
|||
background-size: 130% 130%; |
|||
background-repeat: no-repeat; |
|||
background-position: left -8px top -8px; |
|||
// border: 1px solid red; |
|||
position: relative; |
|||
.icon-item { |
|||
position: absolute; |
|||
width: 20px; |
|||
height: 20px; |
|||
left: 0; |
|||
right: 0; |
|||
bottom: 0; |
|||
top: 0; |
|||
margin: auto; |
|||
img { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.item-text { |
|||
height: 20px; |
|||
text-align: center; |
|||
font-size: 12px; |
|||
color: white; |
|||
user-select: none; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
</style> |