Преглед на файлове

[FE] 海上定位导航权限

chenxr3 преди 4 години
родител
ревизия
8edfdbbf81

+ 19 - 17
ebc-middle-platform/src/components/loginer.vue

@ -63,12 +63,12 @@ import { mapActions, mapState, mapMutations } from 'vuex'
63 63
import Services from '@/conf/services'
64 64
import { KEY_USER_NAME } from '@/constants'
65 65
import routers from '@/routes'
66
import services from "../conf/services";
66
import services from '../conf/services'
67 67
import {
68 68
  GENERATE_ROUTES
69 69
} from '@/modules/ootb/permission/store/constants'
70
import store from '../store';
71
import {SET_ROUTERS} from "../modules/ootb/permission/store/constants";
70
import store from '../store'
71
import {SET_ROUTERS} from '../modules/ootb/permission/store/constants'
72 72
73 73
export default {
74 74
  name: 'Loginer',
@ -84,9 +84,9 @@ export default {
84 84
      rememberMe: false,
85 85
      verifiyCode: '',
86 86
      loginForm: {
87
        userName: '',
88
        password: '',
89
        verifyCode: ''
87
        userName: 'admin',
88
        password: 'Abc@1234',
89
        verifyCode: 'zubk'
90 90
      },
91 91
      loginFormRules: {
92 92
        userName: [
@ -159,19 +159,25 @@ export default {
159 159
              .post(services.login.FIND_MENUS, {userCode: data.RESULT.CODE})
160 160
              .then((data) => {
161 161
                var map = new Map()
162
                console.log(data.RESULT)
162 163
                data.RESULT.forEach(e => {
163
                  if (e.ROOT_MENU){
164
                    map.set(e.ROOT_MENU[0].NAME,e.ROOT_MENU[0].ID)
164
                  if (e.ROOT_MENU) {
165
                    map.set(e.ROOT_MENU[0].VIEWNAME, e.ROOT_MENU[0].ID)
165 166
                  }
166
                  map.set(e.NAME,e.ID)
167
                  if (e.menu_list) {
168
                    e.menu_list.forEach( m => {
169
                      map.set(m.NAME,m.ID)
167
                  map.set(e.menu_list[0].VIEWNAME, e.ID)
168
                  if (e.child_list) {
169
                    e.child_list.forEach(m => {
170
                      map.set(m.menu_list[0].VIEWNAME, m.ID)
171
                      if (m.child_list) {
172
                        m.child_list.forEach(mn => {
173
                          map.set(mn.menu_list[0].VIEWNAME, mn.ID)
174
                        })
175
                      }
170 176
                    })
171 177
                  }
172 178
                })
173 179
                debugger
174
                localStorage.setItem('menus',  JSON.stringify(map))
180
                localStorage.setItem('menus', JSON.stringify(map))
175 181
                store.dispatch(`permission/${GENERATE_ROUTES}`, roles)
176 182
                this.$router.push({ name: this.homeName })
177 183
              })
@ -179,10 +185,6 @@ export default {
179 185
            this.loging = false
180 186
            this.$Message.danger(e)
181 187
          })
182
183
184
185
186 188
          // this.$test
187 189
          //   .post(services.login.LOGIN, )
188 190
          //   .then((data) => {

+ 23 - 14
ebc-middle-platform/src/modules/ootb/permission/store/actions.js

@ -8,17 +8,24 @@ import { SET_ROUTERS } from './constants'
8 8
 * @returns {boolean}
9 9
 */
10 10
function hasPermission(permission, route) {
11
  if (route.meta && route.meta.permission) {
12
    let flag = -1
13
    for (let i = 0, len = permission.length; i < len; i++) {
14
      flag = route.meta.permission.indexOf(permission[i])
15
      if (flag >= 0) {
16
        return true
17
      }
11
  // if (route.meta && route.meta.permission) {
12
  //   let flag = -1
13
  //   for (let i = 0, len = permission.length; i < len; i++) {
14
  //     flag = route.meta.permission.indexOf(permission[i])
15
  //     if (flag >= 0) {
16
  //       return true
17
  //     }
18
  //   }
19
  //   return false
20
  // }
21
  // return true
22
  var x = false
23
  permission.forEach(e => {
24
    if (e[0] === route.path){
25
      x = true
18 26
    }
19
    return false
20
  }
21
  return true
27
  })
28
  return x
22 29
}
23 30
24 31
/**
@ -37,11 +44,12 @@ function hasRole(roles, route) {
37 44
  }
38 45
}
39 46
40
function filterAsyncRouter(routerMap, roles) {
47
function filterAsyncRouter(routerMap, roles, map) {
41 48
  const accessedRouters = routerMap.filter(route => {
42
    if (hasPermission(roles.permissionList, route)) {
49
    // if (hasPermission(roles.permissionList, route) && map[route.path] || route.path === '/') {
50
    if (hasPermission(map, route) || route.path === '/') {
43 51
      if (route.children && route.children.length) {
44
        route.children = filterAsyncRouter(route.children, roles)
52
        route.children = filterAsyncRouter(route.children, roles, map)
45 53
      }
46 54
      return true
47 55
    }
@ -51,9 +59,10 @@ function filterAsyncRouter(routerMap, roles) {
51 59
}
52 60
53 61
export function GenerateRoutes({ commit }, roles) {
62
  var menus = JSON.parse(localStorage.getItem('menus'))
54 63
  return new Promise(resolve => {
55 64
    let accessedRouters
56
    accessedRouters = filterAsyncRouter(asyncRouterMap, roles)
65
    accessedRouters = filterAsyncRouter(asyncRouterMap, roles, menus)
57 66
    commit(SET_ROUTERS, accessedRouters)
58 67
    resolve()
59 68
  })

+ 10 - 7
ebc-middle-platform/src/modules/page/GlobalHeader.vue

@ -201,13 +201,16 @@ export default {
201 201
      this.lockScreen()
202 202
    },
203 203
    onLogoutItemClick() {
204
      this.doLogout().then(() => {
205
        this.$router.push({
206
          name: 'login'
207
        })
208
        // 清除标签导航
209
        window.localStorage.removeItem('tagNaveList')
210
      })
204
      // this.doLogout().then(() => {
205
      //   this.$router.push({
206
      //     name: 'login'
207
      //   })
208
      //   // 清除标签导航
209
      //   window.localStorage.removeItem('tagNaveList')
210
      // })
211
      this.$store.commit('setLogged', false)
212
      this.$router.push({ name: 'login' })
213
      window.localStorage.removeItem('tagNaveList')
211 214
    },
212 215
    onLangButtonClick() {
213 216
      if (this.lang === LANG_CN) {

+ 1 - 88
ebc-middle-platform/src/routes.js

@ -22,94 +22,7 @@ export default [
22 22
    },
23 23
    component:() => import(/* webpackChunkName:"user" */ '@/modules/refresh.vue')
24 24
  },
25
  {
26
    name: 'register-select-way',
27
    path: '/register-select-way',
28
    meta: {
29
      ignoreAuth: true
30
    },
31
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/register/register-select-way.vue')
32
  },
33
  {
34
    name: 'register-account-existed',
35
    path: '/register-account-existed',
36
    meta: {
37
      ignoreAuth: true
38
    },
39
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/register/register-account-existed.vue')
40
  },
41
  {
42
    name: 'register-by-phone',
43
    path: '/register-by-phone',
44
    meta: {
45
      ignoreAuth: true
46
    },
47
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/register/register-by-phone.vue')
48
  },
49
  {
50
    name: 'register-by-email',
51
    path: '/register-by-email',
52
    meta: {
53
      ignoreAuth: true
54
    },
55
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/register/register-by-email.vue')
56
  },
57
  {
58
    name: 'register-success',
59
    path: '/register-success',
60
    meta: {
61
      ignoreAuth: true
62
    },
63
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/register/register-success.vue')
64
  },
65
  {
66
    name: 'register-email-validate',
67
    path: '/register-email-validate',
68
    meta: {
69
      ignoreAuth: true
70
    },
71
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/register/register-email-validate.vue')
72
  },
73
  {
74
    name: 'find-password',
75
    path: '/find-password',
76
    meta: {
77
      ignoreAuth: true
78
    },
79
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/find-password/find-password.vue')
80
  },
81
  {
82
    name: 'find-password-phone',
83
    path: '/find-password-phone',
84
    meta: {
85
      ignoreAuth: true
86
    },
87
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/find-password/find-password-phone.vue')
88
  },
89
  {
90
    name: 'find-password-email',
91
    path: '/find-password-email',
92
    meta: {
93
      ignoreAuth: true
94
    },
95
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/find-password/find-password-email.vue')
96
  },
97
  {
98
    name: 'find-password-email-validate',
99
    path: '/find-password-email-validate',
100
    meta: {
101
      ignoreAuth: true
102
    },
103
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/find-password/find-password-email-validate.vue')
104
  },
105
  {
106
    name: 'find-password-success',
107
    path: '/find-password-success',
108
    meta: {
109
      ignoreAuth: true
110
    },
111
    component: () => import(/* webpackChunkName: "user" */ '@/modules/user/find-password/find-password-success.vue')
112
  },
25
113 26
  {
114 27
    name: 'index',
115 28
    path: '/',