官网开发 0804

This commit is contained in:
eafonyang
2026-08-04 19:18:35 +08:00
parent f37b6451ef
commit 816281bf2d
31 changed files with 1177 additions and 543 deletions
@@ -6,8 +6,15 @@ export function fetchGetMedia(params?: PageParams & { category?: string; tag?: s
return request<Api.Common.PageResult<Api.Www.MediaItem>>({ url: '/www/media', method: 'get', params });
}
export function fetchUploadMedia(file: File, onProgress?: (percent: number) => void) {
export function fetchUploadMedia(file: File, params?: { dir?: string; custom_filename?: string; auto_name?: boolean; category?: string; tags?: string }, onProgress?: (percent: number) => void) {
const formData = new FormData();
// 文本字段必须在 file 之前 append:multer 按接收顺序流式解析,
// 若 file 在前,destination/filename 回调触发时 req.body 尚未填充,自定义目录/文件名会丢失
formData.append('auto_name', String(params?.auto_name ?? true));
if (params?.dir) formData.append('dir', params.dir);
if (params?.custom_filename) formData.append('custom_filename', params.custom_filename);
if (params?.category) formData.append('category', params.category);
if (params?.tags) formData.append('tags', params.tags);
formData.append('file', file);
return request<Api.Www.MediaItem>({
url: '/www/media/upload',
@@ -34,6 +41,10 @@ export function fetchDeleteMediaItem(id: number) {
return request({ url: `/www/media/${id}`, method: 'delete' });
}
export function fetchBatchDeleteMedia(ids: number[]) {
return request<{ deleted: number[]; skipped: number[] }>({ url: '/www/media/batch', method: 'delete', data: { ids } });
}
// ===== 素材标签 =====
export function fetchGetMediaTags() {
return request<Api.Www.MediaTag[]>({ url: '/www/media/tags', method: 'get' });