import { useArticle, useCategory } from "@/modules"; import { css } from "@linaria/core"; import { defineComponent, onMounted, reactive, watch } from "vue"; import { useRoute, useRouter } from "vue-router"; import PageTabs from "./PageTabs"; import { Empty, message } from "ant-design-vue"; export default defineComponent({ setup() { const route = useRoute(); const router = useRouter(); const categoryStore = useCategory(); const articleStore = useArticle(); const state = reactive({ currFloor: {} as any, currMid: {} as any, currTree: {} as any, currBg: "", content: "", loading: true, }); watch( () => categoryStore.listController.state.list, () => { initCategory(); } ); onMounted(() => { initCategory(); initArticle(); }); const initCategory = () => { const id = route.params.id; const currCategory = categoryStore.listController.state.list.find( (e: CategoryItem) => { return e._id == id; } ); if (!currCategory) { if (categoryStore.listController.state.list.length > 0) { router.replace("/404"); } return; } if (currCategory?.pid == "top") { state.currTree = categoryStore.categoryTree.find((e) => { return e._id == id; }); state.currMid = state.currTree.children[0]; if (state.currMid.children && state.currMid.children.length) { const cid = route.query.cid; if (cid) { state.currFloor = state.currMid.children.find((e: any) => { return e._id == cid; }); } else { state.currFloor = state.currMid.children[0]; } } else { state.currFloor = state.currMid; } return; } state.currMid = currCategory; if (currCategory.children && currCategory.children.length) { const cid = route.query.cid; if (cid) { state.currFloor = currCategory.children.find((e: any) => { return e._id == cid; }); } else { state.currFloor = currCategory.children[0]; } } else { state.currFloor = state.currMid; } state.currTree = categoryStore.categoryTree.find((e) => { return e._id == currCategory.pid; }); }; const initArticle = async () => { const aid = route.query.aid; if (!aid) { state.loading = false; return; } const res = await articleStore.listController.itemDetail(aid as string); if (res.errorNo != 200) { message.warn("未查询到数据!"); state.loading = false; return; } state.loading = false; state.content = res.result.content; }; return () => { return (