From f49eebe79d7c30b074f13fe46f453f59032dcda2 Mon Sep 17 00:00:00 2001 From: cxt104926 <1049266034@qq.com> Date: Tue, 27 Apr 2021 17:23:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B5=8C=E5=85=A5=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 + config/index.js | 6 +- src/api.js | 2 +- src/router/index.js | 54 +++++--- src/store/store.js | 4 +- src/views/login.vue | 4 +- src/views/manager/index.vue | 127 +++++++++---------- src/views/system/stuClass/index.vue | 4 +- src/views/system/stuIframe/index.vue | 46 +++++++ src/views/system/stuMenu/index.vue | 72 +++++++++++ src/views/system/{menu => welcome}/index.vue | 6 +- 11 files changed, 234 insertions(+), 94 deletions(-) create mode 100644 src/views/system/stuIframe/index.vue create mode 100644 src/views/system/stuMenu/index.vue rename src/views/system/{menu => welcome}/index.vue (69%) diff --git a/README.md b/README.md index bf32742..6cea8f8 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,9 @@ npm run build --report 注册 +菜单加载: + 登录成功后去后台查询菜单,在查询完菜单后,在根据用户去查询权限,将权限code也携带在菜单中,可以实现某一些页面中的按钮这个用户没有权限,就不显示。当然在后端的接口也要验证是否有权限,否则通过手动修改按钮显示也是可以实现数据传入后台。 + #### 2.软件架构 1. 系统环境 diff --git a/config/index.js b/config/index.js index 361fd9b..ff046b2 100644 --- a/config/index.js +++ b/config/index.js @@ -10,18 +10,18 @@ module.exports = { assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { - '/': { + '/api': { target: 'http://localhost:2020', // 请求的接口地址 changeOrigin: true, pathRewrite: { - '^/': '/' + '^/api': '/' } } }, // Various Dev Server settings host: 'localhost', // can be overwritten by process.env.HOST - port: 8088, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 2021, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined autoOpenBrowser: false, errorOverlay: true, notifyOnErrors: true, diff --git a/src/api.js b/src/api.js index bffd8df..97a9441 100644 --- a/src/api.js +++ b/src/api.js @@ -89,7 +89,7 @@ axios.interceptors.response.use(success => { /** * 封装请求 */ -let base = ''; +let base = 'api/'; export const postApi = (url, params) => { return axios({ method: 'post', diff --git a/src/router/index.js b/src/router/index.js index 82209f5..9c8182b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -3,17 +3,16 @@ import Router from 'vue-router' import login from '../views/login' import register from '../views/register/register' import manager from '../views/manager/index' -import menu from '../views/system/menu' -import stuClass from '../views/system/stuClass' +import de from "element-ui/src/locale/lang/de"; Vue.use(Router) const router = new Router({ routes: [ { - path: '', // 访问的地址 - redirect:'/login', // 重定向 - component: login // 组件名称 + path: '', // 访问的地址 + redirect: '/login', // 重定向 + component: login // 组件名称 }, { path: '/login', @@ -28,18 +27,32 @@ const router = new Router({ { path: '/manager', name: 'manager', - component: manager + redirect: '/system/welcome', + component: manager, + children: [ + { + path: '/system/welcome', + name: 'welcome', + component: () => import("../views/system/welcome") + }, + { + // 嵌入页面 + path: '/system/stuIframe', + name: 'stuIframe', + component: () => import("../views/system/stuIframe") + }, + { + path: '/system/stuMenu', + name: 'stuMenu', + component: () => import("../views/system/stuMenu") + }, + { + path: '/system/stuClass', + name: 'stuClass', + component: () => import("../views/system/stuClass") + } + ] }, - { - path: '/system/menu', - name: 'menu', - component: menu - }, - { - path: '/system/stuClass', - name: 'stuClass', - component: stuClass - } ] }); @@ -53,7 +66,14 @@ router.beforeEach((to, from, next) => { if (token === 'null' || token === '') { next('/login'); } else { - next(); + // 看是否是嵌入页面,嵌入页面url前缀有iframe: + let path = to.path; + if (path.indexOf("iframe:") !== -1) { + // router.push('/system/iframe'); + router.push({path: '/system/stuIframe', query: {url: path}}); + } else { + next(); + } } } }); diff --git a/src/store/store.js b/src/store/store.js index 890b140..46ad93c 100644 --- a/src/store/store.js +++ b/src/store/store.js @@ -6,7 +6,7 @@ vue.use(vuex) export default new vuex.Store({ state: { routes: [], - userInfo: [] + userInfo: [], }, // 同步 @@ -26,7 +26,7 @@ export default new vuex.Store({ userInfo(state, data) { state.userInfo = data; localStorage.setItem("userInfo", JSON.stringify(data)); - } + }, }, // 异步 diff --git a/src/views/login.vue b/src/views/login.vue index a5a1c4d..db5736c 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -44,7 +44,7 @@ verification: "" }, rememberMe: true, - imgSrc: "/getVerify?temp=" + new Date(), + imgSrc: "/api/getVerify?temp=" + new Date(), message: "", addAndEditRules: { account: { @@ -68,7 +68,7 @@ created() {}, methods: { getVerification() { - this.imgSrc = "/getVerify?temp=" + +new Date(); + this.imgSrc = "/api/getVerify?temp=" + +new Date(); }, handleConfirmEvent() { this.$refs.loginFrom.validate(valid => { diff --git a/src/views/manager/index.vue b/src/views/manager/index.vue index a9eb3fb..5d7eb64 100644 --- a/src/views/manager/index.vue +++ b/src/views/manager/index.vue @@ -1,12 +1,12 @@