Просмотр исходного кода

新建价目表,上传图片报错

LuTong 2 дней назад
Родитель
Сommit
4c621fa02e
4 измененных файлов с 13 добавлено и 20 удалено
  1. 4 7
      src/api/modules/aiImageUpload.ts
  2. 3 3
      src/api/upload.js
  3. 0 2
      src/typings/global.d.ts
  4. 6 8
      src/utils/config.ts

+ 4 - 7
src/api/modules/aiImageUpload.ts

@@ -2,7 +2,7 @@
  * Web 端:Tus 分片上传(与 Apifox / uni 版协议对齐);独立审核走上传服务 /upload/simple 等,不再调用 verify 审核域
  */
 import { useUserStore } from "@/stores/modules/user";
-import { AI_UPLOAD_FILES_PUBLIC_BASE, BASE_AI_URL, BASE_DEV_UPLOAD_SIMPLE } from "@/utils/config";
+import { AI_UPLOAD_FILES_PUBLIC_BASE, BASE_AI_URL, SIMPLE_UPLOAD_REQUEST_BASE } from "@/utils/config";
 import { withSimpleUploadOverlay } from "@/utils/withSimpleUploadOverlay";
 
 const TUS_VERSION = "1.0.0";
@@ -120,16 +120,13 @@ function normalizeSimpleUploadUrls(body: unknown, fileUrl: string): { fileUrl: s
 const DEV_SIMPLE_UPLOAD_PATH = "/upload/simple";
 
 function buildDevSimpleUploadRequestUrl(): string {
-  const base = String(BASE_DEV_UPLOAD_SIMPLE || "").replace(/\/$/, "");
-  if (base) {
-    return `${base}${DEV_SIMPLE_UPLOAD_PATH}`;
-  }
-  return DEV_SIMPLE_UPLOAD_PATH;
+  const base = String(SIMPLE_UPLOAD_REQUEST_BASE || "").replace(/\/$/, "");
+  return `${base}${DEV_SIMPLE_UPLOAD_PATH}`;
 }
 
 /**
  * 官方相册等:multipart 直传(替代 Tus `POST .../upload`)
- * POST `/dev-upload-ailien/upload/simple`,表单字段 `file`
+ * POST `https://uat.ailien.shop/upload/simple`(与全局 simple 上传一致),表单字段 `file`
  */
 export async function uploadFileViaDevSimpleEndpoint(file: File): Promise<{ fileUrl: string; coverUrl?: string }> {
   return withSimpleUploadOverlay(async signal => {

+ 3 - 3
src/api/upload.js

@@ -1,7 +1,7 @@
 import { useUserStore } from "@/stores/modules/user";
 import { useSimpleUploadOverlayStore } from "@/stores/modules/simpleUploadOverlay";
 import { ElMessage } from "element-plus";
-import { AI_UPLOAD_FILES_PUBLIC_BASE, BASE_AI_URL } from "@/utils/config";
+import { AI_UPLOAD_FILES_PUBLIC_BASE, SIMPLE_UPLOAD_REQUEST_BASE } from "@/utils/config";
 import { withSimpleUploadOverlay } from "@/utils/withSimpleUploadOverlay";
 
 /** 简单上传的路径(不含 base) */
@@ -389,9 +389,9 @@ function assertSimpleUploadBusinessOk(parsed) {
  * @returns {Promise<{ url: string; downloadUrl: string; parsed: unknown }>}
  */
 async function postFileToSimpleUploadDetailed(file, fetchOptions = {}) {
-  const base = String(BASE_AI_URL || "").replace(/\/$/, "");
+  const base = String(SIMPLE_UPLOAD_REQUEST_BASE || "").replace(/\/$/, "");
   if (!base) {
-    throw new Error("未配置上传服务地址(VITE_AI_UPLOAD_BASE 或默认 /ai-upload)");
+    throw new Error("简单上传服务基址未配置");
   }
 
   const formData = new FormData();

+ 0 - 2
src/typings/global.d.ts

@@ -68,8 +68,6 @@ declare interface ViteEnv {
   VITE_AI_UPLOAD_BASE?: string;
   /** 上传完成后对外访问 URL 前缀 */
   VITE_AI_FILES_PUBLIC_BASE?: string;
-  /** 可选;官方相册视频 simple 上传服务根,不配则开发走相对路径 /dev-upload-ailien/...、生产默认 upload.ailien.shop:8443 */
-  VITE_DEV_UPLOAD_SIMPLE_BASE?: string;
 }
 
 interface ImportMetaEnv extends ViteEnv {

+ 6 - 8
src/utils/config.ts

@@ -7,15 +7,13 @@ const trimSlash = (s: string) => s.replace(/\/$/, "");
 
 export const BASE_AI_URL = trimSlash(String(import.meta.env.VITE_AI_UPLOAD_BASE || "").trim() || "/ai-upload");
 
+/**
+ * POST `/upload/simple`(multipart)固定走 UAT 上传服务,与当前页面域名、VITE_AI_UPLOAD_BASE 无关。
+ * 避免生产等同源 `/ai-upload/upload/simple` 反代缺失导致 404,或与实际上传域不一致引发跨域。
+ */
+export const SIMPLE_UPLOAD_REQUEST_BASE = trimSlash("https://uat.ailien.shop");
+
 /** 上传完成后对外可访问的文件 URL:`${AI_UPLOAD_FILES_PUBLIC_BASE}/${uploadId}` */
 export const AI_UPLOAD_FILES_PUBLIC_BASE = trimSlash(
   String(import.meta.env.VITE_AI_FILES_PUBLIC_BASE || "").trim() || "https://uat.ailien.shop/files"
 );
-
-/**
- * 官方相册视频等:POST multipart 至 `/dev-upload-ailien/upload/simple`(非 Tus)
- * 不配时:开发环境请求同源相对路径(需在 VITE_PROXY 中把 `/dev-upload-ailien` 指到上传服务);生产默认 upload.ailien.shop:8443
- */
-export const BASE_DEV_UPLOAD_SIMPLE = trimSlash(
-  String(import.meta.env.VITE_DEV_UPLOAD_SIMPLE_BASE || "").trim() || (import.meta.env.DEV ? "" : "https://uat.ailien.shop")
-);