董国庆
2026-07-01 934ada320ea0ddb09db4a6f6032a89b745b43199
Merge branch 'deploy-2.0' of http://120.76.84.145:10101/gitblit/r/H5/xp-robotaxi-web into deploy-2.0
1个文件已修改
59 ■■■■■ 已修改文件
src/views/system/appVersion/appVersionManage/add.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/appVersion/appVersionManage/add.vue
@@ -1,7 +1,7 @@
<script setup lang="tsx">
import { useMessage } from 'naive-ui'
import type { FormInst, FormRules, UploadCustomRequestOptions, UploadFileInfo } from 'naive-ui'
import { ref } from 'vue'
import { onActivated, onBeforeUnmount, onDeactivated, ref } from 'vue'
import { useRouter } from 'vue-router'
import { beforeUploadCheck, customDirectUploadRequest } from '@/utils/upload'
import { releaseAppVersion, stringifyAppVersionFileValue } from '@/service/api/appVersion'
@@ -47,7 +47,48 @@
  return beforeUploadCheck(data, { maxSize: 500, allowedTypes: [] })
}
let androidAbortController: AbortController | null = null
let iosAbortController: AbortController | null = null
function resetFormAndUploads() {
  if (androidAbortController) {
    androidAbortController.abort()
    androidAbortController = null
  }
  if (iosAbortController) {
    iosAbortController.abort()
    iosAbortController = null
  }
  androidUploading.value = false
  iosUploading.value = false
  formModel.value = {
    version: '',
    androidFiles: [],
    iosFiles: [],
    updateNote: '',
    isForceUpdate: false,
  }
  formRef.value?.restoreValidation()
}
onActivated(() => {
  resetFormAndUploads()
})
onDeactivated(() => {
  resetFormAndUploads()
})
onBeforeUnmount(() => {
  resetFormAndUploads()
})
async function customRequestAndroid(options: any) {
  if (androidAbortController) {
    androidAbortController.abort()
  }
  androidAbortController = new AbortController()
  androidUploading.value = true
  logAppVersionAdd('android upload triggered', {
    fileName: options?.file?.name,
@@ -61,7 +102,10 @@
  }
  try {
    // 安卓包改为前端直传:先拿上传地址,再将文件直接传到 OSS
    const res = await customDirectUploadRequest(options as UploadCustomRequestOptions)
    const res = await customDirectUploadRequest({
      ...options,
      signal: androidAbortController.signal,
    } as UploadCustomRequestOptions)
    if (!res) {
      logAppVersionAdd('android upload result empty')
      formModel.value.androidFiles = []
@@ -85,6 +129,11 @@
}
async function customRequestIos(options: any) {
  if (iosAbortController) {
    iosAbortController.abort()
  }
  iosAbortController = new AbortController()
  iosUploading.value = true
  logAppVersionAdd('ios upload triggered', {
    fileName: options?.file?.name,
@@ -98,7 +147,10 @@
  }
  try {
    // iOS 包改为前端直传:上传完成后将 fileId 存入文件项 id 字段
    const res = await customDirectUploadRequest(options as UploadCustomRequestOptions)
    const res = await customDirectUploadRequest({
      ...options,
      signal: iosAbortController.signal,
    } as UploadCustomRequestOptions)
    if (!res) {
      logAppVersionAdd('ios upload result empty')
      formModel.value.iosFiles = []
@@ -174,6 +226,7 @@
}
function handleCancel() {
  resetFormAndUploads()
  router.back()
}
</script>