From 32febb140d320b35d580c8d4e78a80ef846e75fc Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 19 Dec 2025 15:59:34 +0800
Subject: [PATCH] feat:webview通信处理

---
 src/pages/map/index.vue |   84 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 72 insertions(+), 12 deletions(-)

diff --git a/src/pages/map/index.vue b/src/pages/map/index.vue
index 3a80b85..8771ccd 100644
--- a/src/pages/map/index.vue
+++ b/src/pages/map/index.vue
@@ -1,12 +1,12 @@
 <!--
  * @Author       : yuan
- * @Date         : 2025-10-14 17:40:58
+ * @Date         : 2025-12-03 14:20:57
  * @LastEditors  : yuan
- * @LastEditTime : 2025-10-15 15:54:25
+ * @LastEditTime : 2025-12-19 15:32:31
  * @FilePath     : \src\pages\map\index.vue
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
- * 2025-10-14 17:40:58
+ * @Description  :
+ * Copyright 2025 OBKoro1, All Rights Reserved.
+ * 2025-12-03 14:20:57
 -->
 <template>
   <view class="page-wrap">
@@ -15,17 +15,77 @@
 </template>
 
 <script setup>
-import { useUserStore } from "@/store/index.js";
+import { getWebViewUrl } from "@/utils/index.js";
 import WebViewPlus from "@/components/WebViewPlus.vue";
+import { onHide, onShow } from "@dcloudio/uni-app";
+// const viewUrl = getWebViewUrl("/defaultMap");
 
-const userStore = useUserStore();
-const viewUrl = `http://192.168.1.194:5174/drone-app-web-view/#/webViewWrapper/defaultMap?params=${JSON.stringify(
-  userStore?.userInfo
-)}`;
+let envParam = "";
+// #ifdef WEB
+envParam = "true";
+// #endif
+// #ifdef APP-PLUS
+envParam = "false";
+// #endif
 
-const onPostMessage = (event) => {};
+const updateKey = ref(0);
+const viewUrl = computed(() => {
+  return getWebViewUrl("/defaultMap", {
+    isWeb: envParam,
+    updateKey: updateKey.value,
+  });
+});
 
-onLoad(() => {});
+const onPostMessage = (data) => {
+  // #ifdef MP-WEIXIN
+  if (data.type === "scanCode") {
+  } else if (data.type === "jumpAddWork") {
+  } else if (data.type === "jumpMapNav") {
+    //事件导航
+  } else if (data.type === "workid") {
+    //事件详情
+  }
+  // #endif
+
+  // #ifndef MP-WEIXIN
+  if (data.type === "scanCode") {
+    uni.navigateTo({
+      url: "/subPackages/qrCode/index",
+    });
+  } else if (data.type === "jumpAddWork") {
+    //新建任务
+    const encodedData = encodeURIComponent(JSON.stringify(data.rowItem));
+    uni.setStorageSync("webview_params", encodedData);
+    uni.navigateTo({
+      url: `/subPackages/taskDetail/addTask/index`,
+    });
+  } else if (data.type === "jumpMapNav") {
+    //事件导航
+    uni.navigateTo({
+      url: `/subPackages/workDetail/mapWork/index?currentItem=${data.eventNum}`,
+    });
+  } else if (data.type === "workid") {
+    //事件详情
+    uni.navigateTo({
+      url: `/subPackages/workDetail/index?eventNum=${data.eventNum}`,
+    });
+  }
+  // #endif
+};
+
+onShow(() => {
+  uni.setStorageSync("lastTab", "map");
+  uni.setTabBarItem({
+    index: 2,
+    text: "",
+    iconPath: "static/images/tabbar/drone.png",
+    selectedIconPath: "static/images/tabbar/drone.png",
+  });
+});
+
+onHide(() => {
+  updateKey.value = updateKey.value + 1;
+});
 </script>
 
 <style scoped lang="scss">

--
Gitblit v1.9.3