/** * 文章管理服务层 * 提供文章列表、详情、保存、删除等接口 */ // 文章列表项数据结构 export interface ArticleItem { id: number title: string category_id: number category_name: string image: string description: string status: number // 0: 未发布, 1: 已发布 views: number created_at: string updated_at: string } // 文章详情数据结构 export interface ArticleDetail { id: number title: string category_id: number image: string description: string content: string status: number created_at: string updated_at: string } // 文章创建/编辑参数 export interface ArticlePayload { title: string category_id: number image: string description: string content: string status: number } /** * 获取文章列表 * @param params 查询参数 { page, limit, keyword, status, category_id } * @returns Promise<{ items: ArticleItem[], total: number }> */ export function getArticleList(params: any = {}): Promise { // TODO: 替换为实际 API 调用 // return uni.$http.get('/article/list', { params }) return new Promise((resolve) => { setTimeout(() => { resolve({ items: [ { id: 1, title: '如何选择合适的商品分类', category_id: 1, category_name: '运营指南', image: '/static/article-1.png', description: '商品分类是电商平台的重要组成部分...', status: 1, views: 128, created_at: '2026-01-28 10:30:00', updated_at: '2026-01-28 10:30:00' }, { id: 2, title: '商城营销活动最佳实践', category_id: 2, category_name: '营销技巧', image: '/static/article-2.png', description: '分享最新的营销活动策略和案例...', status: 1, views: 256, created_at: '2026-01-27 15:20:00', updated_at: '2026-01-27 15:20:00' }, { id: 3, title: '用户评价管理指南', category_id: 1, category_name: '运营指南', image: '/static/article-3.png', description: '如何有效管理用户的评价和反馈...', status: 0, views: 64, created_at: '2026-01-26 09:15:00', updated_at: '2026-01-26 09:15:00' } ], total: 3 }) }, 300) }) } /** * 获取文章详情 * @param id 文章ID * @returns Promise */ export function getArticleDetail(id: number): Promise { // TODO: 替换为实际 API 调用 // return uni.$http.get(`/article/${id}`) return new Promise((resolve) => { setTimeout(() => { resolve({ id, title: '如何选择合适的商品分类', category_id: 1, image: '/static/article-1.png', description: '商品分类是电商平台的重要组成部分...', content: '

标题

详细内容...

', status: 1, created_at: '2026-01-28 10:30:00', updated_at: '2026-01-28 10:30:00' }) }, 300) }) } /** * 保存文章(新建或编辑) * @param data 文章数据 * @param id 文章ID(编辑时传入) * @returns Promise<{ success: boolean, message: string, id?: number }> */ export function saveArticle(data: ArticlePayload, id?: number): Promise { // TODO: 替换为实际 API 调用 // const method = id ? 'PUT' : 'POST' // const url = id ? `/article/${id}` : '/article' // return uni.$http[method === 'PUT' ? 'put' : 'post'](url, data) return new Promise((resolve) => { setTimeout(() => { resolve({ success: true, message: id ? '编辑成功' : '新建成功', id: id || Math.floor(Math.random() * 10000) }) }, 500) }) } /** * 删除文章 * @param id 文章ID * @returns Promise<{ success: boolean, message: string }> */ export function deleteArticle(id: number): Promise { // TODO: 替换为实际 API 调用 // return uni.$http.delete(`/article/${id}`) return new Promise((resolve) => { setTimeout(() => { resolve({ success: true, message: '删除成功' }) }, 300) }) } /** * 发布/取消发布文章 * @param id 文章ID * @param status 状态 (0: 取消发布, 1: 发布) * @returns Promise<{ success: boolean, message: string }> */ export function publishArticle(id: number, status: number): Promise { // TODO: 替换为实际 API 调用 // return uni.$http.put(`/article/${id}/publish`, { status }) return new Promise((resolve) => { setTimeout(() => { resolve({ success: true, message: status === 1 ? '发布成功' : '取消发布成功' }) }, 300) }) }