|
@@ -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: '云' };
|