diff --git a/zyplayer-doc-ui/wiki-ui/src/store/pageData.js b/zyplayer-doc-ui/wiki-ui/src/store/pageData.js index 82401a38..c0d3a4e8 100644 --- a/zyplayer-doc-ui/wiki-ui/src/store/pageData.js +++ b/zyplayer-doc-ui/wiki-ui/src/store/pageData.js @@ -3,6 +3,8 @@ import {defineStore} from 'pinia'; export const useStorePageData = defineStore('pageData', { state: () => { return { + // 页面加载状态 -1=空间不存在 0=初始值 1=加载中 2=加载成功 3=加载失败 + pageLoadStatus: 0, pageInfo: {}, pageAuth: {}, fileList: [], @@ -15,4 +17,40 @@ export const useStorePageData = defineStore('pageData', { eventPageListUpdate: false, } }, + getters: { + getFirstViewPage: (state) => { + return () => { + let getPage = (dataList) => { + for (let i = 0; i < dataList.length; i++) { + let page = dataList[i]; + if (page.editorType !== 0) { + return page; + } else if (page.children) { + let find = getPage(page.children); + if (find) return find; + } + } + return null; + } + return getPage(state.pageList); + } + }, + getPageById: (state) => { + return (pageId) => { + let getPage = (dataList) => { + for (let i = 0; i < dataList.length; i++) { + let page = dataList[i]; + if (page.id === pageId) { + return page; + } else if (page.children) { + let find = getPage(page.children); + if (find) return find; + } + } + return null; + } + return getPage(state.pageList); + } + }, + } }); diff --git a/zyplayer-doc-ui/wiki-ui/src/views/view/PageLayout.vue b/zyplayer-doc-ui/wiki-ui/src/views/view/PageLayout.vue index b9c75b2c..de5ab7df 100644 --- a/zyplayer-doc-ui/wiki-ui/src/views/view/PageLayout.vue +++ b/zyplayer-doc-ui/wiki-ui/src/views/view/PageLayout.vue @@ -64,6 +64,6 @@ html, body { background-color: #fff !important; color: #333; height: 60px !important; - border-bottom: 1px solid #eee; + border-bottom: 1px solid #f0f0f0; } diff --git a/zyplayer-doc-ui/wiki-ui/src/views/view/View.vue b/zyplayer-doc-ui/wiki-ui/src/views/view/View.vue index c8230e24..1ac1614e 100644 --- a/zyplayer-doc-ui/wiki-ui/src/views/view/View.vue +++ b/zyplayer-doc-ui/wiki-ui/src/views/view/View.vue @@ -67,10 +67,10 @@ let emit = defineEmits(['switchSpace', 'changeExpandedKeys', 'loadPageList']); onMounted(() => { storeDisplay.currentPage = 'view'; storeDisplay.showHeader = true; - initQueryParam(route); + loadPageDetail(route.params); }); -onBeforeRouteUpdate((to) => { - initQueryParam(to); +onBeforeRouteUpdate((updateGuard) => { + loadPageDetail(updateGuard.params); }); // 页面展示相关 let wikiPage = ref({}); @@ -113,10 +113,17 @@ const afterLoadPage = () => { createNavigationHeading(); }, 500); } -const loadPageDetail = (pageId) => { - clearHistory(); +const loadPageDetail = (query) => { + clearPageData(); + let pageId = query.pageId; + let spaceId = query.spaceId; + if (!pageId || !spaceId) { + return; + } pageContent.value = ''; + storePage.pageLoadStatus = 1; pageApi.pageDetail({id: pageId}).then(async (json) => { + storePage.pageLoadStatus = 2; let result = json.data || {}; let wikiPageRes = result.wikiPage || {}; wikiPageRes.selfZan = result.selfZan || 0; @@ -150,6 +157,9 @@ const loadPageDetail = (pageId) => { storePage.pageInfo = wikiPageRes; storePage.pageAuth = wikiPageAuth.value; afterLoadPage(); + }).catch(e => { + console.log(e); + storePage.pageLoadStatus = 3; }); getPageHistory(pageId); } @@ -170,14 +180,6 @@ const createNavigationHeading = () => { let spaceId = ''; let pageId = ''; let pageContentRef = ref(); -const initQueryParam = (to) => { - spaceId = parseInt(to.params.spaceId); - pageId = parseInt(to.params.pageId); - clearPageData(); - if (!!pageId) { - loadPageDetail(pageId); - } -} const clearPageData = () => { wikiPage.value = {}; wikiPageAuth.value = {}; @@ -185,6 +187,8 @@ const clearPageData = () => { pageContentShow.value = ''; storePage.pageInfo = {}; storePage.pageAuth = {}; + storePage.fileList = []; + storePage.pageLoadStatus = 0; } @@ -202,7 +206,7 @@ const clearPageData = () => { overflow: auto; padding: 30px 20px; position: relative; - border-right: 1px solid #eee; + border-right: 1px solid #f0f0f0; .view-body-box { max-width: 840px; diff --git a/zyplayer-doc-ui/wiki-ui/src/views/view/aside/LeftAside.vue b/zyplayer-doc-ui/wiki-ui/src/views/view/aside/LeftAside.vue index e6ecb388..589196ff 100644 --- a/zyplayer-doc-ui/wiki-ui/src/views/view/aside/LeftAside.vue +++ b/zyplayer-doc-ui/wiki-ui/src/views/view/aside/LeftAside.vue @@ -42,7 +42,7 @@