diff --git a/src/api/login.js b/src/api/login.js index d2ef9a5f..695083cc 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,38 +1,93 @@ import axios from '@/utils/request' +import { getToken, setToken, removeToken,getCacheUserInfo,setCacheUserInfo,removeCacheUserInfo} from '@/utils/auth' + import config from '@/common/config' let base=config.getOauth2LoginBasePath(); //let base=''; -export function loginByUsername(username, password,deptid) { +export function doLoginByUserloginid(userloginid, password,grantType,authType,deptid) { + removeToken(); const data = { - userloginid: username, + userloginid: userloginid, password: password, - authType:'password_display_userid', + authType:authType, deptid:deptid } return axios({ - url: base+'/login/token?grantType=password', + url: base+'/login/token?grantType='+grantType, method: 'post', data }) } -export function loginByPhoneno(phoneno, smsCode,isAdmin,deptid) { +export function checkUserid(userid ) { + removeToken(); const data = { - userloginid: phoneno, - password: smsCode, - authType:'sms', - isAdmin:true, - deptid:deptid + userid: userid + } + return axios({ + url: base+'/user/check/userid', + method: 'post', + data + }) +} +export function checkDisplayUserid(displayUserid ) { + removeToken(); + const data = { + displayUserid: displayUserid + } + return axios({ + url: base+'/user/check/displayUserid', + method: 'post', + data + }) +} + +export function checkPhoneno(phoneno ) { + removeToken(); + const data = { + phoneno: phoneno + } + return axios({ + url: base+'/user/check/phoneno', + method: 'post', + data + }) +} +export function doRegister( userInfo ) { + removeToken(); + const data = { + username:userInfo.username, + userid:userInfo.displayUserid, + displayUserid:userInfo.displayUserid, + password:userInfo.password, + phoneno:userInfo.phoneno, + smsCode:userInfo.smsCode, + deptid:userInfo.deptid } return axios({ - url: base+'/login/token?grantType=password', + url: base+'/user/register', + method: 'post', + data + }) +} + +export function resetPasswordByPhoneno( userInfo ) { + removeToken(); + const data = { + newPassword:userInfo.newPassword, + phoneno:userInfo.phoneno, + smsCode:userInfo.smsCode, + } + return axios({ + url: base+'/user/password/reset?type=sms', method: 'post', data }) } export function logout() { + removeToken(); /** return axios({ url: base+'/logout', @@ -54,21 +109,3 @@ export function getUserInfo(params) { data }) } -export function getUserDepts(userid) { - if( !userid ){ - params={ - userid:userid - } - }else{ - return - } - const data= { params: params }; - return axios({ - url: base+'/user/depts', - method: 'get', - data - }) -} -export function switchDept(params) { - return axios.post( base+'/login/switch', params ) - } diff --git a/src/mock/index.js b/src/mock/index.js index 78ebb69e..a731b515 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -9,7 +9,7 @@ import transactionAPI from './transaction' // }) // 登录相关 -//Mock.mock(/\/login\/login/, 'post', loginAPI.loginByUsername) +//Mock.mock(/\/login\/login/, 'post', loginAPI.loginByUserloginid) //Mock.mock(/\/login\/logout/, 'post', loginAPI.logout) //Mock.mock(/\/user\/info\.*/, 'get', loginAPI.getUserInfo) diff --git a/src/mock/login.js b/src/mock/login.js index b9694f09..4e567a25 100644 --- a/src/mock/login.js +++ b/src/mock/login.js @@ -18,7 +18,7 @@ const userMap = { } export default { - loginByUsername: config => { + loginByUserloginid: config => { const { username } = JSON.parse(config.body) return userMap[username] }, diff --git a/src/store/modules/app.js b/src/store/modules/app.js index bd44d2f9..9042f48e 100644 --- a/src/store/modules/app.js +++ b/src/store/modules/app.js @@ -3,7 +3,7 @@ import Cookies from 'js-cookie' const app = { state: { sidebar: { - opened: !+Cookies.get('sidebarStatus') + opened: Cookies.get('sidebarStatus')==1?true:false }, language: Cookies.get('language') || 'zh' }, @@ -11,10 +11,10 @@ const app = { TOGGLE_SIDEBAR: (state,toOpen) => { if(toOpen==true){ Cookies.set('sidebarStatus', 1) - state.sidebar.opened =1 + state.sidebar.opened =true }else if(toOpen==false){ Cookies.set('sidebarStatus', 0) - state.sidebar.opened =0 + state.sidebar.opened =false }else{ if (state.sidebar.opened) { Cookies.set('sidebarStatus', 1) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index e9a20997..c32a9566 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,5 +1,5 @@ -import { loginByUsername, loginByPhoneno, logout, getUserInfo, switchDept } from '@/api/login' -import { getToken, setToken, removeToken } from '@/utils/auth' +import { doLoginByUserloginid, logout, getUserInfo } from '@/api/login' +import { getToken, setToken, removeToken,getCacheUserInfo,setCacheUserInfo,removeCacheUserInfo} from '@/utils/auth' const user = { state: { @@ -98,10 +98,10 @@ const user = { actions: { // 用户名登录 - LoginByUsername({ commit }, userInfo) { - const username = userInfo.username.trim() + LoginByUserloginid({ commit }, loginParams) { + removeToken(); return new Promise((resolve, reject) => { - loginByUsername(username, userInfo.password,userInfo.deptid).then(res => { + doLoginByUserloginid(loginParams.userloginid, loginParams.password,loginParams.grantType,loginParams.authType,loginParams.deptid).then(res => { if(res.data.tips.isOk==true){ let data = res.data let userInfo=data.userInfo; @@ -137,234 +137,113 @@ const user = { }) }) }, - // 用户名登录 - LoginByPhoneno({ commit }, userInfo) { - return new Promise((resolve, reject) => { - loginByPhoneno(userInfo.phoneno, userInfo.smsCode, userInfo.isAdmin,userInfo.deptid).then(res => { - if(res.data.tips.isOk==true){ - let data = res.data - let userInfo=data.userInfo; - let roles=data.roles; - if(roles!=null && roles.length>0){ - roles.forEach(role=>{ - if(role.roleid=='superAdmin'){ - userInfo.isSuperAdmin=true - } - if(role.roleid=='platformAdmin'){ - userInfo.isPlatformAdmin=true - } - if(role.roleid=='branchAdmin'){ - userInfo.isBranchAdmin=true - } - if(role.roleid=='shopAdmin'){ - userInfo.isShopAdmin=true - } - if(role.roleid=='locationAdmin'){ - userInfo.isLocationAdmin=true - } - }); - } - commit('SET_USER_INFO', userInfo) - commit('SET_ROLES', roles) - commit('SET_QXS', data.qxs) - commit('SET_TOKEN', data.data.accessToken.tokenValue) - setToken( data.data.accessToken.tokenValue) - } - resolve(res) - }).catch(error => { - reject(error) - }) - }) - }, - // 获取用户信息 - GetUserInfo({ commit, state }) { + + + ParseUserInfo({commit},res){ return new Promise((resolve, reject) => { - getUserInfo({userid:state.userInfo.userid}).then(res=>{ - if(res.data.tips.isOk==true){ - let userInfo = res.data.userInfo; - let roles = res.data.roles; - let qxs=res.data.qxs; - - if(roles!=null && roles.length>0){ - roles.forEach(role=>{ - if(role.roleid=='superAdmin'){ - userInfo.isSuperAdmin=true - } - if(role.roleid=='platformAdmin'){ - userInfo.isPlatformAdmin=true - } - if(role.roleid=='branchAdmin'){ - userInfo.isBranchAdmin=true - } - if(role.roleid=='shopAdmin'){ - userInfo.isShopAdmin=true - } - if(role.roleid=='locationAdmin'){ - userInfo.isLocationAdmin=true - } - }); - } - - - let branchs=res.data.branchs==null?[]:res.data.branchs; - let depts=res.data.depts==null?[]:res.data.depts; - let shops=res.data.shops==null?[]:res.data.shops; - let locations=res.data.locations==null?[]:res.data.locations - locations.forEach(l=>{ - shops.forEach(s=>{ - if(s.shopId==l.shopId){ - l.shopName=s.shopName - } - }) - depts.forEach(d=>{ - if(d.deptid==l.deptid){ - l.deptName=d.deptName - l.branchName=d.branchName - } - }) - }) - let posts=res.data.posts==null?[]:res.data.posts; - posts.forEach(post=>{ - depts.forEach(dept=>{ - if(dept.deptid==post.deptid){ - post.deptName=dept.deptName - post.branchId=dept.branchId - post.branchName=dept.branchName - } - }) - }) - depts.forEach(d=>{ + if(res.data.tips.isOk==true){ + let userInfo = res.data.userInfo; + let roles = res.data.roles; + let qxs=res.data.qxs; + + if(roles!=null && roles.length>0){ + roles.forEach(role=>{ + if(role.roleid=='superAdmin'){ + userInfo.isSuperAdmin=true + } + if(role.roleid=='platformAdmin'){ + userInfo.isPlatformAdmin=true + } + if(role.roleid=='branchAdmin'){ + userInfo.isBranchAdmin=true + } + if(role.roleid=='shopAdmin'){ + userInfo.isShopAdmin=true + } + if(role.roleid=='locationAdmin'){ + userInfo.isLocationAdmin=true + } + }); + } + + + let branchs=res.data.branchs==null?[]:res.data.branchs; + let depts=res.data.depts==null?[]:res.data.depts; + let shops=res.data.shops==null?[]:res.data.shops; + let locations=res.data.locations==null?[]:res.data.locations + locations.forEach(l=>{ + shops.forEach(s=>{ + if(s.shopId==l.shopId){ + l.shopName=s.shopName + } + }) + depts.forEach(d=>{ + if(d.deptid==l.deptid){ + l.deptName=d.deptName + l.branchName=d.branchName + } + }) + }) + let posts=res.data.posts==null?[]:res.data.posts; + posts.forEach(post=>{ + depts.forEach(dept=>{ + if(dept.deptid==post.deptid){ + post.deptName=dept.deptName + post.branchId=dept.branchId + post.branchName=dept.branchName + } + }) + }) + depts.forEach(d=>{ var branch=branchs.find(b=>b.branchId==d.branchId) if(branch){ d.branchName=branch.branchName } }) - commit('SET_MYBRANCHS',branchs); - commit('SET_MYDEPTS',depts); - commit('SET_MYLOCATIONS',locations); - commit('SET_MYMENUS',res.data.menus); - commit('SET_MYPOSTS', posts); - commit('SET_USER_INFO',userInfo); - commit('SET_ROLES', roles) - commit('SET_QXS', qxs) - //commit('SET_TOKEN', res.data.access_token); - commit('SET_WORK_SHOP',userInfo); - commit('SET_IS_LOAD_OK', true) - } - resolve(res); - }).catch(error => { - reject(error) - }); - /** - getUserInfo(state.access_token).then(response => { - if (!response.data) { // 由于mockjs 不支持自定义状态码只能这样hack - reject('error') - } - const data = response.data - commit('SET_USER_INFO', data.userInfo) - commit('SET_ROLES', data.roles) - commit('SET_TOKEN', data.userInfo.jsessionid) - setToken(data.userInfo.jsessionid) - resolve(response) - }).catch(error => { - reject(error) - }) - */ + commit('SET_MYBRANCHS',branchs); + commit('SET_MYDEPTS',depts); + commit('SET_MYLOCATIONS',locations); + commit('SET_MYMENUS',res.data.menus); + commit('SET_MYPOSTS', posts); + commit('SET_USER_INFO',userInfo); + commit('SET_ROLES', roles) + commit('SET_QXS', qxs) + commit('SET_WORK_SHOP',userInfo); + commit('SET_IS_LOAD_OK', true) + resolve(res); + }else{ + reject(res) + } }) + }, // 获取用户信息 - SwitchDept({ commit,state } ,dept) { - return new Promise((resolve, reject) => { - let userInfo=state.userInfo; - let params={deptName:dept.deptName,deptid:dept.deptid,branchId:dept.branchId,branchName:dept.branchName,userid:userInfo.userid} - switchDept(params).then(res=>{ - if(res.data.tips.isOk==true){ - let userInfo = res.data.userInfo; - let roles = res.data.roles; - let qxs=res.data.qxs; - - if(roles!=null && roles.length>0){ - roles.forEach(role=>{ - if(role.roleid=='superAdmin'){ - userInfo.isSuperAdmin=true - } - if(role.roleid=='platformAdmin'){ - userInfo.isPlatformAdmin=true - } - if(role.roleid=='branchAdmin'){ - userInfo.isBranchAdmin=true - } - if(role.roleid=='shopAdmin'){ - userInfo.isShopAdmin=true - } - if(role.roleid=='locationAdmin'){ - userInfo.isLocationAdmin=true - } - }); - } - - - let branchs=res.data.branchs==null?[]:res.data.branchs; - let depts=res.data.depts==null?[]:res.data.depts; - let shops=res.data.shops==null?[]:res.data.shops; - let locations=res.data.locations==null?[]:res.data.locations - locations.forEach(l=>{ - shops.forEach(s=>{ - if(s.shopId==l.shopId){ - l.shopName=s.shopName - } - }) - depts.forEach(d=>{ - if(d.deptid==l.deptid){ - l.deptName=d.deptName - l.branchName=d.branchName - } - }) - }) - let posts=res.data.posts==null?[]:res.data.posts; - posts.forEach(post=>{ - depts.forEach(dept=>{ - if(dept.deptid==post.deptid){ - post.deptName=dept.deptName - post.branchId=dept.branchId - post.branchName=dept.branchName - } - }) - }) - - commit('SET_MYBRANCHS',branchs); - commit('SET_MYDEPTS',depts); - commit('SET_MYLOCATIONS',locations); - commit('SET_MYMENUS',res.data.menus); - commit('SET_MYPOSTS', posts); - commit('SET_USER_INFO',userInfo); - commit('SET_ROLES', roles) - commit('SET_QXS', qxs) - commit('SET_TOKEN', res.data.access_token) - commit('SET_WORK_SHOP',JSON.parse(JSON.stringify(userInfo))); - commit('SET_IS_LOAD_OK', true) - } - resolve(res); - }).catch((res)=>{ - reject(res); - }); - }); + GetUserInfo({ commit, state }) { + return new Promise((resolve, reject) => { + var cacheUserInfo=getCacheUserInfo(); + if(cacheUserInfo){ + this.dispatch("ParseUserInfo",cacheUserInfo).then(res2=>{ + resolve(res2); + }).catch(error2=>{ + reject(error2) + }); + + }else{ + getUserInfo().then(res=>{ + this.dispatch("ParseUserInfo",res).then(res2=>{ + setCacheUserInfo(res); + resolve(res2); + }).catch(error2=>{ + reject(error2) + }); + }).catch(error => { + reject(error) + }); + } + }) }, - - // 第三方验证登录 - // LoginByThirdparty({ commit, state }, code) { - // return new Promise((resolve, reject) => { - // commit('SET_CODE', code) - // loginByThirdparty(state.status, state.email, state.code).then(response => { - // commit('SET_TOKEN', response.data.access_token) - // setToken(response.data.access_token) - // resolve() - // }).catch(error => { - // reject(error) - // }) - // }) - // }, + // 登出 LogOut({ commit, state }) { return new Promise((resolve, reject) => { @@ -377,17 +256,16 @@ const user = { commit('SET_MYPOSTS', []) commit('SET_USER_INFO', {}) removeToken() + removeCacheUserInfo(); resolve() - logout(state.token) + logout() }) }, // 前端 登出 FedLogOut({ commit }) { - return new Promise(resolve => { - commit('SET_TOKEN', '') - removeToken() - resolve() + return new Promise((resolve, reject) => { + resolve() }) }, diff --git a/src/utils/auth.js b/src/utils/auth.js index 0915a9e6..c9413018 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -13,3 +13,17 @@ export function setToken(token) { export function removeToken() { return localStorage.removeItem(TokenKey) } + +export function getCacheUserInfo(){ + var userInfo= localStorage.getItem(localStorage.getItem(TokenKey)); + return JSON.parse(userInfo); +} +export function setCacheUserInfo(userInfo){ + var tokenValue=localStorage.getItem(TokenKey) + localStorage.setItem(tokenValue, JSON.stringify(userInfo)) + return; +} +export function removeCacheUserInfo() { + var tokenValue=localStorage.getItem(TokenKey) + return localStorage.removeItem(tokenValue) +} \ No newline at end of file diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 5dcda67b..875db930 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,57 +1,54 @@ - - - + \ No newline at end of file diff --git a/src/views/login/register.vue b/src/views/login/register.vue new file mode 100644 index 00000000..8c9f4cd1 --- /dev/null +++ b/src/views/login/register.vue @@ -0,0 +1,332 @@ + + + + + + \ No newline at end of file diff --git a/src/views/login/resetPassword.vue b/src/views/login/resetPassword.vue new file mode 100644 index 00000000..4a2e4700 --- /dev/null +++ b/src/views/login/resetPassword.vue @@ -0,0 +1,285 @@ + + + + + + \ No newline at end of file