跳转逻辑调整

master
zhangdi 3 months ago
parent 860caf69d5
commit e61f720f96
  1. 6
      src/api/system/menu.js
  2. 6
      src/page/index/index.vue
  3. 12
      src/page/login/authorization.vue
  4. 93
      src/permission.js
  5. 19
      src/router/axios.js
  6. 10
      src/store/modules/user.js

@ -97,11 +97,9 @@ export const getTopMenu = () => request({
method: 'get' method: 'get'
}); });
export const getRoutes = (roleId) => request({ export const getRoutes = (params) => request({
url: '/smartpark/menu/routes', url: '/smartpark/menu/routes',
method: 'get', method: 'get',
params: { params: params
roleId,
}
}); });

@ -69,7 +69,7 @@
mounted() { mounted() {
this.init(); this.init();
}, },
computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu"]), computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu","userInfo"]),
props: [], props: [],
methods: { methods: {
showCollapse() { showCollapse() {
@ -88,8 +88,10 @@
}, },
// //
openMenu(item = {}) { openMenu(item = {}) {
console.log("itemitemitemopenMenu", item) console.log("itemitemitemopenMenu", this.userInfo)
this.$store.dispatch("GetMenu", item.id).then(data => { this.$store.dispatch("GetMenu", item.id).then(data => {
console.log("每次刷新调用", data);
if (data.length !== 0) { if (data.length !== 0) {
this.$router.$avueRouter.formatRoutes(data, true); this.$router.$avueRouter.formatRoutes(data, true);
} }

@ -8,7 +8,9 @@ import { mapGetters } from "vuex";
export default { export default {
name: "authorization", name: "authorization",
computed: {
...mapGetters(["tagWel", "userInfo"])
},
data() { data() {
return {}; return {};
}, },
@ -28,13 +30,15 @@ export default {
this.$store this.$store
.dispatch("AuthLoginByUsername", res.data.result) .dispatch("AuthLoginByUsername", res.data.result)
.then(() => { .then(() => {
console.log("登录成功"); console.log("登录成功", res.data.result);
this.$router.push({ path: '/firstOrder/list' }); console.log("获取用户信息", this.tagWel.value);
// this.$router.push({ path: "/firstOrder/list" });
this.$router.push({path: this.tagWel.value});
loading.close(); loading.close();
}) })
.catch(() => { .catch(() => {
loading.close(); loading.close();
this.refreshCode(); // this.refreshCode();
}); });
}); });
}, },

@ -14,52 +14,53 @@ router.beforeEach((to, from, next) => {
const meta = to.meta || {}; const meta = to.meta || {};
const isMenu = meta.menu === undefined ? to.query.menu : meta.menu; const isMenu = meta.menu === undefined ? to.query.menu : meta.menu;
store.commit('SET_IS_MENU', isMenu === undefined); store.commit('SET_IS_MENU', isMenu === undefined);
if (getToken()) { // if (getToken()) {
if (store.getters.isLock && to.path !== lockPage) { //如果系统激活锁屏,全部跳转到锁屏页 // if (store.getters.isLock && to.path !== lockPage) { //如果系统激活锁屏,全部跳转到锁屏页
next({path: lockPage}) // next({path: lockPage})
} else if (to.path === '/login') { //如果登录成功访问登录页跳转到主页 // } else if (to.path === '/login') { //如果登录成功访问登录页跳转到主页
next({path: '/'}) // next({path: '/'})
} else { // } else {
//如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页 // //如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页
if (store.getters.token.length === 0) { // if (store.getters.token.length === 0) {
store.dispatch('FedLogOut').then(() => { // store.dispatch('FedLogOut').then(() => {
next({path: '/login'}) // next({path: '/login'})
}) // })
} else { // } else {
const value = to.query.src || to.fullPath; // const value = to.query.src || to.fullPath;
const label = to.query.name || to.name; // const label = to.query.name || to.name;
const meta = to.meta || router.$avueRouter.meta || {}; // const meta = to.meta || router.$avueRouter.meta || {};
const i18n = to.query.i18n; // const i18n = to.query.i18n;
if (to.query.target) { // if (to.query.target) {
window.open(value) // window.open(value)
} else if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) { // } else if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) {
store.commit('ADD_TAG', { // store.commit('ADD_TAG', {
label: label, // label: label,
value: value, // value: value,
params: to.params, // params: to.params,
query: to.query, // query: to.query,
meta: (() => { // meta: (() => {
if (!i18n) { // if (!i18n) {
return meta // return meta
} // }
return { // return {
i18n: i18n // i18n: i18n
} // }
})(), // })(),
group: router.$avueRouter.group || [] // group: router.$avueRouter.group || []
}); // });
} // }
next() // next()
} // }
} // }
} else { // } else {
//判断是否需要认证,没有登录访问去登录页 // //判断是否需要认证,没有登录访问去登录页
if (meta.isAuth === false) { // if (meta.isAuth === false) {
next() // next()
} else { // } else {
next('/login') // next('/login')
} // }
} // }
next()
}) })
router.afterEach(() => { router.afterEach(() => {

@ -53,7 +53,6 @@ axios.interceptors.request.use(config => {
}else{ }else{
config.url = baseUrl + config.url; config.url = baseUrl + config.url;
} }
console.log(99999,config.url.indexOf('smartpark')>0,baseUrl,config.url)
} }
//安全请求header //安全请求header
@ -71,11 +70,11 @@ axios.interceptors.request.use(config => {
//判断传递数据是否加密 //判断传递数据是否加密
const cryptoData = config.cryptoData === true; const cryptoData = config.cryptoData === true;
const token = getToken(); const token = getToken();
if (token && !isToken) { // if (token && !isToken) {
config.headers[website.tokenHeader] = cryptoToken // config.headers[website.tokenHeader] = cryptoToken
? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey) // ? 'crypto ' + crypto.encryptAES(token, crypto.cryptoKey)
: 'bearer ' + token; // : 'bearer ' + token;
} // }
// 开启报文加密 // 开启报文加密
if (cryptoData) { if (cryptoData) {
if (config.params) { if (config.params) {
@ -92,9 +91,9 @@ axios.interceptors.request.use(config => {
config.headers["Content-Type"] = "text/plain"; config.headers["Content-Type"] = "text/plain";
} }
//headers中配置serialize为true开启序列化 //headers中配置serialize为true开启序列化
if (config.method === 'post' && meta.isSerialize === true) { // if (config.method === 'post' && meta.isSerialize === true) {
config.data = serialize(config.data); // config.data = serialize(config.data);
} // }
return config; return config;
}, error => { }, error => {
return Promise.reject(error); return Promise.reject(error);
@ -115,7 +114,7 @@ axios.interceptors.response.use(res => {
//获取状态信息 //获取状态信息
const status = res.data.error_code || res.data.code || res.status; const status = res.data.error_code || res.data.code || res.status;
const statusWhiteList = website.statusWhiteList || []; const statusWhiteList = website.statusWhiteList || [];
const message = res.data.msg || res.data.error_description || '系统错误'; const message = res.data.message || res.data.error_description || '系统错误';
//如果在白名单里则自行catch逻辑处理 //如果在白名单里则自行catch逻辑处理
if (statusWhiteList.includes(status)) return Promise.reject(res); if (statusWhiteList.includes(status)) return Promise.reject(res);
// 如果是401并且没有重试过,尝试刷新token // 如果是401并且没有重试过,尝试刷新token

@ -279,10 +279,14 @@ const user = {
}) })
}, },
//获取系统菜单 //获取系统菜单
GetMenu({ commit, dispatch }, topMenuId) { GetMenu({ commit, dispatch }, userId) {
return new Promise(resolve => { return new Promise(resolve => {
//传roleId //传roleId
getRoutes().then((res) => { // 从浏览器中获取角色id
// let roleId = uni.getStorageSync('roleId');
// console.log(8888,'获取userid',state.userInfo)
getRoutes(userId).then((res) => {
const data = res.data.result const data = res.data.result
let menu = deepClone(data); let menu = deepClone(data);
menu.forEach(ele => { menu.forEach(ele => {
@ -290,7 +294,7 @@ const user = {
}); });
commit('SET_MENU_ALL', menu) commit('SET_MENU_ALL', menu)
commit('SET_MENU', menu) commit('SET_MENU', menu)
dispatch('GetButtons'); // dispatch('GetButtons');
resolve(menu) resolve(menu)
}) })

Loading…
Cancel
Save