|
@@ -1,10 +1,9 @@
|
|
|
import { useArticle, useCategory } from "@/modules";
|
|
|
import { css } from "@linaria/core";
|
|
|
-
|
|
|
+import { Empty, message } from "ant-design-vue";
|
|
|
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() {
|
|
@@ -12,6 +11,7 @@ export default defineComponent({
|
|
|
const router = useRouter();
|
|
|
const categoryStore = useCategory();
|
|
|
const articleStore = useArticle();
|
|
|
+
|
|
|
const state = reactive({
|
|
|
currFloor: {} as any,
|
|
|
currMid: {} as any,
|
|
@@ -20,16 +20,7 @@ export default defineComponent({
|
|
|
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(
|
|
@@ -77,10 +68,19 @@ export default defineComponent({
|
|
|
} else {
|
|
|
state.currFloor = state.currMid;
|
|
|
}
|
|
|
+ const t = categoryStore.listController.state.list.find(
|
|
|
+ (e) => e._id == currCategory.pid
|
|
|
+ );
|
|
|
+
|
|
|
+ if (t?.pid == "top") {
|
|
|
+ state.currTree = t;
|
|
|
+ return;
|
|
|
+ }
|
|
|
state.currTree = categoryStore.categoryTree.find((e) => {
|
|
|
- return e._id == currCategory.pid;
|
|
|
+ return e._id == t?.pid;
|
|
|
});
|
|
|
};
|
|
|
+
|
|
|
const initArticle = async () => {
|
|
|
const aid = route.query.aid;
|
|
|
if (!aid) {
|
|
@@ -97,28 +97,39 @@ export default defineComponent({
|
|
|
state.content = res.result.content;
|
|
|
};
|
|
|
|
|
|
+ watch(
|
|
|
+ () => categoryStore.listController.state.list,
|
|
|
+ () => {
|
|
|
+ initCategory();
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ initCategory();
|
|
|
+ initArticle();
|
|
|
+ });
|
|
|
+
|
|
|
return () => {
|
|
|
+ const { currMid = {}, currTree = {} } = state;
|
|
|
+
|
|
|
return (
|
|
|
<div class={page}>
|
|
|
<div
|
|
|
class={"page_title_box"}
|
|
|
style={{
|
|
|
backgroundImage: `url(${
|
|
|
- state.currMid.cover ? state.currMid.cover : state.currTree.cover
|
|
|
+ currMid.cover ? currMid.cover : currTree.cover
|
|
|
})`,
|
|
|
}}
|
|
|
>
|
|
|
<div class={"title detail_page_w"}>
|
|
|
- <h1>{state.currTree.name}</h1>
|
|
|
- <h2>{state.currTree.subName}</h2>
|
|
|
+ <h1>{currTree.name}</h1>
|
|
|
+ <h2>{currTree.subName}</h2>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class={"page_tabs_box"}>
|
|
|
<div class="detail_page_w">
|
|
|
- <PageTabs
|
|
|
- data={state.currTree.children}
|
|
|
- activeKey={state.currMid._id}
|
|
|
- />
|
|
|
+ <PageTabs data={currTree.children} activeKey={currMid._id} />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class={"page_content"}>
|
|
@@ -136,6 +147,7 @@ export default defineComponent({
|
|
|
};
|
|
|
},
|
|
|
});
|
|
|
+
|
|
|
const page = css`
|
|
|
.page_title_box {
|
|
|
position: relative;
|