|
@@ -0,0 +1,152 @@
|
|
|
+<template>
|
|
|
+ <div ref="ref_sbDom" class="sb-info">
|
|
|
+ <div class="sb-info-head">
|
|
|
+ <SvgIcon class="__hover" name="tips" size="14" color="#8FFFFF"/>设备
|
|
|
+ </div>
|
|
|
+ <div class="sb-info-close __hover" @click="onCloseSb">
|
|
|
+ <img src="@/components/easyMap/images/close.png" alt=""/>
|
|
|
+ </div>
|
|
|
+ <div class="sb-main">
|
|
|
+ <div class="sb-item">
|
|
|
+ <div class="sb-item-label">名称:</div>
|
|
|
+ <div class="sb-item-value">{{qyParams.sbInfo?.name}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="sb-item">
|
|
|
+ <div class="sb-item-label">状态:</div>
|
|
|
+ <div class="sb-item-value">{{qyParams.sbInfo?.online === '0' ? '在线' : '离线'}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="play-button __hover" @click="showVideo = true">视频调阅</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script lang="ts">
|
|
|
+import {
|
|
|
+ defineComponent,
|
|
|
+ computed,
|
|
|
+ onMounted,
|
|
|
+ ref,
|
|
|
+ reactive,
|
|
|
+ watch,
|
|
|
+ getCurrentInstance,
|
|
|
+ ComponentInternalInstance,
|
|
|
+ toRefs,
|
|
|
+ nextTick
|
|
|
+} from 'vue'
|
|
|
+import {useStore} from 'vuex'
|
|
|
+import {useRouter, useRoute} from 'vue-router'
|
|
|
+import {ElMessage, ElMessageBox} from "element-plus";
|
|
|
+
|
|
|
+export default defineComponent({
|
|
|
+ name: '',
|
|
|
+ components: {},
|
|
|
+ props: {},
|
|
|
+ setup(props, {emit}) {
|
|
|
+ const store = useStore();
|
|
|
+ const router = useRouter();
|
|
|
+ const route = useRoute();
|
|
|
+ const that = (getCurrentInstance() as ComponentInternalInstance).appContext.config.globalProperties
|
|
|
+ const state = reactive({})
|
|
|
+ onMounted(() => {
|
|
|
+ })
|
|
|
+ return {
|
|
|
+ ...toRefs(state),
|
|
|
+ }
|
|
|
+ },
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+.sb-info {
|
|
|
+ $footH: 10px;
|
|
|
+ width: 220px;
|
|
|
+ background: linear-gradient(180deg, #3874C9 0%, #0043C4 100%);
|
|
|
+ border-radius: 0px 4px 4px 4px;
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ &:after {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ bottom: -$footH;
|
|
|
+ border-top: $footH solid #0043C4;
|
|
|
+ border-left: $footH solid transparent;
|
|
|
+ border-right: $footH solid transparent;
|
|
|
+ }
|
|
|
+ .sb-info-head {
|
|
|
+ min-width: 68px;
|
|
|
+ height: 18px;
|
|
|
+ position: absolute;
|
|
|
+ top: -18px;
|
|
|
+ left: 0;
|
|
|
+ font-size: 12px;
|
|
|
+ font-family: PingFang SC;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #FFFFFF;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ line-height: 8px;
|
|
|
+ &:before {
|
|
|
+ z-index: -1;
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ background: linear-gradient(180deg, #3874C9 0%, #0043C4 100%);
|
|
|
+ border-radius: 2px 2px 0 0;/* 设置圆角 */
|
|
|
+ transform: perspective(20px)rotateX(4deg);
|
|
|
+ /* 镜头距离元素表面的位置为8px,x轴为1.1倍y轴为1.3倍,绕x轴旋转5度 */
|
|
|
+ transform-origin: bottom left;
|
|
|
+ /* bottom left = left bottom = 0 100% 中心点偏移量*/
|
|
|
+ }
|
|
|
+ .svg-icon {
|
|
|
+ margin: 0 4px 0 6px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .sb-info-close {
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ top: -16px;
|
|
|
+ }
|
|
|
+ .sb-main {
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ padding: 10px;
|
|
|
+ .sb-item {
|
|
|
+ display: flex;
|
|
|
+ .sb-item-label {
|
|
|
+ width: 42px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-family: PingFang SC;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #08FFFF;
|
|
|
+ line-height: 20px;
|
|
|
+ }
|
|
|
+ .sb-item-value {
|
|
|
+ flex: 1;
|
|
|
+ font-size: 14px;
|
|
|
+ font-family: PingFang SC;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #FFFFFF;
|
|
|
+ line-height: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .play-button {
|
|
|
+ width: 76px;
|
|
|
+ height: 24px;
|
|
|
+ background: #1280F1;
|
|
|
+ border-radius: 2px;
|
|
|
+ border: 1px solid #4BA0FF;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size: 14px;
|
|
|
+ font-family: PingFang SC;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #FFFFFF;
|
|
|
+ margin-left: calc((100% - 76px) / 2);
|
|
|
+ margin-top: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|