张含笑
2025-10-20 f4de73c1cd56824f92f87fa119668564221827d7
Merge remote-tracking branch 'origin/master'
8 files modified
278 ■■■■■ changed files
.vscode/settings.json 3 ●●●●● patch | view | raw | blame | history
env/.env.development 2 ●●●●● patch | view | raw | blame | history
package.json 26 ●●●●● patch | view | raw | blame | history
project.private.config.json 4 ●●●● patch | view | raw | blame | history
src/manifest.json 175 ●●●● patch | view | raw | blame | history
src/pages/map/index.vue 17 ●●●●● patch | view | raw | blame | history
src/subPackages/qrCode/index.vue 21 ●●●● patch | view | raw | blame | history
src/utils/common/index.js 30 ●●●●● patch | view | raw | blame | history
.vscode/settings.json
@@ -35,4 +35,7 @@
    "editor.detectIndentation": true,
    // 重新设定tabsize
    "editor.tabSize": 4,
    "[dockerfile]": {
        "editor.defaultFormatter": "ms-azuretools.vscode-containers"
    },
}
env/.env.development
@@ -6,3 +6,5 @@
# 删除console
VITE_DROP_CONSOLE=false
VITE_APP_WEBVIEW_URL = 'https://wrj.shuixiongit.com/drone-app-web-view/#/webViewWrapper'
package.json
@@ -135,5 +135,31 @@
      "eslint --fix",
      "stylelint --fix"
    ]
  },
  "uni-app": {
    "scripts": {
      "h5-dev": {
        "title": "H5 开发环境",
        "env": {
          "UNI_PLATFORM": "h5",
          "NAME_ER": "development",
          "VITE_APP_WEBVIEW_URL": "https://wrj.shuixiongit.com/drone-app-web-view/#/webViewWrapper"
        }
      },
      "h5-test": {
        "title": "H5 测试环境",
        "env": {
          "UNI_PLATFORM": "h5",
          "NAME_ER": "test"
        }
      },
      "h5-prod": {
        "title": "H5 生产环境",
        "env": {
          "UNI_PLATFORM": "h5",
          "NAME_ER": "production"
        }
      }
    }
  }
}
project.private.config.json
@@ -1,6 +1,6 @@
{
  "libVersion": "3.9.1",
  "projectname": "uniapp-vue3-template",
  "projectname": "drone-app",
  "setting": {
    "urlCheck": true,
    "coverView": true,
@@ -11,4 +11,4 @@
    "showShadowRootInWxmlPanel": true,
    "compileHotReLoad": true
  }
}
}
src/manifest.json
@@ -1,93 +1,92 @@
{
  "name": "掌控智飞",
  "appid": "__UNI__0981D7F",
  "description": "",
  "versionName": "1.0.0",
  "versionCode": "100",
  "transformPx": false,
  /* 5+App特有相关 */
  "app-plus": {
    "orientation": [
      //竖屏正方向
      "portrait-primary",
      //竖屏反方向
      "portrait-secondary",
      //横屏正方向
      "landscape-primary",
      //横屏反方向
      "landscape-secondary",
      //自然方向
      "default"
    ],
    "usingComponents": true,
    "nvueStyleCompiler": "uni-app",
    "compilerVersion": 3,
    "splashscreen": {
      "alwaysShowBeforeRender": true,
      "waiting": true,
      "autoclose": true,
      "delay": 0
    "name" : "掌控智飞",
    "appid" : "__UNI__0981D7F",
    "description" : "",
    "versionName" : "1.0.0",
    "versionCode" : "100",
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
        "orientation" : [
            //竖屏正方向
            "portrait-primary",
            //竖屏反方向
            "portrait-secondary",
            //横屏正方向
            "landscape-primary",
            //横屏反方向
            "landscape-secondary",
            //自然方向
            "default"
        ],
        "usingComponents" : true,
        "nvueStyleCompiler" : "uni-app",
        "compilerVersion" : 3,
        "splashscreen" : {
            "alwaysShowBeforeRender" : true,
            "waiting" : true,
            "autoclose" : true,
            "delay" : 0
        },
        /* 模块配置 */
        "modules" : {},
        /* 应用发布信息 */
        "distribute" : {
            /* android打包配置 */
            "android" : {
                "permissions" : [
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                ]
            },
            /* ios打包配置 */
            "ios" : {
                "dSYMs" : false
            },
            /* SDK配置 */
            "sdkConfigs" : {}
        }
    },
    /* 模块配置 */
    "modules": {},
    /* 应用发布信息 */
    "distribute": {
      /* android打包配置 */
      "android": {
        "permissions": [
          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
          "<uses-feature android:name=\"android.hardware.camera\"/>",
          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
        ]
      },
      /* ios打包配置 */
      "ios": {
        "dSYMs": false
      },
      /* SDK配置 */
      "sdkConfigs": {}
    }
  },
  /* 快应用特有相关 */
  "quickapp": {},
  /* 小程序特有相关 */
  "mp-weixin": {
    "appid": "wx1ff4bbc24b343ef1",
    "setting": {
      "urlCheck": false
    /* 快应用特有相关 */
    "quickapp" : {},
    /* 小程序特有相关 */
    "mp-weixin" : {
        "appid" : "wx1ff4bbc24b343ef1",
        "setting" : {
            "urlCheck" : false
        },
        "usingComponents" : true
    },
    "usingComponents": true
  },
  "mp-alipay": {
    "usingComponents": true
  },
  "mp-baidu": {
    "usingComponents": true
  },
  "mp-toutiao": {
    "usingComponents": true
  },
  "uniStatistics": {
    "enable": false
  },
  "vueVersion": "3",
  "h5": {
    "router": {
      "mode": "hash",
      "base": "/uniapp-vue3-template/"
    "mp-alipay" : {
        "usingComponents" : true
    },
    "mp-baidu" : {
        "usingComponents" : true
    },
    "mp-toutiao" : {
        "usingComponents" : true
    },
    "uniStatistics" : {
        "enable" : false
    },
    "vueVersion" : "3",
    "h5" : {
        "router" : {
            "mode" : "hash",
            "base" : "/drone-app/"
        }
    }
  }
}
src/pages/map/index.vue
@@ -2,7 +2,7 @@
 * @Author       : yuan
 * @Date         : 2025-10-14 17:40:58
 * @LastEditors  : yuan
 * @LastEditTime : 2025-10-15 15:54:25
 * @LastEditTime : 2025-10-20 09:21:34
 * @FilePath     : \src\pages\map\index.vue
 * @Description  : 
 * Copyright 2025 OBKoro1, All Rights Reserved. 
@@ -15,15 +15,18 @@
</template>
<script setup>
import { useUserStore } from "@/store/index.js";
import { getWebViewUrl } from "@/utils/index.js";
import WebViewPlus from "@/components/WebViewPlus.vue";
const userStore = useUserStore();
const viewUrl = `http://192.168.1.194:5174/drone-app-web-view/#/webViewWrapper/defaultMap?params=${JSON.stringify(
  userStore?.userInfo
)}`;
const viewUrl = getWebViewUrl("/defaultMap");
const onPostMessage = (event) => {};
const onPostMessage = (data) => {
  if (data.type === "scanCode") {
    uni.navigateTo({
      url: "/subPackages/qrCode/index",
    });
  }
};
onLoad(() => {});
</script>
src/subPackages/qrCode/index.vue
@@ -1,9 +1,24 @@
<template>
  <web-view ref="sWebViewRef" :src="`${viewUrl}`" />
  <view class="page-wrap">
    <WebViewPlus :src="`${viewUrl}`" @webMessage="onPostMessage" />
  </view>
</template>
<script setup>
const viewUrl = `https://192.168.1.194:5174/drone-app-web-view/#/webViewWrapper/QrCodeScanner`;
  import {
    getWebViewUrl
  } from "@/utils/index.js";
  import WebViewPlus from "@/components/WebViewPlus.vue";
  const viewUrl = getWebViewUrl("/QrCodeScanner");
  const onPostMessage = (event) => {};
  onLoad(() => {});
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
  .page-wrap {
    font-size: 20px;
  }
</style>
src/utils/common/index.js
@@ -1,5 +1,15 @@
/*
 * @Author       : yuan
 * @Date         : 2025-10-15 15:52:12
 * @LastEditors  : yuan
 * @LastEditTime : 2025-10-16 17:57:16
 * @FilePath     : \src\utils\common\index.js
 * @Description  :
 * Copyright 2025 OBKoro1, All Rights Reserved.
 * 2025-10-15 15:52:12
 */
// 小程序更新检测
import {useUserStore} from "@/store/index.js";
import { useUserStore } from "@/store/index.js"
export function mpUpdate () {
  const updateManager = uni.getUpdateManager()
@@ -29,22 +39,22 @@
  })
}
export function getWebViewUrl(targetUrl, otherParams) {
  const userStore = useUserStore();
  const url = import.meta.env.VITE_APP_WEBVIEW_URL;
export function getWebViewUrl (targetUrl, otherParams) {
  const userStore = useUserStore()
  const url = "https://wrj.shuixiongit.com/drone-app-web-view/#/webViewWrapper"
  // 1. 处理用户参数
  const userParams = userStore?.userInfo ? JSON.stringify(userStore.userInfo) : '{}';
  const userParams = userStore?.userInfo ? JSON.stringify(userStore.userInfo) : '{}'
  // 2. 构建查询参数字符串
  let queryString = `params=${encodeURIComponent(userParams)}`;
  let queryString = `params=${encodeURIComponent(userParams)}`
  // 3. 处理 otherParams 对象
  if (otherParams && typeof otherParams === 'object') {
    Object.keys(otherParams).forEach(key => {
      const value = otherParams[key];
      const value = otherParams[key]
      if (value !== undefined && value !== null) {
        queryString += `&${key}=${encodeURIComponent(value)}`;
        queryString += `&${key}=${encodeURIComponent(value)}`
      }
    });
    })
  }
  // 4. 拼接完整 URL
  return `${url}${targetUrl}?${queryString}`;
  return `${url}${targetUrl}?${queryString}`
}