Quellcode durchsuchen

fix: 将单独的审核接口去掉

sgc vor 17 Stunden
Ursprung
Commit
086be3fbcd

+ 1 - 3
.env.development

@@ -25,9 +25,7 @@ VITE_API_URL_PLATFORM = /api/alienStorePlatform
 # 开发环境跨域代理,支持配置多个
 # VITE_PROXY = [["/api","https://api.ailien.shop"]] #生产环境
 # /ai-upload:Tus/simple 上传
-# /cover-audit:封面合规审核 → http://124.93.18.180:9000(避免浏览器直连跨域)
-VITE_COVER_AUDIT_BASE = /cover-audit
-VITE_PROXY = [["/api","http://120.26.186.130:8000"],["/ai-upload","https://uat.ailien.shop"],["/cover-audit","http://124.93.18.180:9000"]] # 邹建宇
+VITE_PROXY = [["/api","http://120.26.186.130:8000"],["/ai-upload","https://uat.ailien.shop"]] # 邹建宇
 
 
 # WebSocket 基础地址(分享等能力,与商家端一致)

+ 0 - 3
.env.production

@@ -37,9 +37,6 @@ VITE_PROXY = [["/alienStore","http://120.26.186.130:8000/alienStore"]]
 # AI接口
 VITE_PROXY_AI = [["/ai-api","http://124.93.18.180:9000"]]
 
-# 封面合规审核(预生产端口 9300;正式环境若端口不同请改此处或 nginx 反代为同源路径)
-VITE_COVER_AUDIT_BASE = http://124.93.18.180:9100
-
 # WebSocket:HTTPS 部署下「联系业主」等页面会使用 getWebSocketBase() → wss://当前访问域名/alienStore/socket
 # 可不配置 VITE_WS_BASE,避免写死域名与实际上线域名不一致。仅 HTTP/本地联调时再配 ws/wss。
 # VITE_WS_BASE = wss://test.ailien.shop/alienStore/socket

+ 0 - 3
.env.test

@@ -33,9 +33,6 @@ VITE_PROXY = [["/api","http://120.26.186.130:8000"],["/ai-upload","https://uat.a
 # 简单上传与 Tus:与 UAT 上传服务一致(不配则默认同源 /ai-upload,测试部署在非 uat 域名时常 404)
 VITE_AI_UPLOAD_BASE = https://uat.ailien.shop
 
-# 封面合规审核(测试环境端口 9100,需服务端 CORS 或 Nginx 反代)
-VITE_COVER_AUDIT_BASE = http://124.93.18.180:9100
-
 # 接口加密配置
 # 加密功能总开关
 VITE_API_ENCRYPTION_ENABLED = false

+ 0 - 46
src/api/modules/coverAudit.ts

@@ -1,46 +0,0 @@
-import { COVER_AUDIT_BASE_URL } from "@/utils/config";
-import { useUserStore } from "@/stores/modules/user";
-
-/**
- * 封面素材合规审核(与商家端 `merchantSetInfo.getCoverAuditData`、路径一致)
- * POST `/ai/auto-review/api/v1/cover_audit/audit`,body `{ url }` 为图片或视频直链。
- * 基址:`COVER_AUDIT_BASE_URL`(固定 IP + 环境端口或 `VITE_COVER_AUDIT_BASE`)
- */
-export async function getCoverAuditData(payload: { url: string }): Promise<Record<string, unknown>> {
-  const base = String(COVER_AUDIT_BASE_URL || "").replace(/\/+$/, "");
-  if (!base) {
-    throw new Error("未配置封面审核服务地址");
-  }
-
-  const userStore = useUserStore();
-  const token = userStore.token || "";
-  const reqUrl = `${base}/ai/auto-review/api/v1/cover_audit/audit`;
-
-  const res = await fetch(reqUrl, {
-    method: "POST",
-    headers: {
-      "Content-Type": "application/json",
-      ...(token ? { Authorization: token } : {})
-    },
-    body: JSON.stringify(payload),
-    credentials: "omit"
-  });
-
-  const text = await res.text();
-  let body: Record<string, unknown> = {};
-  try {
-    body = text ? (JSON.parse(text) as Record<string, unknown>) : {};
-  } catch {
-    throw new Error(text?.slice?.(0, 200) || "封面审核响应解析失败");
-  }
-
-  if (!res.ok) {
-    const msg =
-      (typeof body.msg === "string" && body.msg) ||
-      (typeof body.message === "string" && body.message) ||
-      `请求失败(${res.status})`;
-    throw new Error(msg);
-  }
-
-  return body;
-}

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

@@ -66,10 +66,6 @@ declare interface ViteEnv {
   VITE_WS_BASE?: string;
   /** 上传 API 请求根(可选;不配则默认同源 /ai-upload,依赖 Vite/Nginx 反代) */
   VITE_AI_UPLOAD_BASE?: string;
-  /** 封面审核根:完整 URL 或同源代理路径(如 /cover-audit);不配则用 124.93.18.180 + 环境默认端口 */
-  VITE_COVER_AUDIT_BASE?: string;
-  /** 封面审核端口(仅当未配 VITE_COVER_AUDIT_BASE 时):与固定 IP 拼接 */
-  VITE_COVER_AUDIT_PORT?: string;
   /** 上传完成后对外访问 URL 前缀 */
   VITE_AI_FILES_PUBLIC_BASE?: string;
   /** 可选;官方相册视频 simple 上传服务根,不配则开发走相对路径 /dev-upload-ailien/...、生产默认 upload.ailien.shop:8443 */

+ 0 - 26
src/utils/config.ts

@@ -7,32 +7,6 @@ const trimSlash = (s: string) => s.replace(/\/$/, "");
 
 export const BASE_AI_URL = trimSlash(String(import.meta.env.VITE_AI_UPLOAD_BASE || "").trim() || "/ai-upload");
 
-/** 封面合规审核服务固定主机(与商家端 AI 网关一致) */
-const COVER_AUDIT_FIXED_HOST = "124.93.18.180";
-
-/**
- * 封面审核:`POST …/ai/auto-review/api/v1/cover_audit/audit`
- * - 优先 `VITE_COVER_AUDIT_BASE`:完整 URL(如 `http://124.93.18.180:9000`)或开发代理路径(如 `/cover-audit`)
- * - 否则 `VITE_COVER_AUDIT_PORT`:与固定 IP 拼装
- * - 再否则按构建模式:`development`→9000,`test`→9100,`production`→9300(预生产等可在 .env 覆盖)
- */
-function resolveCoverAuditBase(): string {
-  const explicit = String(import.meta.env.VITE_COVER_AUDIT_BASE || "").trim();
-  if (explicit) {
-    return trimSlash(explicit);
-  }
-  let port = String(import.meta.env.VITE_COVER_AUDIT_PORT || "").trim();
-  if (!port) {
-    const mode = import.meta.env.MODE;
-    if (mode === "test") port = "9100";
-    else if (mode === "production") port = "9300";
-    else port = "9000";
-  }
-  return trimSlash(`http://${COVER_AUDIT_FIXED_HOST}:${port}`);
-}
-
-export const COVER_AUDIT_BASE_URL = resolveCoverAuditBase();
-
 /** 上传完成后对外可访问的文件 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"

+ 3 - 49
src/views/storeDecoration/storeCoverMap/index.vue

@@ -129,12 +129,11 @@
 <script setup lang="ts">
 import { ref, computed, onMounted } from "vue";
 import { ArrowRight, Plus, InfoFilled, View, Delete } from "@element-plus/icons-vue";
-import { ElLoading, ElMessage } from "element-plus";
+import { ElMessage } from "element-plus";
 import { getStoreHeadImg, saveStoreHeadImg } from "@/api/modules/storeDecoration";
 import { getDetail } from "@/api/modules/homeEntry";
 import { localGet } from "@/utils";
 import { uploadFilesToOss, isUploadUserCancelledError, isUploadApiErrorAlreadyMessaged } from "@/api/upload.js";
-import { getCoverAuditData } from "@/api/modules/coverAudit";
 import previewDemoImg from "@/assets/images/uDianShiImg4.svg";
 import PcImagePreviewViewer from "@/components/pcMediaPreview/PcImagePreviewViewer.vue";
 import PcVideoPreviewDialog from "@/components/pcMediaPreview/PcVideoPreviewDialog.vue";
@@ -320,37 +319,6 @@ function onCoverVideoPreviewClosed() {
   previewTarget.value = null;
 }
 
-/**
- * 与 App `checkImageCompliance` 中封面分支一致:`getCoverAuditData({ url })`,
- * code 成功且非 `overall_match === false` 视为通过。仅在页面层弹一次 toast,此处不调用 ElMessage。
- */
-async function runCoverComplianceAudit(url: string): Promise<{ ok: true } | { ok: false; message: string }> {
-  try {
-    const res = (await getCoverAuditData({ url })) as {
-      code?: number | string;
-      msg?: string;
-      message?: string;
-      data?: { overall_match?: boolean; match_reason?: string };
-    };
-    const c = res.code;
-    const okCode = c === 200 || c === 0 || c === "200" || c === "0";
-    if (!okCode) {
-      return { ok: false, message: String(res.msg || res.message || "素材合规性检查失败") };
-    }
-    const d = res.data;
-    if (d && d.overall_match === false) {
-      return { ok: false, message: String(d.match_reason || "素材不符合规范,请重新上传") };
-    }
-    return { ok: true };
-  } catch (e: unknown) {
-    const msg =
-      typeof e === "object" && e && "message" in e && typeof (e as { message?: unknown }).message === "string"
-        ? String((e as Error).message)
-        : "素材合规性检查失败,请重试";
-    return { ok: false, message: msg };
-  }
-}
-
 async function ingestPickedFile(file: File): Promise<boolean> {
   const name = String(file.name || "").toLowerCase();
   const type = String(file.type || "");
@@ -372,27 +340,14 @@ async function ingestPickedFile(file: File): Promise<boolean> {
   }
 
   uploading.value = true;
-  let auditLoading;
   try {
     const urls = await uploadFilesToOss([file], isVideo ? "video" : "image", {
-      /** 保留全局 PopupLoading 进度;上传完成不 toast,审核通过后再提示 */
+      /** 保留全局 PopupLoading 进度;上传完成不 toast,由本页统一提示(上传服务已含合规校验) */
       uploadSuccessMessage: null
     });
     const url = urls[0];
     if (!url) throw new Error("上传成功但未返回地址");
 
-    auditLoading = ElLoading.service({
-      lock: true,
-      text: "素材合规校验中…",
-      background: "rgba(0, 0, 0, 0.35)"
-    });
-
-    const audit = await runCoverComplianceAudit(url);
-    if (!audit.ok) {
-      ElMessage.error(audit.message);
-      return false;
-    }
-
     let posterUrl = "";
     if (isVideo) {
       posterUrl = tryOssVideoSnapshotCoverUrl(url);
@@ -404,7 +359,7 @@ async function ingestPickedFile(file: File): Promise<boolean> {
       isVideo,
       ...(posterUrl ? { posterUrl } : {})
     };
-    ElMessage.success("已上传并通过合规校验,请点击保存写入门店");
+    ElMessage.success("上传成功");
     return true;
   } catch (e: unknown) {
     if (isUploadUserCancelledError(e)) {
@@ -420,7 +375,6 @@ async function ingestPickedFile(file: File): Promise<boolean> {
     ElMessage.error(msg);
     return false;
   } finally {
-    auditLoading?.close();
     uploading.value = false;
   }
 }