feat: 初步完成首页静态交互开发
parent
03cb778c4b
commit
b6923a9b6a
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 230 KiB |
Binary file not shown.
After Width: | Height: | Size: 271 KiB |
@ -1,9 +1,14 @@
|
||||
// src/assets/fonts.scss
|
||||
@font-face {
|
||||
font-family: "DingTalk JinBuTi"; // 自定义字体名称
|
||||
font-family: "DingTalk JinBuTi"; // 自定义字体名称1
|
||||
src: url("@/assets/fonts/DingTalk JinBuTi.ttf") format("truetype");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: "DouyinSansBold"; // 自定义字体名称2
|
||||
src: url("@/assets/fonts/DouyinSansBold.otf") format("truetype");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
@ -1,21 +1,59 @@
|
||||
|
||||
.device-status-wrap{
|
||||
.device-status-wrap {
|
||||
height: 813px;
|
||||
background-image: url("@/assets/common/device_status_bg_line.png");
|
||||
background-image: url("@/assets/deviceStatus/device_status_bg.png");
|
||||
background-size: 100% 100%;
|
||||
background-position: bottom;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.device-status-content-box{
|
||||
|
||||
.device-status-content-box {
|
||||
.el-scrollbar__view {
|
||||
background: transparent !important;
|
||||
height: 600px;
|
||||
}
|
||||
.el-table__inner-wrapper{
|
||||
.el-table__inner-wrapper {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.el-table__body-wrapper, .el-scrollbar__wrap, .el-scrollbar{
|
||||
.el-table__body-wrapper,
|
||||
.el-scrollbar__wrap,
|
||||
.el-scrollbar {
|
||||
background: transparent !important;
|
||||
}
|
||||
}
|
||||
.device-status-tag {
|
||||
width: 78px;
|
||||
height: 24px;
|
||||
border-radius: 14px;
|
||||
border: 1px solid #52c41a;
|
||||
color: #52c41a;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.dot {
|
||||
display: inline-block;
|
||||
margin-right: 8px;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background: #52c41a;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
.device-status-tag-online{
|
||||
@extend .device-status-tag;
|
||||
}
|
||||
.device-status-tag-outline {
|
||||
@extend .device-status-tag;
|
||||
border: 1px solid #999999;
|
||||
color: #999999;
|
||||
.dot {
|
||||
background: #999999;
|
||||
}
|
||||
}
|
||||
.device-status-tag-error {
|
||||
@extend .device-status-tag;
|
||||
border: 1px solid #e80d0d;
|
||||
color: #e80d0d;
|
||||
.dot {
|
||||
background: #e80d0d;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,127 +1,102 @@
|
||||
<template>
|
||||
<el-dialog class="realVideoModal-wrap" v-model="show" @close="handleClose">
|
||||
<!-- 自定义标题栏 -->
|
||||
<template #header="{ close, titleId, titleClass }">
|
||||
<div class="flex items-center justify-between video-dialog-header">
|
||||
<div class="flex items-center justify-center header-left">
|
||||
<div class="header-icon mr-[12px]"></div>
|
||||
<p class="overflow-hidden whitespace-nowrap text-ellipsis max-w-[650px]">{{
|
||||
info.device_name }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 视频播放区域 -->
|
||||
<div class="relative video-container">
|
||||
<RealPlayer :show="show" :videoSrc="info.url" />
|
||||
|
||||
<el-dialog
|
||||
class="realVideoModal-wrap fg-dialog"
|
||||
v-model="show"
|
||||
@close="handleClose"
|
||||
align-center
|
||||
:show-close="false"
|
||||
>
|
||||
<!-- 自定义标题栏 -->
|
||||
<template #header="{ close, titleId, titleClass }">
|
||||
<div
|
||||
class="flex items-center justify-between video-dialog-header fg-dialog-header"
|
||||
>
|
||||
<div class="flex items-center justify-center header-left pl-[24px]">
|
||||
<div class="header-icon mr-[12px]"></div>
|
||||
<p
|
||||
class="overflow-hidden whitespace-nowrap text-ellipsis max-w-[650px]"
|
||||
>
|
||||
{{ info.device_name }}
|
||||
</p>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<div class="fg-dialog-header-close" @click="close"></div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 视频播放区域 -->
|
||||
<div class="relative video-container">
|
||||
<RealPlayer :show="show" :videoSrc="info.url" />
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import RealPlayer from '@/components/videoPlayer/RealPlayer.vue'
|
||||
import { ref } from "vue";
|
||||
import RealPlayer from "@/components/videoPlayer/RealPlayer.vue";
|
||||
|
||||
interface Props {
|
||||
/** 弹窗显隐 */
|
||||
value: boolean;
|
||||
info: Record<string, any>;
|
||||
/** 弹窗显隐 */
|
||||
value: boolean;
|
||||
info: Record<string, any>;
|
||||
}
|
||||
interface Emits {
|
||||
(e: "update:value", val: boolean): void;
|
||||
(e: "update:value", val: boolean): void;
|
||||
}
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
value: false,
|
||||
info: {}
|
||||
value: false,
|
||||
info: {},
|
||||
});
|
||||
|
||||
const emit = defineEmits<Emits>();
|
||||
|
||||
|
||||
const isPlaying = ref(false);
|
||||
|
||||
const openReal = () => {
|
||||
// isPlaying.value = !isPlaying.value;
|
||||
|
||||
// isPlaying.value = !isPlaying.value;
|
||||
};
|
||||
|
||||
// 处理对话框关闭事件
|
||||
const handleClose = () => {
|
||||
isPlaying.value = false;
|
||||
// emits('close');
|
||||
isPlaying.value = false;
|
||||
// emits('close');
|
||||
};
|
||||
|
||||
const show = computed({
|
||||
get() {
|
||||
return props.value;
|
||||
},
|
||||
set(val: boolean) {
|
||||
emit("update:value", val);
|
||||
}
|
||||
get() {
|
||||
return props.value;
|
||||
},
|
||||
set(val: boolean) {
|
||||
emit("update:value", val);
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.realVideoModal-wrap.el-dialog {
|
||||
border: none;
|
||||
overflow: hidden;
|
||||
box-shadow: none;
|
||||
background-color: transparent;
|
||||
background-image: url("@/assets/common/bg_real_dialog.png");
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
width: 805px;
|
||||
height: 612px;
|
||||
padding: 0;
|
||||
margin-top: calc(50vh - 316px);
|
||||
|
||||
.el-dialog__header.show-close {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.el-dialog__close {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
padding-top: 4px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.video-dialog-header {
|
||||
color: white;
|
||||
padding: 0;
|
||||
padding-top: 4px;
|
||||
|
||||
.header-left {
|
||||
padding: 0 18px;
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
|
||||
.header-icon {
|
||||
margin-top: 8px;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
background-image: url("@/assets/common/dialog_title_icon.png");
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
}
|
||||
.video-dialog-header {
|
||||
color: white;
|
||||
.header-left {
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
height: 48px;
|
||||
.header-icon {
|
||||
margin-top: 8px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background-image: url("@/assets/common/dialog_title_icon.png");
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
.video-container {
|
||||
padding: 24px;
|
||||
height: 550px;
|
||||
|
||||
// background: red;
|
||||
.real-video-player {
|
||||
border-radius: 0px 0px 4px 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.video-container {
|
||||
padding: 24px 32px;
|
||||
height: 566px;
|
||||
.real-video-player {
|
||||
border-radius: 0px 0px 4px 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue