Merge branch 'main' of http://113.45.157.195:3003/insiinc/leader-mail
This commit is contained in:
commit
06cec01b74
|
@ -22,7 +22,11 @@ export default function PostCommentCard({
|
|||
}) {
|
||||
return (
|
||||
<motion.div
|
||||
className="bg-white rounded-lg border 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,10 +49,9 @@ export default function PostCommentCard({
|
|||
)}
|
||||
</span>
|
||||
{isReceiverComment && (
|
||||
<div className=" py-1 px-4 rounded-full bg-primary-50 text-primary-500">
|
||||
|
||||
<span className=" text-sm text-primary font-bold">
|
||||
官方回复
|
||||
</div>
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{/* 添加有帮助按钮 */}
|
||||
|
|
|
@ -25,8 +25,15 @@ export default function Header() {
|
|||
{post?.title}
|
||||
</h1>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
|
||||
<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">
|
||||
|
||||
<span className="text-white">发件人</span>
|
||||
|
@ -47,7 +54,10 @@ export default function Header() {
|
|||
</Text>
|
||||
))}
|
||||
</Space>
|
||||
|
||||
{/* Date Info Badge */}
|
||||
<Space className="mr-4">
|
||||
<CalendarOutlined className="text-white" />
|
||||
|
||||
<span className="text-white">创建于</span>
|
||||
<Text className="text-white">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -71,11 +71,11 @@ server {
|
|||
|
||||
# 文件访问认证
|
||||
# 通过内部认证服务验证
|
||||
# auth_request /auth-file;
|
||||
auth_request /auth-file;
|
||||
# 存储认证状态和用户信息
|
||||
# auth_request_set $auth_status $upstream_status;
|
||||
# auth_request_set $auth_user_id $upstream_http_x_user_id;
|
||||
# auth_request_set $auth_resource_type $upstream_http_x_resource_type;
|
||||
auth_request_set $auth_status $upstream_status;
|
||||
auth_request_set $auth_user_id $upstream_http_x_user_id;
|
||||
auth_request_set $auth_resource_type $upstream_http_x_resource_type;
|
||||
# 不缓存
|
||||
expires 0;
|
||||
# 私有缓存,禁止转换
|
||||
|
|
Loading…
Reference in New Issue