Browse Source

fix: 投屏、room10

anxiaoxia 1 month ago
parent
commit
379b007b75

+ 1 - 1
src/apis/taiguv1.js

@@ -52,7 +52,7 @@ export const HttpGetSpaceInfo = data => {
 // 查询窗帘设备列表
 export const findForServe = data => {
   return https().request(
-    `${envService}/object-service/object/equipment/findForServeNew?category=CFSSES&spaceId=${data.spaceId}&projectId=${data.projectId}`, // API 端点
+    `${envService}/object-service/object/equipment/findForServeNew?category=${data.category}&spaceId=${data.spaceId}&projectId=${data.projectId}`, // API 端点
     Method.POST, // HTTP 方法
     data,
     ContentType.json // 内容类型

+ 3 - 1
src/locales/en.json

@@ -59,7 +59,9 @@
         "全部开启":"All on",
         "全部关闭":"All off",
         "部分开启":"Partially on"
-  
+    },
+    "other":{
+        "空间名称切换":"Switch Space Name"
     }
    
 } 

+ 3 - 0
src/locales/zh-CN.json

@@ -62,6 +62,9 @@
         "全部开启":"全部开启",
         "全部关闭":"全部关闭",
         "部分开启":"部分开启"
+    },
+    "other":{
+        "空间名称切换":"空间名称切换"
     }
 
    

+ 82 - 0
src/views/envmonitor/taiguv1/components/RoomMore/index.vue

@@ -0,0 +1,82 @@
+<template>
+    <div class="more-box">
+        <div class="title">{{ $t(`other.空间名称切换`) }}</div>
+        <div class="light-bottom">
+            <div
+                @click="handlezChange(item)"
+                class="item-box"
+                :class="item.id ? 'light-box-active ' : ''"
+                v-for="(item, index) in FORUMArr"
+            >
+                <div class="name">{{ item.roomName }}</div>
+                <div style="width: 100rpx;">
+                    <SwitchButton />
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import SwitchButton from '@/components/switch-button/SwitchButton.vue';
+// 接收父组件传递的初始状态
+const props = defineProps({
+    FORUMArr: {
+        type: Array,
+        default: () => {
+            return []
+        }
+    }
+})
+
+
+
+
+</script>
+<style lang="scss" scoped>
+.more-box {
+    .title {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-bottom: 36px;
+        height: 140px;
+        font-family: PingFang SC;
+        font-weight: 300;
+        font-size: 24px;
+        line-height: 100%;
+        text-align: center;
+        color: #001428;
+        height: 140px;
+    }
+    .light-bottom {
+        // margin-top: 36px;
+        .item-box {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            width: 300px;
+            height: 68px;
+            box-sizing: border-box;
+            padding: 20px 24px;
+            border-radius: 24px 24px 44px 24px;
+            background: rgba(255, 255, 255, 0.2);
+            box-shadow: 0px 10px 20px 0px rgba(0, 20, 40, 0.05);
+            margin-bottom: 12px;
+            .name {
+                //styleName: Chi/Body Regular;
+                font-family: PingFang SC;
+                font-size: 14px;
+                font-weight: 400;
+                line-height: 19px;
+                letter-spacing: 0.02em;
+                color: rgba(0, 20, 40, 1);
+            }
+        }
+        .light-box-active {
+            background: rgba(255, 255, 255, 0.6);
+        }
+    }
+}
+</style>
+

+ 1 - 1
src/views/envmonitor/taiguv1/components/Screen/index.vue

@@ -26,9 +26,9 @@
                 {{$t(`screen.无线投屏`)}}
             </div>
             <div
-                 v-if="roomInfo.name !=='ROOM NAIAD' && roomInfo.name !=='ROOM METIS' && roomInfo.name!=='FORUM 1' && roomInfo.name!=='FORUM 2' && roomInfo.name!=='FORUM 3' && roomInfo.name!=='FORUM'"
                 class="btn"
                 :class="screenData.runStatus == 3 ? 'btn-active' : ''"
+                v-if="['ROOM EOS', 'ROOM GAIA'].includes(roomInfo.name)" 
                 @click="setScreenStatus('runStatus',3)"
             >
                 Teams Room

+ 28 - 0
src/views/envmonitor/taiguv1/const.js

@@ -3681,6 +3681,33 @@ export const lanageArr = [
     text: "EN",
   },
 ];
+export const FORUMArr = [
+  {
+    id: "room9",
+    roomName:"FORUM 1",
+    chineseName: "培训室东",
+    spaceId: "Sp3301050005e5150e4985c04699aaca5ddd2aee4fe2",
+  },
+  {
+    id: "room8",
+    roomName:"FORUM 2",
+    chineseName: "培训室中",
+    spaceId: "Sp3301050005db38dafa8c6c4467ab91bec685914699",
+  },
+  {
+    id: "room7",
+    roomName:"FORUM 3",
+    chineseName: "培训室西",
+    spaceId: "Sp3301050005c7387d09c3df4a8b9fca46d808b69795",
+  },
+  {
+    id: "room10",
+    roomName:"FORUM",
+    chineseName: "培训室东、西、中",
+    spaceId: "Sp3301050005e5150e4985c04699aaca5ddd2aee4fe2",
+  },
+ 
+];
 export const ENV_CONFIG = {
   co2: {
     min: 400,
@@ -3701,3 +3728,4 @@ export const ENV_CONFIG = {
     unit: "μg/m³",
   },
 };
+

+ 58 - 9
src/views/envmonitor/taiguv1/index.vue

@@ -15,14 +15,19 @@
         ></video>
         <div
             class="video-model"
-            v-if="roomInfo.id != 'room9' && roomInfo.id != 'room8' && roomInfo.id != 'room7'"
+            v-if="roomInfo.id != 'room9' && roomInfo.id != 'room8' && roomInfo.id != 'room7'&& roomInfo.id != 'room10'"
         ></div>
         <div class="content">
             <div class="metting-info">
-                <img
-                    class="logo"
-                    :src="roomInfo.icon"
-                />
+                <div
+                    @touchstart="startPressLogo"
+                    @touchend="endPressLogo"
+                >
+                    <img
+                        class="logo"
+                        :src="roomInfo.icon"
+                    />
+                </div>
                 <div
                     @touchstart="startPress"
                     @touchend="endPress"
@@ -128,7 +133,10 @@
             class="fotter"
             :class="airIsOpen ? 'small' : 'fotter'"
         >
-            <div class="box" v-if="screenEquipList?.length">
+            <div
+                class="box"
+                v-if="screenEquipList?.length"
+            >
                 <Screen
                     :roomInfo="roomInfo"
                     :screenStatus="screenStatus"
@@ -136,7 +144,10 @@
                 ></Screen>
             </div>
             <!--设备-->
-            <div class="box" v-if="audioEquipList?.length">
+            <div
+                class="box"
+                v-if="audioEquipList?.length"
+            >
                 <Volumn
                     :audioStatus="audioStatus"
                     :equipList="audioEquipList"
@@ -178,6 +189,10 @@
             teleport="#app"
         >
             <div>
+                <RoomMore
+                    v-if="popupType == 'roomMore'"
+                    :FORUMArr="FORUMArr"
+                ></RoomMore>
                 <LightMore
                     v-if="popupType == 'lamp'"
                     :equipList="lampEquipList"
@@ -208,9 +223,10 @@ import CurtainMore from './components/Curtain/CurtainMore.vue'
 import Curtain from './components/Curtain/index.vue'
 import Lamp from './components/Lamp/index.vue'
 import LightMore from './components/Lamp/LightMore.vue'
+import RoomMore from './components/RoomMore/index.vue'
 import Screen from './components/Screen/index.vue'
 import Volumn from './components/Volumn/index.vue'
-import { ENV_CONFIG, lanageArr, roomSourceData } from './const'
+import { ENV_CONFIG, FORUMArr, lanageArr, roomSourceData } from './const'
 
 const boxLine = require('@/assets/taiguv1/svg/box_line.png')
 // import "vue3-video-play/dist/style.css";
@@ -468,7 +484,7 @@ const getLampScenceControlGroupId = () => {
         category: 'SELTLG'
     }
     findForServe(params).then(res => {
-        lampScenceControlGroup.value.id = res.data[0]?.id
+        lampScenceControlGroup.value.id = res.data[0] ?.id
     })
 }
 
@@ -652,6 +668,39 @@ const handleError = error => {
     router.push('/error')
 }
 
+//TODO: 8*************长按出培训室空间切换*************
+// 添加长按相关变量
+const pressTimerLogo = ref(null);
+const pressDurationLogo = 1000 * 10; // 长按时间阈值(10秒)
+
+// 开始按压图标
+const startPressLogo = () => {
+    const validIds = ['room7', 'room8', 'room9', 'room10'];
+    if (validIds.includes(roomInfo.value.id)) {
+        pressTimerLogo.value = setTimeout(() => {
+            // 设置popupType为roomMore
+            popupType.value = 'roomMore';
+            // 打开弹窗
+            isPopup.value = true;
+        }, pressDurationLogo);
+    }
+};
+
+// 结束按压图标
+const endPressLogo = () => {
+    if (pressTimerLogo.value) {
+        clearTimeout(pressTimerLogo.value);
+        pressTimerLogo.value = null;
+    }
+};
+
+// 在组件卸载时清理定时器
+onUnmounted(() => {
+    if (pressTimerLogo.value) {
+        clearTimeout(pressTimerLogo.value);
+    }
+});
+
 //TODO: 8*************长按刷新*************
 
 // 添加长按相关变量