From 34d6d9f8f561545e2ea84f4139dde1afe4ff96f3 Mon Sep 17 00:00:00 2001 From: lq Date: Mon, 14 Apr 2025 16:58:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E5=92=8C=E5=8C=BB=E7=94=9F=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/modal/DoctorQrCodePreview.vue | 8 +- .../views/notice/compoents/UnreadUserList.vue | 57 ++ .../src/views/notice/compoents/detail.vue | 54 +- .../src/views/notice/compoents/send.vue | 4 +- apps/web-antd/src/views/notice/index.vue | 9 +- package.json | 10 - pnpm-lock.yaml | 540 ++++-------------- 7 files changed, 197 insertions(+), 485 deletions(-) create mode 100644 apps/web-antd/src/views/notice/compoents/UnreadUserList.vue diff --git a/apps/web-antd/src/components/modal/DoctorQrCodePreview.vue b/apps/web-antd/src/components/modal/DoctorQrCodePreview.vue index 90c75197..6fb69716 100644 --- a/apps/web-antd/src/components/modal/DoctorQrCodePreview.vue +++ b/apps/web-antd/src/components/modal/DoctorQrCodePreview.vue @@ -32,10 +32,12 @@ const [Modal, modalApi] = useVbenModal({ modalApi.close(); }, onOpenChange(isOpen: boolean) { + modalApi.setState({ + loading: true, + }); if (isOpen) { const { values } = modalApi.getData>(); if (values) { - console.log(values, 'ssssssssssssss') if (values.doctor_id !== undefined) { doctorId.value = values.doctor_id; } @@ -57,6 +59,10 @@ const getDoctorInfoByStore = () => { goodAt.value = res.doctor.good_at; previewAddress.value = res.store.province.name + res.store.city.name + res.store.position; + + modalApi.setState({ + loading: false, + }); }); }; /** diff --git a/apps/web-antd/src/views/notice/compoents/UnreadUserList.vue b/apps/web-antd/src/views/notice/compoents/UnreadUserList.vue new file mode 100644 index 00000000..34fe5207 --- /dev/null +++ b/apps/web-antd/src/views/notice/compoents/UnreadUserList.vue @@ -0,0 +1,57 @@ + + diff --git a/apps/web-antd/src/views/notice/compoents/detail.vue b/apps/web-antd/src/views/notice/compoents/detail.vue index 6878884c..b718f1e8 100644 --- a/apps/web-antd/src/views/notice/compoents/detail.vue +++ b/apps/web-antd/src/views/notice/compoents/detail.vue @@ -2,11 +2,9 @@ import { onMounted, ref } from 'vue'; import { useRoute, useRouter } from 'vue-router'; -import { Page } from '@vben/common-ui'; +import { Page, useVbenModal } from '@vben/common-ui'; import { useTabs } from '@vben/hooks'; -import {Button} from 'ant-design-vue' - import { ArrowLeft, Bell, @@ -15,15 +13,16 @@ import { Megaphone, User, } from 'lucide-vue-next'; +import { MdPreview } from 'md-editor-v3'; import { formatTimeToRelative } from '#/util/tool'; import { getNoticeDetailApi } from '#/views/notice/api'; -// 新增 Markdown 解析相关依赖 +import UnreadUserList from './UnreadUserList.vue'; + // eslint-disable-next-line n/no-extraneous-import -import { marked } from 'marked'; -// eslint-disable-next-line n/no-extraneous-import -import DOMPurify from 'dompurify'; +import 'md-editor-v3/lib/style.css'; +import {Icon} from "#/components/icon"; const router = useRouter(); const route = useRoute(); @@ -99,18 +98,6 @@ const getTypeInfo = (typeId) => { return messageTypes.find((t) => t.id === typeId) || messageTypes[0]; }; -// 新增 Markdown 解析方法 -const parseMarkdown = (content) => { - if (!content) return ''; - // 配置 marked(可选) - marked.setOptions({ - gfm: true, // 启用 GitHub Flavored Markdown - breaks: false, // 转换换行符为
- }); - // 安全净化 HTML - return DOMPurify.sanitize(marked.parse(content)); -}; - // 格式化内容,将换行符转换为
const formatContent = (content) => { return content ? content.replaceAll('\n', '
') : ''; @@ -120,13 +107,22 @@ onMounted(() => { getNoticeDetail(); }); +const [UnreadUserListModal, UnreadUserListModalApi] = useVbenModal({ + connectedComponent: UnreadUserList, +}); + const showUnreadList = () => { - alert('未实现') -} + UnreadUserListModalApi.setData({ + values: notice.value.user_list, + unread_count: notice.value.unread_count, + }); + UnreadUserListModalApi.open(); +};