From 6269482a43818b4cdde83d456c0e9f7e2ab0df2d Mon Sep 17 00:00:00 2001 From: 18278715334 <18278715334@163.com> Date: Sat, 6 Dec 2025 13:53:58 +0800 Subject: [PATCH] 18278715334@163.com --- src/api/announcement.js | 28 + src/api/index.js | 5 +- .../common/BusinessConsultationDialog.vue | 131 ++++- .../common/FloatingCustomerService.vue | 8 +- src/constants/menu.js | 7 + .../components/AnnouncementDetailDialog.vue | 167 ++++++ .../components/AnnouncementEditDialog.vue | 212 +++++++ .../components/AnnouncementStats.vue | 85 +++ .../components/SchedulePublishDialog.vue | 186 ++++++ src/pages/admin/announcements/index.vue | 545 ++++++++++++++++++ src/router/index.js | 6 + src/views/statistics/UserStatisticsPage.vue | 338 ++++++++++- 12 files changed, 1684 insertions(+), 34 deletions(-) create mode 100644 src/api/announcement.js create mode 100644 src/pages/admin/announcements/components/AnnouncementDetailDialog.vue create mode 100644 src/pages/admin/announcements/components/AnnouncementEditDialog.vue create mode 100644 src/pages/admin/announcements/components/AnnouncementStats.vue create mode 100644 src/pages/admin/announcements/components/SchedulePublishDialog.vue create mode 100644 src/pages/admin/announcements/index.vue diff --git a/src/api/announcement.js b/src/api/announcement.js new file mode 100644 index 0000000..91db0fb --- /dev/null +++ b/src/api/announcement.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +// 公告管理API +export const announcementApi = { + // ==================== 用户端API ==================== + // 公告查询 + getAnnouncements: (params) => request.get('/announcements', { params }), + getAnnouncementDetail: (id) => request.get(`/announcements/${id}`), + + // ==================== 管理员端API ==================== + // 统计信息 + getAnnouncementStats: () => request.get('/admin/announcements/stats'), + + // 公告管理 + getAnnouncementsForAdmin: (params) => request.get('/admin/announcements', { params }), + createAnnouncement: (data) => request.post('/admin/announcements', data), + updateAnnouncement: (id, data) => request.put(`/admin/announcements/${id}`, data), + deleteAnnouncement: (id) => request.delete(`/admin/announcements/${id}`), + + // 公告状态管理 + publishAnnouncement: (id) => request.post(`/admin/announcements/${id}/publish`), + withdrawAnnouncement: (id) => request.post(`/admin/announcements/${id}/withdraw`), + archiveAnnouncement: (id) => request.post(`/admin/announcements/${id}/archive`), + schedulePublishAnnouncement: (id, data) => request.post(`/admin/announcements/${id}/schedule-publish`, data), + updateSchedulePublishAnnouncement: (id, data) => request.post(`/admin/announcements/${id}/update-schedule-publish`, data), + cancelSchedulePublishAnnouncement: (id) => request.post(`/admin/announcements/${id}/cancel-schedule`), +} + diff --git a/src/api/index.js b/src/api/index.js index 8908677..3cd9674 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,10 +1,11 @@ import request from '@/utils/request' import { articleApi } from './article.js' +import { announcementApi } from './announcement.js' import { balanceAlertApi } from './balanceAlertApi.js' import { adminInvoiceApi, invoiceApi } from './invoice.js' -// 直接导出发票API、文章API和余额预警API -export { adminInvoiceApi, articleApi, balanceAlertApi, invoiceApi } +// 直接导出发票API、文章API、公告API和余额预警API +export { adminInvoiceApi, articleApi, announcementApi, balanceAlertApi, invoiceApi } // 用户相关接口 - 严格按照后端路由定义 export const userApi = { diff --git a/src/components/common/BusinessConsultationDialog.vue b/src/components/common/BusinessConsultationDialog.vue index cc2a417..8a1d589 100644 --- a/src/components/common/BusinessConsultationDialog.vue +++ b/src/components/common/BusinessConsultationDialog.vue @@ -1,14 +1,35 @@