Forráskód Böngészése

fix: 地图修改

chenzhen2 2 éve
szülő
commit
128cc1f6da

+ 3 - 2
src/styles/_variables.scss

@@ -25,12 +25,13 @@ $darkGray: #889aa4;
 $loginBg: #2d3a4b;
 $loginCursorColor: #fff;
 $elActiveColor: #CE9F27;
+$elBg: #F5F5F5;
 $elActive4: rgba(206, 159, 39, 0.4);
 $elActiveText: #fff;
 $elDeleteColor: #E5574F;
 $bg: '/borui/images/page-officehome/officehome.jpg';
-$headerHeight:48px;
-$headerHeightPading:58px;
+$headerHeight: 48px;
+$headerHeightPading: 58px;
 
 // The :export directive is the magic sauce for webpack
 // https://mattferderer.com/use-sass-variables-in-typescript-and-javascript

+ 31 - 0
src/styles/index.scss

@@ -188,4 +188,35 @@ div:focus {
 .switch-btn {
   width: 48px !important;
   height: 24px !important;
+}
+
+.com-search {
+  .van-search {
+    padding: 0 !important;
+    width: 100%;
+    height: 44px;
+    border: 1px solid #c3c7cb;
+    border-radius: 22px;
+    background: #fff;
+    font-size: 16px;
+    line-height: 26px;
+    color: #c3c7cb;
+  }
+
+  .van-search__field {
+    border-radius: 22px;
+    padding: 0 !important;
+    background: #fff;
+  }
+
+  .van-search__content {
+    width: 99%;
+    background: transparent !important;
+  }
+
+  .van-icon-search:before {
+    // display: none;
+    font-size: 25px;
+    color: #373c43;
+  }
 }

+ 2 - 26
src/views/choiceSpace/choiceProject.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="choice-project">
+  <div class="choice-project com-search">
     <van-search placeholder="请输入搜索关键词" />
     <div class="choice-content">
       <div
@@ -64,31 +64,7 @@ export default defineComponent({
 </style>
 <style lang="scss">
 .choice-project {
-  .van-search {
-    padding: 0 !important;
-    width: 100%;
-    height: 44px;
-    border: 1px solid #c3c7cb;
-    border-radius: 22px;
-    background: #fff;
-    font-size: 16px;
-    line-height: 26px;
-    color: #c3c7cb;
-  }
-  .van-search__field {
-    border-radius: 22px;
-    padding: 0 !important;
-    background: #fff;
-  }
-  .van-search__content {
-    width: 99%;
-    background: transparent !important;
-  }
-  .van-icon-search:before {
-    // display: none;
-    font-size: 25px;
-    color: #373c43;
-  }
+  
 
   .choice-content {
     padding-top: 10px;

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 1204
src/views/envmonitor/MapBox.vue


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1334 - 0
src/views/envmonitor/components/Map/MapBox.vue


+ 106 - 0
src/views/envmonitor/components/Map/SpaceBox.vue

@@ -0,0 +1,106 @@
+<template>
+  <div class="space-home">
+    <div class="com-search">
+      <van-search placeholder="搜索办公区" />
+    </div>
+    <div class="space-box">
+      <div
+        class="space-item"
+        :key="'spaceItem' + index"
+        @click="changeSpace(item)"
+        v-for="(item, index) in spaceData"
+      >
+        <span> {{ item.spaceName }}</span>
+      </div>
+    </div>
+  </div>
+</template>
+  
+  <script lang="ts">
+import {
+  defineComponent,
+  reactive,
+  toRefs,
+  onBeforeMount,
+  onMounted,
+  ref,
+  watch,
+} from "vue";
+import { useRouter } from "vue-router";
+import { newNumber, parseImgUrl } from "@/utils";
+import { UserActionTypes } from "@/store/modules/user/action-types";
+import { useStore } from "@/store";
+import { login } from "@/apis/user";
+import { Search, Toast } from "vant";
+import { setToken } from "@/utils/cookies";
+
+export default defineComponent({
+  props: {
+    spaceData: {
+      type: Array,
+      default: () => [],
+    },
+  },
+  components: {
+    vanSearch: Search,
+  },
+  setup(props, contx) {
+    let router: any = useRouter();
+    const store = useStore();
+    const spaceData: any = [];
+    const proxyData = reactive({
+      spaceData: spaceData,
+      changeSpace(item: any) {
+        contx.emit("changeSpace", item);
+      },
+    });
+    onMounted(() => {});
+    watch(
+      props,
+      (newProps: any) => {
+        proxyData.spaceData = newProps.spaceData;
+      },
+      {
+        deep: false,
+        immediate: true,
+      }
+    );
+    return {
+      ...toRefs(proxyData),
+    };
+  },
+});
+</script>
+  <style lang="scss" scoped>
+.space-home {
+  padding: 20px;
+  width: 100%;
+  height: 100%;
+  background: $elBg;
+  .space-box {
+    // display: flex;
+    // padding-top: 20px;
+    // justify-content: space-between;
+    .space-item {
+      display: inline-block;
+      margin-top: 20px;
+      margin-right: 2%;
+      width: 31.8%;
+      height: 100px;
+      background: #fff;
+      box-shadow: inset 0px -1px 0px #e4e6e7;
+      border-radius: 25px;
+      span {
+        display: block;
+        width: 100%;
+        line-height: 100px;
+        text-align: center;
+      }
+      &:nth-child(3n) {
+        margin-right: 0;
+      }
+    }
+  }
+}
+</style>
+  

+ 74 - 0
src/views/envmonitor/components/Map/index.vue

@@ -0,0 +1,74 @@
+<template>
+  <div class="map-home">
+    <space-box :spaceData="spaceData" @changeSpace="changeSpace"></space-box>
+  </div>
+</template>
+  
+  <script lang="ts">
+import {
+  defineComponent,
+  reactive,
+  toRefs,
+  onBeforeMount,
+  onMounted,
+  ref,
+  watch,
+} from "vue";
+import SpaceBox from "./SpaceBox.vue";
+import MapBox from "./MapBox.vue";
+import { useRouter } from "vue-router";
+import { newNumber, parseImgUrl } from "@/utils";
+import { UserActionTypes } from "@/store/modules/user/action-types";
+import { useStore } from "@/store";
+import { login } from "@/apis/user";
+import { Form, Field, CellGroup, Button, Toast } from "vant";
+import { setToken } from "@/utils/cookies";
+
+export default defineComponent({
+  props: {
+    spaceData: {
+      type: Array,
+      default: () => [],
+    },
+  },
+  components: {
+    vanForm: Form,
+    vanField: Field,
+    CellGroup,
+    vanButton: Button,
+    SpaceBox,
+    MapBox,
+  },
+  setup(props, contex) {
+    let router: any = useRouter();
+    const store = useStore();
+    const proxyData = reactive({
+      spaceData: props.spaceData,
+      changeSpace(item: any) {
+        contex.emit("changeSpace", item, 1);
+      },
+    });
+    onMounted(() => {});
+    watch(
+      props,
+      (newProps: any) => {
+        proxyData.spaceData = newProps.spaceData;
+      },
+      {
+        deep: false,
+        immediate: true,
+      }
+    );
+    return {
+      ...toRefs(proxyData),
+    };
+  },
+});
+</script>
+  <style lang="scss" scoped>
+.map-home {
+  width: 100%;
+  height: 100%;
+}
+</style>
+  

+ 39 - 4
src/views/envmonitor/index.vue

@@ -68,7 +68,7 @@
             :class="item.active ? 'fotter-item-active' : ''"
             :key="index + 'nav'"
             v-if="index < 3"
-            @click="chacgeSpace(item)"
+            @click="changeSpace(item)"
           >
             <img
               v-if="item.active"
@@ -79,7 +79,11 @@
             <span>{{ item.spaceName }} </span>
           </div>
         </template>
-        <div class="fotter-item-end" v-if="spaceData && spaceData.length > 3">
+        <div
+          class="fotter-item-end"
+          @click="moreSpace"
+          v-if="spaceData && spaceData.length > 3"
+        >
           <img :src="parseImgUrl('ipdImages', 'rectangle-fotter.svg')" />
           <span>…</span>
         </div>
@@ -135,6 +139,7 @@
         :projectId="projectId"
       />
     </div>
+    <!--加班场景-->
     <van-popup
       v-model:show="isShowWork"
       position="right"
@@ -147,6 +152,7 @@
         :workkArr="workkArr"
       ></work-overtime>
     </van-popup>
+    <!--会议室场景-->
     <van-popup
       v-model:show="isShowMetting"
       position="right"
@@ -160,6 +166,7 @@
       >
       </scenario-dailog>
     </van-popup>
+    <!--环境数据详情-->
     <van-popup
       v-model:show="isShowDetail"
       position="right"
@@ -169,6 +176,16 @@
     >
       <detail :query="detailQuery" v-if="isShowDetail"></detail>
     </van-popup>
+    <!--地图数据列表-->
+    <van-popup
+      v-model:show="isShowMap"
+      position="bottom"
+      style="width: 100%; height: 50%"
+      :close-on-click-overlay="true"
+      teleport="#app"
+    >
+      <com-map :spaceData="spaceData" @changeSpace="changeSpace"></com-map>
+    </van-popup>
   </div>
 </template>
 
@@ -186,7 +203,7 @@ import {
 import WorkOvertime from "./components/workOvertime/index.vue";
 import WorkConfig from "./components/workOvertime/WorkConfig.vue";
 import ScenarioConfig from "./components/Scenario/ScenarioConfig.vue";
-import MapBox from "@/views/envmonitor/MapBox.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";
@@ -197,6 +214,7 @@ import TimeBox from "@/views/envmonitor/TimeBox.vue";
 import NavBar from "@/views/envmonitor/NavBar.vue";
 import ScenarioDailog from "@/views/envmonitor/components/Scenario/scenarioDailog.vue";
 import Detail from "@/views/envmonitor/detail.vue";
+import ComMap from "@/views/envmonitor/components/Map/index.vue";
 import { Icon, Popup, Dialog, Toast } from "vant";
 import { useRouter, useRoute } from "vue-router";
 import {
@@ -231,6 +249,7 @@ import { getWorkType } from "@/utils/mapIcon";
 export default defineComponent({
   components: {
     MapBox,
+    ComMap,
     ScenarioDailog,
     Scenario,
     Header,
@@ -1476,6 +1495,14 @@ export default defineComponent({
             //类型:Object  必有字段  备注:无
             macAddress: "test", //类型:String  必有字段  备注:mac地址
           },
+          orders: [
+            //类型:Array  必有字段  备注:无
+            {
+              //类型:Object  必有字段  备注:无
+              column: "isMajorSpace", //类型:String  必有字段  备注:无
+              asc: false, //类型:Boolean  必有字段  备注:无
+            },
+          ]
         };
         queryWorkSpace(params).then((res) => {
           let resData: any = res;
@@ -1499,11 +1526,19 @@ export default defineComponent({
           item.active = false;
         });
       },
+      // 更多空间
+      isShowMap: false,
+      moreSpace() {
+        proxyData.isShowMap = true;
+      },
       // 切换空间
-      chacgeSpace(item: any) {
+      changeSpace(item: any, type: any = 0) {
         proxyData.resetSpaceStatus();
         proxyData.spaceInfo = item;
         proxyData.init();
+        if (type === 1) {
+          proxyData.isShowMap = false;
+        }
         item.active = true;
       },
       timeOutEvent: timeOutEvent,

+ 1 - 1
src/views/envmonitor/index1.vue

@@ -230,7 +230,7 @@
 
 <script lang="ts">
 import { defineComponent, reactive, toRefs, ref, onBeforeMount, onMounted, nextTick, onBeforeUnmount } from 'vue'
-import MapBox from '@/views/envmonitor/MapBox.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'

+ 1 - 1
src/views/envmonitor/mySpace/index.vue

@@ -15,7 +15,7 @@
 
 <script lang="ts">
 import { defineComponent, onBeforeMount, reactive, toRefs } from 'vue'
-import MapBox from '@/views/envmonitor/MapBox.vue'
+import MapBox from '@/views/envmonitor/components/Map/MapBox.vue'
 import { useRoute } from 'vue-router'
 import { store } from '@/store'
 import { delPermanentSpace, getPermanentSpace, permanentSpace } from '@/apis/envmonitor'

+ 0 - 1
src/views/home/index.vue

@@ -142,7 +142,6 @@ export default defineComponent({
     font-style: normal;
     font-weight: 500;
     font-size: 16px;
-    line-height: 46px;
     text-align: center;
     border-radius: 40px 0 0 40px;
     color: #4d5262;