feat: 赛事1.09

This commit is contained in:
cst
2026-11-06 08:59:31 +08:00
parent ae960df897
commit 727778e675
14 changed files with 862 additions and 7 deletions
+54
View File
@@ -0,0 +1,54 @@
/**
* 公告管理 API
*/
import { get, post } from '@/utils/request';
import type {
NoticeListQueryParams,
NoticeSaveParams,
NoticeVO,
PageData,
ApiResult,
} from './types';
export type {
NoticeType,
NoticeVO,
NoticeListQueryParams,
NoticeSaveParams,
PageData,
ApiResult,
} from './types';
// ============================================================
// URL 常量
// ============================================================
const ANNOUNCEMENT_PAGE = '/admin/sys/announcement/page';
const ANNOUNCEMENT_SAVE = '/admin/sys/announcement/save';
const ANNOUNCEMENT_UPDATE = '/admin/sys/announcement/update';
const ANNOUNCEMENT_DELETE = '/admin/sys/announcement/delete';
// ============================================================
// API 函数
// ============================================================
/** 公告列表分页 — GET /admin/sys/announcement/page */
export function getNoticeList(
params: NoticeListQueryParams,
): Promise<ApiResult<PageData<NoticeVO>>> {
return get(ANNOUNCEMENT_PAGE, params as Record<string, any>);
}
/** 新增公告 — POST /admin/sys/announcement/save */
export function saveNotice(params: NoticeSaveParams): Promise<ApiResult<null>> {
return post(ANNOUNCEMENT_SAVE, params);
}
/** 修改公告 — POST /admin/sys/announcement/update */
export function updateNotice(params: NoticeSaveParams): Promise<ApiResult<null>> {
return post(ANNOUNCEMENT_UPDATE, params);
}
/** 删除公告(物理删除,单个)— POST /admin/sys/announcement/delete?id=xxx */
export function deleteNotice(id: number): Promise<ApiResult<null>> {
return post(ANNOUNCEMENT_DELETE, undefined, { id: String(id) });
}
+60
View File
@@ -0,0 +1,60 @@
/**
* 公告管理 - 类型定义
*/
/** 公告类型:1=首页公告提示,2=产品更新公告 */
export type NoticeType = 1 | 2;
/** 公告 VO */
export interface NoticeVO {
/** 公告 ID */
id: number;
/** 标题(最多 30 字) */
title: string;
/** 公告类型:1=首页公告提示,2=产品更新公告 */
type: number;
/** 公告类型名称 */
typeName: string;
/** 生效开始时间(YYYY-MM-DD HH:mm:ss) */
startTime: string;
/** 生效结束时间(YYYY-MM-DD HH:mm:ss) */
endTime: string;
/** 公告内容(纯文本,最多 500 字) */
context: string;
/** 创建时间 */
createDate: string;
}
/** 公告列表分页查询参数 */
export interface NoticeListQueryParams {
page: string;
limit: string;
/** 标题,模糊搜索 */
title?: string;
/** 公告类型 */
type?: number;
}
/** 新增/修改公告参数(id:新增不传或为 0,修改必传) */
export interface NoticeSaveParams {
id?: number;
title: string;
type: number;
startTime: string;
endTime: string;
context: string;
}
/** 分页数据结构 */
export interface PageData<T> {
total: number;
list: T[];
exData?: Record<string, any>;
}
/** 接口通用返回结构 */
export interface ApiResult<T> {
code: number;
msg: string;
data: T;
}