Browse Source

feat: 国际化

anxiaoxia 1 month ago
parent
commit
5b5333c1f0

+ 9 - 0
src/apis/taiguv1.js

@@ -49,6 +49,15 @@ export const HttpGetSpaceInfo = data => {
     ContentType.json // 内容类型
   )
 }
+// 查询窗帘设备列表
+export const findForServe = data => {
+  return https().request(
+    `${envService}/object-service/equipment/findForServe?category=CFSSES&spaceId=${data.spaceId}&projectId=${data.projectId}`, // API 端点
+    Method.POST, // HTTP 方法
+    data, // 请求数据
+    ContentType.json // 内容类型
+  )
+}
 
 // 查询空调设备状态
 export const queryAirStatus = params => {

+ 24 - 7
src/locales/en.json

@@ -7,15 +7,16 @@
         "优秀":"Excellent"
     },
     "mode": {
-        "普通模式": "General Mode",
-        "视频会议": "VC Mode",
-        "投影模式": "Projection",
+        "普通模式": "Standard Mode",
+        "视频会议": "Video Mode",
+        "投影模式": "Projection Mode",
         "美食评鉴": "Food Tasting",
-        "瑜伽模式": "Yoga Mode",
+        "瑜伽模式": "Yoga Classes",
         "私人餐厅": "Private Dining",
         "开放日": "Open House",
         "路演": "Roadshows",
-        "影院模式": "Cinema Mode"
+        "影院模式": "Cinema",
+        "私人拍卖": "Private  Auction"
     },
     "screen":{
         "投屏":"Casting",
@@ -39,10 +40,26 @@
         "已开启":"Open"
     },
     "air":{
-        "title":"AC"
+        "空调":"AC",
+        "风量调节":"Fan Speed",
+        "已关闭":"Closed",
+        "已部分开启":"Partially Open",
+        "已开启":"Open"
+        
     },
     "curtains":{
-        "title":"Curtains"
+        "窗帘":"Curtains",
+        "开启中":"Opening",
+        "暂停中":"Paused",
+        "关闭中":"Closing"
+    },
+    "common":{
+        "全开":"All on",
+        "全关":"All off",
+        "全部开启":"All on",
+        "全部关闭":"All off",
+        "部分开启":"Partially on"
+  
     }
    
 } 

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

@@ -18,7 +18,8 @@
         "私人餐厅": "私人餐厅",
         "开放日": "开放日",
         "路演": "路演",
-        "影院模式": "影院模式"
+        "影院模式": "影院模式",
+        "私人拍卖": "私人拍卖"
     },
     "screen":{
         "投屏":"投屏",
@@ -40,12 +41,24 @@
         "已关闭":"已关闭",
         "已部分开启":"已部分开启",
         "已开启":"已开启"
+
     },
     "air":{
-        "title":"空调"
+        "空调":"空调",
+        "风量调节":"风量调节"
     },
     "curtains":{
-        "title":"窗帘"
+        "窗帘":"窗帘",
+        "开启中":"开启中",
+        "暂停中":"暂停中",
+        "关闭中":"关闭中"
+    },
+    "common":{
+        "全开":"全开",
+        "全关":"全关",
+        "全部开启":"全部开启",
+        "全部关闭":"全部关闭",
+        "部分开启":"部分开启"
     }
 
    

+ 7 - 7
src/views/envmonitor/taiguv1/components/Air/AirMore.vue

@@ -5,11 +5,11 @@
         <div class="air-box">
           <img alt="" :src="airSwitchStatus.switchStatus ? AirIconOpen : AirIconClose" />
         </div>
-        <div class="air-name">{{ airSwitchStatus.statusText }}</div>
+        <div class="air-name">{{ $t('air'+airSwitchStatus.statusText) }}</div>
       </div>
       <div class="right">
-        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', true)">全开</div>
-        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', false)">全关</div>
+        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', true)">{{ $t(`common.全开`) }}</div>
+        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', false)">{{ $t(`common.全关`) }}</div>
       </div>
     </div>
     <div class="air-middle" v-if="airSwitchStatus.switchStatus">
@@ -56,7 +56,7 @@
             <span :class="airData.gear == 2 ? 'span-active' : ''">2</span>
             <span :class="airData.gear == 3 ? 'span-active' : ''">3</span>
           </div>
-          <div class="text">风量调节</div>
+          <div class="text">{{ $t(`air.风量调节`) }}</div>
         </div>
       </div>
     </div>
@@ -104,7 +104,7 @@
                 <span :class="item.gear == 2 ? 'span-active' : ''">2</span>
                 <span :class="item.gear == 3 ? 'span-active' : ''">3</span>
               </div>
-              <div class="text">风量调节</div>
+              <div class="text">{{ $t(`air.风量调节`) }}</div>
             </div>
           </div>
         </div>
@@ -190,10 +190,10 @@ const airSwitchStatus = computed(() => {
   let switchStatus = false
   let arr = props.airList.filter(item => item.runStatus == 1)
   if (arr.length == 0) {
-    statusText = '全部关闭'
+    statusText = '关闭'
     switchStatus = false
   } else {
-    statusText = arr.length > 0 && arr.length < props.airList.length ? '部分开启' : '全部开启'
+    statusText = arr.length > 0 && arr.length < props.airList.length ? '部分开启' : '开启'
     switchStatus = true
   }
   return {

+ 5 - 5
src/views/envmonitor/taiguv1/components/Air/index.vue

@@ -19,8 +19,8 @@
     <div class="bottom">
       <div class="air-info">
         <div class="left">
-          <div class="text">空调</div>
-          <div class="status">{{ airSwitchStatus.statusText  }}</div>
+          <div class="text">{{ $t(`air.空调`) }}</div>
+          <div class="status">{{$t('air.' + airSwitchStatus.statusText) }}</div>
         </div>
         <div class="temp" v-if="airData.isOpen">
           {{ airData.tempSet || 16}}<sup>℃</sup>
@@ -44,7 +44,7 @@
             <span :class="airData.gear == 2 ? 'span-active' : ''">2</span>
             <span :class="airData.gear == 3 ? 'span-active' : ''">3</span>
           </div>
-          <div class="text">风量调节</div>
+          <div class="text">{{ $t(`air.风量调节`) }}</div>
         </div>
         <div class="volume-right">
           <div class="control-item" :ref="setRef" data-type="minus" @click.prevent.stop="handle('minus')">
@@ -172,10 +172,10 @@ const airSwitchStatus = computed(() => {
   let switchStatus = false
   let arr = props.equipList.filter(item => item.runStatus == 1)
   if (arr.length == 0) {
-    statusText = '全部关闭'
+    statusText = '关闭'
     switchStatus = false
   } else {
-    statusText = arr.length > 0 && arr.length < props.equipList.length ? '部分开启' : '全部开启'
+    statusText = arr.length > 0 && arr.length < props.equipList.length ? '部分开启' : '开启'
     switchStatus = true
   }
   return {

+ 3 - 3
src/views/envmonitor/taiguv1/components/Curtain/CurtainMore.vue

@@ -14,15 +14,15 @@
                     class="control_all"
                     :class="topActive ? 'active' : ''"
                     @click="handle('all',1,'开启中','EquipOnSet')"
-                >全开</div>
+                >{{ $t(`common.全开`) }}</div>
                 <div
                     class="control_all"
                     :class="downActive ? 'active' : ''"
                     @click="handle('all',0,'关闭中','EquipOffSet')"
-                >全关</div>
+                >{{ $t(`common.全关`) }}</div>
             </div>
         </div>
-        <div class="control_status">{{ controlStatus ? controlStatus : '' }}</div>
+        <div class="control_status">{{ controlStatus ? $t(`curtains.${controlStatus}`) : '' }}</div>
         <div class="light-bottom">
             <div
                 class="item-box"

+ 2 - 2
src/views/envmonitor/taiguv1/components/Curtain/index.vue

@@ -24,8 +24,8 @@
             </div>
         </div>
         <div class="bottom">
-            <div class="text">窗帘</div>
-            <div class="status">{{ controlStatus }}</div>
+            <div class="text">{{ $t(`curtains.窗帘`) }}</div>
+            <div class="status">{{ controlStatus ? $t(`curtains.${controlStatus}`) :''}}</div>
             <div class="control-box">
                 <div
                     v-for="item in controlName"

+ 2 - 2
src/views/envmonitor/taiguv1/components/Lamp/LightMore.vue

@@ -11,8 +11,8 @@
         <div class="light-name">{{ lampData.lampStatusText }}</div>
       </div>
       <div class="right">
-        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', true)">全开</div>
-        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', false)">全关</div>
+        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', true)">{{ $t(`common.全开`) }}</div>
+        <div class="control" :ref="setRef" @click="handleSwitch('isOpen', false)">{{ $t(`common.全关`) }}</div>
       </div>
     </div>
     <div class="light-middle" v-if="lampData.isOpen">

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

@@ -12,7 +12,7 @@
         <div class="left">
           <div class="text">{{ $t(`audio.音响`) }}</div>
           <div class="status">
-            {{ audioData.isOpen ? `${audioData.onlineStatus ? audioData.onlineStatus : $t(`audio.1`)} ${$t(`audio.播放中`)}` : $t(`audio.已静音`) }}
+            {{ audioData.isOpen ? `${audioData.onlineStatus ? $t(`audio.${audioData.onlineStatus}`) : $t(`audio.1`)} ${$t(`audio.播放中`)}` : $t(`audio.已静音`) }}
           </div>
         </div>
         <div class="temp" v-if="audioData.isOpen">{{ audioData.runStatus || 0 }}</div>

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

@@ -178,17 +178,17 @@
         >
             <div>
                 <LightMore
-                    v-if="isPopup&&popupType == 'lamp'"
+                    v-if="popupType == 'lamp'"
                     :equipList="lampEquipList"
                     :lampStatus="lampStatus"
                 ></LightMore>
                 <CurtainMore
-                    v-if="isPopup&&popupType == 'curtain'"
+                    v-if="popupType == 'curtain'"
                     :currentCurtains="spaceDevice.curtains"
                 ></CurtainMore>
                 <AirMore
                     @getStatus="getAirStatus"
-                    v-if="isPopup&&popupType == 'air'"
+                    v-if="popupType == 'air'"
                     :airList="airEquipList"
                     :status="airStatus"
                 ></AirMore>
@@ -213,7 +213,7 @@ import { ENV_CONFIG, lanageArr, roomSourceData } from './const'
 
 const boxLine = require('@/assets/taiguv1/svg/box_line.png')
 // import "vue3-video-play/dist/style.css";
-import { httpGetByMeetingId, HttpGetSpaceInfo, queryAirStatus, queryAudioStatus, queryLampStatus, queryScreenCastingStatus } from '@/apis/taiguv1'
+import { findForServe, httpGetByMeetingId, HttpGetSpaceInfo, queryAirStatus, queryAudioStatus, queryLampStatus, queryScreenCastingStatus } from '@/apis/taiguv1'
 import useDeviceControl from '@/hooks/useDeviceControl'
 import { useStore } from '@/store'
 const type = ref(localStorage.getItem('lang') || 'zh-CN')
@@ -264,8 +264,8 @@ const { locale } = useI18n()
 const checkLanage = item => {
   type.value = item.type
 //   TODO: 切换语言
-//   locale.value  = item.type
-//   localStorage.setItem('lang',  item.type)  // 持久化存储
+  locale.value  = item.type
+  localStorage.setItem('lang',  item.type)  // 持久化存储
 }
 
 const handleChildLampSwitch = (status, text) => {
@@ -282,8 +282,9 @@ const store = useStore()
 
 onMounted(() => {
     //   TODO: 切换语言
-//   type.value = localStorage.getItem('lang') || 'zh-CN'
-//   locale.value  = type.value
+  type.value = localStorage.getItem('lang') || 'zh-CN'
+  locale.value  = type.value
+  
     try {
         let roomId = route.query.id || 'room4'
 
@@ -295,7 +296,8 @@ onMounted(() => {
             // 获取场景===>轮询 30s
             getSpaceScene({ meetingId: roomInfo.value.meetingId })
         }
-
+        // 获取窗帘列表
+        getCurtainList()
         // 获取设备的状态===>需要轮询
         getDeviceStatus()
         // 获取空间环境参数  轮询 5 分钟
@@ -442,6 +444,16 @@ const sendCommand = () => {
     deviceControl.sendCommands(commands)
 }
 
+const getCurtainList = () => {
+    findForServe({
+        projectId,
+        spaceId: roomInfo.value.spaceId,
+    }).then(res => {
+        console.log(res, 'res窗帘');
+        
+    })
+ }
+
 // 获取设备状态
 const getDeviceStatus = () => {
     let params = {