safety-eval-service-frontend/src/utils/mockUpload.js

74 lines
2.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/** 联调阶段:上传功能默认通过,使用固定文件地址 */
export const DEFAULT_UPLOAD_FILE_URL =
"https://s1.aigei.com/prevfiles/6f2754563be2491bad7c957904cd7d2a.jpg?e=2051020800&token=P7S2Xpzfz11vAkASLTkfHN7Fw-oOZBecqeJaxypL:CR60zg7VKDp-jUWyYls_rdvyQMM=";
/**
* 解析上传结果 ID / URL不调用真实上传接口
* @param {Array|object} [_files]
* @returns {string}
*/
export function resolveUploadFileId(_files) {
return DEFAULT_UPLOAD_FILE_URL;
}
/** 多附件:序列化为 JSON 数组字符串,与后端格式保持一致 */
export function resolveUploadFileIds(files) {
if (!files?.length) {
return undefined;
}
const valid = files
.filter((file) => file?.url)
.map((file) => ({
url: file.url,
uid: file.uid || undefined,
name: file.name || file.fileName || "附件",
status: file.status || "done",
}));
if (!valid.length) {
return DEFAULT_UPLOAD_FILE_URL;
}
return JSON.stringify(valid);
}
export function parseUploadFileList(urls, defaultName = "附件.pdf") {
if (!urls) {
return [];
}
const raw = String(urls).trim();
// JSON 数组字符串:如 '[{"url":"...","uid":"...","name":"...","status":"done"}]'
if (raw.startsWith("[") && raw.endsWith("]")) {
try {
const parsed = JSON.parse(raw);
if (Array.isArray(parsed)) {
return parsed
.filter((item) => item?.url)
.map((item) => ({
name: item.name || `${defaultName.replace(".pdf", "")}1`,
fileName: item.fileName || item.name || `${defaultName.replace(".pdf", "")}1`,
url: item.url,
uid: item.uid || undefined,
status: item.status || "done",
}));
}
} catch (_) {
// JSON 解析失败,回退到逗号分隔处理
}
}
// 旧格式:逗号分隔的 URL 字符串
return raw
.split(",")
.map((url) => url.trim())
.filter(Boolean)
.map((url, index) => ({
name: `${defaultName.replace(".pdf", "")}${index + 1}.pdf`,
fileName: `${defaultName.replace(".pdf", "")}${index + 1}.pdf`,
url,
}));
}
export function mockUploadFileList(name = "附件.pdf") {
return [{ name, fileName: name, url: DEFAULT_UPLOAD_FILE_URL }];
}