功能:优化用户发布文章体验
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 标签颜色
|
// 标签颜色
|
||||||
|
|||||||
@@ -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 () => {
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
2
src/types/app/comment.d.ts
vendored
2
src/types/app/comment.d.ts
vendored
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user