Przeglądaj źródła

fix: pad的控制处理

chenzhen2 2 lat temu
rodzic
commit
289269ceb1

+ 37 - 26
src/App.vue

@@ -3,67 +3,78 @@
     <Header
       v-if="route.meta && !route.meta.hideHeader"
       :color="route.meta.color"
+      :metaObj="route.meta"
     />
     <div
-      :class="!route.meta.hideHeader?'ptheader':''"
-      :style="{'background': route.meta.color}"
+      :class="!route.meta.hideHeader ? 'ptheader' : ''"
+      :style="{ background: route.meta.color }"
     />
     <router-view :key="route.fullPath" />
   </div>
 </template>
 
 <script lang="ts">
-import { defineComponent, nextTick, onMounted, reactive, toRefs } from 'vue'
-import Header from '@/components/header/Comheader.vue'
-import { useRoute, onBeforeRouteUpdate } from 'vue-router'
+import { defineComponent, nextTick, onMounted, reactive, toRefs } from "vue";
+import Header from "@/components/header/Comheader.vue";
+import { useRoute, onBeforeRouteUpdate } from "vue-router";
+import { getCookieMac } from "./utils/cookies";
 
 export default defineComponent({
   components: {
-    Header
+    Header,
+  },
+  beforeRouteLeave(to, from, next) {
+    debugger;
+    if (to.name === "home") {
+      let mac: any = getCookieMac();
+      from.query.mac = mac;
+    }
+    next();
   },
   setup() {
-    const route: any = useRoute()
+    const route: any = useRoute();
     const data = reactive({
       route: route,
-      transitionName: 'slide-right',
-      showHeader: false
-    })
+      transitionName: "slide-right",
+      showHeader: false,
+    });
     nextTick(() => {
-      const document: any = window.document
-      document.addEventListener('touchstart', function(event: any) {
+      const document: any = window.document;
+      document.addEventListener("touchstart", function (event: any) {
         if (event.touches.length > 1) {
-          event.preventDefault()
+          event.preventDefault();
         }
-      })
-      document.addEventListener('gesturestart', function(event: any) {
-        event.preventDefault()
-      })
-    })
+      });
+      document.addEventListener("gesturestart", function (event: any) {
+        event.preventDefault();
+      });
+    });
     onMounted(() => {
       // debugger
     });
     return {
-      ...toRefs(data
-      )
-    }
-  }
-})
+      ...toRefs(data),
+    };
+  },
+});
 </script>
 <style lang="scss" scoped>
 .home {
   .child-view {
     position: absolute;
     width: 100%;
-    transition: all .8s cubic-bezier(.55, 0, .1, 1);
+    transition: all 0.8s cubic-bezier(0.55, 0, 0.1, 1);
   }
 
-  .slide-left-enter, .slide-right-leave-active {
+  .slide-left-enter,
+  .slide-right-leave-active {
     opacity: 0;
     -webkit-transform: translate(50px, 0);
     transform: translate(50px, 0);
   }
 
-  .slide-left-leave-active, .slide-right-enter {
+  .slide-left-leave-active,
+  .slide-right-enter {
     opacity: 0;
     -webkit-transform: translate(-50px, 0);
     transform: translate(-50px, 0);

+ 4 - 2
src/apis/envmonitor.ts

@@ -265,14 +265,16 @@ export const getPadImg = (params: any) => {
  * 设备手动控制
  */
 export const querySpaceConditioners = (params: any) => {
-  return https().request<any>(`${duoduoenvService}ctrl/querySpaceConditioners?${params}`, Method.GET, undefined, ContentType.json)
+  // return https().request<any>(`${duoduoenvService}ctrl/querySpaceConditioners?${params}`, Method.GET, undefined, ContentType.json)
+  return https().request<any>(`${testApi}ctrl/querySpaceConditioners?${params}`, Method.GET, undefined, ContentType.json)
 }
 
 /**
  * 设备手动控制
  */
 export const setSpaceCondtioners = (data: any) => {
-  return post(`${duoduoenvService}ctrl/set`, data)
+  // return post(`${duoduoenvService}ctrl/set`, data)
+  return post(`${testApi}ctrl/set`, data)
 }
 
 

+ 24 - 0
src/components/header/Comheader.vue

@@ -8,6 +8,9 @@
         <span>{{ route.meta.title }}</span>
         <span>{{ route.meta.title1 }}</span>
       </div>
+      <div class="return-login" v-if="metaObj.showLogoOut" @click="goLogin">
+        退出
+      </div>
     </div>
   </div>
 </template>
@@ -16,6 +19,7 @@
 import { defineComponent, onMounted, reactive, toRefs } from "vue";
 import { Icon } from "vant";
 import { useRoute, useRouter } from "vue-router";
+import { getCookieMac } from "@/utils/cookies";
 
 export default defineComponent({
   props: {
@@ -23,6 +27,12 @@ export default defineComponent({
       type: String,
       default: () => "#fff",
     },
+    metaObj: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
     // title: {
     //   type: String,
     //   default: () => "",
@@ -43,6 +53,13 @@ export default defineComponent({
           router.back();
         }
       },
+      goLogin() {
+        let mac: any = getCookieMac();
+        router.push({
+          name: "home",
+          query: { mac: mac, type: "logoOut" },
+        });
+      },
     });
     onMounted(() => {
       console.log(props);
@@ -56,6 +73,7 @@ export default defineComponent({
 
 <style lang="scss" scoped>
 .header {
+  position: relative;
   box-sizing: border-box;
   padding: 5px 10px;
   width: 100%;
@@ -102,4 +120,10 @@ export default defineComponent({
     }
   }
 }
+.return-login {
+  position: absolute;
+  font-size: 18px;
+  right: 30px;
+  bottom: 15px;
+}
 </style>

+ 35 - 30
src/components/header/Index.vue

@@ -1,68 +1,70 @@
 <template>
   <div class="header-content">
-<!--    <div class="header-return" @click="goBack">-->
-<!--      <VanIcon class="header-icon" name="arrow-left"/>-->
-<!--    </div>-->
+    <!--    <div class="header-return" @click="goBack">-->
+    <!--      <VanIcon class="header-icon" name="arrow-left"/>-->
+    <!--    </div>-->
     <div class="weather">
       <img
         v-show="outWeather.imgname"
         :src="outWeather.imgname"
         class="weather-icon"
         alt=""
-      >
+      />
       <div class="weather-text">
         <p>
-          <span class="pr5">{{ outWeather.temperature ? outWeather.temperature : '--' }}℃</span>
+          <span class="pr5"
+            >{{ outWeather.temperature ? outWeather.temperature : "--" }}℃</span
+          >
           <span>/</span>
           <span class="pr5">PM2.5</span>
-          <span>{{ outWeather.pm25 ? outWeather.pm25 : '--' }}</span>
+          <span>{{ outWeather.pm25 ? outWeather.pm25 : "--" }}</span>
         </p>
         <p>
-          <span class="pr5">{{ outWeather.text ? outWeather.text : '--' }}</span>
-          <span>{{outWeather.quality ? outWeather.quality :'--'}}</span>
+          <span class="pr5">{{
+            outWeather.text ? outWeather.text : "--"
+          }}</span>
+          <span>{{ outWeather.quality ? outWeather.quality : "--" }}</span>
         </p>
       </div>
     </div>
-    <div class="set-space-btn" @click="setPermanentSpace">
-      设置常驻空间
-    </div>
+    <div class="set-space-btn" @click="setPermanentSpace">设置常驻空间</div>
   </div>
 </template>
 <script lang="ts">
-import { defineComponent, onMounted, reactive, toRefs } from 'vue'
-import { Icon } from 'vant'
-import { useRouter } from 'vue-router'
+import { defineComponent, onMounted, reactive, toRefs } from "vue";
+import { Icon } from "vant";
+import { useRouter } from "vue-router";
 
 export default defineComponent({
   props: {
     outWeather: {
       type: Object,
       default: () => {
-        return {}
-      }
+        return {};
+      },
     }
   },
   components: {
-    VanIcon: Icon
+    VanIcon: Icon,
   },
   setup() {
-    const router = useRouter()
+    const router = useRouter();
     const proxyData = reactive({
       goBack() {
-        window.history.go(-1)
+        window.history.go(-1);
       },
       /**
        * 设置常驻空间
        */
       setPermanentSpace() {
-        router.push({ path: '/mySpace' })
-      }
-    })
+        router.push({ path: "/mySpace" });
+      },
+    });
     return {
-      ...toRefs(proxyData)
-    }
-  }
-})
+      ...toRefs(proxyData),
+    };
+  },
+});
 </script>
 
 <style lang="scss" scoped>
@@ -72,7 +74,11 @@ export default defineComponent({
   padding: 10px 12px;
   width: 100%;
   height: 100%;
-  background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 100%);
+  background: linear-gradient(
+    180deg,
+    rgba(0, 0, 0, 0.3) 0%,
+    rgba(0, 0, 0, 0) 100%
+  );
 
   .set-space-btn {
     position: absolute;
@@ -83,7 +89,7 @@ export default defineComponent({
     padding: 0 10px;
     height: 28px;
     line-height: 28px;
-    background: #FFE823;
+    background: #ffe823;
     box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.07), 0px 0px 1px rgba(0, 0, 0, 0.15);
     border-radius: 30px;
     top: 50%;
@@ -105,10 +111,9 @@ export default defineComponent({
   font-size: 24px;
   color: #fff;
   vertical-align: middle;
-  .header-icon{
+  .header-icon {
     font-size: 15px;
   }
-
 }
 
 .weather {

+ 2 - 1
src/router/index.ts

@@ -148,7 +148,8 @@ export const constantRoutes: Array<RouteRecordRaw> = [
       title: '选择所属公司名称',
       toName: "home",
       color: '#fff',
-      hideHeader: false
+      hideHeader: false,
+      showLogoOut: true
     }
   },
   {

+ 1 - 1
src/utils/https.ts

@@ -23,7 +23,7 @@ export const https = (configobj: any = { timeout: '' }) => {
   const https = new HttpClient(config)
   https.httpClient.interceptors.request.use(function (request) {
     let comInfo = getUserInfo()
-    comInfo.projectId="Pj1101080255"
+    // comInfo.projectId="Pj1101080255"
     const comParams: string = setQueryConfig(comInfo)
     let url: any = request.url
     if (url.indexOf("?") != -1) {

+ 19 - 29
src/views/choiceSpace/choiceSpace.vue

@@ -72,7 +72,7 @@
         <span
           v-for="(item, index) in spaceTypeArr"
           @click="checkSpaceType(item)"
-          :class="spaceType.type===item.type?'active-type':''"
+          :class="spaceType.type === item.type ? 'active-type' : ''"
           :key="'space-type-id' + index"
         >
           {{ item.name }}
@@ -341,23 +341,6 @@ export default defineComponent({
       },
       // 设置主空间
       goNext() {
-        // let data: any = proxyData.formataWorkData();
-        // let idArr: any = [];
-        // data.map((item: any) => {
-        //   idArr.push(item.spaceId);
-        // });
-        // if (idArr.length) {
-        //   let params: any = {
-        //     floorId: proxyData.checkPositon.floorId,
-        //     workSpaceList: idArr,
-        //     majorSpaceId: idArr[0], //类型:String  必有字段  备注:主空间
-        //     macAddress: proxyData.userInfo.mac, //类型:String  必有字段  备注:平板地址
-        //   };
-        //   proxyData.saveWorkSpace(params);
-        // } else {
-        //   Toast("请选择办公空间!");
-        // }
-        // proxyData.saveWorkSpace();
         proxyGlobal.proxy.$loadingStart(0);
         proxyData.querySpaceList();
       },
@@ -368,10 +351,10 @@ export default defineComponent({
           proxyData.deleteWorkSpace(item);
         }
       },
-      insertWorkSpace(item: any) {
+      insertWorkSpace(item: any, isMajorSpace: any = 0) {
         let params: any = {
           spaceId: item.spaceId, //类型:String  必有字段  备注:工作空间列表
-          isMajorSapce: 0, //类型:Number  必有字段  备注:是否主空间 0-否 1-是
+          isMajorSpace: isMajorSpace, //类型:Number  必有字段  备注:是否主空间 0-否 1-是
           macAddress: proxyData.userInfo.mac, //类型:String  必有字段  备注:平板地址
         };
         insertWorkSpace(params).then((res: any) => {});
@@ -384,13 +367,13 @@ export default defineComponent({
         deleteWorkSpace(params).then((res: any) => {});
       },
       // 保存空间
-      saveWorkSpace(params: any) {
-        proxyGlobal.proxy.$loadingStart(0);
-        saveWorkSpace(params).then((res) => {
-          proxyData.querySpaceList();
-          // router.push({ name: "setMainSpace" });
-        });
-      },
+      // saveWorkSpace(params: any) {
+      //   proxyGlobal.proxy.$loadingStart(0);
+      //   saveWorkSpace(params).then((res) => {
+      //     proxyData.querySpaceList();
+      //     // router.push({ name: "setMainSpace" });
+      //   });
+      // },
       querySpaceList() {
         let params: any = {
           criteria: {
@@ -415,10 +398,11 @@ export default defineComponent({
                 router.push({ name: "setMainSpace" });
               }, 1000);
             } else if (data.length === 1) {
+              proxyData.insertWorkSpace(data[0], 1);
               proxyGlobal.proxy.$loadinngEnd();
               router.push({
-                name: "envmonitor",
-                query: { spaceId: data[0].spaceId },
+               name: "envmonitor",
+               query: { spaceId: data[0].spaceId },
               });
             } else {
               Toast("请选择办公空间!");
@@ -543,6 +527,12 @@ export default defineComponent({
         let projectId: any = route.query.id;
         store.commit(UserMutationTypes.SET_PROJECT_ID, projectId);
         proxyData.getDefaultLocation();
+        if (spaceId) {
+          let item: any = {
+            spaceId: spaceId, //类型:String  必有字段  备注:工作空间列表
+          };
+          proxyData.insertWorkSpace(item, 0);
+        }
       },
     });
     onMounted(() => {

+ 2 - 1
src/views/envmonitor/components/Air/manualIndex.vue

@@ -698,7 +698,8 @@ export default defineComponent({
         const paramObj = {
           // // projectId: props.projectId, //'Pj1101080255'
           // projectId: "Pj1101080255",
-          spaceId: "Sp110108025564f438d7fef64eea8202a6462f1bbcce",
+          // spaceId: "Sp110108025564f438d7fef64eea8202a6462f1bbcce",
+          spaceId: props.spaceId,
           // spaceId: props.spaceId,//'Sp110108025564f438d7fef64eea8202a6462f1bbcce' 空间id
         };
         //wx.showLoading();

+ 6 - 4
src/views/home/index.vue

@@ -86,7 +86,7 @@ import { UserActionTypes } from "@/store/modules/user/action-types";
 import { store, useStore } from "@/store";
 import { login } from "@/apis/user";
 import { Form, Field, CellGroup, Button, Toast } from "vant";
-import { setToken } from "@/utils/cookies";
+import { getCookieMac, setToken } from "@/utils/cookies";
 import { getPadQrCodeStatus, queryWorkSpace } from "@/apis/envmonitor";
 import { getUrlParams } from "@/utils/https";
 import { UserMutationTypes } from "@/store/modules/user/mutation-types";
@@ -107,7 +107,7 @@ export default defineComponent({
     console.log(to);
     console.log(from);
     // next()
-    if (from.name !== "envmonitor") {
+    if (from.name !== "envmonitor" || to.query.type !== "logoOut") {
       next((e: any) => {
         console.log(e);
         e.queryWorkSpace();
@@ -115,10 +115,12 @@ export default defineComponent({
     } else {
       next((e: any) => {
         e.showLogin = true;
-        // to.query = { mac: e.userInfo.mac };
+        let mac: any = getCookieMac();
+        console.log(mac)
+        // to.query = { mac: mac};
         console.log(to);
         // console.log( e.showLogin )
-        // router.push({ name: "home", query: { mac: e.userInfo.mac } });
+        // router.push({ name: "home", query: { mac: mac } });
       });
     }
   },

+ 1 - 1
vue.config.js

@@ -101,7 +101,7 @@ module.exports = {
       },
       '/sgipad/test/': {
         // target: 'https://duoduoenv.sagacloud.cn',
-        target: 'http://192.168.0.47:52015',
+        target: 'http://192.168.0.13:52009',
         changeOrigin: true,
         pathRewrite: {
           '^/sgipad/test': ''