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 @@
+
+ 文档管理系统 - 账号登录
+
+