This commit is contained in:
ditiqi 2025-01-25 23:29:46 +08:00
parent 741ff22489
commit 5a68eabbfd
3 changed files with 52 additions and 39 deletions

View File

@ -22,7 +22,11 @@ export default function PostCommentCard({
}) {
return (
<motion.div
className="bg-white rounded-lg shadow-sm border border-slate-200 p-4"
className={` rounded-xl shadow-sm border p-4 ${
isReceiverComment
? "border-primary border-2 bg-primary-50"
: "border-slate-200 bg-white"
}`}
layout>
<div className="flex items-start space-x-2 gap-2">
<div className="flex-shrink-0">
@ -45,11 +49,9 @@ export default function PostCommentCard({
)}
</span>
{isReceiverComment && (
<div className=" ">
<span className=" py-0.5 px-2 text-xs rounded-full bg-blue-100 text-blue-800">
</span>
</div>
<span className=" text-sm text-primary font-bold">
</span>
)}
</div>
{/* 添加有帮助按钮 */}

View File

@ -30,6 +30,13 @@ export default function Header() {
</h1>
</div>
<div className="space-y-1">
<Space className="mr-4">
<SendOutlined className="text-white" />
<span className="text-white">:</span>
<Text className="text-white" strong>
{post?.author?.showname || "匿名用户"}
</Text>
</Space>
{/* 收件人信息行 */}
<Space className="mr-4">
<MailOutlined className="text-white" />
@ -44,13 +51,7 @@ export default function Header() {
</Text>
))}
</Space>
<Space className="mr-4">
<SendOutlined className="text-white" />
<span className="text-white">:</span>
<Text className="text-white" strong>
{post?.author?.showname || "匿名用户"}
</Text>
</Space>
{/* Date Info Badge */}
<Space className="mr-4">
<CalendarOutlined className="text-white" />

View File

@ -1,10 +1,11 @@
import { Form, Input, Button, Checkbox, Select } from "antd";
import { Form, Input, Button, Checkbox, Select, Tabs } from "antd";
import { useLetterEditor } from "../context/LetterEditorContext";
import { SendOutlined } from "@ant-design/icons";
import QuillEditor from "@web/src/components/common/editor/quill/QuillEditor";
import { TusUploader } from "@web/src/components/common/uploader/TusUploader";
import StaffSelect from "../../../staff/staff-select";
import TermSelect from "../../../term/term-select";
import TabPane from "antd/es/tabs/TabPane";
export function LetterBasicForm() {
const { onSubmit, receiverId, termId, form } = useLetterEditor();
@ -66,31 +67,40 @@ export function LetterBasicForm() {
/>
</Form.Item>
{/* Content Editor */}
<Form.Item
name="content"
rules={[{ required: true, message: "请输入内容" }]}
required={false}>
<div className="rounded-lg border border-gray-200 bg-white shadow-sm">
<QuillEditor
maxLength={10000}
placeholder="请输入内容"
minRows={16}
onChange={(content) =>
form.setFieldValue("content", content)
}
/>
</div>
</Form.Item>
<Form.Item name="resources" required={false}>
<div className="rounded-lg border border-gray-200 bg-white shadow-sm">
<TusUploader
onChange={(resources) =>
form.setFieldValue("resources", resources)
}
/>
</div>
</Form.Item>
<Tabs defaultActiveKey="1">
{/* Content Editor */}
<TabPane tab="正文" key="1">
<Form.Item
name="content"
rules={[{ required: true, message: "请输入内容" }]}
required={false}>
<div className="rounded-lg border border-gray-200 bg-white shadow-sm">
<QuillEditor
maxLength={10000}
placeholder="请输入内容"
minRows={16}
onChange={(content) =>
form.setFieldValue("content", content)
}
/>
</div>
</Form.Item>
</TabPane>
<TabPane tab="附件" key="2">
<Form.Item name="resources" required={false}>
<div className="rounded-lg border border-gray-200 bg-white shadow-sm">
<TusUploader
onChange={(resources) =>
form.setFieldValue(
"resources",
resources
)
}
/>
</div>
</Form.Item>
</TabPane>
</Tabs>
{/* Footer Actions */}
<div className="flex flex-col-reverse sm:flex-row items-center justify-between gap-4 mt-6">
<Form.Item name="isPublic" valuePropName="checked">