فهرست منبع

fix:跳转各个页面的逻辑

zhaojing 1 سال پیش
والد
کامیت
713015a8ba
5فایلهای تغییر یافته به همراه176 افزوده شده و 60 حذف شده
  1. 10 0
      src/api/home.js
  2. 1 0
      src/app.wpy
  3. 41 0
      src/packagesEnv/pages/home/environment.wpy
  4. 103 58
      src/packagesEnv/pages/home/index.wpy
  5. 21 2
      src/packagesEnv/pages/home/resident.wpy

+ 10 - 0
src/api/home.js

@@ -12,6 +12,16 @@ export function getCompanyMapData(companyId) {
     method: 'GET',
   });
 }
+//查询受控列表
+export function queryControlSpaceCompany(params) {
+  return $http({
+    url: `/controlSpaceUser/getControlSpaceCompany`,
+    method: 'POST',
+    serverSp:'http://192.168.4.29:52015',
+    data: JSON.stringify(params)
+  })
+}
+
 //常驻空间快速调节卡片
 export function querySpaceFunctionCard(params) {
   return $http({

+ 1 - 0
src/app.wpy

@@ -58,6 +58,7 @@ wepy.app({
           'pages/home/carboncredit',
           'pages/home/overtime',
           'pages/home/resident',
+          'pages/home/environment',
           'pages/officehome/index',
           'pages/officehome/detail',
           'pages/officehome/demo',

+ 41 - 0
src/packagesEnv/pages/home/environment.wpy

@@ -0,0 +1,41 @@
+<style lang="less">
+.box {
+  padding: 118px 20px 60px;
+  background-color: #ebf5fa;
+  background-repeat: no-repeat;
+  background-size: contain;
+
+  .image {
+    width: 100%;
+  }
+}
+</style>
+<template>
+<div class="box" :style="{'background-image': 'url('+h5StaticPath+'detailBack.jpg)'}">
+  <navigationbar></navigationbar>
+  <image class="image" :src="h5StaticPath+'envirInfo.svg'" mode="widthFix"/></div>
+</template>
+
+<script>
+import wepy from '@wepy/core';
+import store from '@/store';
+import config from '@/config';
+
+wepy.page({
+  store,
+  config: {},
+  data: {
+    h5StaticPath: config.h5StaticPath + '/page-home/',
+  },
+  methods: {},
+  created() {},
+});
+</script>
+<config>
+{
+"navigationStyle":"custom",
+usingComponents: {
+  "navigationbar":'./navigationbar',
+}
+}
+</config>

+ 103 - 58
src/packagesEnv/pages/home/index.wpy

@@ -66,18 +66,27 @@
     .itemCont {
       position: relative;
       bottom: -260px;
-      padding-left: 22px;
+      padding-left: 20px;
       line-height: 32px;
       font-size: 22px;
       color: #fff;
       .spaceName {
         font-weight: 600;
+        display: flex;
+        align-items: center;
+        .name {
+          max-width: 180px;
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
         .resident {
           color: #1b2129;
           font-size: 11px;
           margin-left: 8px;
           padding: 0 5px;
           line-height: 18px;
+          height: 18px;
           background: #96f2e3;
           border-radius: 4px;
           vertical-align: middle;
@@ -225,30 +234,30 @@
 </style>
 <template>
 <div class="homeIndex" :style="{'background-image': 'url('+h5StaticPath+'homeBack.jpg)'}">
-  <div class="projectTitle"  @click="showProject"><span class="name">上格云</span><van-icon name="arrow-down" size="20"/></div>
+  <div class="projectTitle"  @click="showProject"><span class="name">{{nowCompanyName}}</span><van-icon name="arrow-down" size="20"/></div>
   <div class="projectInfo">成为一家牛的让员工幸福的企业</div>
   <div class="weather"><image class="image" :src="h5StaticPath+weather.imgname"/><span class="value">{{weather.temperature}}℃</span><span class="text">{{weather.text}}</span></div>
   <scroll-view scroll-x="true" class="scroll-view">
     <view class="scroll-view-item">
-      <div class="itemCont" v-if="reSpaceId">
-        <div class="spaceName">上格云<span class="resident">常驻工区</span></div>
-        <div class="environment"><span class="param">{{spaceParam.temperature}}℃</span><span class="param">{{spaceParam.co2}}ppm</span><span class="param">{{spaceParam.pm25}}μg/m³</span></div>
+      <div class="itemCont" v-if="reSpaceId"   @click="goEnv('homeShowEnv')">
+        <div class="spaceName"><div class="name">{{ reSpaceName }}</div><span class="resident">常驻工区</span></div>
+        <div class="environment"><span class="param">{{spaceParam.temperature||'--'}}℃</span><span class="param">{{spaceParam.co2||'--'}}ppm</span><span class="param">{{spaceParam.pm25||'--'}}μg/m³</span></div>
       </div>
-      <div class="itemCont" v-if="!reSpaceId">去设置<br>您的常驻工区<van-icon name="arrow" size="20"/></div>
+      <div class="itemCont" v-if="!reSpaceId"   @click="goEnv('homeSetSpace')">去设置<br>您的常驻工区<van-icon name="arrow" size="20"/></div>
     </view>
-    <view class="scroll-view-item"><div class="itemCont envirItem">环境健康小知识<van-icon name="arrow" size="20"/></div></view>
+    <view class="scroll-view-item"><div class="itemCont envirItem" @click="goToIntroduce('environment')">环境健康小知识<van-icon name="arrow" size="20"/></div></view>
   </scroll-view>  
    <scroll-view scroll-x="true" class="scroll-view2">
-    <view class="scroll-view-item2" v-if="showCard.openLight"><div class="title">开启照明</div><div class="info">快速启动</div><div class="imageDiv">
+    <view class="scroll-view-item2" v-if="showCard.openLight" @click="goEnv('openLamp')"><div class="title">开启照明</div><div class="info">快速启动</div><div class="imageDiv">
       <image class="image" :src="h5StaticPath+'lamb.png'"/>
     </div></view>
-    <view class="scroll-view-item2"  v-if="showCard.raiseTemperature"><div class="title">调高温度</div><div class="info">快速启动</div><div class="imageDiv">
+    <view class="scroll-view-item2"  v-if="showCard.raiseTemperature"  @click="goEnv('airAddOne')"><div class="title">调高温度</div><div class="info">快速启动</div><div class="imageDiv">
       <image class="image" :src="h5StaticPath+'airAdjust.png'"/>
     </div></view>
-    <view class="scroll-view-item2"  v-if="showCard.lowerTemperature"><div class="title">调低温度</div><div class="info">快速启动</div><div class="imageDiv">
+    <view class="scroll-view-item2"  v-if="showCard.lowerTemperature"  @click="goEnv('airReduceOne')"><div class="title">调低温度</div><div class="info">快速启动</div><div class="imageDiv">
       <image class="image" :src="h5StaticPath+'airAdjust.png'"/>
     </div></view>
-    <view class="scroll-view-item2"  v-if="showCard.oneClickFullClose"><div class="title">一键全关</div><div class="info">快速全关</div><div class="imageDiv">
+    <view class="scroll-view-item2"  v-if="showCard.oneClickFullClose"  @click="goEnv('closeLampAir')"><div class="title">一键全关</div><div class="info">快速全关</div><div class="imageDiv">
       <image class="image" :src="h5StaticPath+'allClose.png'"/>
     </div></view>
     <view class="scroll-view-item2" @click="goToIntroduce('overtime')"><div class="title">如何预约加时?</div><div class="info">点击查看<van-icon name="arrow" size="14"/></div></view>
@@ -258,20 +267,20 @@
 <div class="menuWrap">
   <div class="menuHeader">服务</div>
   <div class="menuList">
-    <div class="menuItem" @click="goEnv"><div class="menuImg"><image class="image" :src="h5StaticPath+'environment.png'"/></div><div class="menuTitle">环境调节</div></div>
+    <div class="menuItem" @click="goEnv('homeShowEnv')"><div class="menuImg"><image class="image" :src="h5StaticPath+'environment.png'"/></div><div class="menuTitle">环境调节</div></div>
     <div class="menuItem"><div class="menuImg"><image class="image" :src="h5StaticPath+'find.png'"/></div><div class="menuTitle">找一找</div></div>
     <div class="menuItem" @click="goPortrait"><div class="menuImg"><image class="image" :src="h5StaticPath+'myhabits.png'"/></div><div class="menuTitle">我的习惯</div></div>
     <div class="menuItem" @click="goPersonCenter"><div class="menuImg"><image class="image" :src="h5StaticPath+'myself.png'"/></div><div class="menuTitle">个人中心</div></div>
   </div>
   <div class="menuHeader">管理</div>
   <div class="menuList">
-    <div class="menuItem" @click="goEnv"><div class="menuImg"><image class="image" :src="h5StaticPath+'control.png'"/></div><div class="menuTitle">行政端管理</div></div>
+    <div class="menuItem"><div class="menuImg"  @click="goAdministration"><image class="image" :src="h5StaticPath+'control.png'"/></div><div class="menuTitle">行政端管理</div></div>
 </div>
 </div>
 <van-popup :show="show" position="bottom"  @close="hideProject" round>
   <div class="projectPop">
     <div class="projectWrap" style="max-height:{{screenHeight-200}}px">
-      <div class="projectItem"  :class="{'sel':item.id==userInfo.companyId}" v-for="(item, index) in projectList" :key="index" @click="projectClick(item)">{{ item.name }}</div>
+      <div class="projectItem"  :class="{'sel':item.id==userInfo.companyId}" v-for="(item, index) in companyList" :key="index" @click="projectClick(item)">{{ item.name }}</div>
     </div>
     <div class="button">取消</div>
   </div>
@@ -286,6 +295,7 @@ import { mapState } from '@wepy/x';
 import store from '@/store';
 import config from '@/config';
 import {
+  queryControlSpaceCompany,
   querySpaceFunctionCard,
   getSpaceProperty,
   switchCompany,
@@ -300,8 +310,10 @@ wepy.page({
     show: false,
     h5StaticPath: config.h5StaticPath + '/page-home/',
     screenHeight: 560,
-    projectList: [],
+    companyList: [],
+    controlSpaces: [], //租户可控空间
     reSpaceId: '', //常驻空间
+    reSpaceName: '',
     showCard: {},
     spaceParam: {},
     weather: {},
@@ -312,24 +324,53 @@ wepy.page({
       projctId: (state) => state.user?.userInfo?.projctId,
       companyId: (state) => state.user?.userInfo?.companyId,
     }),
+    nowCompanyName: function() {
+      console.log('watchwatchwatch', this.companyId, this.companyList);
+      var filter = this.companyList.filter((item) => {
+        return item.id == this.companyId;
+      });
+      return filter[0]?.name;
+    },
+  },
+  watch: {
+    // companyId: function(newSpaceId, oldSpaceId) {
+    //   console.log('watchwatchwatch', this);
+    //   var filter = this.companyList.filter((item) => {
+    //     return item.id == newSpaceId;
+    //   });
+    //   this.nowCompanyName = filter[0]?.name;
+    // },
   },
   methods: {
     loadData() {
+      var paramObj = {
+        criteria: {
+          companyId: this.userInfo.companyId,
+        },
+      };
+      //查找租户可控空间
+      queryControlSpaceCompany(paramObj)
+        .then((res) => {
+          this.controlSpaces = res.data || [];
+        })
+        .catch((err) => {});
       //常驻空间快速调节卡片
       querySpaceFunctionCard({
         userId: this.userInfo.userId,
         companyId: this.userInfo.companyId,
       })
         .then((res) => {
-          console.log('querySpaceFunctionCard', res);
+          //console.log('querySpaceFunctionCard', res);
           if (res.message == '该用户没有常驻空间') {
             this.reSpaceId = '';
+            this.reSpaceName = '';
             this.showCard = {};
             return;
           }
-          this.reSpaceId = res.spaceId || '';
+          this.reSpaceId = res.spaceId || ''; //有常驻空间
+          this.reSpaceName = res.spaceName || '';
           this.showCard = res || {};
-          console.log('showCardshowCard', this.showCard);
+          //console.log('showCardshowCard', this.showCard);
 
           //常驻空间参数属性
           this.reSpaceId &&
@@ -338,41 +379,27 @@ wepy.page({
               spaceId: this.reSpaceId,
             })
               .then((res) => {
-                console.log('getSpaceProperty', res);
-                this.spaceParam = {
-                  hcho: 0,
-                  pm25: 0,
-                  co2: 0,
-                  temperature: 0,
-                  humidity: 0,
-                };
+                this.spaceParam = res || {};
               })
-              .catch((err) => {
-           
-              });
+              .catch((err) => {});
         })
         .catch((err) => {});
     },
     projectClick: function(item) {
-      //console.log('projectClickprojectClick', item);
+      var _this = this;
       this.show = false;
       switchCompany(item.id)
         .then((res) => {
-          wxLogin()
-            .then((res) => {})
-            .catch((err) => {
-              this.loadData();
-            });
+          if (res.result == 'success') {
+            console.log('switchCompanyswitchCompany');
+            wxLogin()
+              .then((res) => {
+                _this.loadData();
+              })
+              .catch((err) => {});
+          }
         })
-        .catch((err) => {
-          debugger;
-          console.log('switchCompanyswitchCompany');
-          wxLogin()
-            .then((res) => {})
-            .catch((err) => {
-              this.loadData();
-            });
-        });
+        .catch((err) => {});
     },
     hideProject: function() {
       this.show = false;
@@ -380,15 +407,36 @@ wepy.page({
     showProject: function() {
       this.show = true;
     },
-    goEnv() {
+    goEnv(param) {
+      if (this.controlSpaces.length == 0) {
+        wx.showToast({
+          title: '您还未配置可控空间',
+          icon: 'none',
+          duration: 4000,
+        });
+        return;
+      }
+      // switch (param) {
+      //   case 'homeShowEnv':
+      //     break;
+
+      //   case 'homeSetSpace':
+      //     break;
+
+      //   case '':
+      //     break;
+
+      //   default:
+      // }
+
       wx.navigateTo({
-        url:
-          '/packagesEnv/pages/officehome/index?spaceId=Sp1101080259b3510e26e7dd4dd9bf9784f06f3feb68',
+        url: `/packagesEnv/pages/officehome/index?from=${param}`,
       });
     },
     goToIntroduce(id) {
+      var hasControlSpaces = this.controlSpaces.length == 0 ? 'no' : 'has';
       wx.navigateTo({
-        url: '/packagesEnv/pages/home/' + id,
+        url: `/packagesEnv/pages/home/${id}?hasControlSpaces=${hasControlSpaces}`,
       });
     },
     goPortrait() {
@@ -401,26 +449,23 @@ wepy.page({
         url: '/packagesEnv/pages/personalCenter/index',
       });
     },
+    goAdministration() {
+      wx.navigateTo({
+        url: '/packagesEnv/pages/administration/index',
+      });
+    },
   },
   onLoad() {
     // 获取系统信息
     const systemInfo = wx.getSystemInfoSync();
     this.screenHeight = systemInfo.screenHeight;
-    //console.log('systemInfo', systemInfo);
 
     //获取项目list
     getCompanyDataByPhone()
       .then((res) => {
-        console.log('getCompanyDataByPhone', res);
+        this.companyList = res || [];
       })
-      .catch((err) => {
-        this.projectList = [
-          { name: '上格云', id: 'aaaa' },
-          { name: '上格云1', id: 'bb' },
-          { name: '上格云2', id: 'cc' },
-          { name: '上格云3' },
-        ];
-      });
+      .catch((err) => {});
     getWeather(this.userInfo.projectId)
       .then((res) => {
         this.weather = res.content || {}; //{ temperature: 30, text: '云' };

+ 21 - 2
src/packagesEnv/pages/home/resident.wpy

@@ -27,7 +27,7 @@
 <div class="box" :style="{'background-image': 'url('+h5StaticPath+'detailBack.jpg)'}">
   <navigationbar></navigationbar>
   <image class="image" :src="h5StaticPath+'resident.svg'" mode="widthFix"/>
-  <div class="button">去设置常驻工区</div>
+  <div class="button"  @click="goEnv()">去设置常驻工区</div>
 </div>
 </template>
 
@@ -41,9 +41,28 @@ wepy.page({
   config: {},
   data: {
     h5StaticPath: config.h5StaticPath + '/page-home/',
+    hasControlSpaces: 'no',
+  },
+  methods: {
+    goEnv() {
+      if (this.hasControlSpaces == 'no') {
+        wx.showToast({
+          title: '您还未配置可控空间',
+          icon: 'none',
+          duration: 4000,
+        });
+        return;
+      }
+      wx.navigateTo({
+        url: `/packagesEnv/pages/officehome/index?from=homeSetSpace`,
+      });
+    },
   },
-  methods: {},
   created() {},
+  onLoad: function(options) {
+    console.log('optionsoptionsoptions', options.hasControlSpaces);
+    this.hasControlSpaces = options.hasControlSpaces;
+  },
 });
 </script>
 <config>