import { Button, PageHeader } from "ant-design-vue"; import { defineComponent, onMounted, reactive } from "vue"; import loading from "@/components/Provider/Loading"; import { useArticle } from "@/modules"; import { object } from "vue-types"; import WangEditor from "../../components/WangEditor"; import { css } from "@linaria/core"; export default defineComponent({ props: { data: object(), }, setup(props) { const data: any = props.data || {}; const artStore = useArticle(); const state = reactive({ data: {} as any, }); onMounted(() => { initDetail(); }); const initDetail = async () => { loading.show(""); artStore.listController.state.query = JSON.stringify({ cid: data._id }); await artStore.listController.loadPage(1); const item = artStore.listController.state.list[0] || {}; if (item._id) { const detRes = await artStore.getArticleDetail(item); if (detRes) { state.data = detRes; } } loading.hidden(); }; const editorChange = ({ html, text }: any) => { state.data.content = html; state.data.summary = text; }; const submit = () => { const subData = { ...state.data }; if (!subData._id) { subData.title = data?.name; subData.cid = data._id; } let summary = state.data.summary.substring(0, 60); summary = summary.replace(/\n/g, ""); state.data.summary = summary; artStore.addOrUpdateArticle(subData); }; return () => { return (
{{ extra: () => { return ( ); }, }}
); }; }, }); const Page = css` height: 100%; display: flex; flex-direction: column; `;