Sfoglia il codice sorgente

修改弹窗逻辑

wangming 2 mesi fa
parent
commit
1816d86c2b

+ 7 - 8
package-lock.json

@@ -31,7 +31,7 @@
         "@dcloudio/uni-stat": "^2.0.2-4060620250520001",
         "@vue/shared": "^3.0.0",
         "copy-webpack-plugin": "^5.1.1",
-        "core-js": "^3.8.3",
+        "core-js": "^3.45.0",
         "flyio": "^0.6.2",
         "less-loader": "^12.3.0",
         "mqtt": "^4.3.8",
@@ -9598,11 +9598,10 @@
       }
     },
     "node_modules/core-js": {
-      "version": "3.43.0",
-      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.43.0.tgz",
-      "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==",
+      "version": "3.45.0",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz",
+      "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==",
       "hasInstallScript": true,
-      "license": "MIT",
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/core-js"
@@ -29784,9 +29783,9 @@
       }
     },
     "core-js": {
-      "version": "3.43.0",
-      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.43.0.tgz",
-      "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA=="
+      "version": "3.45.0",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz",
+      "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA=="
     },
     "core-js-compat": {
       "version": "3.43.0",

+ 1 - 1
package.json

@@ -72,7 +72,7 @@
     "@dcloudio/uni-stat": "^2.0.2-4060620250520001",
     "@vue/shared": "^3.0.0",
     "copy-webpack-plugin": "^5.1.1",
-    "core-js": "^3.8.3",
+    "core-js": "^3.45.0",
     "flyio": "^0.6.2",
     "less-loader": "^12.3.0",
     "mqtt": "^4.3.8",

+ 16 - 16
src/components/component/alarModel.vue

@@ -55,7 +55,7 @@ import {
     isWmpf,
 } from "../../const.js";
 import { AsyncValue } from "../../utils";
-import { onLoad } from "@dcloudio/uni-app";
+import { onHide, onLoad } from "@dcloudio/uni-app";
 
 const wmpfVoip = requirePlugin("wmpf-voip").default;
 const envVersion = wx.getAccountInfoSync().miniProgram.envVersion;
@@ -87,7 +87,7 @@ export default {
             authorizeFlag: true,
             clientId: "",
             dev_id: "",
-            mqttClient: "",
+            mqttClientTwo: "",
             // voip相关
             isWmpf: isWmpf,
             name: "用户",
@@ -409,8 +409,13 @@ export default {
                 console.error(`call error`, error);
             }
         },
+        // mqtt相关方法
+        connectMQTTwo() {
+            if (this.mqttClientTwo) {
+                console.log("MQTT连接已存在,无需重新创建", this.mqttClientTwo);
+                return;
+            }
 
-        connectMQTT() {
             const THRESHOLD = 2;
             const params = {
                 keepalive: 60,
@@ -451,7 +456,7 @@ export default {
                 }
             }
             // 存储client引用以便后续操作
-            this.mqttClient = client;
+            this.mqttClientTwo = client;
             client.on("connect", () => {
                 console.log("MQTT连接成功");
                 let userId = uni.getStorageSync("userId");
@@ -470,7 +475,7 @@ export default {
             });
             client.on("error", (err) => {
                 setTimeout(() => {
-                    this.connectMQTT();
+                    this.connectMQTTwo();
                 }, 5000);
             });
 
@@ -532,17 +537,12 @@ export default {
                     }
                 });
         },
-    },
-    mounted() {
-        console.log("mounted");
-        if (uni.getStorageSync("userId")) {
-            this.connectMQTT();
-        }
-    },
-    onHide() {
-        if (this.mqttClient) this.mqttClient.end(true);
-        clearInterval(this.autoPlayinterval);
-        clearInterval(this.inactivityTimer);
+        closemqtt() {
+            if (this.mqttClientTwo) {
+                this.mqttClientTwo.end();
+                console.log("MQTT连接已断开");
+            }
+        },
     },
 };
 </script>

+ 0 - 2
src/components/js_sdk/index.js

@@ -5,7 +5,6 @@ http.setConfig(config => {
     if (__wxConfig.envVersion == 'develop') {
         let selectedService = uni.getStorageSync("sercviceChoice")
         if (!selectedService || selectedService == 'aloneServe') {
-            // config.baseUrl = "https://radar-power.cn/portal-service-server/";
             config.baseUrl = "https://api.radar-power.asia:4443/portal-service-server/";
         }
         config.baseUrl = "https://radar-power.cn/portal-service-server/";
@@ -14,7 +13,6 @@ http.setConfig(config => {
         let selectedService = uni.getStorageSync("sercviceChoice")
         if (!selectedService || selectedService == 'aloneServe') {
             config.baseUrl = "https://radar-power.cn/portal-service-server/";
-            // config.baseUrl = "https://api.radar-power.asia:4443/portal-service-server/";
         }
     }
     if (__wxConfig.envVersion == 'release') {

+ 0 - 9
src/pages.json

@@ -143,15 +143,6 @@
                     }
                 },
                 {
-                    "path": "warnDevice/warnDevice",
-                    "style": {
-                        "enablePullDownRefresh": true,
-                        "navigationBarTitleText": "报警设备",
-                        "navigationBarBackgroundColor": "#faede2",
-                        "navigationBarTextStyle": "black"
-                    }
-                },
-                {
                     "path": "discrepancy/discrepancy",
                     "style": {
                         "enablePullDownRefresh": true,

+ 12 - 6
src/pages/home/home.vue

@@ -118,8 +118,8 @@
                     </view>
                     <view
                         class="shareTitle"
-                        v-for="item in warmList"
-                        :key="item.devId + '-copy'"
+                        v-for="(item, index) in warmList"
+                        :key="index"
                     >
                         {{ item.devName }}检测到有目标滞留
                     </view>
@@ -132,7 +132,7 @@
             </view>
             <image src="../../static/arrFour.png" class="warmImage"></image>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 <script>
@@ -249,7 +249,7 @@ export default {
                 });
         },
         // 获取天气接口
-        async getWeather() {
+        getWeather() {
             uni.request({
                 url: "https://kp36x7gr79.re.qweatherapi.com/v7/weather/now", // 使用官方域名
                 data: {
@@ -267,7 +267,6 @@ export default {
                 },
             });
         },
-
         // 需要跟车对接一下,换一个接口
         getWarmList() {
             this.$http
@@ -316,22 +315,29 @@ export default {
                         }
                     }
                 });
+            uni.hideLoading();
         },
     },
     onLoad() {},
     onShow() {
         if (uni.getStorageSync("userId")) {
+            uni.showLoading({
+                title: "雷能为您守护中...",
+            });
             this.getperSonInfo();
             this.getShareNum();
             this.getWarmList();
+            this.getWeather();
+            this.$refs.alarModel.connectMQTTwo();
         }
-        this.getWeather();
         // 配置服务器
         let selectedService = uni.getStorageSync("sercviceChoice");
         if (!selectedService) {
             uni.setStorageSync("sercviceChoice", "aloneServe");
         }
     },
+    onHide() {},
+
     onShareAppMessage() {
         return {
             title: "好友向您分享雷能守护",

+ 4 - 1
src/pagesA/OTA/OTA.vue

@@ -69,7 +69,7 @@
             v-if="devsClientId.length > 0 && otaList.length > 0"
             >更新OTA</view
         >
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 
@@ -185,6 +185,9 @@ export default {
             });
         },
     },
+    onLoad() {
+        this.$refs.alarModel.connectMQTTwo();
+    },
     onShow() {
         this.queryList();
         this.queryOtaList();

+ 4 - 1
src/pagesA/abnormalInfo/abnormalInfo.vue

@@ -64,7 +64,7 @@
             </view>
         </template>
         <view style="height: 20rpx"></view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 
@@ -159,6 +159,9 @@ export default {
             this.getwarmType();
         });
     },
+    onLoad() {
+        this.$refs.alarModel.connectMQTTwo();
+    },
 };
 </script>
 

+ 2 - 1
src/pagesA/adDevice/adDevice.vue

@@ -222,7 +222,7 @@
                 </view>
             </view>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 <script>
@@ -594,6 +594,7 @@ export default {
         } else {
             console.log("没有参数");
         }
+        this.$refs.alarModel.connectMQTTwo();
     },
 
     onUnload(options) {

+ 27 - 14
src/pagesA/deviceDetail/deviceDetail.vue

@@ -264,7 +264,7 @@
                 </view>
             </view>
         </view>
-        <!-- <alarModel /> -->
+        <alarModel ref="alarModel" />
     </view>
 </template>
 <script>
@@ -413,16 +413,15 @@ export default {
             };
             let client = "";
             let selectedService = uni.getStorageSync("sercviceChoice");
-            // if (!selectedService || selectedService == "aloneServe") {
-            //     client = mqtt.connect("wxs://radar-power.cn:8084/mqtt", params);
-            // }
-            client = mqtt.connect("wxs://radar-power.cn:8084/mqtt", params);
+            if (!selectedService || selectedService == "aloneServe") {
+                client = mqtt.connect("wxs://radar-power.cn:8084/mqtt", params);
+            }
             // 存储client引用以便后续操作
             this.mqttClient = client;
 
             client.on("connect", () => {
                 console.log("MQTT连接成功");
-                client.subscribe(`/mps/${clientId}/realtime_pos`, (err) => {
+                client.subscribe(`/dev/${clientId}/dsp_data`, (err) => {
                     if (err) {
                         console.error("订阅失败", err);
                     } else {
@@ -456,7 +455,7 @@ export default {
                     console.log("长时间没有点位,消除");
                 }, 1500);
 
-                const match = topic.match(/^\/mps\/(.+)\/realtime_pos$/);
+                const match = topic.match(/^\/dev\/(.+)\/dsp_data$/);
                 if (!match) return;
 
                 const msgDevId = match[1];
@@ -465,7 +464,7 @@ export default {
                 try {
                     const data = JSON.parse(message.toString());
                     // console.log(data, 9999);
-                    const arr = data.targetPoints;
+                    const arr = data.tracker_targets;
                     this.left = arr[0];
                     this.top = arr[1];
                     if (arr.length > 0) {
@@ -505,7 +504,17 @@ export default {
                                 delete this.targetPoints[id];
                             }
                         });
-                        this.targetPoints = [...this.targetPoints];
+                        let cleanPoints = JSON.parse(
+                            JSON.stringify(this.targetPoints)
+                        );
+                        this.targetPoints = cleanPoints.filter(
+                            (item) => item !== null
+                        );
+                        this.targetPoints = this.targetPoints.filter(
+                            (item, index, self) =>
+                                self.findIndex((i) => i.id === item.id) ===
+                                index
+                        );
                         console.log("🚀🚀🚀🚀targets", this.targetPoints);
                     } else {
                         this.targetPoints.forEach(
@@ -791,19 +800,23 @@ export default {
         this.autoPlayinterval = setTimeout(() => {
             this.autoSwipe();
         }, 3000);
-
         this.getCurrentDate();
     },
     onUnload() {
-        if (this.mqttClient) this.mqttClient.end(true);
+        if (this.mqttClient) {
+            this.mqttClient.end();
+        }
         clearInterval(this.autoPlayinterval);
         clearInterval(this.inactivityTimer);
     },
     onHide() {
-        if (this.mqttClient) this.mqttClient.end(true);
+        if (this.mqttClient) {
+            this.mqttClient.end();
+        }
+    },
+    onShow() {
+        this.$refs.alarModel.connectMQTTwo();
     },
-    onShow() {},
-    // onShareAppMessage() {},
 };
 </script>
 <style lang="less" scoped>

+ 2 - 1
src/pagesA/deviceSetting/deviceSetting.vue

@@ -38,7 +38,7 @@
                 <view class="btn2" @click="unbindDevice">解绑设备</view>
             </view>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 <script>
@@ -112,6 +112,7 @@ export default {
         console.log(this.devInfo);
     },
     onShow() {
+        this.$refs.alarModel.connectMQTTwo();
         this.getPosition(this.devInfo.installPosition);
     },
 };

+ 5 - 5
src/pagesA/devices/devices.vue

@@ -59,13 +59,12 @@
                     <image src="../../static/ln_small.png" mode="" />
                 </view>
             </view>
-            <alarModel />
+            <alarModel ref="alarModel" />
         </view>
     </view>
 </template>
 
 <script>
-// import { timestampToTime } from "../../utils/common.js";
 import common from "../../utils/common.js";
 
 export default {
@@ -214,12 +213,13 @@ export default {
             }, 2000);
         },
     },
-    onLoad() {
-        // Initialization if needed
-    },
+    onLoad() {},
     onShow() {
         this.queryList();
+        this.$refs.alarModel.connectMQTTwo();
     },
+    onHide() {},
+
     onPullDownRefresh() {
         uni.showNavigationBarLoading();
         this.queryList();

+ 2 - 1
src/pagesA/homeDetail/homeDetail.vue

@@ -18,7 +18,7 @@
                 >
             </view>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 
@@ -99,6 +99,7 @@ export default {
     },
     onLoad(options) {
         this.groupInfo = JSON.parse(options.groupInfo);
+        this.$refs.alarModel.connectMQTTwo();
         console.log(this.groupInfo, 99999);
     },
     onShow() {

+ 2 - 1
src/pagesA/homeManage/homeManage.vue

@@ -82,7 +82,7 @@
                 </view>
             </view>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 
@@ -206,6 +206,7 @@ export default {
     },
     onShow() {
         this.getgroupList();
+        this.$refs.alarModel.connectMQTTwo();
     },
     onLoad() {},
 

+ 2 - 1
src/pagesA/linkShare/linkShare.vue

@@ -73,7 +73,7 @@
             确认分享
         </button>
         <button class="btn1" v-else @click="unShare()">暂不可分享</button>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 <script>
@@ -164,6 +164,7 @@ export default {
         setTimeout(() => {
             this.shareUserLink("分享链接创建成功");
         }, 500);
+        this.$refs.alarModel.connectMQTTwo();
     },
 };
 </script>

+ 4 - 1
src/pagesA/my/my.vue

@@ -48,7 +48,7 @@
         </view>
 
         <view class="logoutBtn" @click="goLogout">退出登录</view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 
@@ -132,6 +132,9 @@ export default {
             });
         },
     },
+    onLoad() {
+        this.$refs.alarModel.connectMQTTwo();
+    },
 };
 </script>
 

+ 2 - 1
src/pagesA/roomSetting/roomSetting.vue

@@ -230,7 +230,7 @@
                 </view>
             </view>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 <script>
@@ -705,6 +705,7 @@ export default {
         this.devId = options.devId;
         this.getdevInfo(this.devId);
         this.getRoomInfo(this.devId);
+        this.$refs.alarModel.connectMQTTwo();
     },
     onShow() {},
 };

+ 2 - 1
src/pagesA/serChange/serChange.vue

@@ -21,7 +21,7 @@
                 <button class="btn" @click="confirm">确认</button>
             </view>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 
@@ -66,6 +66,7 @@ export default {
         },
     },
     onShow() {
+        this.$refs.alarModel.connectMQTTwo();
         let selectedValue = uni.getStorageSync("sercviceChoice")
             ? uni.getStorageSync("sercviceChoice")
             : "aloneServe";

+ 2 - 1
src/pagesA/shareList/shareList.vue

@@ -60,7 +60,7 @@
                 </view>
             </view>
         </template>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 
@@ -158,6 +158,7 @@ export default {
         },
     },
     onShow() {
+        this.$refs.alarModel.connectMQTTwo();
         this.getShareList();
     },
 

+ 2 - 1
src/pagesA/sharePages/sharePages.vue

@@ -54,7 +54,7 @@
                 <view class="meanRight" @click="refuseDevice(item)">拒绝</view>
             </view>
         </view>
-        <alarModel />
+        <alarModel ref="alarModel" />
     </view>
 </template>
 <script>
@@ -165,6 +165,7 @@ export default {
         this.devInfo = JSON.parse(options.devInfo);
         this.sharePhone = options.phone;
         this.shareId = options.shareId;
+        this.$refs.alarModel.connectMQTTwo();
     },
     onShow() {
         let userId = uni.getStorageSync("userId");

+ 0 - 15
src/pagesA/warnDevice/warnDevice.vue

@@ -1,15 +0,0 @@
-<template>
-    <view> </view>
-</template>
-<script>
-export default {
-    data() {
-        return {
-            headerImg: "",
-            phone: "",
-        };
-    },
-    methods: {},
-};
-</script>
-<style></style>

+ 4 - 4
yarn.lock

@@ -4383,10 +4383,10 @@
   dependencies:
     "browserslist" "^4.25.0"
 
-"core-js@^3.4.1", "core-js@^3.8.3":
-  "integrity" "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA=="
-  "resolved" "https://registry.npmmirror.com/core-js/-/core-js-3.43.0.tgz"
-  "version" "3.43.0"
+"core-js@^3.4.1", "core-js@^3.45.0", "core-js@^3.8.3":
+  "integrity" "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA=="
+  "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz"
+  "version" "3.45.0"
 
 "core-util-is@~1.0.0":
   "integrity" "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="