Merge branch 'feature/v9.0/9.0.4' into prod
15 files modified
23 files deleted
| | |
| | | "leaflet": "^1.9.4", |
| | | "pinia": "2.2.4", |
| | | "pinia-plugin-persistedstate": "4.1.3", |
| | | "trtc-sdk-v5": "^5.14.1", |
| | | "uview-plus": "^3.5.41", |
| | | "vue": "3.4.21", |
| | | "vue-i18n": "9.1.9", |
| | |
| | | VITE_API_BASE_URL: 'https://wrj.shuixiongit.com/api', |
| | | // VITE_API_BASE_URL: 'https://aisky.org.cn/api', |
| | | VITE_APP_WS_API_URL:'wss://wrj.shuixiongit.com/drone-wss/api/v1/ws', |
| | | |
| | | |
| | | // 静态资源存放地址' |
| | | VITE_APP_ASSETS_URL: 'https://wrj.shuixiongit.com/drone-app/assets/static' |
| | | VITE_APP_ASSETS_URL: 'https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets' |
| | | } |
| | | |
| | | const test = { |
| | |
| | | VITE_API_BASE_URL: 'https://wrj.shuixiongit.com/api', |
| | | VITE_APP_WS_API_URL: 'wss://wrj.shuixiongit.com/drone-wss/api/v1/ws', |
| | | // 静态资源存放地址' |
| | | VITE_APP_ASSETS_URL: 'https://wrj.shuixiongit.com/drone-app/assets/static' |
| | | VITE_APP_ASSETS_URL: 'https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets' |
| | | } |
| | | |
| | | const production = { |
| | |
| | | VITE_API_BASE_URL: 'https://aisky.org.cn/api', |
| | | VITE_APP_WS_API_URL: 'wss://aisky.org.cn/drone-wss/api/v1/ws', |
| | | // 静态资源存放地址' |
| | | VITE_APP_ASSETS_URL: 'https://wrj.shuixiongit.com/drone-app/assets/static' |
| | | VITE_APP_ASSETS_URL: 'https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets' |
| | | } |
| | | |
| | | export default { |
| | |
| | | import {useUserStore} from "@/store/index.js"; |
| | | import {getEnvObj} from "@/utils/index.js"; |
| | | import {enterRoom} from "@/utils/voiceCallByTX/index.js"; |
| | | import useAppStore from "../store/modules/app/index.js"; |
| | | |
| | | let socketTask = null |
| | | let heartbeatTimer = null |
| | | |
| | | export function useGlobalWS() { |
| | | const userStore = useUserStore(); |
| | |
| | | url: '/pages/login/index' |
| | | }) |
| | | break |
| | | case 'VoiceCall': |
| | | enterRoom(payload, userId.value) |
| | | break |
| | | default: |
| | | break; |
| | | } |
| | |
| | | |
| | | // 关闭ws |
| | | function closeWS() { |
| | | stopHeartbeat() |
| | | socketTask?.close({ |
| | | success: () => { |
| | | console.log('ws关闭连接'); |
| | |
| | | // 监听连接关闭 |
| | | socketTask.onClose((res) => { |
| | | console.log(`WebSocket连接关闭,代码: ${res.code}, 原因: ${res.reason}`) |
| | | |
| | | startHeartbeat() |
| | | // 根据不同的关闭代码处理 |
| | | if (res.code === 1000) { // 正常关闭 |
| | | console.log('连接正常关闭') |
| | |
| | | }) |
| | | } |
| | | |
| | | function startHeartbeat() { |
| | | stopHeartbeat() |
| | | heartbeatTimer = setInterval(() => { |
| | | if (socketTask && socketTask.readyState === 1) { |
| | | // 尝试以 JSON 格式发送,并降低频率(30秒一次)以减少服务器负担 |
| | | socketTask.send({ |
| | | data: JSON.stringify({ type: 'ping', timestamp: Date.now() }) |
| | | }); |
| | | } |
| | | }, 30000) |
| | | } |
| | | |
| | | function stopHeartbeat() { |
| | | if (heartbeatTimer) { |
| | | clearInterval(heartbeatTimer) |
| | | heartbeatTimer = null |
| | | } |
| | | } |
| | | |
| | | |
| | | watch(access_token, initWS, {immediate: true}) |
| | | } |
| | |
| | | } |
| | | }, |
| | | "nativePlugins" : { |
| | | "TRTCCloudUniPlugin-TRTCCloudImpl" : { |
| | | "__plugin_info__" : { |
| | | "name" : "【官方】腾讯云实时音视频SDK", |
| | | "description" : "uni-app TRTC SDK 是腾讯云实时音视频通讯解决方案在 uni-app 上的 SDK,提供实时音视频服务", |
| | | "platforms" : "Android,iOS", |
| | | "url" : "https://ext.dcloud.net.cn/plugin?id=7774", |
| | | "android_package_name" : "uni.app.UNI0981D7F", |
| | | "ios_bundle_id" : "", |
| | | "isCloud" : true, |
| | | "bought" : 1, |
| | | "pid" : "7774", |
| | | "parameters" : {} |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | /* 快应用特有相关 */ |
| | |
| | | import { getWebViewUrl } from "@/utils/index.js"; |
| | | import WebViewPlus from "@/components/WebViewPlus.vue"; |
| | | import { onHide, onShow } from "@dcloudio/uni-app"; |
| | | import { errorFactory } from "sass-loader/dist/utils.js"; |
| | | import { useAppStore } from "@/store/index.js"; |
| | | |
| | | const appStore = useAppStore(); |
| | |
| | | import { HOME_PATH, LOGIN_PATH, removeQueryString } from "@/router"; |
| | | import { onMounted } from "vue"; |
| | | |
| | | const droneSvg = getAssetsImage("/images/login/droneSvg.svg"); |
| | | const usernameSvg = getAssetsImage("/images/login/username.svg"); |
| | | const passwordSvg = getAssetsImage("/images/login/password.svg"); |
| | | const logoSvg = getAssetsImage("/images/login/logo.svg"); |
| | | const droneSvg = getAssetsImage("/images/login/droneSvg.png"); |
| | | const usernameSvg = getAssetsImage("/images/login/username.png"); |
| | | const passwordSvg = getAssetsImage("/images/login/password.png"); |
| | | const logoSvg = getAssetsImage("/images/login/logo.png"); |
| | | |
| | | const userStore = useUserStore(); |
| | | const loginForm = ref({ |
| | |
| | | <view class="userName">{{ userStore?.userInfo?.nick_name }}</view> |
| | | <view class="departs"> |
| | | <image |
| | | src="https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/mobile.svg" |
| | | src="https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/mobile.png" |
| | | alt="" |
| | | /> |
| | | <span>{{ user.deptName }}</span> |
| | |
| | | |
| | | const { setClipboardData, getClipboardData } = useClipboard(); |
| | | |
| | | const rightImage = getAssetsImage("/images/user/rightBtn.svg"); |
| | | const rightImage = getAssetsImage("/images/user/rightBtn.png"); |
| | | const logoImage = getAssetsImage("/images/user/logo1.png"); |
| | | |
| | | const userStore = useUserStore(); |
| | |
| | | .userBox { |
| | | padding-top: 88rpx; |
| | | } |
| | | /* #ifdef MP-WEIXIN */ |
| | | .userBox { |
| | | padding-top: 180rpx; |
| | | } |
| | | /* #endif */ |
| | | .userName { |
| | | font-weight: 700; |
| | | font-size: 36rpx; |
| | |
| | | } |
| | | |
| | | .message { |
| | | background: url(https://wrj.shuixiongit.com/drone-app/assets/static/images/user/info.png) |
| | | background: url(https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/info.png) |
| | | no-repeat center; |
| | | background-size: 100% 100%; |
| | | } |
| | | |
| | | .passwordBox { |
| | | background: url(https://wrj.shuixiongit.com/drone-app/assets/static/images/user/password.png) |
| | | background: url(https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/password.png) |
| | | no-repeat center; |
| | | background-size: 100% 100%; |
| | | } |
| | |
| | | * @LastEditors : yuan |
| | | * @LastEditTime : 2025-12-20 14:18:42 |
| | | * @FilePath : \src\pages\work\index.vue |
| | | * @Description : |
| | | * Copyright 2025 OBKoro1, All Rights Reserved. |
| | | * @Description : |
| | | * Copyright 2025 OBKoro1, All Rights Reserved. |
| | | * 2025-12-18 10:06:30 |
| | | --> |
| | | <template> |
| | |
| | | }); |
| | | } else if (data.type === "workid") { |
| | | uni.navigateTo({ |
| | | url: `/subPackages/workDetail/index?eventNum=${data.eventNum}&totalNum=${data.totalNum}&keyword=${data.keyword}&aiType=${data.aiType}&status=${data.status}`, |
| | | url: `/subPackages/workDetail/index?eventNum=${data.eventNum}&totalNum=${data.totalNum}&keyword=${data.keyword}&aiType=${data.aiType}&status=${data.status}¤t=${data.current}`, |
| | | }); |
| | | } else if (data.type === "bigImage") { |
| | | uni.navigateTo({ |
| | |
| | | @font-face { |
| | | font-family: "Source Han Sans CN"; |
| | | src: url("https://wrj.shuixiongit.com/drone-app/assets/static/fonts/SourceHanSansCN-Regular.woff2") |
| | | src: url("https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/fonts/SourceHanSansCN-Regular.woff2") |
| | | format("opentype"); |
| | | font-weight: 400; |
| | | font-style: normal; |
| | |
| | | |
| | | @font-face { |
| | | font-family: "Source Han Sans CN"; |
| | | src: url("https://wrj.shuixiongit.com/drone-app/assets/static/fonts/SourceHanSansCN-Bold.woff2") |
| | | src: url("https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/fonts/SourceHanSansCN-Bold.woff2") |
| | | format("opentype"); |
| | | font-weight: 700; |
| | | font-style: normal; |
| | |
| | | |
| | | @font-face { |
| | | font-family: "Segoe UI"; |
| | | src: url("https://wrj.shuixiongit.com/drone-app/assets/static/fonts/SourceHanSansCN-Regular.woff2") |
| | | src: url("https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/fonts/SourceHanSansCN-Regular.woff2") |
| | | format("opentype"); |
| | | font-weight: 400; |
| | | font-style: normal; |
| | |
| | | |
| | | @font-face { |
| | | font-family: "Segoe UI"; |
| | | src: url("https://wrj.shuixiongit.com/drone-app/assets/static/fonts/SourceHanSansCN-Bold.woff2") |
| | | src: url("https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/fonts/SourceHanSansCN-Bold.woff2") |
| | | format("opentype"); |
| | | font-weight: 700; |
| | | font-style: normal; |
| | |
| | | /* 额外的标题字体 */ |
| | | @font-face { |
| | | font-family: "YouSheBiaoTiHei"; |
| | | src: url("https://wrj.shuixiongit.com/drone-app/assets/static/fonts/YouSheBiaoTiHei.TTF") |
| | | src: url("https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/fonts/YouSheBiaoTiHei.TTF") |
| | | format("truetype"); |
| | | font-weight: normal; |
| | | font-style: normal; |
| | |
| | | import { getAssetsImage } from "@/utils/index.js"; |
| | | import { HOME_PATH } from "@/router"; |
| | | |
| | | const errorImage = getAssetsImage("/404.png"); |
| | | const errorImage = getAssetsImage("/images/404.png"); |
| | | |
| | | function handleBack() { |
| | | uni.$u.route({ |
| | |
| | | }); |
| | | } else if(data.type === 'workid') { |
| | | uni.navigateTo({ |
| | | url: `/subPackages/workDetail/index?eventNum=${data.eventNum}&wLJobInfoId=${data.wLJobInfoId}` |
| | | url: `/subPackages/workDetail/index?eventNum=${data.eventNum}&wLJobInfoId=${data.wLJobInfoId}¤t=${data.current}` |
| | | }); |
| | | } |
| | | } |
| | |
| | | width: 276rpx; |
| | | height: 76rpx; |
| | | } |
| | | :deep(.u-button.data-v-461e713c){ |
| | | :deep(.u-button){ |
| | | width: 276rpx !important; |
| | | height: 76rpx !important; |
| | | } |
| | |
| | | width: 276rpx; |
| | | height: 76rpx; |
| | | } |
| | | :deep(.u-button.data-v-461e713c){ |
| | | :deep(.u-button){ |
| | | width: 276rpx !important; |
| | | height: 76rpx !important; |
| | | } |
| | |
| | | aiType: options.aiType, |
| | | wLJobInfoId: options.wLJobInfoId, |
| | | status: options.status, |
| | | current: options.current, |
| | | }); |
| | | }); |
| | | |