罗广辉
2026-06-18 44dd9c4eb8a2489c63a5eb53fd4254bbb3510e95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<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 {getEnvObj, getWebViewUrl} from "@/utils/index.js";
import {useUserStore} from "@/store/index.js";
 
function onPostMessage(data) {
  if (data.type === 'back'){
    // #ifdef H5
    window.history.back()
    // #endif
 
    // #ifdef APP-PLUS
    uni.navigateBack({
      delta: 1 // 返回的页面数,默认1(返回上一页)
    });
    // #endif
  }
}
 
 
// 文件上传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('保存成功')
  })
}
 
const viewUrl = ref("");
onLoad((options) => {
  viewUrl.value = getWebViewUrl("/DroneConsole", {
    wayLineJobInfoId: options.wayLineJobInfoId,
    dockSn: options.dockSn,
  });
})
 
 
onShow(() => {
  // #ifdef APP-PLUS
  plus.navigator.setFullscreen(true); // 加入全屏
  plus.screen.lockOrientation("landscape-primary");//横屏
  // #endif
});
 
onHide(() => {
  // #ifdef APP-PLUS
  plus.navigator.setFullscreen(false);
  plus.screen.lockOrientation("portrait-primary");
  // #endif
});
</script>
<style scoped lang="scss">
 
</style>