feat(admin+api+player): 站内信手动发送、媒体库选择与发送记录详情
新增管理员手动发送站内信(三语富文本),支持发送记录查看与删除;修复全站「从媒体库选择」因分类过滤导致列表为空的问题;玩家端支持渲染管理员自定义消息;并优化后台列表页双层卡片布局。
This commit is contained in:
25
apps/admin/src/utils/media-library.ts
Normal file
25
apps/admin/src/utils/media-library.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import api from '../api';
|
||||
|
||||
export type MediaLibraryItem = {
|
||||
id: string;
|
||||
filename: string;
|
||||
url: string;
|
||||
mimeType: string;
|
||||
category?: string;
|
||||
};
|
||||
|
||||
/** 媒体库图片(默认全部分类,供「从媒体库选择」使用) */
|
||||
export async function fetchMediaLibraryImages(opts?: {
|
||||
category?: string;
|
||||
pageSize?: number;
|
||||
}): Promise<MediaLibraryItem[]> {
|
||||
const params: Record<string, string | number> = {
|
||||
pageSize: opts?.pageSize ?? 200,
|
||||
imagesOnly: '1',
|
||||
};
|
||||
if (opts?.category?.trim()) {
|
||||
params.category = opts.category.trim();
|
||||
}
|
||||
const { data } = await api.get('/admin/files', { params });
|
||||
return (data.data?.items ?? []) as MediaLibraryItem[];
|
||||
}
|
||||
Reference in New Issue
Block a user