From 4cb614975ad7e3d96421ed40aa9709e24f8a703d Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Fri, 24 Oct 2025 11:44:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/subPackages/droneConsole/index.vue |   67 +++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 4 deletions(-)

diff --git a/src/subPackages/droneConsole/index.vue b/src/subPackages/droneConsole/index.vue
index 8755c84..c122814 100644
--- a/src/subPackages/droneConsole/index.vue
+++ b/src/subPackages/droneConsole/index.vue
@@ -1,20 +1,79 @@
 <template>
   <WebViewPlus :src="`${viewUrl}`" @webMessage="onPostMessage"/>
+  <up-toast ref="uNotifyRef"></up-toast>
 </template>
 <script setup>
 import {onHide, onLoad, onShow} from "@dcloudio/uni-app";
 import WebViewPlus from "@/components/WebViewPlus.vue";
-import {getWebViewUrl} from "@/utils/index.js";
+import {getEnvObj, getWebViewUrl} from "@/utils/index.js";
+import Recorder from "js-audio-recorder";
+import dayjs from "dayjs";
+import {useUserStore} from "@/store/index.js";
 
-const viewUrl = ref('')
 const wayLineJodInfoId = ref(null)
-function onPostMessage(event) {
 
+const viewUrl = computed(() => {
+  return getWebViewUrl('/DroneConsole', {
+    wayLineJodInfoId: wayLineJodInfoId.value,
+  })
+})
+
+
+// 文件上传demo
+const {VITE_API_BASE_URL} = getEnvObj()
+function uploadUtil(options) {
+  const {formData, file, url} = options
+  return new Promise((resolve, reject) => {
+    let accessToken = useUserStore()?.$state?.userInfo?.access_token;
+    const file = new File([recorder.getWAVBlob()], '.wav')
+    uni.uploadFile({
+      url: `${VITE_API_BASE_URL}${url}`,
+      name: 'file',
+      header: {'Blade-Auth': 'bearer ' + accessToken},
+      file,
+      formData,
+      success: (res) => {
+        const resData = JSON.parse(res.data)
+        if (resData.code === 200 || resData.code === 0) {
+          resolve(res)
+        } else {
+          showToast(resData.message)
+          reject(res)
+        }
+      },
+      fail: (err) => {
+        reject(err)
+      }
+    });
+  })
+}
+
+function showToast(message) {
+  uNotifyRef.value.show({
+    type: 'default',
+    message,
+  });
+}
+
+
+// 保存喊话至广播列表内
+function saveSound(data) {
+  const recorder = 'xxx'
+  const file = new File([recorder?.getWAVBlob()], '.wav')
+  uploadUtil({
+    file,
+    formData: {
+      fileName: 'xxx',
+      sn: 'xxx',
+    },
+    url: '/drone-device-core/speak/api/v1/uploadSpeak'
+  }).then(res => {
+    showToast('保存成功')
+  })
 }
 
 onLoad((options) => {
   wayLineJodInfoId.value = options.wayLineJodInfoId
-  viewUrl.value = getWebViewUrl('/DroneConsole', {wayLineJodInfoId: wayLineJodInfoId.value})
 })
 
 

--
Gitblit v1.9.3