jinx 2 dienas atpakaļ
vecāks
revīzija
bdec3ad5eb
6 mainītis faili ar 691 papildinājumiem un 113 dzēšanām
  1. 2 1
      .env.dev
  2. 1 0
      .env.mytest
  3. 1 1
      src/api.js
  4. 70 47
      src/views/Report/index.vue
  5. 605 52
      src/views/Report/tagCoordinateList.json
  6. 12 12
      vue.config.js

+ 2 - 1
.env.dev

@@ -1,4 +1,5 @@
 VUE_APP_CLI_MODE=dev
 NODE_ENV=development
 PUBLIC_PATH=/
-VUE_APP_API_URL_PREFIX=https://uat-laser.4dkankan.com/
+VUE_APP_API_URL_PREFIX=https://uat-laser.4dkankan.com/
+VUE_APP_API_URL_REPORT=/

+ 1 - 0
.env.mytest

@@ -2,3 +2,4 @@ VUE_APP_CLI_MODE=test
 NODE_ENV=production
 PUBLIC_PATH=./
 VUE_APP_API_URL_PREFIX=https://uat-laser.4dkankan.com/
+VUE_APP_API_URL_REPORT=https://test.4dkankan.com/

+ 1 - 1
src/api.js

@@ -40,7 +40,7 @@ export function resetWholeData(sceneCode) {
     })
 }
 export function reportTagInfo(data) {
-  const url = `/location/ingest`
+  const url = `https://test.4dkankan.com/openDevice/ingest`
 
   return axios.post(url, data).then((res) => {
     if (res?.data?.code === 200 || res?.status === 200) {

+ 70 - 47
src/views/Report/index.vue

@@ -1,10 +1,22 @@
-<template>
+<template>
   <div class="report-page">
     <h2 class="title">Report</h2>
 
+    <div class="category-tabs">
+      <el-button
+        v-for="floor in floors"
+        :key="floor"
+        size="small"
+        :type="floor === activeFloor ? 'primary' : 'default'"
+        @click="setActiveFloor(floor)"
+      >
+        {{ floor }}
+      </el-button>
+    </div>
+
     <div class="button-list">
       <el-button
-        v-for="item in tagList"
+        v-for="item in filteredList"
         :key="item.id"
         :class="[
           'report-btn',
@@ -32,8 +44,10 @@
           <span class="btn-name">结束上报</span>
         </span>
       </el-button>
-
-      <!-- <div @click="getReportInfo">获取数据:{{ servicesData }}</div> -->
+      <!-- 
+      <div class="fetch-link" @click="getReportInfo">
+        获取数据{{ servicesData }}
+      </div> -->
     </div>
 
     <p v-if="activeReportItem" class="status-text">
@@ -53,6 +67,7 @@ import { ElMessage } from "element-plus";
 import { reportTagInfo } from "@/api.js";
 import tagCoordinateList from "./tagCoordinateList.json";
 import reportInfoStream from "./reportInfoStream.js";
+
 export default {
   name: "ReportPage",
   data() {
@@ -65,8 +80,18 @@ export default {
       isRequesting: false,
       reportStream: null,
       servicesData: null,
+      floors: [],
+      activeFloor: "",
     };
   },
+  computed: {
+    filteredList() {
+      if (!this.activeFloor) {
+        return this.tagList;
+      }
+      return this.tagList.filter((item) => item.floor === this.activeFloor);
+    },
+  },
   beforeUnmount() {
     this.clearReportTimer();
     this.closeReportStream();
@@ -75,8 +100,31 @@ export default {
     this.unsubErr && this.unsubErr();
   },
   mounted() {
+    const floorList = Array.from(
+      new Set(this.tagList.map((item) => item.floor).filter(Boolean)),
+    );
+    this.floors = floorList.sort((a, b) => {
+      const aMatch = String(a).match(/\d+/);
+      const bMatch = String(b).match(/\d+/);
+      const aNum = aMatch ? parseInt(aMatch[0], 10) : Number.NaN;
+      const bNum = bMatch ? parseInt(bMatch[0], 10) : Number.NaN;
+      const aIsNum = !Number.isNaN(aNum);
+      const bIsNum = !Number.isNaN(bNum);
+
+      if (aIsNum && bIsNum) {
+        return aNum - bNum;
+      }
+      if (aIsNum) {
+        return -1;
+      }
+      if (bIsNum) {
+        return 1;
+      }
+      return String(a).localeCompare(String(b), "zh-Hans-CN");
+    });
+    this.activeFloor = this.floors[0] || "";
+
     this.unsubData = reportInfoStream.subscribe((data) => {
-      console.log("stream:", data);
       this.servicesData = data;
     });
 
@@ -85,6 +133,9 @@ export default {
     });
   },
   methods: {
+    setActiveFloor(floor) {
+      this.activeFloor = floor;
+    },
     closeReportStream() {
       if (this.reportStream) {
         this.reportStream.close();
@@ -93,46 +144,6 @@ export default {
     },
     getReportInfo() {
       reportInfoStream.start();
-
-      return;
-      this.closeReportStream();
-      this.reportStream = new EventSource("/location/stream");
-
-      this.reportStream.onopen = () => {
-        console.log("[report stream] connected");
-      };
-
-      //   this.reportStream.onmessage = (e) => {
-      //     console.log("[report stream] message:", e.data);
-      //     this.servicesData = e.data;
-      //   };
-
-      // Some backends push custom SSE event names instead of default "message".
-      const onCustomEvent = (e) => {
-        console.log("[report stream] custom event:", e.type, e.data);
-        this.servicesData = e.data;
-      };
-      //   this.reportStream.addEventListener("data", onCustomEvent);
-      //   this.reportStream.addEventListener("update", onCustomEvent);
-      this.reportStream.addEventListener("location", onCustomEvent);
-
-      this.reportStream.onerror = (e) => {
-        // EventSource will auto-reconnect when network/server is temporarily unavailable.
-        console.error(
-          "[report stream] error, readyState=",
-          this.reportStream?.readyState,
-          e,
-        );
-
-        // 2 means CLOSED, usually unrecoverable.
-        if (this.reportStream?.readyState === 2) {
-          ElMessage({
-            message: "getReportInfo stream closed",
-            type: "error",
-          });
-          this.closeReportStream();
-        }
-      };
     },
     clearReportTimer() {
       if (this.reportTimer) {
@@ -173,7 +184,7 @@ export default {
       this.sendReportOnce();
       this.reportTimer = setInterval(() => {
         this.sendReportOnce();
-      }, 500);
+      }, 1000);
 
       if (switched) {
         // ElMessage({
@@ -210,6 +221,13 @@ export default {
   line-height: 1.2;
 }
 
+.category-tabs {
+  display: flex;
+  gap: 8px;
+  flex-wrap: wrap;
+  margin-bottom: 10px;
+}
+
 .button-list {
   display: grid;
   grid-template-columns: 1fr;
@@ -255,6 +273,12 @@ export default {
   justify-content: center;
 }
 
+.fetch-link {
+  font-size: 12px;
+  color: #409eff;
+  cursor: pointer;
+}
+
 .status-text {
   margin: 10px 0 0;
   color: #606266;
@@ -290,4 +314,3 @@ export default {
   }
 }
 </style>
-

+ 605 - 52
src/views/Report/tagCoordinateList.json

@@ -1,145 +1,698 @@
 [
   {
     "id": 1,
-    "name": "二楼电梯口",
+    "floor": "2楼",
+    "name": "二楼-电梯口",
     "locationDesc": "二楼电梯口",
     "tagNo": "0C2105777700000022015F00",
     "pos": {
-      "x": 17.55922624158694,
-      "y": -0.070636670561876,
-      "z": 1.4465
+      "x": 12.762330136903149,
+      "y": 0.020076632139445244,
+      "z": -0.7266
     }
   },
   {
     "id": 2,
-    "name": "供应链",
+    "floor": "2楼",
+    "name": "二楼-供应链",
     "locationDesc": "碧兰座位",
     "tagNo": "E28011B0A50500768C9628AB",
     "pos": {
-      "x": 15.41374989638694,
-      "y": 6.680792536895755,
-      "z": 1.1792
+      "x": 10.629505770574077,
+      "y": 6.802374869195827,
+      "z": -0.9888
     }
   },
   {
     "id": 3,
-    "name": "入口走廊",
+    "floor": "2楼",
+    "name": "二楼-入口走廊",
     "locationDesc": "生产间和会议室中间",
     "tagNo": "E28011B0A50500768C96289B",
     "pos": {
-      "x": 11.120055278274682,
-      "y": -0.22127844330303995,
-      "z": 1.5889
+      "x": 6.42187596861534,
+      "y": -4.177731905625157,
+      "z": -0.5812
     }
   },
   {
     "id": 4,
-    "name": "生产间",
+    "floor": "2楼",
+    "name": "二楼-生产间",
     "locationDesc": "生产间",
     "tagNo": "E28011B0A50500768C9602FB",
     "pos": {
-      "x": 11.212734225075176,
-      "y": -4.318222351176363,
-      "z": 1.5946
+      "x": 6.352335283580645,
+      "y": -0.08353091640323823,
+      "z": -0.5825
     }
   },
   {
     "id": 5,
-    "name": "二楼会议室",
+    "floor": "2楼",
+    "name": "二楼-会议室",
     "locationDesc": "二楼会议室",
     "tagNo": "E28011B0A50500768C96288B",
     "pos": {
-      "x": 9.064077095867487,
-      "y": 3.2887987760751094,
-      "z": 1.3429
+      "x": 4.282527668517008,
+      "y": 3.404146254747082,
+      "z": -0.8355
     }
   },
   {
     "id": 6,
-    "name": "二楼生产部标定区",
+    "floor": "2楼",
+    "name": "二楼-生产部标定区",
     "locationDesc": "王灏宇座位",
     "tagNo": "E28011B0A50500768C96287B",
     "pos": {
-      "x": 4.993024468492701,
-      "y": 1.4946738731602902,
-      "z": 1.5364
+      "x": 0.2757547342686526,
+      "y": 1.5837282156495454,
+      "z": -0.6465
     }
   },
   {
     "id": 7,
-    "name": "硬件部",
+    "floor": "2楼",
+    "name": "二楼-硬件部",
     "locationDesc": "张慧博座位",
     "tagNo": "E28011B0A50500768C96286B",
     "pos": {
-      "x": -0.8586087211942526,
-      "y": 0.6235740583771266,
-      "z": 1.5423
+      "x": -5.646683760456344,
+      "y": 0.739674958263142,
+      "z": -0.6422
     }
   },
   {
     "id": 8,
-    "name": "测试部",
+    "floor": "2楼",
+    "name": "二楼-测试部",
     "locationDesc": "朱海华座位",
     "tagNo": "E28011B0A50500768C96285B",
     "pos": {
-      "x": -0.737473591282138,
-      "y": -6.57596525940062,
-      "z": 1.6142
+      "x": -5.523911624508015,
+      "y": -6.408123506414033,
+      "z": -0.5935
     }
   },
   {
     "id": 9,
-    "name": "技术研发部",
+    "floor": "2楼",
+    "name": "二楼-技术研发部",
     "locationDesc": "钟汉明座位",
     "tagNo": "E28011B0A50500768C96283B",
     "pos": {
-      "x": -6.851451898324801,
-      "y": 1.8587779405564784,
-      "z": 1.527
+      "x": -11.634290449812912,
+      "y": 2.01906157920439,
+      "z": -0.6628
     }
   },
   {
     "id": 10,
-    "name": "测试部2",
+    "floor": "2楼",
+    "name": "二楼-测试部(学荣)",
     "locationDesc": "赖学荣座位",
     "tagNo": "E28011B0A50500768C96284B",
     "pos": {
-      "x": -6.693255923285772,
-      "y": -4.738682386752513,
-      "z": 1.6093
+      "x": -11.488327430210164,
+      "y": -4.578667764056485,
+      "z": -0.5859
     }
   },
   {
     "id": 11,
-    "name": "APP",
+    "floor": "2楼",
+    "name": "二楼-APP部",
     "locationDesc": "刘敏座位",
     "tagNo": "E28011B0A50500768C96282B",
     "pos": {
-      "x": -12.848009364926108,
-      "y": 1.7548362165470666,
-      "z": 1.5243
+      "x": -17.645647049094368,
+      "y": 1.88337619954559,
+      "z": -0.6721
     }
   },
   {
     "id": 12,
-    "name": "算法部",
+    "floor": "2楼",
+    "name": "二楼-算法部",
     "locationDesc": "谷庆座位",
     "tagNo": "E28011B0A50500768C96281B",
     "pos": {
-      "x": -12.720718258490592,
-      "y": -5.265756389811795,
-      "z": 1.5949
+      "x": -17.520563972506743,
+      "y": -5.110514553104488,
+      "z": -0.6087
     }
   },
   {
     "id": 13,
-    "name": "开发部",
+    "floor": "2楼",
+    "name": "二楼-开发部",
     "locationDesc": "马瑞座位",
     "tagNo": "E28011B0A50500768C96280B",
     "pos": {
-      "x": -18.875211031796464,
-      "y": 3.088940566764247,
-      "z": 1.4797
+      "x": -23.675095035698355,
+      "y": 3.2207891201789303,
+      "z": -0.7256
+    }
+  },
+  {
+    "id": 14,
+    "floor": "楼梯",
+    "name": "楼梯间-二楼消防灯旁",
+    "locationDesc": null,
+    "tagNo": "E280699500004018DB45E5DC",
+    "pos": {
+      "x": 12.523649888926261,
+      "y": 3.6814196024856747,
+      "z": -0.7106
+    }
+  },
+  {
+    "id": 15,
+    "floor": "楼梯",
+    "name": "楼梯间-二楼到一楼半楼梯",
+    "locationDesc": null,
+    "tagNo": "E280699500004018DB45CDDC",
+    "pos": {
+      "x": 16.500870804578806,
+      "y": 4.0647172298303165,
+      "z": -1.2296
+    }
+  },
+  {
+    "id": 16,
+    "floor": "楼梯",
+    "name": "楼梯间-一楼半到一楼楼梯",
+    "locationDesc": null,
+    "tagNo": "E280699500005018DB45C9DC",
+    "pos": {
+      "x": 16.553070725002893,
+      "y": 2.725159381788062,
+      "z": -2.5375
+    }
+  },
+  {
+    "id": 17,
+    "floor": "楼梯",
+    "name": "楼梯间-一楼平层灯旁",
+    "locationDesc": null,
+    "tagNo": "E280699500005018DB45D1DC",
+    "pos": {
+      "x": 13.643899228571161,
+      "y": 2.800065521446407,
+      "z": -3.7038
+    }
+  },
+  {
+    "id": 18,
+    "floor": "楼梯",
+    "name": "楼梯间-一楼门口",
+    "locationDesc": null,
+    "tagNo": "E280699500005018DB45E1DC",
+    "pos": {
+      "x": 12.055875912036592,
+      "y": 5.844237072956483,
+      "z": -5.6591
+    }
+  },
+  {
+    "id": 19,
+    "floor": "1楼",
+    "name": "一楼-公司大门口",
+    "locationDesc": null,
+    "tagNo": "E280699500004018DB45D5DC",
+    "pos": {
+      "x": 8.454271098571557,
+      "y": 3.0290766514024177,
+      "z": -5.2572
+    }
+  },
+  {
+    "id": 20,
+    "floor": "1楼",
+    "name": "一楼-公司前台空调",
+    "locationDesc": null,
+    "tagNo": "0004",
+    "pos": {
+      "x": 2.399155958144253,
+      "y": 2.3886710679018788,
+      "z": -4.6943
+    }
+  },
+  {
+    "id": 21,
+    "floor": "1楼",
+    "name": "一楼-展厅入口",
+    "locationDesc": null,
+    "tagNo": "E280699500004018DB45D9DC",
+    "pos": {
+      "x": 4.445661164025403,
+      "y": -1.5959441750220134,
+      "z": -5.2577
+    }
+  },
+  {
+    "id": 22,
+    "floor": "1楼",
+    "name": "一楼-展厅大屏幕",
+    "locationDesc": null,
+    "tagNo": "E280699500005018DB45DDDC",
+    "pos": {
+      "x": 6.316903493034541,
+      "y": -5.727910321345538,
+      "z": -4.8311
+    }
+  },
+  {
+    "id": 23,
+    "floor": "1楼",
+    "name": "一楼-数字展厅数字场景电视顶",
+    "locationDesc": null,
+    "tagNo": "0003",
+    "pos": {
+      "x": 0.402346953883731,
+      "y": -6.252086556440688,
+      "z": -5.3246
+    }
+  },
+  {
+    "id": 24,
+    "floor": "1楼",
+    "name": "一楼-数字展厅空调",
+    "locationDesc": null,
+    "tagNo": "0002",
+    "pos": {
+      "x": -4.05543024914224,
+      "y": -5.572942776686306,
+      "z": -4.7656
+    }
+  },
+  {
+    "id": 25,
+    "floor": "1楼",
+    "name": "一楼-荣誉墙空调",
+    "locationDesc": null,
+    "tagNo": "0001",
+    "pos": {
+      "x": -4.313593884421408,
+      "y": 1.6103321981914094,
+      "z": -4.7252
+    }
+  },
+  {
+    "id": 26,
+    "floor": "1楼",
+    "name": "一楼-数字营销事业部饮水机旁墙上",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD59",
+    "pos": {
+      "x": -11.584317211995293,
+      "y": 5.898932534353025,
+      "z": -5.0799
+    }
+  },
+  {
+    "id": 27,
+    "floor": "1楼",
+    "name": "一楼-数字营销事业部空调(靠近吧台)",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD58",
+    "pos": {
+      "x": -10.471849529251259,
+      "y": 1.4610891923073237,
+      "z": -4.9244
+    }
+  },
+  {
+    "id": 28,
+    "floor": "1楼",
+    "name": "一楼-数字营销事业部空调(靠近会议室)",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD58",
+    "pos": {
+      "x": -14.912348300776669,
+      "y": 1.8849501109095952,
+      "z": -4.8831
+    }
+  },
+  {
+    "id": 29,
+    "floor": "1楼",
+    "name": "一楼-大会议门(靠近窗户)",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD57",
+    "pos": {
+      "x": -20.02896182421652,
+      "y": 4.12693153782853,
+      "z": -5.0237
+    }
+  },
+  {
+    "id": 30,
+    "floor": "1楼",
+    "name": "一楼-大会议门(靠近厕所)",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD56",
+    "pos": {
+      "x": -19.942047127209047,
+      "y": -0.10706897136764215,
+      "z": -5.5467
+    }
+  },
+  {
+    "id": 31,
+    "floor": "1楼",
+    "name": "一楼-办公室",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD8A",
+    "pos": {
+      "x": -16.356942176392025,
+      "y": -3.8548943321622353,
+      "z": -5.2182
+    }
+  },
+  {
+    "id": 32,
+    "floor": "1楼",
+    "name": "一楼-政企事业部走廊",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD8B",
+    "pos": {
+      "x": -11.685545338397079,
+      "y": -2.069712329172339,
+      "z": -5.1611
+    }
+  },
+  {
+    "id": 33,
+    "floor": "1楼",
+    "name": "一楼-政企事业部空调",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD8C",
+    "pos": {
+      "x": -10.36163766073829,
+      "y": -5.545165917266754,
+      "z": -4.98
+    }
+  },
+  {
+    "id": 34,
+    "floor": "1楼",
+    "name": "一楼-海外事业部",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD8E",
+    "pos": {
+      "x": -5.706760891708474,
+      "y": -6.325240148145387,
+      "z": -5.5375
+    }
+  },
+  {
+    "id": 35,
+    "floor": "楼梯",
+    "name": "楼梯间-二楼到二楼半楼梯",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD81",
+    "pos": {
+      "x": 16.027600141895782,
+      "y": 2.7320479614605016,
+      "z": 0.8624
+    }
+  },
+  {
+    "id": 36,
+    "floor": "楼梯",
+    "name": "楼梯间-二楼半到三楼楼梯",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD80",
+    "pos": {
+      "x": 16.2517550213854,
+      "y": 4.093109610639161,
+      "z": 2.7665
+    }
+  },
+  {
+    "id": 37,
+    "floor": "楼梯",
+    "name": "楼梯间-三楼到三楼半楼梯",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD7A",
+    "pos": {
+      "x": 16.270360807444206,
+      "y": 4.097679886277495,
+      "z": 6.5167
+    }
+  },
+  {
+    "id": 38,
+    "floor": "楼梯",
+    "name": "楼梯间-三楼半到四楼楼梯",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD7F",
+    "pos": {
+      "x": 16.009587209712333,
+      "y": 2.7727206394972908,
+      "z": 4.7122
+    }
+  },
+  {
+    "id": 39,
+    "floor": "楼梯",
+    "name": "楼梯间-四楼到四楼半楼梯",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD7E",
+    "pos": {
+      "x": 15.870916175650951,
+      "y": 2.8196739822984624,
+      "z": 8.3978
+    }
+  },
+  {
+    "id": 40,
+    "floor": "楼梯",
+    "name": "楼梯间-四楼半到五楼楼梯",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD7D",
+    "pos": {
+      "x": 16.19654687455847,
+      "y": 4.166414938755257,
+      "z": 10.3245
+    }
+  },
+  {
+    "id": 41,
+    "floor": "5楼",
+    "name": "五楼-茶水间门口",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD7B",
+    "pos": {
+      "x": 9.188735346792575,
+      "y": 1.6072084398041069,
+      "z": 10.0813
+    }
+  },
+  {
+    "id": 42,
+    "floor": "5楼",
+    "name": "五楼-人事部门口",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD72",
+    "pos": {
+      "x": 6.325451357843287,
+      "y": 0.16848416334835933,
+      "z": 10.6554
+    }
+  },
+  {
+    "id": 43,
+    "floor": "5楼",
+    "name": "五楼-打卡机旁",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD79",
+    "pos": {
+      "x": 0.3280485331331535,
+      "y": -0.5709536197903704,
+      "z": 10.7468
+    }
+  },
+  {
+    "id": 44,
+    "floor": "5楼",
+    "name": "五楼-会议室",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD78",
+    "pos": {
+      "x": -5.661980678427771,
+      "y": -0.7260584863276928,
+      "z": 10.6792
+    }
+  },
+  {
+    "id": 45,
+    "floor": "5楼",
+    "name": "五楼-宽总办公室外",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD77",
+    "pos": {
+      "x": -11.655284211422043,
+      "y": -0.5721011231917611,
+      "z": 10.7152
+    }
+  },
+  {
+    "id": 46,
+    "floor": "5楼",
+    "name": "五楼-财务室外",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD76",
+    "pos": {
+      "x": -17.629952099456457,
+      "y": -0.9918684137582539,
+      "z": 10.714
+    }
+  },
+  {
+    "id": 47,
+    "floor": "5楼",
+    "name": "五楼-后门",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD75",
+    "pos": {
+      "x": -23.389054192461728,
+      "y": -2.3096036276880314,
+      "z": 10.0036
+    }
+  },
+  {
+    "id": 48,
+    "floor": "5楼",
+    "name": "五楼-饮水机(靠近后门)",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD74",
+    "pos": {
+      "x": -11.581752226657345,
+      "y": -3.2691985408198967,
+      "z": 10.7532
+    }
+  },
+  {
+    "id": 49,
+    "floor": "5楼",
+    "name": "五楼-平面美术部窗户(倒数第一和二排中间)",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD73",
+    "pos": {
+      "x": -12.935643448747442,
+      "y": -10.005416142913178,
+      "z": 10.2906
+    }
+  },
+  {
+    "id": 50,
+    "floor": "5楼",
+    "name": "五楼-走廊中间(两块玻璃中间)",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD91",
+    "pos": {
+      "x": -5.599435637462419,
+      "y": -3.2324307997358033,
+      "z": 10.6931
+    }
+  },
+  {
+    "id": 51,
+    "floor": "5楼",
+    "name": "五楼-平面美术部空调(靠近后门)",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD90",
+    "pos": {
+      "x": -6.104624243715159,
+      "y": -5.879173346471542,
+      "z": 10.4785
+    }
+  },
+  {
+    "id": 52,
+    "floor": "5楼",
+    "name": "五楼-项目管理部走廊",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD71",
+    "pos": {
+      "x": 0.3893905753896256,
+      "y": -3.0445008873391894,
+      "z": 10.7815
+    }
+  },
+  {
+    "id": 53,
+    "floor": "5楼",
+    "name": "五楼-三维美术部空调(靠近前门)",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD5F",
+    "pos": {
+      "x": -0.8968289175102542,
+      "y": -5.779834604051655,
+      "z": 10.4932
+    }
+  },
+  {
+    "id": 54,
+    "floor": "5楼",
+    "name": "五楼-项目管理部窗户",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD6F",
+    "pos": {
+      "x": 2.3870513990494393,
+      "y": -9.639885680010366,
+      "z": 10.8763
+    }
+  },
+  {
+    "id": 55,
+    "floor": "5楼",
+    "name": "五楼-web开发部空调",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD6E",
+    "pos": {
+      "x": 5.321677088930896,
+      "y": -6.420066974872126,
+      "z": 10.6196
+    }
+  },
+  {
+    "id": 56,
+    "floor": "5楼",
+    "name": "五楼-办公区域开放门顶",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD70",
+    "pos": {
+      "x": 2.6536347353798813,
+      "y": -1.7673779816210742,
+      "z": 10.1908
+    }
+  },
+  {
+    "id": 57,
+    "floor": "5楼",
+    "name": "五楼-三维美术部窗户(倒数第二和三排中间)",
+    "locationDesc": null,
+    "tagNo": "E280691500005021E647FD8F",
+    "pos": {
+      "x": -8.934738270159002,
+      "y": -9.889385843043714,
+      "z": 10.8527
+    }
+  },
+  {
+    "id": 58,
+    "floor": "1楼",
+    "name": "一楼-海外事业部走廊",
+    "locationDesc": null,
+    "tagNo": "E280691500004021E647FD8D",
+    "pos": {
+      "x": -9.21755445433687,
+      "y": -1.74440707007014,
+      "z": -5.2716
     }
   }
 ]

+ 12 - 12
vue.config.js

@@ -1,19 +1,19 @@
-module.exports = {
-  publicPath: "./",
-  devServer: {
-    headers: {
-      "Cache-Control": "no-store",
-    },
-    https: false,
+module.exports = {
+  publicPath: "./",
+  devServer: {
+    headers: {
+      "Cache-Control": "no-store",
+    },
+    https: false,
     proxy: {
       // "ingest": {
       //   target: process.env.VUE_APP_API_URL_PREFIX,
       //   changeOrigin: true,
       // },
-      "/location": {
-        target: process.env.VUE_APP_API_URL_PREFIX,
-        changeOrigin: true,
-      },
+      // "/location": {
+      //   target: process.env.VUE_APP_API_URL_PREFIX,
+      //   changeOrigin: true,
+      // },
     },
   },
-};
+};