diff --git a/zyplayer-doc-ui/wiki-ui/src/assets/api/request.js b/zyplayer-doc-ui/wiki-ui/src/assets/api/request.js index 86bf3bca..0ff2bc12 100644 --- a/zyplayer-doc-ui/wiki-ui/src/assets/api/request.js +++ b/zyplayer-doc-ui/wiki-ui/src/assets/api/request.js @@ -1,4 +1,5 @@ import axios from 'axios'; +import router from '@/routes.js' import {ElMessageBox, ElMessage} from 'element-plus'; const service = axios.create({ @@ -24,7 +25,6 @@ service.interceptors.request.use((config) => { return Promise.reject(error); } ); -let lastToastLoginTime = new Date().getTime(); service.interceptors.response.use( (response) => { if (!!response.message) { @@ -33,13 +33,9 @@ service.interceptors.response.use( if (!response.config.needValidateResult || response.data.errCode === 200) { return response.data; } else if (response.data.errCode === 400) { - // 两秒钟只提示一次 - if (new Date().getTime() - lastToastLoginTime > 2000) { - ElMessage.warning('请先登录'); - lastToastLoginTime = new Date().getTime(); - } - let href = encodeURIComponent(window.location.href); - window.location = import.meta.env.VITE_APP_BASE_API + '#/user/login?redirect=' + href; + let redirectUrl = getRedirectUrl(); + router.push({path: `/user/login`, query: {redirect: redirectUrl}}); + return Promise.reject(response.data); } else if (response.data.errCode !== 200) { ElMessage.error(response.data.errMsg || '未知错误'); } @@ -51,4 +47,16 @@ service.interceptors.response.use( return Promise.reject(error); } ); +function getRedirectUrl() { + let redirectUrl = ''; + let locationHref = window.location.href; + if (locationHref.indexOf('?') >= 0) { + let reg = new RegExp('(^|&)redirect=([^&]*)(&|$)', 'i'); + let r = locationHref.substring(locationHref.indexOf('?') + 1).match(reg); + if (r != null) { + redirectUrl = unescape(r[2]); + } + } + return redirectUrl || encodeURIComponent(window.location.href); +} export default service diff --git a/zyplayer-doc-ui/wiki-ui/src/assets/img/login-bg.jpg b/zyplayer-doc-ui/wiki-ui/src/assets/img/login-bg.jpg new file mode 100644 index 00000000..1c04f22a Binary files /dev/null and b/zyplayer-doc-ui/wiki-ui/src/assets/img/login-bg.jpg differ diff --git a/zyplayer-doc-ui/wiki-ui/src/assets/img/space-bg-1.png b/zyplayer-doc-ui/wiki-ui/src/assets/img/space-bg-1.png new file mode 100644 index 00000000..7d421a3e Binary files /dev/null and b/zyplayer-doc-ui/wiki-ui/src/assets/img/space-bg-1.png differ diff --git a/zyplayer-doc-ui/wiki-ui/src/main.js b/zyplayer-doc-ui/wiki-ui/src/main.js index 06719778..e8d16c32 100644 --- a/zyplayer-doc-ui/wiki-ui/src/main.js +++ b/zyplayer-doc-ui/wiki-ui/src/main.js @@ -1,7 +1,6 @@ import hljs from 'highlight.js'; import {createApp} from 'vue'; import App from './App.vue'; -import {createRouter, createWebHashHistory} from 'vue-router'; import ElementUI from 'element-plus'; import Antd from 'ant-design-vue'; import zhCn from 'element-plus/es/locale/lang/zh-cn'; @@ -15,10 +14,6 @@ import './assets/scss/markdown.scss'; import './assets/scss/pageView.scss'; import './assets/scss/base.scss'; -const router = createRouter({ - history: createWebHashHistory(), - routes, -}); const app = createApp(App); app.config.productionTip = false; app.use(Antd); @@ -26,7 +21,7 @@ app.use(ElementUI, { locale: zhCn, }); app.use(Vant); -app.use(router); +app.use(routes); app.use(createPinia()); app.mount('#app'); diff --git a/zyplayer-doc-ui/wiki-ui/src/routes.js b/zyplayer-doc-ui/wiki-ui/src/routes.js index db3a0f2b..08d0ab9e 100644 --- a/zyplayer-doc-ui/wiki-ui/src/routes.js +++ b/zyplayer-doc-ui/wiki-ui/src/routes.js @@ -1,4 +1,8 @@ +import Login from './views/user/Login.vue'; import PageLayout from './views/view/PageLayout.vue'; +import WikiLayout from './views/wiki/Layout.vue'; + +import WikiSpace from './views/wiki/Wiki.vue'; // import ShareLayout from './components/layouts/ShareLayout.vue'; // import ShareMobileLayout from './components/layouts/ShareMobileLayout.vue'; @@ -16,51 +20,63 @@ import Edit from './views/view/Edit.vue'; // import sharePcView from './views/page/share/pc/View.vue'; // import shareMobileView from './views/page/share/mobile/View.vue'; -let routes = [ - {path: '/', redirect: '/home'}, - {path: '/page/search', name: 'WIKI-全局搜索', component: NoAuth}, - {path: '/common/noAuth', name: 'WIKI-没有权限', component: NoAuth}, - { - path: '/', - name: '文档管理', - component: PageLayout, - children: [ - {path: '/home', name: 'WIKI文档管理', component: NoAuth}, - {path: '/user/myInfo', name: 'WIKI-我的信息', component: NoAuth}, - {path: '/view/:spaceId?/:pageId?', name: 'WIKI-页面查看', component: Show}, - {path: '/edit/:spaceId/:pageId', name: 'WIKI-编辑内容', component: Edit}, - {path: '/space/manage', name: 'WIKI-空间管理', component: NoAuth}, - ], - }, - { - path: '/', - name: 'PC端开放文档', - component: NoAuth, - children: [ - { - path: '/page/share/home', - name: 'WIKI-开放文档', - component: NoAuth, - }, - { - path: '/page/share/view', - name: 'WIKI-内容展示', - component: NoAuth, - }, - ], - }, - { - path: '/', - name: 'APP端开放文档', - component: NoAuth, - children: [ - { - path: '/page/share/mobile/view', - name: 'WIKI-开放文档-APP', - component: NoAuth, - }, - ], - }, -]; +import {createRouter, createWebHashHistory} from 'vue-router'; -export default routes; +export default createRouter({ + history: createWebHashHistory(), + routes: [ + {path: '/', redirect: '/wiki/space'}, + {path: '/user/login', name: 'systemLogin', component: Login}, + {path: '/page/search', name: 'WIKI-全局搜索', component: NoAuth}, + {path: '/common/noAuth', name: 'WIKI-没有权限', component: NoAuth}, + { + path: '/', + name: 'WikiLayout', + component: WikiLayout, + children: [ + {path: '/wiki/space', name: 'WIKI文档管理', component: WikiSpace}, + ], + }, + { + path: '/', + name: '文档管理', + component: PageLayout, + children: [ + // {path: '/home', name: 'WIKI文档管理', component: NoAuth}, + {path: '/user/myInfo', name: 'WIKI-我的信息', component: NoAuth}, + {path: '/view/:spaceId?/:pageId?', name: 'WIKI-页面查看', component: Show}, + {path: '/edit/:spaceId/:pageId', name: 'WIKI-编辑内容', component: Edit}, + {path: '/space/manage', name: 'WIKI-空间管理', component: NoAuth}, + ], + }, + { + path: '/', + name: 'PC端开放文档', + component: NoAuth, + children: [ + { + path: '/page/share/home', + name: 'WIKI-开放文档', + component: NoAuth, + }, + { + path: '/page/share/view', + name: 'WIKI-内容展示', + component: NoAuth, + }, + ], + }, + { + path: '/', + name: 'APP端开放文档', + component: NoAuth, + children: [ + { + path: '/page/share/mobile/view', + name: 'WIKI-开放文档-APP', + component: NoAuth, + }, + ], + }, + ] +}); diff --git a/zyplayer-doc-ui/wiki-ui/src/store/spaceData.js b/zyplayer-doc-ui/wiki-ui/src/store/spaceData.js index af81a655..f7e59d97 100644 --- a/zyplayer-doc-ui/wiki-ui/src/store/spaceData.js +++ b/zyplayer-doc-ui/wiki-ui/src/store/spaceData.js @@ -3,10 +3,11 @@ import {defineStore} from 'pinia'; export const useStoreSpaceData = defineStore('spaceData', { state: () => { return { - spaceInfo:{}, - chooseSpaceId:1, + spaceInfo: {}, + chooseSpaceId: 1, spaceOptions: [], - spaceList:[] + spaceList: [], + wholeSpaceList: [], } }, }); diff --git a/zyplayer-doc-ui/wiki-ui/src/store/userData.js b/zyplayer-doc-ui/wiki-ui/src/store/userData.js index 2df1d13c..84566bee 100644 --- a/zyplayer-doc-ui/wiki-ui/src/store/userData.js +++ b/zyplayer-doc-ui/wiki-ui/src/store/userData.js @@ -6,6 +6,9 @@ export const useStoreUserData = defineStore('userData', { // 用户信息 userInfo: {}, upgradeInfo: {}, + // 左侧菜单的路由和收起状态 + menuRouteKey: [], + menuCollapsed: false, } }, }); diff --git a/zyplayer-doc-ui/wiki-ui/src/views/user/Login.vue b/zyplayer-doc-ui/wiki-ui/src/views/user/Login.vue new file mode 100644 index 00000000..00c1f2de --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/user/Login.vue @@ -0,0 +1,108 @@ + + + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/user/LoginFooter.vue b/zyplayer-doc-ui/wiki-ui/src/views/user/LoginFooter.vue new file mode 100644 index 00000000..6f9670f0 --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/user/LoginFooter.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/view/Edit.vue b/zyplayer-doc-ui/wiki-ui/src/views/view/Edit.vue index ef656c11..95654406 100644 --- a/zyplayer-doc-ui/wiki-ui/src/views/view/Edit.vue +++ b/zyplayer-doc-ui/wiki-ui/src/views/view/Edit.vue @@ -17,10 +17,10 @@
-
+
+ class="page-content-editor wang-editor-body" style="height: calc(100vh - 80px);z-index: 1;"/>
@@ -219,8 +219,8 @@ const addMarkdownImage = (pos, file) => { diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/Wiki.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/Wiki.vue new file mode 100644 index 00000000..2fbcb0f6 --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/Wiki.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/ConsoleMenu.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/ConsoleMenu.vue new file mode 100644 index 00000000..6cacf132 --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/ConsoleMenu.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/HeaderView.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/HeaderView.vue new file mode 100644 index 00000000..36c65cd0 --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/HeaderView.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/UserHead.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/UserHead.vue new file mode 100644 index 00000000..8e626e39 --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/aside/UserHead.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/CreateRow.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/CreateRow.vue new file mode 100644 index 00000000..83e1b997 --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/CreateRow.vue @@ -0,0 +1,35 @@ + + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/CreateSpace.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/CreateSpace.vue new file mode 100644 index 00000000..0ff5866a --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/CreateSpace.vue @@ -0,0 +1,106 @@ + + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/SpaceCard.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/SpaceCard.vue new file mode 100644 index 00000000..6c92e6be --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/SpaceCard.vue @@ -0,0 +1,177 @@ + + + + + + diff --git a/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/Whole.vue b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/Whole.vue new file mode 100644 index 00000000..a412cf7e --- /dev/null +++ b/zyplayer-doc-ui/wiki-ui/src/views/wiki/space/Whole.vue @@ -0,0 +1,67 @@ + + + + +