ソースを参照

[FE] 海上定位导航权限

chenxr3 4 年 前
コミット
8edfdbbf81

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

63
import Services from '@/conf/services'
63
import Services from '@/conf/services'
64
import { KEY_USER_NAME } from '@/constants'
64
import { KEY_USER_NAME } from '@/constants'
65
import routers from '@/routes'
65
import routers from '@/routes'
66
import services from "../conf/services";
66
import services from '../conf/services'
67
import {
67
import {
68
  GENERATE_ROUTES
68
  GENERATE_ROUTES
69
} from '@/modules/ootb/permission/store/constants'
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
export default {
73
export default {
74
  name: 'Loginer',
74
  name: 'Loginer',
84
      rememberMe: false,
84
      rememberMe: false,
85
      verifiyCode: '',
85
      verifiyCode: '',
86
      loginForm: {
86
      loginForm: {
87
        userName: '',
88
        password: '',
89
        verifyCode: ''
87
        userName: 'admin',
88
        password: 'Abc@1234',
89
        verifyCode: 'zubk'
90
      },
90
      },
91
      loginFormRules: {
91
      loginFormRules: {
92
        userName: [
92
        userName: [
159
              .post(services.login.FIND_MENUS, {userCode: data.RESULT.CODE})
159
              .post(services.login.FIND_MENUS, {userCode: data.RESULT.CODE})
160
              .then((data) => {
160
              .then((data) => {
161
                var map = new Map()
161
                var map = new Map()
162
                console.log(data.RESULT)
162
                data.RESULT.forEach(e => {
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
                debugger
179
                debugger
174
                localStorage.setItem('menus',  JSON.stringify(map))
180
                localStorage.setItem('menus', JSON.stringify(map))
175
                store.dispatch(`permission/${GENERATE_ROUTES}`, roles)
181
                store.dispatch(`permission/${GENERATE_ROUTES}`, roles)
176
                this.$router.push({ name: this.homeName })
182
                this.$router.push({ name: this.homeName })
177
              })
183
              })
179
            this.loging = false
185
            this.loging = false
180
            this.$Message.danger(e)
186
            this.$Message.danger(e)
181
          })
187
          })
182
183
184
185
186
          // this.$test
188
          // this.$test
187
          //   .post(services.login.LOGIN, )
189
          //   .post(services.login.LOGIN, )
188
          //   .then((data) => {
190
          //   .then((data) => {

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

8
 * @returns {boolean}
8
 * @returns {boolean}
9
 */
9
 */
10
function hasPermission(permission, route) {
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
  }
44
  }
38
}
45
}
39
46
40
function filterAsyncRouter(routerMap, roles) {
47
function filterAsyncRouter(routerMap, roles, map) {
41
  const accessedRouters = routerMap.filter(route => {
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
      if (route.children && route.children.length) {
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
      return true
54
      return true
47
    }
55
    }
51
}
59
}
52
60
53
export function GenerateRoutes({ commit }, roles) {
61
export function GenerateRoutes({ commit }, roles) {
62
  var menus = JSON.parse(localStorage.getItem('menus'))
54
  return new Promise(resolve => {
63
  return new Promise(resolve => {
55
    let accessedRouters
64
    let accessedRouters
56
    accessedRouters = filterAsyncRouter(asyncRouterMap, roles)
65
    accessedRouters = filterAsyncRouter(asyncRouterMap, roles, menus)
57
    commit(SET_ROUTERS, accessedRouters)
66
    commit(SET_ROUTERS, accessedRouters)
58
    resolve()
67
    resolve()
59
  })
68
  })

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

201
      this.lockScreen()
201
      this.lockScreen()
202
    },
202
    },
203
    onLogoutItemClick() {
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
    onLangButtonClick() {
215
    onLangButtonClick() {
213
      if (this.lang === LANG_CN) {
216
      if (this.lang === LANG_CN) {

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

22
    },
22
    },
23
    component:() => import(/* webpackChunkName:"user" */ '@/modules/refresh.vue')
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
    name: 'index',
27
    name: 'index',
115
    path: '/',
28
    path: '/',