From 78514cb093ea564dfc5e64ebbb47d331e6dbaf4a Mon Sep 17 00:00:00 2001 From: Li1304553726 <1304553726@qq.com> Date: Mon, 1 Dec 2025 11:10:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=A7=81=E5=AF=86=E4=BF=A1?= =?UTF-8?q?=E4=BB=B6=E6=A0=BC=E5=BC=8F=E5=92=8C=E5=8F=91=E4=BF=A1=E4=BA=BA?= =?UTF-8?q?=E4=B8=8D=E9=9C=80=E8=A6=81=E8=BE=93=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/models/post/LetterCard.tsx | 2 +- .../post/detail/context/PostDetailContext.tsx | 7 ++- .../PublicOrNotSelector.tsx | 55 +++---------------- 3 files changed, 15 insertions(+), 49 deletions(-) diff --git a/apps/web/src/components/models/post/LetterCard.tsx b/apps/web/src/components/models/post/LetterCard.tsx index 1aac3c8..4177d3b 100755 --- a/apps/web/src/components/models/post/LetterCard.tsx +++ b/apps/web/src/components/models/post/LetterCard.tsx @@ -63,7 +63,7 @@ export function LetterCard({ letter }: LetterCardProps) { )} {letter.title} {/* 印章样式的"密"字 */} - {!letter?.isPublic && ( + {(
diff --git a/apps/web/src/components/models/post/detail/context/PostDetailContext.tsx b/apps/web/src/components/models/post/detail/context/PostDetailContext.tsx index 0dd7ffb..4d0f9db 100755 --- a/apps/web/src/components/models/post/detail/context/PostDetailContext.tsx +++ b/apps/web/src/components/models/post/detail/context/PostDetailContext.tsx @@ -80,14 +80,17 @@ export function PostDetailProvider({ const { data: post, isLoading }: { data: PostDto; isLoading: boolean } = ( api.post.findFirst as any ).useQuery(queryParams, { enabled: Boolean(editId) }); - - const { data: staff } : { data: StaffDto}= api.staff.findFirst.useQuery( + + const { data: staff }: { data: StaffDto } = api.staff.findFirst.useQuery( { where: { id: post?.authorId } }, { enabled: !!post?.authorId } ); const canSee = useMemo(() => { if (hasSomePermissions(RolePerms.READ_ANY_POST)) { return true; + } else if (post?.authorId === user?.id) { + // 如果当前用户是作者,直接允许查看 + return true; } else if ( post?.receivers?.map((receiver) => receiver.id)?.includes(user?.id) ) { diff --git a/apps/web/src/components/models/post/editor/form/public-or-not-selector/PublicOrNotSelector.tsx b/apps/web/src/components/models/post/editor/form/public-or-not-selector/PublicOrNotSelector.tsx index 08aabfe..376f085 100755 --- a/apps/web/src/components/models/post/editor/form/public-or-not-selector/PublicOrNotSelector.tsx +++ b/apps/web/src/components/models/post/editor/form/public-or-not-selector/PublicOrNotSelector.tsx @@ -1,5 +1,4 @@ import React from "react"; -import { Select } from "antd"; import { useEffect, useState } from "react"; export default function PublicOrNotSelector({ @@ -17,57 +16,21 @@ export default function PublicOrNotSelector({ setIsBrowserSupported(browserVersion >= 87); }, []); - const options = [ - { value: true, label: "公开" }, - { value: false, label: "私密" }, - ]; + useEffect(() => { + // 如果当前值不是 false,将其设置为 false + if (value !== false && onChange) { + onChange(false); + } + }, [value, onChange]); - // 处理 Antd Select 的 onChange - const handleAntdChange = (newValue) => { - if (onChange) { - onChange(newValue); - } - }; - - // 处理原生 select 的 onChange - const handleNativeChange = (e) => { - if (onChange) { - // 将字符串 "true"/"false" 转换为布尔值 - onChange(e.target.value === "true"); - } - }; if (isBrowserSupported) { return ( - +
); } else { return ( - +
); } -} +} \ No newline at end of file