From 2d6b89dfecdbb8240f0ba9983bd6858eb7448cb0 Mon Sep 17 00:00:00 2001 From: lxd <1004405501@qq.com> Date: Thu, 26 Jun 2025 15:26:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=A2=E6=88=B7=E7=95=99?= =?UTF-8?q?=E8=A8=80=E6=9D=BF=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/feedback/index.ts | 47 +++ src/views/notice/FeedbackReply.vue | 204 +++++++++++ src/views/notice/msgboard.vue | 532 +++++++++++++++++++++++++++++ 3 files changed, 783 insertions(+) create mode 100644 src/api/feedback/index.ts create mode 100644 src/views/notice/FeedbackReply.vue create mode 100644 src/views/notice/msgboard.vue diff --git a/src/api/feedback/index.ts b/src/api/feedback/index.ts new file mode 100644 index 000000000..62f85cd9a --- /dev/null +++ b/src/api/feedback/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// 留言板 VO +export interface FeedbackVO { + id: number // 主键 + content: string // 客户提交的反馈内容 + backContent: string // 医生回复的内容 + userId: number // 客户id + doctorName: string // 医生姓名 + doctorId: number // 医生id + backTime: Date | number // 医生回复时间(支持Date对象或时间戳) + orgid: number // 机构ID + orgname: string // 机构名称 +} + +// 留言板 API +export const FeedbackApi = { + // 查询留言板分页 + getFeedbackPage: async (params: any) => { + return await request.get({ url: `/system/feedback/page`, params }) + }, + + // 查询留言板详情 + getFeedback: async (id: number) => { + return await request.get({ url: `/system/feedback/get?id=` + id }) + }, + + // 新增留言板 + createFeedback: async (data: FeedbackVO) => { + return await request.post({ url: `/system/feedback/create`, data }) + }, + + // 修改留言板 + updateFeedback: async (data: FeedbackVO) => { + return await request.put({ url: `/system/feedback/update`, data }) + }, + + // 删除留言板 + deleteFeedback: async (id: number) => { + return await request.delete({ url: `/system/feedback/delete?id=` + id }) + }, + + // 导出留言板 Excel + exportFeedback: async (params) => { + return await request.download({ url: `/system/feedback/export-excel`, params }) + }, +} diff --git a/src/views/notice/FeedbackReply.vue b/src/views/notice/FeedbackReply.vue new file mode 100644 index 000000000..4f9a35f1a --- /dev/null +++ b/src/views/notice/FeedbackReply.vue @@ -0,0 +1,204 @@ + + + + + + 客户留言: + + {{ feedbackData.content }} + + 客户ID: {{ feedbackData.userId }} + 机构: {{ feedbackData.orgname }} + + + + + + + {{ isViewMode ? '回复内容:' : '请输入回复:' }} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/notice/msgboard.vue b/src/views/notice/msgboard.vue new file mode 100644 index 000000000..f4929d645 --- /dev/null +++ b/src/views/notice/msgboard.vue @@ -0,0 +1,532 @@ + + + + + + + + 留言板管理 + + 查看客户留言并及时回复,提升客户满意度 + + + + + + + + + + + + + + + + + + + + + + + 搜索 + + + + 重置 + + + + 导出 + + + + + + + + + + + + 留言列表 + + 总计: {{ total }} + 已回复: {{ repliedCount }} + 未回复: {{ unrepliedCount }} + + + + + + + + + + {{ row.content }} + + 客户ID: {{ row.userId }} + {{ row.orgname }} + + + + + + + + {{ row.backTime ? '已回复' : '未回复' }} + + + + + + {{ row.backContent }} + 暂无回复 + + + + + {{ row.doctorName }} + - + + + + + {{ formatDate(row.backTime) }} + - + + + + + + + {{ row.backTime ? '查看回复' : '回复' }} + + + + + + + + + + + + + + + + + + + +
{{ feedbackData.content }}
查看客户留言并及时回复,提升客户满意度