feat(file): 优化文件上传处理和ID管理规范

- 新增 buildFileProxyUrl 函数构建永久代理路径,避免富文本图片链接过期
- 重构 uploadFile 函数,统一将后端返回的数值型 ID 转换为字符串
- 在业务富文本编辑器中使用永久代理路径替换临时签名 URL
- 完善 API 适配层 ID 规范,确保所有 ID 字段统一转换为字符串类型
- 移除废弃的编辑器相关路由和组件
- 更新构建代理配置以支持富文本图片直连访问
- 删除冗余的类型定义和依赖包
This commit is contained in:
2026-05-15 10:06:51 +08:00
parent 3a064eb09f
commit 7a4d831c10
15 changed files with 61 additions and 137 deletions

View File

@@ -4,7 +4,7 @@ import '@wangeditor/editor/dist/css/style.css';
import { ElImageViewer } from 'element-plus';
import { Editor, Toolbar } from '@wangeditor/editor-for-vue';
import type { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor';
import { deleteFile, uploadFile } from '@/service/api/file';
import { buildFileProxyUrl, deleteFile, uploadFile } from '@/service/api/file';
defineOptions({ name: 'BusinessRichTextEditor' });
@@ -198,10 +198,12 @@ const editorConfig: Partial<IEditorConfig> = {
return;
}
const { id, url } = result.data;
// 用永久代理路径塞 <img src>,不要用 result.data.url24h 签名会过期)
const { id, configId, path } = result.data;
const proxyUrl = buildFileProxyUrl(configId, path);
// 记录 url -> fileId后续 commit/rollback 才知道删哪个
session.uploadedMap.set(url, id);
insertFn(url, file.name, url);
session.uploadedMap.set(proxyUrl, id);
insertFn(proxyUrl, file.name, proxyUrl);
}
}
}