diff --git a/src/services/content.js b/src/services/content.js index ee13f50..3ced191 100644 --- a/src/services/content.js +++ b/src/services/content.js @@ -6,116 +6,116 @@ const unwrap = (data) => { return data; }; -export const listArticles = (params) => get("/api/articles/", params).then(unwrap); -export const getArticle = (id) => get(`/api/articles/${id}/`); +export const listArticles = (params) => get("/api/content/articles/", params).then(unwrap); +export const getArticle = (id) => get(`/api/content/articles/${id}/`); /** 前台详情阅读上报(与 GET 详情分离,避免重复计数) */ -export const recordArticleRead = (id) => post(`/api/articles/${id}/record-read/`); +export const recordArticleRead = (id) => post(`/api/content/articles/${id}/record-read/`); /** 会员点赞/取消点赞(需登录) */ -export const toggleArticleLike = (id) => post(`/api/articles/${id}/toggle-like/`); +export const toggleArticleLike = (id) => post(`/api/content/articles/${id}/toggle-like/`); /** 会员收藏/取消收藏(需登录) */ export const toggleArticleCollect = (id) => - post(`/api/articles/${id}/toggle-collect/`); + post(`/api/content/articles/${id}/toggle-collect/`); /** 分享计数(同人同文献只计一次;传 visitorKey 便于未登录去重) */ export const recordArticleShare = (id, visitorKey) => - post(`/api/articles/${id}/record-share/`, { + post(`/api/content/articles/${id}/record-share/`, { visitor_key: visitorKey || undefined, }); /** 当前会员收藏列表 */ export const myArticleCollections = (params) => - get("/api/articles/my-collections/", params).then(unwrap); + get("/api/content/articles/my-collections/", params).then(unwrap); /** 批量查询点赞/收藏状态,ids 为文献 id 数组 */ export const myArticleEngagement = (ids) => - get("/api/articles/my-engagement/", { + get("/api/content/articles/my-engagement/", { ids: Array.isArray(ids) ? ids.join(",") : ids, }); -export const homeArticles = () => get("/api/articles/home/"); -export const articleFacets = (params) => get("/api/articles/facets/", params); +export const homeArticles = () => get("/api/content/articles/home/"); +export const articleFacets = (params) => get("/api/content/articles/facets/", params); export const articleRanking = (params) => - get("/api/articles/ranking/", params).then(unwrap); -export const createArticle = (data) => post("/api/articles/", data); -export const updateArticle = (id, data) => patch(`/api/articles/${id}/`, data); -export const deleteArticle = (id) => remove(`/api/articles/${id}/`); + get("/api/content/articles/ranking/", params).then(unwrap); +export const createArticle = (data) => post("/api/content/articles/", data); +export const updateArticle = (id, data) => patch(`/api/content/articles/${id}/`, data); +export const deleteArticle = (id) => remove(`/api/content/articles/${id}/`); -export const listOrganizes = (params) => get("/api/organizes/", params).then(unwrap); -export const getOrganize = (id) => get(`/api/organizes/${id}/`); +export const listOrganizes = (params) => get("/api/content/organizes/", params).then(unwrap); +export const getOrganize = (id) => get(`/api/content/organizes/${id}/`); export const organizeRanking = (params) => - get("/api/organizes/ranking/", params).then(unwrap); -export const createOrganize = (data) => post("/api/organizes/", data); -export const updateOrganize = (id, data) => patch(`/api/organizes/${id}/`, data); -export const deleteOrganize = (id) => remove(`/api/organizes/${id}/`); + get("/api/content/organizes/ranking/", params).then(unwrap); +export const createOrganize = (data) => post("/api/content/organizes/", data); +export const updateOrganize = (id, data) => patch(`/api/content/organizes/${id}/`, data); +export const deleteOrganize = (id) => remove(`/api/content/organizes/${id}/`); -export const listMagazines = (params) => get("/api/magazines/", params).then(unwrap); +export const listMagazines = (params) => get("/api/content/magazines/", params).then(unwrap); export const magazineRanking = (params) => - get("/api/magazines/ranking/", params).then(unwrap); -export const createMagazine = (data) => post("/api/magazines/", data); -export const updateMagazine = (id, data) => patch(`/api/magazines/${id}/`, data); -export const deleteMagazine = (id) => remove(`/api/magazines/${id}/`); + get("/api/content/magazines/ranking/", params).then(unwrap); +export const createMagazine = (data) => post("/api/content/magazines/", data); +export const updateMagazine = (id, data) => patch(`/api/content/magazines/${id}/`, data); +export const deleteMagazine = (id) => remove(`/api/content/magazines/${id}/`); export const listWorkGroups = (params) => - get("/api/work-groups/", params).then(unwrap); -export const createWorkGroup = (data) => post("/api/work-groups/", data); -export const updateWorkGroup = (id, data) => patch(`/api/work-groups/${id}/`, data); -export const deleteWorkGroup = (id) => remove(`/api/work-groups/${id}/`); + get("/api/content/work-groups/", params).then(unwrap); +export const createWorkGroup = (data) => post("/api/content/work-groups/", data); +export const updateWorkGroup = (id, data) => patch(`/api/content/work-groups/${id}/`, data); +export const deleteWorkGroup = (id) => remove(`/api/content/work-groups/${id}/`); export const listWorkGroupTerms = (params) => - get("/api/work-group-terms/", params).then(unwrap); -export const createWorkGroupTerm = (data) => post("/api/work-group-terms/", data); + get("/api/content/work-group-terms/", params).then(unwrap); +export const createWorkGroupTerm = (data) => post("/api/content/work-group-terms/", data); export const updateWorkGroupTerm = (id, data) => - patch(`/api/work-group-terms/${id}/`, data); -export const deleteWorkGroupTerm = (id) => remove(`/api/work-group-terms/${id}/`); + patch(`/api/content/work-group-terms/${id}/`, data); +export const deleteWorkGroupTerm = (id) => remove(`/api/content/work-group-terms/${id}/`); export const listWorkGroupMemberships = (params) => - get("/api/work-group-memberships/", params).then(unwrap); + get("/api/content/work-group-memberships/", params).then(unwrap); export const createWorkGroupMembership = (data) => - post("/api/work-group-memberships/", data); + post("/api/content/work-group-memberships/", data); export const updateWorkGroupMembership = (id, data) => - patch(`/api/work-group-memberships/${id}/`, data); + patch(`/api/content/work-group-memberships/${id}/`, data); export const deleteWorkGroupMembership = (id) => - remove(`/api/work-group-memberships/${id}/`); + remove(`/api/content/work-group-memberships/${id}/`); export const listProfessors = (params) => - get("/api/professors/", params).then(unwrap); -export const getProfessor = (id) => get(`/api/professors/${id}/`); -export const createProfessor = (data) => post("/api/professors/", data); -export const updateProfessor = (id, data) => patch(`/api/professors/${id}/`, data); -export const deleteProfessor = (id) => remove(`/api/professors/${id}/`); + get("/api/content/professors/", params).then(unwrap); +export const getProfessor = (id) => get(`/api/content/professors/${id}/`); +export const createProfessor = (data) => post("/api/content/professors/", data); +export const updateProfessor = (id, data) => patch(`/api/content/professors/${id}/`, data); +export const deleteProfessor = (id) => remove(`/api/content/professors/${id}/`); -export const listColumns = (params) => get("/api/columns/", params).then(unwrap); -export const navColumns = (params) => get("/api/columns/nav/", params); -export const createColumn = (data) => post("/api/columns/", data); -export const updateColumn = (id, data) => patch(`/api/columns/${id}/`, data); -export const deleteColumn = (id) => remove(`/api/columns/${id}/`); +export const listColumns = (params) => get("/api/content/columns/", params).then(unwrap); +export const navColumns = (params) => get("/api/content/columns/nav/", params); +export const createColumn = (data) => post("/api/content/columns/", data); +export const updateColumn = (id, data) => patch(`/api/content/columns/${id}/`, data); +export const deleteColumn = (id) => remove(`/api/content/columns/${id}/`); export const listSubjects = (params) => - get("/api/subjects/", params).then(unwrap); -export const createSubject = (data) => post("/api/subjects/", data); -export const updateSubject = (id, data) => patch(`/api/subjects/${id}/`, data); -export const deleteSubject = (id) => remove(`/api/subjects/${id}/`); + get("/api/content/subjects/", params).then(unwrap); +export const createSubject = (data) => post("/api/content/subjects/", data); +export const updateSubject = (id, data) => patch(`/api/content/subjects/${id}/`, data); +export const deleteSubject = (id) => remove(`/api/content/subjects/${id}/`); export const listArticleTypes = (params) => - get("/api/article-types/", params).then(unwrap); -export const createArticleType = (data) => post("/api/article-types/", data); + get("/api/content/article-types/", params).then(unwrap); +export const createArticleType = (data) => post("/api/content/article-types/", data); export const updateArticleType = (id, data) => - patch(`/api/article-types/${id}/`, data); -export const deleteArticleType = (id) => remove(`/api/article-types/${id}/`); + patch(`/api/content/article-types/${id}/`, data); +export const deleteArticleType = (id) => remove(`/api/content/article-types/${id}/`); export const listOrganizeCategories = (params) => - get("/api/organize-categories/", params).then(unwrap); + get("/api/content/organize-categories/", params).then(unwrap); export const createOrganizeCategory = (data) => - post("/api/organize-categories/", data); + post("/api/content/organize-categories/", data); export const updateOrganizeCategory = (id, data) => - patch(`/api/organize-categories/${id}/`, data); + patch(`/api/content/organize-categories/${id}/`, data); export const deleteOrganizeCategory = (id) => - remove(`/api/organize-categories/${id}/`); + remove(`/api/content/organize-categories/${id}/`); export const listMagazineCategories = (params) => - get("/api/magazine-categories/", params).then(unwrap); + get("/api/content/magazine-categories/", params).then(unwrap); export const createMagazineCategory = (data) => - post("/api/magazine-categories/", data); + post("/api/content/magazine-categories/", data); export const updateMagazineCategory = (id, data) => - patch(`/api/magazine-categories/${id}/`, data); + patch(`/api/content/magazine-categories/${id}/`, data); export const deleteMagazineCategory = (id) => - remove(`/api/magazine-categories/${id}/`); + remove(`/api/content/magazine-categories/${id}/`); /** @deprecated 使用 listSubjects / listOrganizeCategories */ export const listCategories = (params) => { const type = params?.type; @@ -125,86 +125,86 @@ export const listCategories = (params) => { return listSubjects(params); }; -export const listNews = (params) => get("/api/news/", params).then(unwrap); -export const getNews = (id) => get(`/api/news/${id}/`); -export const createNews = (data) => post("/api/news/", data); -export const updateNews = (id, data) => patch(`/api/news/${id}/`, data); -export const deleteNews = (id) => remove(`/api/news/${id}/`); +export const listNews = (params) => get("/api/cms/news/", params).then(unwrap); +export const getNews = (id) => get(`/api/cms/news/${id}/`); +export const createNews = (data) => post("/api/cms/news/", data); +export const updateNews = (id, data) => patch(`/api/cms/news/${id}/`, data); +export const deleteNews = (id) => remove(`/api/cms/news/${id}/`); export const listPublications = (params) => - get("/api/publications/", params).then(unwrap); -export const getPublication = (id) => get(`/api/publications/${id}/`); -export const createPublication = (data) => post("/api/publications/", data); + get("/api/cms/publications/", params).then(unwrap); +export const getPublication = (id) => get(`/api/cms/publications/${id}/`); +export const createPublication = (data) => post("/api/cms/publications/", data); export const updatePublication = (id, data) => - patch(`/api/publications/${id}/`, data); -export const deletePublication = (id) => remove(`/api/publications/${id}/`); + patch(`/api/cms/publications/${id}/`, data); +export const deletePublication = (id) => remove(`/api/cms/publications/${id}/`); -export const listReports = (params) => get("/api/reports/", params).then(unwrap); -export const getReport = (id) => get(`/api/reports/${id}/`); -export const createReport = (data) => post("/api/reports/", data); -export const updateReport = (id, data) => patch(`/api/reports/${id}/`, data); -export const deleteReport = (id) => remove(`/api/reports/${id}/`); +export const listReports = (params) => get("/api/cms/reports/", params).then(unwrap); +export const getReport = (id) => get(`/api/cms/reports/${id}/`); +export const createReport = (data) => post("/api/cms/reports/", data); +export const updateReport = (id, data) => patch(`/api/cms/reports/${id}/`, data); +export const deleteReport = (id) => remove(`/api/cms/reports/${id}/`); -export const getAbout = () => get("/api/about/current/"); -export const listAbout = (params) => get("/api/about/", params).then(unwrap); -export const createAbout = (data) => post("/api/about/", data); -export const updateAbout = (id, data) => patch(`/api/about/${id}/`, data); +export const getAbout = () => get("/api/cms/about/current/"); +export const listAbout = (params) => get("/api/cms/about/", params).then(unwrap); +export const createAbout = (data) => post("/api/cms/about/", data); +export const updateAbout = (id, data) => patch(`/api/cms/about/${id}/`, data); -export const getCopyright = () => get("/api/copyright/current/"); +export const getCopyright = () => get("/api/cms/copyright/current/"); export const listCopyright = (params) => - get("/api/copyright/", params).then(unwrap); -export const createCopyright = (data) => post("/api/copyright/", data); -export const updateCopyright = (id, data) => patch(`/api/copyright/${id}/`, data); + get("/api/cms/copyright/", params).then(unwrap); +export const createCopyright = (data) => post("/api/cms/copyright/", data); +export const updateCopyright = (id, data) => patch(`/api/cms/copyright/${id}/`, data); -export const getContact = () => get("/api/contact/current/"); -export const listContact = (params) => get("/api/contact/", params).then(unwrap); -export const createContact = (data) => post("/api/contact/", data); -export const updateContact = (id, data) => patch(`/api/contact/${id}/`, data); +export const getContact = () => get("/api/cms/contact/current/"); +export const listContact = (params) => get("/api/cms/contact/", params).then(unwrap); +export const createContact = (data) => post("/api/cms/contact/", data); +export const updateContact = (id, data) => patch(`/api/cms/contact/${id}/`, data); -export const listLinks = (params) => get("/api/links/", params).then(unwrap); -export const createLink = (data) => post("/api/links/", data); -export const updateLink = (id, data) => patch(`/api/links/${id}/`, data); -export const deleteLink = (id) => remove(`/api/links/${id}/`); +export const listLinks = (params) => get("/api/cms/links/", params).then(unwrap); +export const createLink = (data) => post("/api/cms/links/", data); +export const updateLink = (id, data) => patch(`/api/cms/links/${id}/`, data); +export const deleteLink = (id) => remove(`/api/cms/links/${id}/`); -export const listBanners = () => get("/api/banners/"); -export const createBanner = (data) => post("/api/banners/", data); -export const updateBanner = (id, data) => patch(`/api/banners/${id}/`, data); -export const deleteBanner = (id) => remove(`/api/banners/${id}/`); +export const listBanners = () => get("/api/cms/banners/"); +export const createBanner = (data) => post("/api/cms/banners/", data); +export const updateBanner = (id, data) => patch(`/api/cms/banners/${id}/`, data); +export const deleteBanner = (id) => remove(`/api/cms/banners/${id}/`); export const uploadBannerImage = (formData) => - upload("/api/banners/upload/", formData); + upload("/api/cms/banners/upload/", formData); /** 通用媒体上传;formData 可含 file / category / kind */ -export const uploadMedia = (formData) => upload("/api/uploads/", formData); +export const uploadMedia = (formData) => upload("/api/common/uploads/", formData); -export const listKeywords = (params) => get("/api/keywords/", params).then(unwrap); -export const createKeyword = (data) => post("/api/keywords/", data); -export const updateKeyword = (id, data) => patch(`/api/keywords/${id}/`, data); -export const deleteKeyword = (id) => remove(`/api/keywords/${id}/`); +export const listKeywords = (params) => get("/api/cms/keywords/", params).then(unwrap); +export const createKeyword = (data) => post("/api/cms/keywords/", data); +export const updateKeyword = (id, data) => patch(`/api/cms/keywords/${id}/`, data); +export const deleteKeyword = (id) => remove(`/api/cms/keywords/${id}/`); export const listSpecialties = (params) => - get("/api/specialties/", params).then(unwrap); -export const createSpecialty = (data) => post("/api/specialties/", data); -export const updateSpecialty = (id, data) => patch(`/api/specialties/${id}/`, data); -export const deleteSpecialty = (id) => remove(`/api/specialties/${id}/`); + get("/api/content/specialties/", params).then(unwrap); +export const createSpecialty = (data) => post("/api/content/specialties/", data); +export const updateSpecialty = (id, data) => patch(`/api/content/specialties/${id}/`, data); +export const deleteSpecialty = (id) => remove(`/api/content/specialties/${id}/`); export const listStarRules = (params) => - get("/api/star-rules/", params).then(unwrap); -export const getStarRule = (id) => get(`/api/star-rules/${id}/`); -export const createStarRule = (data) => post("/api/star-rules/", data); -export const updateStarRule = (id, data) => patch(`/api/star-rules/${id}/`, data); -export const deleteStarRule = (id) => remove(`/api/star-rules/${id}/`); + get("/api/content/star-rules/", params).then(unwrap); +export const getStarRule = (id) => get(`/api/content/star-rules/${id}/`); +export const createStarRule = (data) => post("/api/content/star-rules/", data); +export const updateStarRule = (id, data) => patch(`/api/content/star-rules/${id}/`, data); +export const deleteStarRule = (id) => remove(`/api/content/star-rules/${id}/`); export const listRuleBands = (params) => - get("/api/rule-bands/", params).then(unwrap); -export const createRuleBand = (data) => post("/api/rule-bands/", data); -export const updateRuleBand = (id, data) => patch(`/api/rule-bands/${id}/`, data); -export const deleteRuleBand = (id) => remove(`/api/rule-bands/${id}/`); + get("/api/content/rule-bands/", params).then(unwrap); +export const createRuleBand = (data) => post("/api/content/rule-bands/", data); +export const updateRuleBand = (id, data) => patch(`/api/content/rule-bands/${id}/`, data); +export const deleteRuleBand = (id) => remove(`/api/content/rule-bands/${id}/`); export const listArticleComments = (params) => - get("/api/article-comments/", params).then(unwrap); -export const createArticleComment = (data) => post("/api/article-comments/", data); + get("/api/content/article-comments/", params).then(unwrap); +export const createArticleComment = (data) => post("/api/content/article-comments/", data); export const updateArticleComment = (id, data) => - patch(`/api/article-comments/${id}/`, data); -export const deleteArticleComment = (id) => remove(`/api/article-comments/${id}/`); + patch(`/api/content/article-comments/${id}/`, data); +export const deleteArticleComment = (id) => remove(`/api/content/article-comments/${id}/`); -export const searchAll = (params) => get("/api/search/", params); +export const searchAll = (params) => get("/api/cms/search/", params); diff --git a/src/services/utils.js b/src/services/utils.js index 6336a1e..2dda01e 100644 --- a/src/services/utils.js +++ b/src/services/utils.js @@ -4,11 +4,11 @@ import { store } from "@/store"; /** 必须带前台会员 token 的接口(staff token 会被 IsMember 拒绝为 403) */ function isMemberAuthApi(url = "") { if (url.includes("/api/auth/member/")) return true; - if (url.includes("/api/articles/my-engagement")) return true; - if (url.includes("/api/articles/my-collections")) return true; - if (/\/api\/articles\/[^/]+\/toggle-(like|collect)\/?/.test(url)) return true; + if (url.includes("/api/content/articles/my-engagement")) return true; + if (url.includes("/api/content/articles/my-collections")) return true; + if (/\/api\/content\/articles\/[^/]+\/toggle-(like|collect)\/?/.test(url)) return true; // 分享去重依赖会员身份;有 member token 时优先带上 - if (/\/api\/articles\/[^/]+\/record-share\/?/.test(url)) return true; + if (/\/api\/content\/articles\/[^/]+\/record-share\/?/.test(url)) return true; return false; } diff --git a/vite.config.js b/vite.config.js index 8767aa3..cd616b5 100644 --- a/vite.config.js +++ b/vite.config.js @@ -14,9 +14,11 @@ export default defineConfig({ open: "/", host: "0.0.0.0", //wsl中使用 proxy: { + // 前端仍请求 /api/*,转发到 Django 时剥掉 /api(与线上网关一致) "/api": { target: "http://127.0.0.1:8000", changeOrigin: true, + rewrite: (p) => p.replace(/^\/api/, ""), }, "/media": { target: "http://127.0.0.1:8000",