// Author: fruit.com.cn import request from '@/axios' import type { PageResult } from './types' /** 系统公告:字段与 /admin/notices 的响应一一对应 */ export interface NoticeItem { /** 雪花 id,后端以字符串下发(超过 JS 安全整数范围),原样回传即可 */ id: string title: string content: string /** ALL / USER / CREATOR */ target: string targetText: string /** SYSTEM / AUDIT / PAYMENT / ACTIVITY */ type: string typeText: string /** 1 已发布 / 0 已下架 */ status: number statusText: string publishAt?: string expireAt?: string createdAt?: string } export interface NoticePageParams { pageIndex?: number pageSize?: number status?: number target?: string type?: string keyword?: string } export interface NoticeSaveData { title: string content: string target: string type: string publishAt?: string | null expireAt?: string | null } export const pageNoticesApi = (params: NoticePageParams) => { return request.get>({ url: '/admin/notices/page', params }) } export const getNoticeApi = (id: string | number) => { return request.get({ url: `/admin/notices/${id}` }) } export const createNoticeApi = (data: NoticeSaveData) => { return request.post({ url: '/admin/notices', data }) } export const updateNoticeApi = (id: string | number, data: NoticeSaveData) => { return request.put({ url: `/admin/notices/${id}`, data }) } export const updateNoticeStatusApi = (id: string | number, status: number) => { return request.put({ url: `/admin/notices/${id}/status`, params: { status } }) } export const deleteNoticeApi = (id: string | number) => { return request.delete({ url: `/admin/notices/${id}` }) }