diff --git a/packages/admin/src/components/UpdateModal/index.tsx b/packages/admin/src/components/UpdateModal/index.tsx new file mode 100644 index 000000000..4aba79b1a --- /dev/null +++ b/packages/admin/src/components/UpdateModal/index.tsx @@ -0,0 +1,148 @@ +import { getAllCategories, getTags, updateArticle, updateDraft } from '@/services/van-blog/api'; +import { ModalForm, ProFormSelect, ProFormText } from '@ant-design/pro-form'; +import { message } from 'antd'; + +export default function (props: { + currObj: any; + setLoading: any; + onFinish: any; + type: 'article' | 'draft' | 'about'; +}) { + const { currObj, setLoading, type, onFinish } = props; + return ( + + 修改信息 + + } + width={450} + autoFocusFirstInput + submitTimeout={3000} + initialValues={currObj || {}} + onFinish={async (values) => { + if (!currObj || !currObj.id) { + return false; + } + setLoading(true); + if (type == 'article') { + await updateArticle(currObj?.id, values); + onFinish(); + message.success('修改文章成功!'); + setLoading(false); + } else if (type == 'draft') { + await updateDraft(currObj?.id, values); + onFinish(); + message.success('修改草稿成功!'); + setLoading(false); + } else { + return false; + } + + return true; + }} + layout="horizontal" + labelCol={{ span: 6 }} + key="editForm" + // wrapperCol: { span: 14 }, + > + + { + const msg = await getTags(); + return msg?.data?.map((item) => ({ label: item, value: item })) || []; + }} + /> + { + const { data: categories } = await getAllCategories(); + return categories?.map((e) => { + return { + label: e, + value: e, + }; + }); + }} + /> + {type == 'article' && ( + <> + + { + return [ + { + label: '否', + value: false, + }, + { + label: '是', + value: true, + }, + ]; + }} + /> + + { + return [ + { + label: '否', + value: false, + }, + { + label: '是', + value: true, + }, + ]; + }} + /> + + )} + + ); +} diff --git a/packages/admin/src/pages/Editor/index.jsx b/packages/admin/src/pages/Editor/index.jsx index ccdc3746d..9bbc7adaa 100644 --- a/packages/admin/src/pages/Editor/index.jsx +++ b/packages/admin/src/pages/Editor/index.jsx @@ -1,18 +1,16 @@ import Editor from '@/components/Editor'; import PublishDraftModal from '@/components/PublishDraftModal'; import Tags from '@/components/Tags'; +import UpdateModal from '@/components/UpdateModal'; import { getAbout, - getAllCategories, getArticleById, getDraftById, - getTags, updateAbout, updateArticle, updateDraft, } from '@/services/van-blog/api'; import { DownOutlined } from '@ant-design/icons'; -import { ModalForm, ProFormSelect, ProFormText } from '@ant-design/pro-components'; import { PageContainer } from '@ant-design/pro-layout'; import { Button, Dropdown, Menu, message, Modal, Space, Tag } from 'antd'; import { debounce } from 'lodash'; @@ -138,142 +136,14 @@ export default function () { }, type != 'about' ? { - key: 'updateBtn', + key: 'updateModalBtn', label: ( - - 修改信息 - - } - width={450} - autoFocusFirstInput - submitTimeout={3000} - initialValues={currObj || {}} - onFinish={async (values) => { - if (!currObj || !currObj.id) { - return false; - } - setLoading(true); - if (type == 'article') { - await updateArticle(currObj?.id, values); - await fetchData(); - message.success('修改文章成功!'); - setLoading(false); - } else if (type == 'draft') { - await updateDraft(currObj?.id, values); - await fetchData(); - message.success('修改草稿成功!'); - setLoading(false); - } else { - return false; - } - - return true; - }} - layout="horizontal" - labelCol={{ span: 6 }} - key="editForm" - // wrapperCol: { span: 14 }, - > - - { - const msg = await getTags(); - return msg?.data?.map((item) => ({ label: item, value: item })) || []; - }} - /> - { - const { data: categories } = await getAllCategories(); - return categories?.map((e) => { - return { - label: e, - value: e, - }; - }); - }} - /> - {type == 'article' && ( - <> - - { - return [ - { - label: '否', - value: false, - }, - { - label: '是', - value: true, - }, - ]; - }} - /> - - { - return [ - { - label: '否', - value: false, - }, - { - label: '是', - value: true, - }, - ]; - }} - /> - - )} - + ), } : null,