浏览代码

Merge branch 'master' of http://39.106.8.246:3003/sagacloud/sagacloud-sagacare-weChat

anxiaoxia 1 年之前
父节点
当前提交
51dcedd00b

+ 35 - 1
src/api/user.js

@@ -1,4 +1,5 @@
 import $http from '@/common/request.js';
+import config from '@/config';
 function getCompmayUsers() {
   return $http({
     url: `/user/companyUsers`,
@@ -6,6 +7,7 @@ function getCompmayUsers() {
   });
 }
 
+// 获取用户信息
 function getUserInfo(params) {
   return $http({
     url: '/user/info',
@@ -23,11 +25,43 @@ function setWxAuthUserInfo(params) {
   // return Promise.resolve()
 }
 
+function login(params) {
+  return $http({
+    url: `${config.duoduoenvService}userNew/wechat/login`,
+    method: 'POST',
+    data: JSON.stringify(params)
+  })
+}
+
+// duoduo-service/duoduoenv-service/userNew/wechat/register
+// 注册
+function register(params) {
+  return $http({
+    url: `${config.duoduoenvService}userNew/wechat/register`,
+    method: 'POST',
+    data: JSON.stringify(params)
+  })
+}
+
+// 根据手机号获取租户数据
+function getCompanyByPhone(params) {
+  return $http({
+    url: `${config.duoduoenvService}userNew/company?phone=${params.phone}`,
+    method: 'get'
+  })
+
+
+}
+
+
+
+
 
 
 
 
 export {
   getCompmayUsers,
-  getUserInfo
+  getUserInfo,
+  login
 }

+ 8 - 7
src/app.wpy

@@ -10,11 +10,11 @@
 </style>
 
 <script>
-import wepy from '@wepy/core'
-import eventHub from './common/eventHub'
-import vuex from '@wepy/x'
+import wepy from '@wepy/core';
+import eventHub from './common/eventHub';
+import vuex from '@wepy/x';
 
-wepy.use(vuex)
+wepy.use(vuex);
 
 wepy.app({
   hooks: {
@@ -22,7 +22,7 @@ wepy.app({
     // 同时存在 Page hook 和 App hook 时,优先执行 Page hook,返回值再交由 App hook 处
     'before-setData': function(dirty) {
       //   console.log('setData dirty: ', dirty);
-      return dirty
+      return dirty;
     }
   },
   globalData: {
@@ -38,12 +38,13 @@ wepy.app({
   },
 
   methods: {}
-})
+});
 </script>
 <config>
 {
     pages: [
-      'pages/index',
+   
+      'pages/auth/index',
       'pages/bindTenant/index',
     ],
     "subpackages":[

+ 4 - 1
src/components/common/page-top-bar.wpy

@@ -60,7 +60,10 @@ wepy.component({
   props: {
     title: String,
     iconType: String,
-    icon: String,
+    icon: {
+      type: String,
+      default: config.h5StaticPath + '/page-top-bar/return-icon.svg'
+    },
     // white
     iconBg: String,
     bgColor: {

+ 103 - 0
src/packagesEnv/pages/intelligentControl/components/floor/floor copy.wpy

@@ -0,0 +1,103 @@
+<style lang="less">
+.component-floor {
+  border-radius: 16rpx;
+  background: rgba(255, 255, 255, 0.9);
+  .floor-wrapper {
+    display: flex;
+    flex-direction: column-reverse;
+  }
+}
+.component-floor.fold .floor-item {
+  background: none;
+}
+
+.component-floor .floor-item {
+  width: 96rpx;
+  height: 96rpx;
+
+  font-weight: bold;
+  font-size: 36rpx;
+  line-height: 96rpx;
+  color: rgba(13, 13, 61, 0.86);
+  text-align: center;
+}
+
+.floor-item:first-child {
+  border-radius: 16rpx 16rpx 0 0;
+}
+.floor-item.selected {
+  background: #fbf0e0;
+}
+.floor-item:last-child {
+  border-radius: 0 0 8px 8px;
+}
+.icon-arrow {
+  width: 96rpx;
+  height: 96rpx;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.icon-arrow .icon {
+  width: 20rpx;
+  height: 24rpx;
+}
+</style>
+
+<template>
+  <!-- && selectedFloor == item.id -->
+  <div class="{{'component-floor '+status}}">
+    <div class="floor-wrapper">
+      <div
+        class="floor-item"
+        :class="{'selected' :selectedFloor == item.id}"
+        :key="index+'map'"
+        v-for="(item,index) in floors"
+        v-on:click.stop="changeFloor(item.id)"
+        v-if="status=='expand' || status=='fold'"
+      >{{item.localName}}</div>
+    </div>
+    <div class="icon-arrow" wx:if="{{status=='expand'}}">
+      <image
+        mode="scaleToFill"
+        class="icon"
+        src="{{h5StaticPath+ 'icon-floor-arrow.svg'}}"
+        v-on:click.stop="flodFloor"
+      />
+  </div>
+  </div>
+</template>
+
+<script>
+import wepy from '@wepy/core';
+import config from '@/config';
+
+let h5StaticPath = config.h5StaticPath + '/page-intelligent-control/';
+
+wepy.component({
+  data: {
+    h5StaticPath
+  },
+  props: {
+    floors: Array,
+    status: 'fold',
+    selectedFloor: String //选中的floor id
+  },
+  created() {},
+  ready() {},
+  didUpdate() {},
+  didUnmount() {},
+  methods: {
+    changeFloor(id) {
+      if (id !== this.selectedFloor) {
+        this.$emit('component-floor-change', id);
+      }
+      this.$emit('component-floor-click');
+    },
+    flodFloor() {
+      this.$emit('component-floor-fold');
+    }
+  }
+});
+</script>

+ 109 - 36
src/packagesEnv/pages/intelligentControl/components/floor/floor.wpy

@@ -2,68 +2,138 @@
 .component-floor {
   border-radius: 16rpx;
   background: rgba(255, 255, 255, 0.9);
-  .floor-wrapper{
+  .component-wrapper {
     display: flex;
+    justify-content: space-between;
+
+    .building-wrapper {
+      padding: 16rpx;
+      border-right: 1px solid #c4c9cf4d;
+      .building-item {
+        max-width: 240rpx;
+        height: 72rpx;
+        line-height: 72rpx;
+        font-size: 32rpx;
+        font-weight: 400;
+        color: #626c78;
+        text-align: center;
+      }
+    }
+  }
+  .floor-wrapper {
+    display: flex;
+    padding: 16rpx;
     flex-direction: column-reverse;
   }
-  
 }
 .component-floor.fold .floor-item {
   background: none;
 }
+.component-floor.fold .building-item {
+  background: none;
+}
 
-.component-floor .floor-item {
-  width: 96rpx;
-  height: 96rpx;
+.component-floor.expand {
+  .component-wrapper {
+    max-height: 800rpx;
+  }
+}
 
-  font-weight: bold;
-  font-size: 36rpx;
-  line-height: 96rpx;
-  color: rgba(13, 13, 61, 0.86);
+.component-floor .floor-item {
+  width: 112rpx;
+  height: 72rpx;
+  line-height: 72rpx;
+  font-size: 32rpx;
+  font-weight: 400;
+  color: #626c78;
   text-align: center;
 }
+.component-floor.building .floor-item {
+  width: 224rpx;
+}
 
 .floor-item:first-child {
   border-radius: 16rpx 16rpx 0 0;
 }
-.floor-item.selected {
-  background: #fbf0e0;
+.floor-item.selected,
+.building-item.selected {
+  background: #d4faf4;
 }
+
 .floor-item:last-child {
   border-radius: 0 0 8px 8px;
 }
 .icon-arrow {
-  width: 96rpx;
-  height: 96rpx;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  align-items: center;
+  text-align: right;
+  .icon-arrow-box {
+    box-sizing: border-box;
+    padding: 16rpx;
+    display: inline-block;
+    // width: 152rpx;
+    height: 88rpx;
+    label {
+      display: inline-block;
+      vertical-align: middle;
+      font-family: PingFang SC;
+      font-size: 32rpx;
+      font-weight: 500;
+      letter-spacing: 0px;
+    }
+    image {
+      display: inline-block;
+      vertical-align: middle;
+      margin-left: 20rpx;
+      width: 24rpx;
+      height: 24rpx;
+    }
+  }
 }
 .icon-arrow .icon {
-  width: 20rpx;
+  width: 24rpx;
   height: 24rpx;
 }
 </style>
 
 <template>
+  <!-- && selectedFloor == item.id -->
   <div class="{{'component-floor '+status}}">
-    <div class="floor-wrapper">
-      <div
-        class="floor-item"
-        :class="{'selected' :selectedFloor == item.floorId}"
-        v-for="(item) in floors"
-        v-on:click.stop="changeFloor(item.floorId)"
-        v-if="status=='expand' || (status=='fold' && selectedFloor == item.floorId)"
-      >{{item.text}}</div>
+    <div class="component-wrapper">
+      <div class="building-wrapper">
+      <div class="building-item" 
+      :key="index+'building-map'"
+      :class="{'selected' :selectedBuilding == item.id}"
+      v-if="status=='expand' || (status=='fold' && selectedBuilding == item.id)"
+      v-for="(item,index) in buildings">
+      {{item.localName}}
+      </div>
+    </div>
+
+      <div class="floor-wrapper">
+        <div
+          class="floor-item"
+          :class="{'selected' :selectedFloor == item.id}"
+          :key="index+'map'"
+          v-for="(item,index) in floors"
+          v-on:click.stop="changeFloor(item.id)"
+          v-if="status=='expand' || (status=='fold' && selectedFloor == item.id)"
+        >
+        {{item.localName}}
+      </div>
+
+      </div>
     </div>
-    <div class="icon-arrow" wx:if="{{status=='expand'}}">
-    <image
-      mode="scaleToFill"
-      class="icon"
-      src="{{h5StaticPath+ 'icon-floor-arrow.svg'}}"
-      v-on:click.stop="flodFloor"
-    />
+    <div class="icon-arrow" 
+         wx:if="{{status=='expand'}}">
+         <div class="icon-arrow-box">
+          <label>收起</label>
+          <image
+            mode="scaleToFill"
+            class="icon"
+            src="{{h5StaticPath+ 'icon-floor-arrow.svg'}}"
+            v-on:click.stop="flodFloor"
+          />
+         </div>
+         
   </div>
   </div>
 </template>
@@ -80,16 +150,19 @@ wepy.component({
   },
   props: {
     floors: Array,
+    buildings: Array,
     status: 'fold',
+    selectedBuilding: String, //选中的building id
     selectedFloor: String //选中的floor id
   },
   created() {},
+  ready() {},
   didUpdate() {},
   didUnmount() {},
   methods: {
-    changeFloor(floorId) {
-      if (floorId !== this.selectedFloor) {
-        this.$emit('component-floor-change', floorId);
+    changeFloor(id) {
+      if (id !== this.selectedFloor) {
+        this.$emit('component-floor-change', id);
       }
       this.$emit('component-floor-click');
     },

+ 42 - 31
src/packagesEnv/pages/intelligentControl/home2.wpy

@@ -24,9 +24,19 @@
   position: absolute;
   bottom: 36rpx;
   right: 32rpx;
+  &.fold {
+  }
+  &.building {
+  }
 }
 
+.search-btn-box {
+  display: flex;
+  justify-content: flex-end;
+}
 .page-intelligent-control .location-wrapper .search-btn {
+  // position: absolute;
+  // right: 0;
   margin-bottom: 16rpx;
   width: 96rpx;
   height: 96rpx;
@@ -266,23 +276,22 @@ movable-view {
                   :style="{top: selectArea.isAbnormity? ((selectArea['borderWidth'][0]+selectArea['borderWidth'][2])/2 - selectArea['borderWidth'][0])*mapScale +'px' : (selectArea.top*mapScale-54 + (selectArea.height*mapScale/2))+'px', left: selectArea.isAbnormity? ((selectArea['borderWidth'][1]+selectArea['borderWidth'][3])/2 - selectArea['borderWidth'][3])*mapScale +'px':  (selectArea.left*mapScale+(selectArea.width*mapScale/2)-36)+'px', transform: 'rotate('+(selectArea.rotate)+'deg)' }"
                   src="{{h5StaticPath + 'map-icon/' + selectArea.selectIcon}}"
                 />
-
           </div>
         </movable-view>
         <div class="{{'location-wrapper ' + foldStatus}}">
-          <image
+          <div class="search-btn-box">
+            <image
             v-on:click="toSearchPage"
             class="search-btn"
             src="{{h5StaticPath}}icon-search-big.svg"
-          />
-          <!-- 博锐尚格正式环境暂不显示该入口 -->
-          <location
-            v-if="isShowLocationEntrance"
-            @component-location-position="positionFun($event)"
-          ></location>
+            />
+          </div>
+          
           <floor
             status="{{floorStatus}}"
             :floors="floors"
+            :buildings="buildingData"
+            selectedBuilding="{{ selectedBuilding }}"
             selectedFloor="{{selectedFloor}}"
             @component-floor-fold="flodFloorFun"
             @component-floor-change="changeFloorFun($event)"
@@ -291,12 +300,6 @@ movable-view {
         </div>
       </movable-area>
     </div>
-    <!-- <block v-if="query.from && query.from=='officehome'">
-      <div class="office-content-abstract">
-        <div class="title">{{selectArea.title}}</div>
-        <div class="btn-switch" v-on:click="goBack">切换</div>
-      </div>
-    </block>-->
   </div>
 </template>
 
@@ -305,7 +308,6 @@ import wepy from '@wepy/core';
 import store from '@/store';
 
 import {
-  getMapInfoHttp,
   getSpaceBytoothHttp,
   getMapDetailHttp
 } from '@/packagesEnv/api/intelligentControl';
@@ -315,7 +317,11 @@ import config from '@/config';
 import { mapState } from '@wepy/x';
 import { saveCompanyConfig } from '@/service/companyConfig';
 import { getCompanyMapData } from '@/api/home';
-import { getBuildingList, getFloorList } from '@/packagesEnv/api/mapApi.js';
+import {
+  getBuildingList,
+  getFloorList,
+  getMapInfo
+} from '@/packagesEnv/api/mapApi.js';
 
 let h5StaticPath = config.h5StaticPath + '/page-intelligent-control/';
 const tarBarHeight = 96;
@@ -346,7 +352,7 @@ let touchMapEndRecord = {
 };
 let from = 'officehome';
 
-let CompanyMapData;
+let CompanyMapData = {};
 let combinedData = [];
 
 wepy.component({
@@ -362,6 +368,7 @@ wepy.component({
     selectArea: {},
     x: 0,
     y: 0,
+    selectedBuilding: '',
     selectedFloor: '',
     foldStatus: 'fold', // fold-最小化 expand-展开状态
     floorStatus: 'fold', // flod-收起楼层 expand-展开楼层选则
@@ -381,7 +388,8 @@ wepy.component({
     floors: [],
     companyId: '',
     buildingData: [],
-    buildingItem: {}
+    buildingItem: {},
+    floorItem: {}
   },
   computed: {
     ...mapState({
@@ -394,6 +402,7 @@ wepy.component({
   },
   ready() {
     // 获取地图数据
+    console.log('地图模块触发了--');
     this.init();
   },
   // 页面激活
@@ -421,12 +430,10 @@ wepy.component({
           projectId: 'Pj1101080259'
         }
       };
-      console.log(this.projectId);
       getBuildingList(params).then(res => {
-        console.log('获取常驻空间');
-        console.log(res);
         this.buildingData = res.content || [];
         this.buildingItem = this.buildingData[0];
+        this.selectedBuilding = this.buildingItem.id;
         this.getFloorList();
       });
     },
@@ -442,18 +449,28 @@ wepy.component({
       };
       getFloorList(params).then(res => {
         this.floors = res.content || [];
+        console.log('===', this.floors);
+        CompanyMapData.mapWidth = 2314;
+        this.floorItem = this.floors[0];
+        this.selectedFloor = this.floorItem.id;
+        this.getMapSize();
+        this.getPageMapInfo();
       });
     },
     /**
      * 获取地图信息
      */
-    getMapInfo() {
+    getPageMapInfo() {
       let params = {
-        projectId: '',
-        floorId: 'proxyData.floorItem.id'
+        projectId: 'Pj1101080259',
+        floorId: this.floorItem.id
       };
       getMapInfo(params)
-        .then(res => {})
+        .then(res => {
+          let data = res.data || {};
+          this.mapAreasInfo = data.spaceList || [];
+          console.log('地图数据--');
+        })
         .catch(() => {});
     },
     getMapSize() {
@@ -622,12 +639,6 @@ wepy.component({
         this.foldStatus = 'fold';
       }
     },
-    expandPanelFun() {
-      if (this.foldStatus === 'fold') {
-        this.foldStatus = 'expand';
-        this.setAreaCenter(this.selectArea);
-      }
-    },
     flodFloorFun() {
       if (this.floorStatus !== 'fold') {
         this.floorStatus = 'fold';

+ 157 - 0
src/pages/auth/index.wpy

@@ -0,0 +1,157 @@
+<style lang="less">
+.login-box {
+  padding-top: 40px;
+  .avatar-wrapper {
+    padding: 0px;
+    width: 196rpx;
+    height: 196rpx;
+    border-radius: 50%;
+    image {
+      width: 196rpx;
+      height: 196rpx;
+      border-radius: 50%;
+    }
+  }
+  .avatar-tip {
+    text-align: center;
+    font-family: PingFang SC;
+    font-size: 28rpx;
+    font-weight: 400;
+    line-height: 44rpx;
+    text-align: center;
+  }
+
+  .bind-btn-box {
+    position: fixed;
+    bottom: 228rpx;
+    left: 50%;
+    transform: translateX(-50%);
+    .bind-btn {
+      width: 548rpx;
+      height: 100rpx;
+      line-height: 100rpx;
+      border-radius: 56rpx;
+      background: rgba(61, 203, 204, 1);
+      border: none;
+      font-family: PingFang SC;
+      font-size: 32rpx;
+      font-weight: 400;
+      letter-spacing: 0px;
+      text-align: center;
+      color: #fff;
+    }
+    .bind-btn-tip {
+      //styleName: 14/常规;
+      font-family: PingFang SC;
+      padding-top: 32rpx;
+      font-size: 28rpx;
+      font-weight: 400;
+      line-height: 44rpx;
+      text-align: center;
+      color: rgba(139, 148, 158, 1);
+    }
+  }
+
+  .home-btn {
+    margin-top: 240rpx;
+    width: 548rpx;
+    height: 100rpx;
+    line-height: 100rpx;
+    border-radius: 56rpx;
+    border: 1px solid rgba(61, 203, 204, 1);
+  }
+}
+</style>
+<template>
+ <div class="login-box">
+  <button class="avatar-wrapper"
+    v-if="canIUseGetUserProfile"
+    open-type="chooseAvatar" 
+    bind:chooseavatar="onChooseAvatar">
+    <image class="avatar" src="{{avatarUrl}}"/>
+  </button>  
+  <div class="avatar-tip" v-if="canIUseGetUserProfile">可点击获取头像</div>
+  <div class="bind-btn-box">
+   <button class="bind-btn"
+   open-type="getPhoneNumber"
+   bindgetphonenumber="phonenumberAuth">微信手机号认证</button>
+   <!-- bindgetphonenumber="phonenumberAuth" -->
+   <div class="bind-btn-tip">确保是入职公司使用的手机号</div>
+  </div>
+  <button class="home-btn" @click="goHome">首页</button>
+ </div>
+</template>
+
+<script>
+import wepy from '@wepy/core';
+import { mapState } from '@wepy/x';
+import store from '@/store';
+import config from '@/config';
+import { setAvatar, setUserInfoByAuth } from '@/service/user';
+import {getCompanyByPhone} from '@/api/user';
+let defaultAvatarUrl =config.h5StaticPath + '/page-bind-tenant/default_avatar.svg';
+wepy.page({
+  store,
+  config: {
+    navigationBarTitleText: 'test'
+  },
+  data: {
+    nicknameValue: '',
+    avatarUrl: defaultAvatarUrl,
+    msg: '测试数据',
+    canIUseGetUserProfile: false,
+    userInformation: wx.getStorageSync('userInformation')
+  },
+  onLoad() {
+    if (wx.getUserProfile) {
+      this.canIUseGetUserProfile = true;
+    }
+  },
+  onShow() {},
+  methods: {
+    // 绑定租户
+    bindTenant() {},
+    onChooseAvatar(e) {
+      this.avatarUrl = e.$wx.detail.avatarUrl;
+      let avatarUrl = this.avatarUrl;
+      let that = this;
+      wx.getFileSystemManager().readFile({
+        filePath: avatarUrl,
+        encoding: 'base64',
+        success: function(res) {
+          console.log(res.data);
+          that.avatarUrl = 'data:image/png;base64,' + res.data;
+          setAvatar(that.avatarUrl);
+        }
+      });
+    },
+    getPageCompanyByPhone(){
+
+    },
+    goHome() {
+      wx.navigateTo({
+        url: '/packagesEnv/pages/home/index'
+      });
+    },
+    // 手机号认证
+    phonenumberAuth(e) {
+      console.log(e);
+      let detail = e.$wx.detail;
+      let code = detail.code;
+      let errMsg = detail.errMsg;
+    },
+    goBindTenant() {
+      console.log('被点击了');
+      wx.navigateTo({
+        url: '/pages/bindTenant/index'
+      });
+    }
+  },
+  created() {}
+});
+</script>
+<config>
+{
+navigationBarTitleText: '首页',
+}
+</config>

+ 2 - 1
src/pages/bindTenant/index.wpy

@@ -92,7 +92,8 @@ page {
 <template>
  <div class="overflow-wrap">
   <page-top-bar title="公司身份选择" 
-  titleColor="#1B2129" bgColor="#EBF5FA" icon="{{h5StaticPath+'/page-top-bar/return-icon.svg'}}"></page-top-bar>
+  titleColor="#1B2129" 
+  bgColor="#EBF5FA"></page-top-bar>
    <div class="bind-item check-item">
       <div class="tenant-name">禹数科技有限公司</div>
       <div class="tenant-identity">

+ 58 - 104
src/pages/index.wpy

@@ -1,34 +1,30 @@
 <style lang="less">
+page {
+  width: 100%;
+  height: 100%;
+}
 .login-box {
-  padding-top: 40px;
-  .avatar-wrapper {
-    padding: 0px;
-    width: 160rpx;
-    height: 160rpx;
-    border-radius: 50%;
-    image {
-      width: 160rpx;
-      width: 160rpx;
-      border-radius: 50%;
-    }
-  }
-  .avatar {
-    width: 160rpx;
-    height: 160rpx;
-  }
-
-  .weui-input {
-    margin: 0 auto;
-    margin-top: 40rpx;
-    padding: 0 20rpx;
-    width: 548rpx;
-    height: 100rpx;
-    line-height: 100rpx;
-    border-radius: 5px;
-    border: 1px solid rgba(61, 203, 204, 1);
+  box-sizing: border-box;
+  width: 100%;
+  height: 100%;
+}
+.login {
+  width: 100%;
+  height: 100%;
+  background: rgba(0, 0, 0.2);
+  image {
+    position: relative;
+    width: 384rpx;
+    height: 144rpx;
+    top: 336rpx;
+    left: 50%;
+    transform: translateX(-50%);
   }
   .bind-btn {
-    margin-top: 100rpx;
+    position: fixed;
+    bottom: 200rpx;
+    left: 50%;
+    transform: translateX(-50%);
     width: 548rpx;
     height: 100rpx;
     line-height: 100rpx;
@@ -42,108 +38,62 @@
     text-align: center;
     color: #fff;
   }
-  .phone-tip {
-    padding-top: 32rpx;
-    font-family: PingFang SC;
-    font-size: 28rpx;
-    font-weight: 400;
-    line-height: 44rpx;
-    letter-spacing: 0px;
-    text-align: center;
-    color: rgba(139, 148, 158, 1);
-    text-align: center;
-  }
-  .home-btn {
-    margin-top: 240rpx;
-    width: 548rpx;
-    height: 100rpx;
-    line-height: 100rpx;
-    border-radius: 56rpx;
-    border: 1px solid rgba(61, 203, 204, 1);
-  }
 }
 </style>
 <template>
- <div class="login-box">
-  <button class="avatar-wrapper"
-    open-type="chooseAvatar" 
-    bind:chooseavatar="onChooseAvatar">
-    <image class="avatar" src="{{avatarUrl}}"/>
-  </button> 
-  <form bindsubmit="submit">
-    <input type="nickname" 
-    value="{{nicknameValue}}"
-     class="weui-input" 
-    placeholder="请输入昵称"/>
-  </form>  
-  <button class="bind-btn"
-  open-type="getPhoneNumber"
-  @click="goBindTenant">微信手机号认证</button>
-
-   <!-- bindgetphonenumber="phonenumberAuth" -->
-  <div class="phone-tip">确保是入职公司使用的手机号</div>
-  <button class="home-btn" @click="goHome">首页</button>
- </div>
+  <div class="login-box">
+    <page-top-bar title="" 
+  titleColor="#1B2129"></page-top-bar>
+   <div class="login">
+       <image src="{{h5StaticPath +'/page-bind-tenant/logo_title.png'}}" alt=""/>
+       <button class="bind-btn"
+        @click="goBindTenant">登录</button>
+   </div>
+  </div>
 </template>
 
 <script>
 import wepy from '@wepy/core';
 import { mapState } from '@wepy/x';
 import store from '@/store';
-import { setUserInfoByAuth } from '@/service/user';
-let defaultAvatarUrl = '';
+import config from '@/config';
+import { checkRegist } from '@/service/user';
 wepy.page({
   store,
-  config: {
-    navigationBarTitleText: 'test'
-  },
   data: {
-    nicknameValue: '',
-    avatarUrl: defaultAvatarUrl,
-    msg: '测试数据',
-    userInformation: wx.getStorageSync('userInformation')
+    h5StaticPath: config.h5StaticPath,
+    isActivated: 0
   },
   onLoad() {
-    if (wx.getUserProfile) {
-      this.canIUseGetUserProfile = true;
-    }
+    this.checkTenantRegist();
   },
   onShow() {
-    // this.checkAuthCamra();
+    // this.checkTenantRegist();
   },
   methods: {
-    // 绑定租户
-    bindTenant() {},
-    onChooseAvatar(e) {
-      // console.log('被点击了');
-      // console.log('被点击了',e)
-      console.log('avatarUrl', e.$wx.detail.avatarUrl);
-      console.log(e.$wx);
-      this.avatarUrl = e.$wx.detail.avatarUrl;
-      let avatarUrl = this.avatarUrl;
-      let baseImg = [];
-      let key = e.$wx.timeStamp;
-      let that = this;
-      wx.getFileSystemManager().readFile({
-        filePath: avatarUrl,
-        encoding: 'base64',
-        success: function(res) {
-          console.log(res.data);
-          that.avatarUrl = 'data:image/png;base64,' + res.data;
-        }
-      });
+    checkTenantRegist() {
+      checkRegist()
+        .then(res => {
+          this.isActivated = res.isActivated;
+          if (this.isActivated && this.isActivated == 2) {
+            // 已经激活
+            this.goHome();
+          } else if (this.isActivated == 0) {
+            // 未激活
+            this.goAuth();
+          }
+        })
+        .catch(error => {});
     },
     goHome() {
       wx.navigateTo({
         url: '/packagesEnv/pages/home/index'
       });
     },
-    // 手机号认证
-    phonenumberAuth(e) {},
-    goBindTenant() {
+    goAuth() {
       console.log('被点击了');
       wx.navigateTo({
-        url: '/pages/bindTenant/index'
+        url: '/pages/auth/index'
       });
     }
   },
@@ -152,6 +102,10 @@ wepy.page({
 </script>
 <config>
 {
-navigationBarTitleText: '首页',
+navigationBarTitleText: '登录',
+navigationStyle:"custom",
+usingComponents: {
+    'page-top-bar': '~@/components/common/page-top-bar',      
+  },
 }
 </config>

+ 189 - 98
src/service/user.js

@@ -1,123 +1,214 @@
 import { getUserInfo, setWxAuthUserInfo, getThirdInfo, createAccount, changePhone } from '@/api/user.js';
 import store from '@/store';
 import config from '@/config';
+import { login } from '@/api/user.js';
+import { getAppId } from '@/utils/index';
 
 // 获取用户数据
 function getUserData() {
-    return new Promise((resolve, reject) => {
-        Promise.all([getUserInfo(), getThirdInfo()]).then(([userInfoRes, thirdInfores]) => {
-            let userInfo = userInfoRes.data || {};
-            let thirdInfo = thirdInfores.data || {};
-            let cachedInfo = wx.getStorageSync('UserInfo');
-            userInfo = { ...cachedInfo, ...userInfo, ...thirdInfo };
-            userInfo.userName = userInfo.userName || '';
-            // test 用户身份
-            // userInfo.roles = ['tenant.admin', 'operator', 'owner'];
-            // userInfo.phone = '';wxLogin
-            // userInfo.nickName = '';
-            // userInfo.userName = ''
-            userInfo = addRolesInfoToUserInfo(userInfo);
-            if (!userInfo.userName) {
-                userInfo.defaultUserName = 'Hello';
-            }
-            // todo 模拟银泰配置 接口增加buildingLogo
-            if (config.projectName === 'yintai') {
-                userInfo.buildingLogo = `${config.h5StaticPath}/page-yintai/project-logo.png`;
-            }
-            //   userInfo.companyId = 'c68dcccd57984277ab7736f2d257cd0c'
-            store.commit('setUserInfo', userInfo);
-            resolve(userInfo);
-        }).catch((res) => {
-            reject(res);
-        })
+  return new Promise((resolve, reject) => {
+    Promise.all([getUserInfo(), getThirdInfo()]).then(([userInfoRes, thirdInfores]) => {
+      let userInfo = userInfoRes.data || {};
+      let thirdInfo = thirdInfores.data || {};
+      let cachedInfo = wx.getStorageSync('UserInfo');
+      userInfo = { ...cachedInfo, ...userInfo, ...thirdInfo };
+      userInfo.userName = userInfo.userName || '';
+      // test 用户身份
+      // userInfo.roles = ['tenant.admin', 'operator', 'owner'];
+      // userInfo.phone = '';wxLogin
+      // userInfo.nickName = '';
+      // userInfo.userName = ''
+      userInfo = addRolesInfoToUserInfo(userInfo);
+      if (!userInfo.userName) {
+        userInfo.defaultUserName = 'Hello';
+      }
+      // todo 模拟银泰配置 接口增加buildingLogo
+      if (config.projectName === 'yintai') {
+        userInfo.buildingLogo = `${config.h5StaticPath}/page-yintai/project-logo.png`;
+      }
+      //   userInfo.companyId = 'c68dcccd57984277ab7736f2d257cd0c'
+      store.commit('setUserInfo', userInfo);
+      resolve(userInfo);
+    }).catch((res) => {
+      reject(res);
     })
+  })
 }
 
 // 检查登录
 function checkLogin(needGetetUserInfo = true) {
-    let token = store.state.user.token;
-    if (!token) {
-        return wxLogin(needGetetUserInfo);
-    } else {
-        return Promise.resolve();
-    }
+  let token = store.state.user.token;
+  if (!token) {
+    return wxLogin(needGetetUserInfo);
+  } else {
+    return Promise.resolve();
+  }
 }
 
 //  检查用户信息
 function checkHasUserInfo() {
-    let userInfo = store.state.user.userInfo;
-    if (userInfo && JSON.stringify(userInfo) !== '{}') {
-        return Promise.resolve(userInfo);
-    } else {
-        return checkLogin(false).then(() => {
-            return getUserData();
-        })
-    }
+  let userInfo = store.state.user.userInfo;
+  if (userInfo && JSON.stringify(userInfo) !== '{}') {
+    return Promise.resolve(userInfo);
+  } else {
+    return checkLogin(false).then(() => {
+      return getUserData();
+    })
+  }
 }
 
 function setUserInfoByAuth() {
-    return new Promise((resolve, reject) => {
-      // if (ing) {
-      //   return;
-      // }
-      // ing = true;
-      // let { userInfo = {} } = store.state.user;
-      // // 如果已经保存过了
-      // let nickName = userInfo.nickName;
-      // if (nickName) {
-      //   ing = false;
-      //   resolve();
-      //   return;
-      // }
-      wx.getUserProfile({
-        desc: '用于完善用户信息',
-        success: res => {
-          let detail = res;
-          wx.login({
-            success: loginRes => {
-              // ing = false;
-              // if (loginRes.code) {
-              //   let params = {
-              //     encryptedData: detail.encryptedData,
-              //     iv: detail.iv,
-              //     jsCode: loginRes.code
-              //   };
-              //   setWxAuthUserInfo(params).then(res => {
-              //     let userInfo = JSON.parse(detail.rawData);
-              //     let cachedInfo = wx.getStorageSync('UserInfo');
-              //     userInfo = {
-              //       ...cachedInfo,
-              //       ...userInfo,
-              //       headImgUrl: userInfo.avatarUrl
-              //     };
-              //     delete userInfo.avatarUrl;
-              //     store.commit('setUserInfo', {
-              //       ...userInfo
-              //     });
-              //     wx.setStorageSync('UserInfo', { ...userInfo });
-              //     resolve(res.data);
-              //   });
-              // }
-            },
-            fail: res => {
-              // ing = false;
-              // reject(res);
+  return new Promise((resolve, reject) => {
+    // if (ing) {
+    //   return;
+    // }
+    // ing = true;
+    // let { userInfo = {} } = store.state.user;
+    // // 如果已经保存过了
+    // let nickName = userInfo.nickName;
+    // if (nickName) {
+    //   ing = false;
+    //   resolve();
+    //   return;
+    // }
+    wx.getUserProfile({
+      desc: '用于完善用户信息',
+      success: res => {
+        let detail = res;
+        wx.login({
+          success: loginRes => {
+            // ing = false;
+            // if (loginRes.code) {
+            //   let params = {
+            //     encryptedData: detail.encryptedData,
+            //     iv: detail.iv,
+            //     jsCode: loginRes.code
+            //   };
+            //   setWxAuthUserInfo(params).then(res => {
+            //     let userInfo = JSON.parse(detail.rawData);
+            //     let cachedInfo = wx.getStorageSync('UserInfo');
+            //     userInfo = {
+            //       ...cachedInfo,
+            //       ...userInfo,
+            //       headImgUrl: userInfo.avatarUrl
+            //     };
+            //     delete userInfo.avatarUrl;
+            //     store.commit('setUserInfo', {
+            //       ...userInfo
+            //     });
+            //     wx.setStorageSync('UserInfo', { ...userInfo });
+            //     resolve(res.data);
+            //   });
+            // }
+          },
+          fail: res => {
+            // ing = false;
+            // reject(res);
+          }
+        });
+      },
+      fail: res => {
+        // ing = false;
+        // wx.showToast({
+        //   icon: 'none',
+        //   title: '授权用户公开信息后方可进入下一步操作'
+        // });
+        // reject();
+      }
+    });
+  });
+}
+
+// 检查用户是否注册过小程序及绑定过租户
+function checkRegist() {
+  return new Promise((resolve, reject) => {
+    wx.login({
+      success(wxLoginRes) {
+        const jsCode = wxLoginRes.code;
+        const appId = getAppId();
+        if (jsCode) {
+          let params = {
+            "appId": appId,
+            "wxCode": jsCode
+          }
+          login(params).then(res => {
+            if (res.result == 'success') {
+              let data = res.data || []
+              resolve(data)
+            } else {
+              reject('login接口返回fail');
             }
+          })
+        } else {
+          wx.showToast({
+            title: `网络异常, 请稍后重试`,
+            icon: 'none',
+            duration: 5e3
           });
-        },
-        fail: res => {
-          // ing = false;
-          // wx.showToast({
-          //   icon: 'none',
-          //   title: '授权用户公开信息后方可进入下一步操作'
-          // });
-          // reject();
+          reject('wx.login接口返回code为空');
         }
-      });
+      },
+      fail(res) {
+        reject(res);
+        wx.showToast({
+          title: `网络异常, 请稍后重试`,
+          icon: 'none',
+          duration: 5e3
+        });
+      }
     });
-  }
+  });
+}
+
+// 登录
+function wxLogin() {
+  store.commit('setTokenIsValid', false);
+  store.commit('setToken', '');
+  return new Promise((resolve, reject) => {
+    wx.login({
+      success(wxLoginRes) {
+        const jsCode = wxLoginRes.code;
+        const appId = wx.getAccountInfoSync().miniProgram.appId;
+        if (jsCode) {
+          let params = {
+            "appId": appId,
+            "wxCode": jsCode
+          }
+        } else {
+          wx.hideLoading();
+          wx.showToast({
+            title: `网络异常, 请稍后重试`,
+            icon: 'none',
+            duration: 5e3
+          });
+          reject('wx.login接口返回code为空');
+        }
+      },
+      fail(res) {
+        reject(res);
+        wx.showToast({
+          title: `网络异常, 请稍后重试`,
+          icon: 'none',
+          duration: 5e3
+        });
+      }
+    });
+  });
+}
+
+// 本地保存用户头像
+function setAvatar(avatar) {
+  wx.setStorageSync('avatarBase64', avatar);
+}
+function getAvatar() {
+  wx.getStorageSync('avatarBase64');
+}
+
 
 export {
-    checkHasUserInfo,
-    setUserInfoByAuth
+  checkHasUserInfo,
+  checkRegist,
+  setAvatar,
+  getAvatar,
+  setUserInfoByAuth
 }

+ 0 - 38
src/store/carport.js

@@ -1,38 +0,0 @@
-export default {
-  state: {
-    // 企业车位
-    companyCarportList: [],
-    // 个人车位
-    personalCarportList: [],
-    // 我的常用车辆
-    myCarList: []
-  },
-  mutations: {
-    addCompanyCarport(state, companyCarport) {
-      state.companyCarportList.push(companyCarport);
-    },
-    addPersonalCarport(state, personalCarport) {
-      state.personalCarportList.push(personalCarport);
-    },
-    addMyCar(state, carObj) {
-      state.myCarList.push(carObj);
-    },
-    deleteMyCar(state, carNumber) {
-      state.myCarList.find((item, index) => {
-        if (item.number === carNumber) {
-          state.myCarList.splice(index, 1)
-          return true;
-        }
-        return false;
-      })
-    }
-  },
-  actions: {
-    addMyCar({ commit }, carObj) {
-      commit('addMyCar', carObj);
-    },
-    deleteMyCar({ commit }, carNumber) {
-      commit('deleteMyCar', carNumber);
-    }
-  }
-}

+ 0 - 37
src/store/home.js

@@ -1,37 +0,0 @@
-export default {
-  state: {
-    subscribeMessageTemplates: {},
-    spaceCardInfo: {
-      imgUrl: '',
-      roomName: '',
-      envData: {
-        temperature: '',
-        humidity: '',
-        pm25: '',
-        co2: '',
-        hcho: '',
-        tvoc: '',
-        pmIndicator: '优'
-      },
-
-      spaceId: '',
-      roomType: '' // private_room-房间,public_room-开发空间
-    }
-  },
-  mutations: {
-    setSubscribeMessageTemplates(state, subscribeMessageTemplates) {
-      state.subscribeMessageTemplates = subscribeMessageTemplates
-    },
-    setspaceCardInfo(state, spaceCardInfo) {
-      state.spaceCardInfo = {...spaceCardInfo}
-    }
-  },
-  actions: {
-    setSubscribeMessageTemplates({ commit }, data) {
-      commit('setSubscribeMessageTemplates', data);
-    },
-    setspaceCardInfo({commit}, data) {
-      commit('setspaceCardInfo', data);
-    }
-  }
-}

+ 0 - 36
src/store/index 2.js

@@ -1,36 +0,0 @@
-import wepy from '@wepy/core';
-import Vuex from '@wepy/x';
-import user from '@/store/user.js'
-import task from '@/store/task.js'
-import carport from '@/store/carport.js'
-import restaurant from '@/store/restaurant.js'
-import wifi from '@/store/wifi.js'
-import home from '@/store/home.js'
-import meetingroom from '@/store/meetingroom.js'
-import company from '@/store/company'
-import portrait from '@/store/portrait'
-import officehome from '@/store/officehome'
-import previewImage from '@/store/previewImage'
-import location from '@/store/location'
-wepy.use(Vuex);
-
-export default new Vuex.Store({
-  modules: {
-    user,
-    task,
-    carport,
-    restaurant,
-    wifi,
-    location,
-    home,
-    meetingroom,
-    company,
-    portrait,
-    officehome,
-    previewImage
-  },
-  state: {},
-  mutations: {},
-  actions: {},
-  getters: {}
-});

+ 1 - 15
src/store/index.js

@@ -1,33 +1,19 @@
 import wepy from '@wepy/core';
 import Vuex from '@wepy/x';
 import user from '@/store/user.js'
-// import task from '@/store/task.js'
-// import carport from '@/store/carport.js'
-// import restaurant from '@/store/restaurant.js'
-// import wifi from '@/store/wifi.js'
-// import home from '@/store/home.js'
-// import meetingroom from '@/store/meetingroom.js'
 // import company from '@/store/company'
 import portrait from '@/store/portrait'
 import officehome from '@/store/officehome'
-// import previewImage from '@/store/previewImage'
 import location from '@/store/location'
 wepy.use(Vuex);
 
 export default new Vuex.Store({
   modules: {
     user,
-    // task,
-    // carport,
-    // restaurant,
-    // wifi,
     location,
-    // home,
-    // meetingroom,
-    // company,
     portrait,
     officehome,
-    // previewImage
+
   },
   state: {},
   mutations: {},

+ 0 - 15
src/store/meetingroom.js

@@ -1,15 +0,0 @@
-export default {
-  state: {
-    choosedColleaguList: []
-  },
-  mutations: {
-    setChoosedColleaguList(state, list) {
-      state.choosedColleaguList = list
-    }
-  },
-  actions: {
-    setChoosedColleaguList({ commit }, data) {
-      commit('setChoosedColleaguList', data);
-    }
-  }
-}

+ 0 - 22
src/store/previewImage.js

@@ -1,22 +0,0 @@
-export default {
-  state: {
-    imageList: [],
-    currentIndex: 1
-  },
-  mutations: {
-    setImageList(state, imageList) {
-      state.imageList = [...imageList];
-    },
-    setImageIndex(state, index) {
-      state.currentIndex = index;
-    }
-  },
-  actions: {
-    setImageList({ commit }, data) {
-      commit('setImageList', data);
-    },
-    setImageIndex({ commit }, data) {
-      commit(setImageIndex, data);
-    },
-  },
-};

+ 0 - 29
src/store/restaurant.js

@@ -1,29 +0,0 @@
-export default {
-  state: {
-    // 是否营业中
-    isOpen: true,
-    dishInfo: {}
-  },
-  mutations: {
-    openRestaurant(state) {
-      state.isOpen = true;
-    },
-    closeRestaurant(state) {
-      state.isOpen = false;
-    },
-    updateDishInfo(state, dish) {
-      console.log('----------------')
-      console.log(state)
-      console.log(dish)
-      state.dishInfo = dish
-    }
-  },
-  actions: {
-    openRestaurant({ commit }) {
-      commit('openRestaurant');
-    },
-    closeRestaurant({ commit }) {
-      commit('closeRestaurant');
-    }
-  }
-}

+ 0 - 93
src/store/task.js

@@ -1,93 +0,0 @@
-import config from '@/config';
-import { getCompanyApplyPendingList } from '@/api/companyApply.js';
-
-let taskList = [
-  {
-    name: '访客指引',
-    remarks: 'Wi-Fi、洗手间使用等信息',
-    icon: config.h5StaticPath + '/test-data/home/task/visitor-guidance.png',
-    belongRoleList: [4],
-    navigationUrl:
-      '/h5/pages/common/h5?url=/visitor-guide-tenantslink&pageTitle=访客指引&navigationBarBgColor=#ffffff',
-  },
-  {
-    name: '全面塑形瑜伽',
-    remarks: '下午 06:15',
-    icon: config.h5StaticPath + '/test-data/home/task/sport.png',
-    belongRoleList: [1, 2, 3],
-    navigationUrl:
-      'fitness/homeDetail?isReserved=1&title=' +
-      encodeURIComponent('全面塑形瑜伽训练'),
-  },
-  {
-    name: '京东快递未领取',
-    remarks: '33号储物柜',
-    belongRoleList: [1, 2, 3],
-    icon: config.h5StaticPath + '/test-data/home/task/jingdong.png',
-  },
-];
-
-export default {
-  state: {
-    taskList: taskList,
-  },
-  mutations: {
-    addEnergyTask(state, data) {
-      let energyTask = {
-        type: 'energy',
-        name: '能量站食品待领取',
-        remarks: '约 ' + data.recevieTime,
-        icon: config.h5StaticPath + '/test-data/home/task/energy.png',
-        navigationUrl: 'energy/order-detail',
-        shoppingList: data.shoppingList,
-        recevieTime: data.recevieTime,
-      };
-      state.taskList.unshift(energyTask);
-    },
-    addMeetingRoomTask(state, data) {
-      let energyTask = {
-        type: 'meetingRoom',
-        name: data.roomName + '会议室预约',
-        remarks: data.reserveTimeDesc,
-        icon: config.h5StaticPath + '/test-data/home/task/meeting.png',
-        navigationUrl: '/meetingroom/pages/detail?roomName=' + data.roomName,
-        ...data,
-      };
-      state.taskList.unshift(energyTask);
-    },
-    initCompanyApplyTask(state) {
-      initCompanyApplyTask(state.taskList);
-    },
-  },
-  actions: {
-    addEnergyTask({ commit }, data) {
-      commit('addEnergyTask', data);
-    },
-    addMeetingRoomTask({ commit }, data) {
-      commit('addMeetingRoomTask', data);
-    },
-    initCompanyApplyTask({ commit }) {
-      commit('initCompanyApplyTask');
-    },
-  },
-};
-
-function initCompanyApplyTask(taskList) {
-  let filteredList = taskList.filter((item) => {
-    return item.type != 'apply';
-  });
-  getCompanyApplyPendingList().then((res) => {
-    let list = res.data || [];
-    list.forEach((item) => {
-      filteredList.unshift({
-        type: 'apply',
-        name: '加入企业申请',
-        remarks: item.companyName,
-        belongRoleList: [1, 2, 3, 4],
-        statusText: item.statusText,
-        navigationUrl: `/account/pages/company-apply?applyId=${item.id}`,
-      });
-    });
-    taskList.splice(0, taskList.length, ...filteredList);
-  });
-}

+ 0 - 34
src/store/wifi.js

@@ -1,34 +0,0 @@
-export default {
-  state: {
-    wifiInfo: {
-      ssid: '',
-      password: ''
-    },
-    isConnected: false
-  },
-  mutations: {
-    setWifiInfo(state, wifiInfo) {
-      state.wifiInfo = wifiInfo
-    },
-    changeConnectStatus(state, isConnected) {
-      state.isConnected = isConnected
-    },
-    resetWifiInfo(state) {
-      state.wifiInfo = {
-        ssid: '',
-        password: ''
-      }
-    }
-  },
-  actions: {
-    setWifiInfo({ commit }, data) {
-      commit('setWifiInfo', data);
-    },
-    resetWifiInfo({ commit }) {
-      commit('resetWifiInfo');
-    },
-    changeConnectStatus({ commit }, data) {
-      commit('changeConnectStatus', data);
-    }
-  }
-}

+ 23 - 0
src/utils/index.js

@@ -0,0 +1,23 @@
+
+function getMiniProgram() {
+    const miniProgram = wx.getAccountInfoSync();
+    return miniProgram;
+    // this.version = miniProgram.miniProgram.version;
+}
+function getAppId() {
+    const miniProgram = wx.getAccountInfoSync();
+    return miniProgram && miniProgram.miniProgram && miniProgram.miniProgram.appId || 'wxda2ef261ac3cca32';
+}
+
+// 正式版本上能获取,体验和开发版本无法获取到版本号
+function getVersion() {
+    const miniProgram = wx.getAccountInfoSync();
+    return miniProgram && miniProgram.miniProgram && miniProgram.miniProgram.version;
+}
+
+
+export {
+    getAppId,
+    getVersion,
+    getMiniProgram
+}

文件差异内容过多而无法显示
+ 9 - 0
static/page-bind-tenant/default_avatar.svg


二进制
static/page-bind-tenant/logo_title.png


+ 4 - 3
static/page-intelligent-control/icon-floor-arrow.svg

@@ -1,4 +1,5 @@
-<svg width="12" height="14" viewBox="0 0 12 14" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M1 8L6 13L11 8" stroke="#0D0D3D" stroke-opacity="0.86" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M1 1L6 6L11 1" stroke="#0D0D3D" stroke-opacity="0.86" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+
+<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8536 6.14645C11.0488 6.34171 11.0488 6.65829 10.8536 6.85355L6.85355 10.8536C6.65829 11.0488 6.34171 11.0488 6.14645 10.8536L2.14645 6.85355C1.95118 6.65829 1.95118 6.34171 2.14645 6.14645C2.34171 5.95118 2.65829 5.95118 2.85355 6.14645L6.5 9.79289L10.1464 6.14645C10.3417 5.95118 10.6583 5.95118 10.8536 6.14645Z" fill="#626C78"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M10.8536 1.14645C11.0488 1.34171 11.0488 1.65829 10.8536 1.85355L6.85355 5.85355C6.65829 6.04882 6.34171 6.04882 6.14645 5.85355L2.14645 1.85355C1.95118 1.65829 1.95118 1.34171 2.14645 1.14645C2.34171 0.951184 2.65829 0.951184 2.85355 1.14645L6.5 4.79289L10.1464 1.14645C10.3417 0.951184 10.6583 0.951184 10.8536 1.14645Z" fill="#626C78"/>
 </svg>