GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
登录
master
1 parent
d742b70
commit
133dbc9b85bb6c5bacfaf8894949529df2ec060d
20278
authored
on 23 Aug 2021
Showing
2 changed files
project/hivuiMain/store/modules/app.js
project/hivuiMain/utils/request.js
Ignore Space
Show notes
View
project/hivuiMain/store/modules/app.js
import { getMenus, getQuickNav,getLeastRecentlyUsed,getPermissions } from '../../api/menu' const portal = { namespaced: true, state: { powerList:[], menusList:[], menus:[], defTabs: [], navs: [], latelyNavs:[], config:window.__sysConfig }, mutations: { SET_powerList: (state, powerList) => { state.powerList = powerList }, SET_menusList: (state, menusList) => { state.menusList = menusList }, SET_menus: (state, menus) => { state.menus = menus }, SET_defTabs: (state, data) => { state.defTabs = data }, SET_navs: (state, navs) => { state.navs = navs }, SET_latelyNavs: (state, latelyNavs) => { state.latelyNavs = latelyNavs }, }, actions: { //取功能菜单 async getMenus({ commit, state }) { await getMenus().then(res => { if(res.status==500){ if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; }else{ location="/"+projectName+"/hivuiLogin/index.html#/"; } } const data = res.dataPack; commit('SET_menusList', [...data]); console.log(`SET_menusList:`,data); let treeData=[...data],defTabs=[]; getActiveItem(treeData); /*获取默认打开项*/ function getActiveItem(_arr){ for(let item of _arr){ _arr.map(item=>{ //构建 树 map if(item.children&&item.children.length>0){ getActiveItem(item.children); } for(let i = (state.defTabs||[]).length-1;i>=0;i--){ if(state.defTabs[i].fresguid!=item.fresguid){ defTabs.push(item); break; } } }); } } commit('SET_defTabs', [...defTabs,...state.defTabs]); console.info('menusTree:',treeData); commit('SET_menus', treeData); return data; }); }, //取左侧快速 async getQuickNav({ commit, state }) { await getQuickNav().then(res => { const data = res.data.dataPack.rows; console.log(`getQuickNav`) let defTabs=[],flag=false; data.map(item=>{ flag=false; for(let i = state.defTabs.length-1;i>=0;i--){ if(state.defTabs[i].resId==item.resId){ flag = true; break; } } if(item.isActive&&!flag) defTabs.push(item); }); commit('SET_defTabs', [...defTabs,...state.defTabs]); commit('SET_navs', data); return data; }); }, setQuickNav({ commit, state },data){ commit('SET_navs', data); }, async getLatelyUse({ commit, state }){ let me =this; await getLeastRecentlyUsed(me.state.user.id).then(res => { const data = res.data.dataPack.rows; commit('SET_latelyNavs', data); return data; }); }, //取功能权限 async getPowers({ commit, state }) { await getPermissions(this.state.user.id).then(res => { const data = res.data.dataPack.rows; commit('SET_powerList', [...data]); }); }, } } export default portal
import { getMenus, getQuickNav,getLeastRecentlyUsed,getPermissions } from '../../api/menu' const portal = { namespaced: true, state: { powerList:[], menusList:[], menus:[], defTabs: [], navs: [], latelyNavs:[], config:window.__sysConfig }, mutations: { SET_powerList: (state, powerList) => { state.powerList = powerList }, SET_menusList: (state, menusList) => { state.menusList = menusList }, SET_menus: (state, menus) => { state.menus = menus }, SET_defTabs: (state, data) => { state.defTabs = data }, SET_navs: (state, navs) => { state.navs = navs }, SET_latelyNavs: (state, latelyNavs) => { state.latelyNavs = latelyNavs }, }, actions: { //取功能菜单 async getMenus({ commit, state }) { await getMenus().then(res => { if(res.status==500){ location="/"+projectName+"/hivuiLogin/index.html#/"; } const data = res.dataPack; commit('SET_menusList', [...data]); console.log(`SET_menusList:`,data); let treeData=[...data],defTabs=[]; getActiveItem(treeData); /*获取默认打开项*/ function getActiveItem(_arr){ for(let item of _arr){ _arr.map(item=>{ //构建 树 map if(item.children&&item.children.length>0){ getActiveItem(item.children); } for(let i = (state.defTabs||[]).length-1;i>=0;i--){ if(state.defTabs[i].fresguid!=item.fresguid){ defTabs.push(item); break; } } }); } } commit('SET_defTabs', [...defTabs,...state.defTabs]); console.info('menusTree:',treeData); commit('SET_menus', treeData); return data; }); }, //取左侧快速 async getQuickNav({ commit, state }) { await getQuickNav().then(res => { const data = res.data.dataPack.rows; console.log(`getQuickNav`) let defTabs=[],flag=false; data.map(item=>{ flag=false; for(let i = state.defTabs.length-1;i>=0;i--){ if(state.defTabs[i].resId==item.resId){ flag = true; break; } } if(item.isActive&&!flag) defTabs.push(item); }); commit('SET_defTabs', [...defTabs,...state.defTabs]); commit('SET_navs', data); return data; }); }, setQuickNav({ commit, state },data){ commit('SET_navs', data); }, async getLatelyUse({ commit, state }){ let me =this; await getLeastRecentlyUsed(me.state.user.id).then(res => { const data = res.data.dataPack.rows; commit('SET_latelyNavs', data); return data; }); }, //取功能权限 async getPowers({ commit, state }) { await getPermissions(this.state.user.id).then(res => { const data = res.data.dataPack.rows; commit('SET_powerList', [...data]); }); }, } } export default portal
Ignore Space
Show notes
View
project/hivuiMain/utils/request.js
import {baseURL,projectName} from '@main/config' // import { MessageBox, Message } from 'element-ui' import Message from '@main/components/vue-m-message' import store from '@main/store' import { getToken } from '@main/utils/auth' import axios from 'axios' // create an axios instance const service = axios.create({ // withCredentials: true, //加了这个 要明确那个地址跨域才行 baseURL: baseURL, // api的base_url timeout: 5000 // request timeout }) // request interceptor service.interceptors.request.use( config => { // do something before request is sent if (store.getters.token) { // let each request carry token // ['X-Token'] is a custom headers key // please modify it according to the actual situation config.headers['token'] = getToken() config.headers['Authorization'] = "Bearer " + getToken() }else{ //没有token,跳转登录页 if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; }else{ location="/"+projectName+"/hivuiLogin/index.html#/"; } } if (config.url.indexOf('?')==-1) config.url = config.url+"?pn="+projectName; else config.url = config.url+"&pn="+projectName; return config }, error => { // Do something with request error Promise.reject(error) } ) // respone interceptor service.interceptors.response.use( //response => response, /** * 下面的注释为通过response自定义code来标示请求状态,当code返回如下情况为权限有问题,登出并返回到登录页 * 如通过xmlhttprequest 状态码标识 逻辑可写在下面error中 (response) => { const res = response.data; if (res.code !== 0) { return Promise.reject('error'); } else { return res; } }, */ response => { const res = response.data if (res.type == "application/octet-stream") return res; // if the custom code is not 20000, it is judged as an error. if (!(response.status+"" == "200" || res.status+"" =="200")) { Message.error(res.msg || res.message || 'Error') /*Message({ message: res.msg || res.message || 'Error', type: 'error', duration: 5 * 1000 })*/ // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; if (res.code === 50008 || res.code === 50012 || res.code === 50014) { // to re-login /*MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { confirmButtonText: 'Re-Login', cancelButtonText: 'Cancel', type: 'warning' }).then(() => { store.dispatch('user/resetToken').then(() => { location.reload() }) })*/ if(confirm('You have been logged out, you can cancel to stay on this page, or log in again')){ store.dispatch('user/resetToken').then(() => { location.reload() }) } }else if(error.response.status+"" == "401" || error.response.data.status+"" =="401"){ if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; } } //return Promise.reject(new Error(res.message || 'Error')) return Promise.reject(res) } else { if(res.status+"" =="200"){ res.dataPack = res.dataPack || res.data return res }else{ debugger; console.error(res.msg || res.message || 'Error'); Message.error(res.msg || res.message || 'Error') } } }, error => { console.log('err' + error) // for debug Message.error(error.msg||error.message) if(error.response.status+"" == "401" || error.response.data.status+"" =="401"){ if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; } } return Promise.reject(error) }) export default service
import {baseURL,projectName} from '@main/config' // import { MessageBox, Message } from 'element-ui' import Message from '@main/components/vue-m-message' import store from '@main/store' import { getToken } from '@main/utils/auth' import axios from 'axios' // create an axios instance const service = axios.create({ // withCredentials: true, //加了这个 要明确那个地址跨域才行 baseURL: baseURL, // api的base_url timeout: 5000 // request timeout }) // request interceptor service.interceptors.request.use( config => { // do something before request is sent if (store.getters.token) { // let each request carry token // ['X-Token'] is a custom headers key // please modify it according to the actual situation config.headers['token'] = getToken() config.headers['Authorization'] = "Bearer " + getToken() }else{ //没有token,跳转登录页 location="/"+projectName+"/hivuiLogin/index.html#/"; } if (config.url.indexOf('?')==-1) config.url = config.url+"?pn="+projectName; else config.url = config.url+"&pn="+projectName; return config }, error => { // Do something with request error Promise.reject(error) } ) // respone interceptor service.interceptors.response.use( //response => response, /** * 下面的注释为通过response自定义code来标示请求状态,当code返回如下情况为权限有问题,登出并返回到登录页 * 如通过xmlhttprequest 状态码标识 逻辑可写在下面error中 (response) => { const res = response.data; if (res.code !== 0) { return Promise.reject('error'); } else { return res; } }, */ response => { const res = response.data if (res.type == "application/octet-stream") return res; // if the custom code is not 20000, it is judged as an error. if (!(response.status+"" == "200" || res.status+"" =="200")) { Message.error(res.msg || res.message || 'Error') /*Message({ message: res.msg || res.message || 'Error', type: 'error', duration: 5 * 1000 })*/ // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; if (res.code === 50008 || res.code === 50012 || res.code === 50014) { // to re-login /*MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { confirmButtonText: 'Re-Login', cancelButtonText: 'Cancel', type: 'warning' }).then(() => { store.dispatch('user/resetToken').then(() => { location.reload() }) })*/ if(confirm('You have been logged out, you can cancel to stay on this page, or log in again')){ store.dispatch('user/resetToken').then(() => { location.reload() }) } }else if(error.response.status+"" == "401" || error.response.data.status+"" =="401"){ if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; } } //return Promise.reject(new Error(res.message || 'Error')) return Promise.reject(res) } else { if(res.status+"" =="200"){ res.dataPack = res.dataPack || res.data return res }else{ debugger; console.error(res.msg || res.message || 'Error'); Message.error(res.msg || res.message || 'Error') } } }, error => { console.log('err' + error) // for debug Message.error(error.msg||error.message) if(error.response.status+"" == "401" || error.response.data.status+"" =="401"){ if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; } } return Promise.reject(error) }) export default service
Show line notes below