瀏覽代碼

fix:场景切换的bug处理

chenzhen2 2 年之前
父節點
當前提交
d5f231416d

+ 3 - 4
src/views/envmonitor/components/ManualWork/index.vue

@@ -934,7 +934,7 @@ export default defineComponent({
               timerArr.map((item: any) => {
                 if (
                   item.formatTimer >= startTime &&
-                  item.formatTimer < endTime
+                  item.formatTimer <= endTime
                 ) {
                   item.isServiceTime = true;
                 }
@@ -1572,9 +1572,8 @@ export default defineComponent({
       proxyData.enterType = newProps.enterType;
       proxyData.deviceItem = newProps.deviceItem;
       proxyData.seviceEquipmentList = newProps.seviceEquipmentList;
-      // if (proxyData.isUpdate) {
-      //   proxyData.setWorkTimeList();
-      // }
+      console.log("弹窗变化了-----==");
+      // proxyData.setWorkTimeList();
     });
     onMounted(() => {
       // 设置dom最外层的宽

+ 77 - 62
src/views/envmonitor/components/Scenario/Scenario.vue

@@ -2,13 +2,14 @@
   <div class="scenario">
     <div class="title">切换场景</div>
     <div class="scenario-box">
-      <div class="scenario-item"
-           @click="handleScene(item,index)"
-           :class="item.code===activeIndex?'active':''"
-           :key="index"
-           v-for="(item,index) in popList"
+      <div
+        class="scenario-item"
+        @click="handleScene(item, index)"
+        :class="item.code === activeIndex ? 'active' : ''"
+        :key="index"
+        v-for="(item, index) in popList"
       >
-        <img :src="parseImgUrl('page-officehome',item.img)" alt="">
+        <img :src="parseImgUrl('page-officehome', item.img)" alt="" />
         <span>{{ item.name }}</span>
       </div>
     </div>
@@ -16,37 +17,47 @@
 </template>
 
 <script lang="ts">
-import { defineComponent, computed, onMounted, reactive, toRefs, watch, getCurrentInstance } from 'vue'
-import { switchoverSceneHttp } from '@/apis/envmonitor'
-import Keys from '@/constant/key'
-import { getUserInfo, parseImgUrl } from '@/utils'
-import { Toast } from 'vant'
+import {
+  defineComponent,
+  computed,
+  onMounted,
+  reactive,
+  toRefs,
+  watch,
+  getCurrentInstance,
+} from "vue";
+import { switchoverSceneHttp } from "@/apis/envmonitor";
+import Keys from "@/constant/key";
+import { getUserInfo, parseImgUrl } from "@/utils";
+import { Toast } from "vant";
 
 export default defineComponent({
   props: {
     projectId: {
       type: String,
-      default: () => ''
+      default: () => "",
     },
     spaceId: {
       type: String,
-      default: () => ''
+      default: () => "",
     },
-    popList: {  // 场景信息
+    popList: {
+      // 场景信息
       type: Array,
-      default: () => []
+      default: () => [],
     },
     vanPopupIndex: {
       type: String,
-      default: () => ''
-    }
+      default: () => "",
+    },
   },
   setup(props, contx) {
-    const sceneDetail: any = {}
+    const sceneDetail: any = {};
     // const activeIndex: any = props.vanPopupIndex
     const proxyData = reactive({
       parseImgUrl: parseImgUrl,
-      showSecenDetailDalig: false,    // 是否展示场景详情页面
+      popList: props.popList,
+      showSecenDetailDalig: false, // 是否展示场景详情页面
       sceneDetail: sceneDetail,
       activeIndex: props.vanPopupIndex,
       /**
@@ -56,68 +67,72 @@ export default defineComponent({
         Toast.loading({
           duration: 0, // 持续展示 toast
           forbidClick: true,
-          message: '正在切换...'
-        })
+          message: "正在切换...",
+        });
       },
       /**
        * 结束
        */
       loadinngEnd() {
-        Toast.clear()
+        Toast.clear();
       },
       // 切换场景
       handleScene(mitem: any, idx: any) {
-        let popList = props.popList
-        let name = mitem.name
+        let popList: any = props.popList;
+        let name = mitem.name;
         for (let i = 0; i < popList.length; i++) {
-          let item: any = popList[i]
+          let item: any = popList[i];
           if (name === item.name) {
-            proxyData.sceneDetail = JSON.parse(JSON.stringify(item))
-            proxyData.sceneDetail.textObj = []
+            proxyData.sceneDetail = JSON.parse(JSON.stringify(item));
+            proxyData.sceneDetail.textObj = [];
 
             item.textObj.map((element: any, idx: any) => {
               setTimeout(() => {
-                proxyData.sceneDetail.textObj.push(element)
-              }, 150 * (idx + 1))
-            })
+                proxyData.sceneDetail.textObj.push(element);
+              }, 150 * (idx + 1));
+            });
           }
         }
-        proxyData.loadingStart()
-        proxyData.activeIndex = proxyData.sceneDetail.code
+        proxyData.loadingStart();
+        proxyData.activeIndex = proxyData.sceneDetail.code;
         // 展示场景详情页面
-        proxyData.showSecenDetailDalig = true
-        const userInfo: any = getUserInfo()
+        proxyData.showSecenDetailDalig = true;
+        const userInfo: any = getUserInfo();
         const params = {
           spaceId: props.spaceId,
           projectId: props.projectId,
           type: proxyData.sceneDetail.code,
-          pubname: userInfo.pubname
-        }
-        switchoverSceneHttp(params).then(res => {
-          // contx.emit('timerSpaceInfo')
-          proxyData.loadinngEnd()
-          contx.emit('setHeadScene', proxyData.sceneDetail.name, proxyData.sceneDetail)
-        }).catch(() => {
-          proxyData.loadinngEnd()
-          contx.emit('setHeadScene', proxyData.sceneDetail.name, proxyData.sceneDetail)
-          // contx.emit('timerSpaceInfo')
-        })
-      }
-    })
-    watch(
-        props,
-        (newProps: any) => {
-          proxyData.activeIndex = newProps.vanPopupIndex
-          // if (newProps.spaceId) {   // 空间id改变的重新获取值调用接口
-          //
-          // }
-        }
-    )
+          pubname: userInfo.pubname,
+        };
+        switchoverSceneHttp(params)
+          .then((res) => {
+            // contx.emit('timerSpaceInfo')
+            proxyData.loadinngEnd();
+            contx.emit(
+              "setHeadScene",
+              proxyData.sceneDetail.name,
+              proxyData.sceneDetail
+            );
+          })
+          .catch(() => {
+            proxyData.loadinngEnd();
+            contx.emit(
+              "setHeadScene",
+              proxyData.sceneDetail.name,
+              proxyData.sceneDetail
+            );
+            // contx.emit('timerSpaceInfo')
+          });
+      },
+    });
+    watch(props, (newProps: any) => {
+      proxyData.activeIndex = newProps.vanPopupIndex;
+    });
     return {
-      ...toRefs(proxyData)
-    }
-  }
-})
+      ...toRefs(proxyData),
+    };
+  },
+});
 </script>
 
 <style lang="scss" scoped>
@@ -150,7 +165,7 @@ export default defineComponent({
     font-size: 12px;
     line-height: 14px;
     text-align: center;
-    color: #4D5262;
+    color: #4d5262;
 
     img {
       display: block;
@@ -161,7 +176,7 @@ export default defineComponent({
     }
 
     &.active {
-      background: #FFE823;
+      background: #ffe823;
       border-radius: 16px;
     }
   }

+ 2 - 2
src/views/envmonitor/components/Scenario/ScenarioConfig.vue

@@ -68,7 +68,7 @@ export default defineComponent({
       parseImgUrl: parseImgUrl,
       scenarioArr: props.scenarioArr,
       scenarioImgArr: scenarioImgArr,
-      activeType: "DISCUSSING",
+      activeType: props.activeType,
       onSubmit(values: any) {
         router.push({ path: "/choice-project" });
       },
@@ -94,7 +94,7 @@ export default defineComponent({
       // 切换场景
       handleScene(item: any) {
         // 展示场景详情页面
-        proxyData.activeType = item.sceneType;
+        // proxyData.activeType = item.sceneType;
         const userInfo: any = getUserInfo();
         const params = {
           spaceId: props.spaceId,

+ 3 - 2
src/views/envmonitor/index.vue

@@ -328,7 +328,7 @@ import ScenarioConfig from "./components/Scenario/ScenarioConfig.vue";
 import MapBox from "@/views/envmonitor/components/Map/MapBox.vue";
 import Header from "@/components/header/Index.vue";
 import Comheader from "@/components/header/Comheader.vue";
-import Scenario from "@/views/envmonitor/components/Scenario/Scenario.vue";
+// import Scenario from "@/views/envmonitor/components/Scenario/Scenario.vue";
 import Air from "@/views/envmonitor/components/Air/index.vue";
 import ManualIndex from "@/views/envmonitor/components/Air/manualIndex.vue";
 import Light from "@/views/envmonitor/components/Light/index.vue";
@@ -379,7 +379,7 @@ export default defineComponent({
     MapBox,
     ComMap,
     ScenarioDailog,
-    Scenario,
+    // Scenario,
     Header,
     Comheader,
     NavBar,
@@ -1268,6 +1268,7 @@ export default defineComponent({
       // 设置场景名称
       setHeadScene(item: any) {
         proxyData.isShowMetting = true;
+        proxyData.activeType = item.sceneType;
         proxyData.secenaroStatus = {
           localName: proxyData.officeData.localName,
           loading: item.loading,