// 文章相关API服务 import api from './apiService' /** * 文章服务类 */ class ArticleService { /** * 分页查询文章列表 * @param {import('../types').PaginationParams} params - 分页查询参数 * @param status 文章状态(0:未发表 1:已发表 2:已删除) * @param page 页码,从0开始(可选,默认为0) * @param size 每页大小(可选,默认为10,最大为100) * @returns {Promise>} */ getPagedArticles(params = {}) { return api.get(`/articles/status/page?title=${params.title || ''}&categoryid=${params.categoryid || 0}&attributeid=${params.attributeid || 0}&status=${params.status || 1}&page=${params.page || 0}&size=${params.size || 10}`) } /** * 获取分页文章数量 * @param {number} status - 文章状态(0:未发表 1:已发表 2:已删除) * @returns {Promise>} */ getArticleCountByStatus(status) { return api.get(`/articles/count/status/${status || 1}`) } /** * 获取已发布文章列表 * @param {import('../types').PaginationParams} params - 查询参数 * @returns {Promise>} */ getAllArticles(params = {}) { return api.get('/articles/published', { params }) } /** * 根据状态获取文章列表 * @param {number} status - 文章状态(0:未发表 1:已发表 2:已删除) * @returns {Promise>} */ getArticlesByStatus(status) { return api.get(`/articles/status/${status}`) } /** * 获取所有文章列表(包含已删除) * @param {import('../types').PaginationParams} params - 查询参数 * @returns {Promise>} */ getAllArticlesWithDeleted(params = {}) { return api.get('/articles', { params }) } /** * 根据ID获取文章详情 * @param {number} articleid - 文章ID * @returns {Promise>} */ getArticleById(articleid) { return api.get(`/articles/${articleid}`) } /** * 根据属性ID获取文章列表 * @param {number} attributeid - 属性ID * @returns {Promise>} */ getArticlesByAttributeId(attributeid) { return api.get(`/articles/attribute/${attributeid}`) } /** * 根据标题查询文章列表 * @param {string} title - 文章标题 * @returns {Promise>} */ getArticlesByTitle(title) { return api.get(`/articles/title/${title}`) } /** * 获取热门文章 * @returns {Promise>} */ getPopularArticles() { return api.get('/articles/popular') } /** * 创建文章 * @param {import('../types').ArticleDto} articleData - 文章数据 * @returns {Promise>} */ createArticle(articleData) { return api.post('/articles', articleData) } /** * 更新文章 * @param {number} articleid - 文章ID * @param {import('../types').ArticleDto} articleData - 文章数据 * @returns {Promise>} */ updateArticle(articleid, articleData) { return api.put(`/articles/${articleid}`, articleData) } /** * 删除文章 * @param {number} articleid - 文章ID * @returns {Promise>} */ deleteArticle(articleid) { return api.delete(`/articles/${articleid}`) } /** * 根据分类获取文章 * @param {number} categoryid - 分类ID * @returns {Promise>} */ getArticlesByCategory(categoryid) { return api.get(`/articles/category/${categoryid}`) } /** * 增加文章浏览量 * @param {number} articleid - 文章ID * @returns {Promise>} */ incrementArticleViews(articleid) { return api.post(`/articles/view/${articleid}`) } /** * 根据属性ID获取最新文章 * @param {number} attributeid - 属性ID * @returns {Promise>} */ getLatestArticlesByAttribute(attributeid) { return api.get(`/articles/attribute/${attributeid}/latest`) } /** * 点赞文章 * @param {number} articleid - 文章ID * @returns {Promise>} */ likeArticle(articleid) { return api.post(`/articles/like/${articleid}`) } } // 创建并导出服务实例 const articleService = new ArticleService() export default articleService // 导出服务类供特殊场景使用 export { ArticleService }