🎉 initial commit
This commit is contained in:
116
src/apis/banners.ts
Normal file
116
src/apis/banners.ts
Normal file
@@ -0,0 +1,116 @@
|
||||
import { request } from "@/utils/request";
|
||||
|
||||
/**
|
||||
* 轮播图链接类型
|
||||
*/
|
||||
export type BannerLinkType = 'url' | 'article';
|
||||
|
||||
/**
|
||||
* 轮播图数据
|
||||
*/
|
||||
export interface Banner {
|
||||
id: string;
|
||||
title: string;
|
||||
image: string;
|
||||
linkType: BannerLinkType;
|
||||
linkUrl?: string;
|
||||
articleContent?: string;
|
||||
sort: number;
|
||||
status: 'enabled' | 'disabled';
|
||||
createTime: string;
|
||||
updateTime: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 轮播图列表查询参数
|
||||
*/
|
||||
export interface BannerQueryParams {
|
||||
page?: number;
|
||||
pageSize?: number;
|
||||
status?: 'enabled' | 'disabled';
|
||||
keyword?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 轮播图列表响应
|
||||
*/
|
||||
export interface BannerListResponse {
|
||||
list: Banner[];
|
||||
total: number;
|
||||
page: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建轮播图参数
|
||||
*/
|
||||
export interface CreateBannerParams {
|
||||
title: string;
|
||||
image: string;
|
||||
linkType: BannerLinkType;
|
||||
linkUrl?: string;
|
||||
articleContent?: string;
|
||||
sort: number;
|
||||
status: 'enabled' | 'disabled';
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取轮播图列表
|
||||
*/
|
||||
export const getBannerList = (params?: BannerQueryParams) => {
|
||||
return request.Get<BannerListResponse>('/admin/banners', {
|
||||
params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取轮播图详情
|
||||
*/
|
||||
export const getBannerDetail = (id: string) => {
|
||||
return request.Get<Banner>(`/admin/banners/${id}`);
|
||||
};
|
||||
|
||||
/**
|
||||
* 创建轮播图
|
||||
*/
|
||||
export const createBanner = (params: CreateBannerParams) => {
|
||||
return request.Post<{ message: string; id: string }>('/admin/banners', params);
|
||||
};
|
||||
|
||||
/**
|
||||
* 更新轮播图
|
||||
*/
|
||||
export const updateBanner = (id: string, params: CreateBannerParams) => {
|
||||
return request.Put<{ message: string }>(`/admin/banners/${id}`, params);
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除轮播图
|
||||
*/
|
||||
export const deleteBanner = (id: string) => {
|
||||
return request.Delete<{ message: string }>(`/admin/banners/${id}`);
|
||||
};
|
||||
|
||||
/**
|
||||
* 更新轮播图状态
|
||||
*/
|
||||
export const updateBannerStatus = (id: string, status: 'enabled' | 'disabled') => {
|
||||
return request.Put<{ message: string }>(`/admin/banners/${id}/status`, { status });
|
||||
};
|
||||
|
||||
/**
|
||||
* 更新轮播图排序
|
||||
*/
|
||||
export const updateBannerSort = (id: string, sort: number) => {
|
||||
return request.Put<{ message: string }>(`/admin/banners/${id}/sort`, { sort });
|
||||
};
|
||||
|
||||
/**
|
||||
* 上传轮播图图片
|
||||
*/
|
||||
export const uploadBannerImage = (file: File) => {
|
||||
const formData = new FormData();
|
||||
formData.append('image', file);
|
||||
|
||||
return request.Post<{ url: string }>('/admin/upload/banner', formData);
|
||||
};
|
||||
Reference in New Issue
Block a user