功能:优化用户发布文章体验

This commit is contained in:
宇阳
2024-12-09 15:17:04 +08:00
parent 4e37d4f061
commit a6a33df355
6 changed files with 37 additions and 25 deletions

View File

@@ -11,7 +11,7 @@
"author": { "author": {
"name": "YuYang", "name": "YuYang",
"email": "liuyuyang1024@yeah.net", "email": "liuyuyang1024@yeah.net",
"url": "https://blog.liuyuyang.net" "url": "https://liuyuyang.net"
}, },
"dependencies": { "dependencies": {
"@bytemd/plugin-gemoji": "^1.21.0", "@bytemd/plugin-gemoji": "^1.21.0",

View File

@@ -39,14 +39,17 @@ const ArticlePage = () => {
const delArticleData = async (id: number) => { const delArticleData = async (id: number) => {
setLoading(true); setLoading(true);
try {
// 普通删除:可从回收站恢复 // 普通删除:可从回收站恢复
await delArticleDataAPI(id, true); await delArticleDataAPI(id, true);
await getArticleList(); await getArticleList();
form.resetFields() form.resetFields()
setCurrent(1) setCurrent(1)
notification.success({ message: '🎉 删除文章成功' }) notification.success({ message: '🎉 删除文章成功' })
setLoading(false); setLoading(false);
} catch (error) {
setLoading(false);
}
}; };
// 标签颜色 // 标签颜色

View File

@@ -55,9 +55,13 @@ const CatePage = () => {
const delCateData = async (id: number) => { const delCateData = async (id: number) => {
setLoading(true); setLoading(true);
try {
await delCateDataAPI(id); await delCateDataAPI(id);
message.success('🎉 删除分类成功'); message.success('🎉 删除分类成功');
getCateList(); getCateList();
} catch (error) {
setLoading(false);
}
}; };
const submit = async () => { const submit = async () => {

View File

@@ -149,7 +149,7 @@ const PublishForm = ({ data, closeModel }: { data: Article, closeModel: () => vo
...values, ...values,
content: data.content, content: data.content,
tagIds: tagIds.join(','), tagIds: tagIds.join(','),
isDraft: 0, isDraft: isDraft ? 1 : 0,
config: { config: {
status: values.status, status: values.status,
password: values.password password: values.password
@@ -249,9 +249,9 @@ const PublishForm = ({ data, closeModel }: { data: Article, closeModel: () => vo
</Form.Item> </Form.Item>
{/* 草稿和编辑状态下不再显示保存草稿按钮 */} {/* 草稿和编辑状态下不再显示保存草稿按钮 */}
{(!isDraftParams && !id) && ( {((isDraftParams && id) || !id) && (
<Form.Item className="!mt-2 !mb-0"> <Form.Item className="!mt-2 !mb-0">
<Button className="w-full" onClick={() => form.validateFields().then(values => onSubmit(values, true))}>稿</Button> <Button className="w-full" onClick={() => form.validateFields().then(values => onSubmit(values, true))}>{isDraftParams ? '保存' : '保存为草稿'}</Button>
</Form.Item> </Form.Item>
)} )}
</Form> </Form>

View File

@@ -60,7 +60,7 @@ const ListItem = ({ item, type, fetchData }: ListItemProps) => {
content: replyInfo, content: replyInfo,
commentId: item?.id!, commentId: item?.id!,
auditStatus: 1, auditStatus: 1,
email: user.email, email: user.email ? user.email : null,
name: user.name, name: user.name,
articleId: item?.articleId!, articleId: item?.articleId!,
createTime: new Date().getTime().toString(), createTime: new Date().getTime().toString(),
@@ -180,11 +180,16 @@ const ListItem = ({ item, type, fetchData }: ListItemProps) => {
<div className="flex items-end"> <div className="flex items-end">
<Dropdown menu={{ <Dropdown menu={{
items: [ items: type === "comment"
? [
{ key: 'ok', label: "通过", onClick: handleApproval }, { key: 'ok', label: "通过", onClick: handleApproval },
{ key: 'reply', label: "回复", onClick: () => [setIsModalOpen(true), setBtnType("reply")] }, { key: 'reply', label: "回复", onClick: () => [setIsModalOpen(true), setBtnType("reply")] },
{ key: 'dismiss', label: "驳回", onClick: () => [setIsModalOpen(true), , setBtnType("dismiss")] } { key: 'dismiss', label: "驳回", onClick: () => [setIsModalOpen(true), , setBtnType("dismiss")] }
] ]
: [
{ key: 'ok', label: "通过", onClick: handleApproval },
{ key: 'dismiss', label: "驳回", onClick: () => [setIsModalOpen(true), , setBtnType("dismiss")] }
]
}}> }}>
<div className="flex justify-evenly items-center bg-[#F9F9FD] w-11 h-5 rounded-md cursor-pointer"> <div className="flex justify-evenly items-center bg-[#F9F9FD] w-11 h-5 rounded-md cursor-pointer">
<span className="inline-block w-2 h-2 bg-[#b5c2d3] rounded-full"></span> <span className="inline-block w-2 h-2 bg-[#b5c2d3] rounded-full"></span>

View File

@@ -2,7 +2,7 @@ export interface Comment {
id?: number, id?: number,
name: string, name: string,
avatar: string, avatar: string,
email: string, email: string | null,
url: string, url: string,
content: string, content: string,
articleId: number, articleId: number,