From 1d51db071d0372b6e9895a5fea4e5b01f1a6b81b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E8=99=B9=E7=9D=BF?= <297504645@qq.com> Date: Fri, 21 Jul 2023 13:16:52 +0800 Subject: [PATCH] =?UTF-8?q?currentUserInfo=20=E4=BD=BF=E7=94=A8store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PC/InterFace.Dash/src/api/wms-interface.js | 149 +----------- .../src/components/rowDrop/index.vue | 2 +- .../src/layout/components/Navbar.vue | 6 +- .../src/mixins/TableHeaderMixins.js | 2 +- PC/InterFace.Dash/src/mixins/mixins.js | 4 +- PC/InterFace.Dash/src/permission.js | 99 +++++--- PC/InterFace.Dash/src/store/getters.js | 3 +- PC/InterFace.Dash/src/store/modules/user.js | 50 +++- PC/InterFace.Dash/src/utils/defaultButtons.js | 2 +- .../basicConfig/ExportCustomUserSetting.vue | 217 ------------------ PC/InterFace.Dash/src/views/login/index.vue | 24 +- .../menuList/ExportCustomUserSetting.vue | 2 +- 12 files changed, 133 insertions(+), 427 deletions(-) delete mode 100644 PC/InterFace.Dash/src/views/basicConfig/ExportCustomUserSetting.vue diff --git a/PC/InterFace.Dash/src/api/wms-interface.js b/PC/InterFace.Dash/src/api/wms-interface.js index 64c0956..645989e 100644 --- a/PC/InterFace.Dash/src/api/wms-interface.js +++ b/PC/InterFace.Dash/src/api/wms-interface.js @@ -2,14 +2,6 @@ import request from '@/utils/request' let base_api = localStorage.getItem('base') let colum_url = localStorage.getItem('columnsApiNames') -// 转义传参 -const initParams = (data) => { - return { - skipCount:data.SkipCount, - maxResultCount:data.MaxResultCount, - sorting:data.Sorting - } -} // 获取表头数据 export function getInterfaceBoard() { @@ -28,143 +20,4 @@ export function getDefinitionMenu(IncludeTypes) { url: base_api + '/api/abp/application-configuration', params:{IncludeLocalizationResources:true} }) -} - -// 获取导出配置信息接口 -// export function getExportConfigList(name) { -// return request({ -// url: base_api + '/get-by-user-and-table-name', -// method: 'post', -// params:{ -// userId:JSON.parse(localStorage.getItem("currentUserInfo")).id, -// exportTableName:name -// }, -// }) -// } - -//外部数据转换 -// export function dataExchangeFromOut(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'outgoing-to-external', -// params:initParams(data) -// }) -// } - -// //归档外部数据转换 -// export function dataExchangeFromOut_file(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'archived-outgoing-to-external', -// params:initParams(data) -// }) -// } - -// //wms数据接收 -// export function comingToWms(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'incoming-to-wms', -// params:initParams(data) -// }) -// } - -// //归档wms数据接收 -// export function comingToWms_file(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'archived-incoming-to-wms', -// params:initParams(data) -// }) -// } - -// //wms数据转换 -// export function dataExchangeFromWms(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'data-exchange_Outgoing-from-wms', -// params:initParams(data) -// }) -// } - -// // 归档wms数据转换 -// export function dataExchangeFromWms_file(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'data-exchange_Archived-outgoing-from-wms', -// params:initParams(data) -// }) -// } - -// //外部数据接收 -// export function comingFromOut(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'data-exchange_Incoming-from-external', -// params:initParams(data) -// }) -// } - -// //归档外部数据接收 -// export function comingFromOut_file(data) { -// return axios({ -// method:'get', -// url: interfaceBoard_api + 'data-exchange_Archived-incoming-from-external', -// params:initParams(data) -// }) -// } - -// 测试数据-列表 -// export function TestSchool(data, includeDetails) { -// return request({ -// method:'post', -// url: base_api + '/api/TestSchool/base/get-list-page-by-filter?includeDetails='+Boolean(includeDetails), -// data -// }) -// } - -// // 测试数据-列表-根据id获取详情 -// export function TestSchoolItemById(id) { -// return request({ -// method:'get', -// url: base_api + '/api/app/test-school/'+id, -// }) -// } - -// // 测试数据-列表-新增、编辑 -// export function TestSchool_save(data,isAdd) { -// let _type = isAdd ? 'create' : 'update-by-id' -// return request({ -// method:'post', -// url: base_api + '/api/TestSchool/base/'+_type, -// data:data, -// params:{id:data.id} -// }) -// } - -// // 测试数据-列表-删除 -// export function TestSchool_delete(id) { -// return request({ -// method:'DELETE', -// url: base_api + '/api/TestSchool/base/delete-by-id', -// params:{id:id} -// }) -// } - -// // 测试数据-明细-列表 -// export function TestSchoolDetailList(data,includeDetails) { -// return request({ -// method:'post', -// url: base_api + '/api/TestStudentDetail/base/get-list-page-by-filter?includeDetails='+Boolean(includeDetails), -// data -// }) -// } - -// // 测试数据-明细-删除 -// export function TestSchoolDetailList_delete(id) { -// return request({ -// method:'DELETE', -// url: base_api + '/api/TestStudentDetail/base/delete-by-id', -// params:{id:id} -// }) -// } \ No newline at end of file +} \ No newline at end of file diff --git a/PC/InterFace.Dash/src/components/rowDrop/index.vue b/PC/InterFace.Dash/src/components/rowDrop/index.vue index f9d1605..9d1ba2f 100644 --- a/PC/InterFace.Dash/src/components/rowDrop/index.vue +++ b/PC/InterFace.Dash/src/components/rowDrop/index.vue @@ -61,7 +61,7 @@ export default { dataList: [], // 全选 allSelect hasSelect NoSelect allSeletType:'NoSelect', - userName:JSON.parse(localStorage.getItem('currentUserInfo')).userName + userName:this.$store.getters.currentUserInfo.userName } }, props: { diff --git a/PC/InterFace.Dash/src/layout/components/Navbar.vue b/PC/InterFace.Dash/src/layout/components/Navbar.vue index 9da40da..4fed093 100644 --- a/PC/InterFace.Dash/src/layout/components/Navbar.vue +++ b/PC/InterFace.Dash/src/layout/components/Navbar.vue @@ -78,11 +78,11 @@ export default { this.$store.dispatch("app/toggleSideBar"); }, async logout() { - // await this.$store.dispatch("user/logout"); + await this.$store.dispatch("user/logout") // this.$router.push(`/login?redirect=${this.$route.fullPath}`); localStorage.removeItem("interfaceBoardColumnsNames") - localStorage.removeItem("currentUserInfo") - this.$router.push(`/login?redirect=${this.$route.fullPath}&isAutoLogin=false`) + // this.$router.push(`/login?redirect=${this.$route.fullPath}&isAutoLogin=false`) + this.$router.push(`/login?isAutoLogin=false`) }, handleClick() { diff --git a/PC/InterFace.Dash/src/mixins/TableHeaderMixins.js b/PC/InterFace.Dash/src/mixins/TableHeaderMixins.js index 5627170..54f125e 100644 --- a/PC/InterFace.Dash/src/mixins/TableHeaderMixins.js +++ b/PC/InterFace.Dash/src/mixins/TableHeaderMixins.js @@ -40,7 +40,7 @@ export const TableHeaderMixins = { let _params = { isRedundance:Boolean(form.isRedundance), isDetailExport:Boolean(form.isDetail), - userId:JSON.parse(localStorage.getItem("currentUserInfo")).id + userId:this.$store.getters.currentUserInfo.id } let _exportUrl = this.URLOption_export ? this.URLOption_export : this.URLOption_base; let _special = this.URLOption_export ? true : false diff --git a/PC/InterFace.Dash/src/mixins/mixins.js b/PC/InterFace.Dash/src/mixins/mixins.js index d18b46c..9ce7687 100644 --- a/PC/InterFace.Dash/src/mixins/mixins.js +++ b/PC/InterFace.Dash/src/mixins/mixins.js @@ -58,8 +58,8 @@ export const mixins = { let _list_defalut = columnsData ? columnsData : this.$isTableColumns[this.$route.name] let _type = type ? type : 'list_api' if(!_list_defalut)return - let _local = localStorage.getItem('file_Columns_' + _type + '_' + JSON.parse(localStorage.getItem('currentUserInfo')).userName + '_' + this.$route.name) - let _list_local = JSON.parse(localStorage.getItem('file_Columns_' + _type + '_' + JSON.parse(localStorage.getItem('currentUserInfo')).userName + '_' + this.$route.name)) + let _local = localStorage.getItem('file_Columns_' + _type + '_' + this.$store.getters.currentUserInfo.userName + '_' + this.$route.name) + let _list_local = JSON.parse(localStorage.getItem('file_Columns_' + _type + '_' + this.$store.getters.currentUserInfo.userName + '_' + this.$route.name)) let _new_list = [] //格式化后的数据 // 如果没有缓存则直接为默认值 if(!_local){ diff --git a/PC/InterFace.Dash/src/permission.js b/PC/InterFace.Dash/src/permission.js index 72c1859..ca62732 100644 --- a/PC/InterFace.Dash/src/permission.js +++ b/PC/InterFace.Dash/src/permission.js @@ -27,41 +27,48 @@ router.beforeEach(async (to, from, next) => { if( _url_isAutoLogin== 'false' || _url_isAutoLogin == 'true'){ isAutoLogin = JSON.parse(_url_isAutoLogin) } - let userInfo = localStorage.getItem('currentUserInfo') // 是否有用户信息: + const userInfo = store.getters.currentUserInfo // 1、如果没有判断是否为自动登录(是自动登录则自动执行登录,账号密码为配置信息中的值,不是自动登录则跳到登录页) // 2、有/没有:则检查是否有api接口的表头数据,没有的话重新获取 if(userInfo){ + console.log('有store.getters.currentUserInfo',store.getters.currentUserInfo) if(store.getters.permission_routes && store.getters.permission_routes.length > 0){ - next() - }else{ + console.log('有store.getters.permission_routes',store.getters.permission_routes) + next() + } + else{ + console.log('没有store.getters.permission_routes',store.getters.permission_routes) const accessRoutes = await store.dispatch('permission/getApiColumnsNames') router.addRoutes(accessRoutes) - console.log(52) next({ ...to, query:{ - loginName:from.query.loginName, - isAutoLogin:from.query.isAutoLogin, + loginName:to.query.loginName, + isAutoLogin:to.query.isAutoLogin, + isSinglePage:to.query.isSinglePage }, replace: true }) } }else{ + console.log('没有store.getters.currentUserInfo',store.getters.currentUserInfo) if(!interfaceBoardColumnsNames){ + console.log('没有interfaceBoardColumnsNames',interfaceBoardColumnsNames) const accessRoutes = await store.dispatch('permission/getApiColumnsNames') router.addRoutes(accessRoutes) - console.log(123,to) next({ ...to, query:{ loginName:to.query.loginName, isAutoLogin:to.query.isAutoLogin, + isSinglePage:to.query.isSinglePage }, replace: true }) } if(isAutoLogin || to.query.loginName){ + console.log('有自动登录',isAutoLogin,to.query.loginName) // let loginForm= { // userNameOrEmailAddress:localStorage.getItem("userNameOrEmailAddress"), // password:localStorage.getItem("client_secret"), @@ -71,32 +78,42 @@ router.beforeEach(async (to, from, next) => { // } // // store.dispatch('user/login', loginForm).then(() => { // login(loginForm).then(()=>{ - let _username = to.query.loginName ? to.query.loginName : localStorage.getItem("userNameOrEmailAddress") + let _username = to.query.loginName || localStorage.getItem("isLoginName") || localStorage.getItem("userNameOrEmailAddress") if(to.path != '/login'){ - getUsersByUserName(_username).then(res=>{ - // todo:currentUserInfo全程需要优化 - if(res && JSON.stringify(res).length > 0){ - localStorage.setItem("currentUserInfo", JSON.stringify(res)); - // next('/') - next({ - ...to, - query:{ - loginName:to.query.loginName, - isAutoLogin:to.query.isAutoLogin, - }, - replace: true - }) - }else{ - next(`/login?loginName=${to.query.loginName}&isAutoLogin=${to.query.isAutoLogin}`) - // next(`/login`) - Message.error('获取用户信息失败,请重试') - } - }) - .catch(err => { - console.log('获取用户信息失败,请重试') + await store.dispatch('user/getUserInfo',_username).then(()=>{ + next({ + ...to, + query:{ + loginName:to.query.loginName, + isAutoLogin:to.query.isAutoLogin, + isSinglePage:to.query.isSinglePage + }, + replace: true + }) + }).catch(()=>{ + next({ + path:'/login', + query:{ + isAutoLogin:to.query.isAutoLogin, + isSinglePage:to.query.isSinglePage + }, + replace: true + }) + // next(`/login?loginName=${to.query.loginName}&isAutoLogin=${to.query.isAutoLogin}`) + // next(`/login`) + Message.error('获取用户信息失败,请重试!') }) }else{ next() + // next({ + // ...to, + // query:{ + // loginName:to.query.loginName, + // isAutoLogin:to.query.isAutoLogin, + // isSinglePage:to.query.isSinglePage + // }, + // replace: true + // }) } // }) // .catch((error) => { @@ -104,12 +121,30 @@ router.beforeEach(async (to, from, next) => { // }) } else{ + console.log('不自动登录',isAutoLogin,to.query.loginName) if (to.path != '/login') { Message.error('获取用户信息失败,请重新登录') - next(`/login?loginName=${to.query.loginName}&isAutoLogin=${to.query.isAutoLogin}`) - next(`/login`) + next({ + path:'/login', + query:{ + isAutoLogin:to.query.isAutoLogin, + loginName:to.query.loginName, + isSinglePage:to.query.isSinglePage + }, + replace: true + }) + // next(`/login?loginName=${to.query.loginName}&isAutoLogin=${to.query.isAutoLogin}`) + // next(`/login`) }else{ - next() + // next({ + // ...to, + // query:{ + // isAutoLogin:to.query.isAutoLogin, + // loginName:to.query.loginName, + // }, + // replace: true + // }) + next() } } NProgress.done() diff --git a/PC/InterFace.Dash/src/store/getters.js b/PC/InterFace.Dash/src/store/getters.js index a73b4b3..a0588a6 100644 --- a/PC/InterFace.Dash/src/store/getters.js +++ b/PC/InterFace.Dash/src/store/getters.js @@ -12,6 +12,7 @@ const getters = { roles: state => state.user.roles, permission_routes: state => state.permission.routes, errorLogs: state => state.errorLog.logs, - dictionaries: state => state.dictionaries.dict + dictionaries: state => state.dictionaries.dict, + currentUserInfo: state => state.user.userInfo, } export default getters diff --git a/PC/InterFace.Dash/src/store/modules/user.js b/PC/InterFace.Dash/src/store/modules/user.js index c4ffea5..3f8fbd4 100644 --- a/PC/InterFace.Dash/src/store/modules/user.js +++ b/PC/InterFace.Dash/src/store/modules/user.js @@ -1,7 +1,8 @@ import { token, logout, - getInfo + getInfo, + getUsersByUserName } from '@/api/wms-auth' import { getToken, @@ -20,8 +21,10 @@ const state = { name: '', avatar: '', introduction: '', - roles: [] + roles: [], + userInfo:null } +import { Message } from 'element-ui' const mutations = { SET_TOKEN: (state, token) => { @@ -38,6 +41,9 @@ const mutations = { }, SET_ROLES: (state, roles) => { state.roles = roles + }, + SET_USERINFO: (state, data) => { + state.userInfo = data } } @@ -141,13 +147,14 @@ const actions = { dispatch }) { return new Promise((resolve, reject) => { - logout().then(() => { + // logout().then(() => { commit('SET_TOKEN', '') commit('SET_ROLES', []) - removeToken() - resetRouter() - removeCompany() - removeWarehouseCode() + // commit('SET_USERINFO', null) + // removeToken() + // resetRouter() + // removeCompany() + // removeWarehouseCode() // reset visited views and cached views // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485 dispatch('tagsView/delAllViews', null, { @@ -155,10 +162,10 @@ const actions = { }) resolve() // 防止路由叠加 - location.reload() - }).catch(error => { - reject(error) - }) + // location.reload() + // }).catch(error => { + // reject(error) + // }) }) }, @@ -202,7 +209,26 @@ const actions = { dispatch('tagsView/delAllViews', null, { root: true }) - } + }, + getUserInfo({ + commit + },username) { + return new Promise((resolve, reject) => { + getUsersByUserName(username).then(res=>{ + if(res && JSON.stringify(res).length > 0){ + localStorage.setItem('isLoginName',username) + commit('SET_USERINFO', res) + resolve(res) + }else{ + reject('获取用户信息失败,请重试111') + } + }) + .catch(err => { + reject(error) + console.log('获取用户信息失败,请重试') + }) + }) + }, } export default { diff --git a/PC/InterFace.Dash/src/utils/defaultButtons.js b/PC/InterFace.Dash/src/utils/defaultButtons.js index 88082aa..cbac76d 100644 --- a/PC/InterFace.Dash/src/utils/defaultButtons.js +++ b/PC/InterFace.Dash/src/utils/defaultButtons.js @@ -43,7 +43,7 @@ export function defaultExportBtn(option) { export function defaultFieldSettingBtn(option,source) { let _source = source ? source : 'list_api' // todo:监听已经配置过的字段按钮更改状态特殊显示 - let _local = localStorage.getItem('file_Columns_' + _source + '_' + JSON.parse(localStorage.getItem('currentUserInfo')).userName + '_' + this.$route.name) + let _local = localStorage.getItem('file_Columns_' + _source + '_' + this.$store.getters.currentUserInfo.userName + '_' + this.$route.name) let _type = '' let _num = 0 if(_local){ diff --git a/PC/InterFace.Dash/src/views/basicConfig/ExportCustomUserSetting.vue b/PC/InterFace.Dash/src/views/basicConfig/ExportCustomUserSetting.vue deleted file mode 100644 index df9ce45..0000000 --- a/PC/InterFace.Dash/src/views/basicConfig/ExportCustomUserSetting.vue +++ /dev/null @@ -1,217 +0,0 @@ - - - - \ No newline at end of file diff --git a/PC/InterFace.Dash/src/views/login/index.vue b/PC/InterFace.Dash/src/views/login/index.vue index 5f2297f..fc17c45 100644 --- a/PC/InterFace.Dash/src/views/login/index.vue +++ b/PC/InterFace.Dash/src/views/login/index.vue @@ -166,10 +166,18 @@ export default { this.$refs.loginForm.validate(valid => { if (valid) { // todo-new:自动登录跳转处理(读取localStorage.getItem("userNameOrEmailAddress")) - getUsersByUserName(this.loginForm.username).then(res=>{ - // store.dispatch('user/setName',res) - localStorage.setItem("currentUserInfo", JSON.stringify(res)); - this.$router.push({ path: '/'}) + this.$store.dispatch('user/getUserInfo',this.loginForm.username).then(()=>{ + this.$router.push({ + path:'/', + query:{ + loginName:this.loginForm.username, + isAutoLogin:this.$route.query.isAutoLogin, + isSinglePage:this.$route.query.isSinglePage + }, + replace: true + }) + }).catch(()=>{ + this.$message.error('获取用户信息失败,请重试!') }) return this.loading = true @@ -179,10 +187,10 @@ export default { login(this.loginForm).then(()=>{ // this.$store.dispatch('user/login', this.loginForm).then(() => { // 提前获取接口监控看板表头数据并存储 - getUsersByUserName(localStorage.getItem("userNameOrEmailAddress")).then(res=>{ - // store.dispatch('user/setName',res) - localStorage.setItem("currentUserInfo", JSON.stringify(res)); - }) + // getUsersByUserName(localStorage.getItem("userNameOrEmailAddress")).then(res=>{ + // // store.dispatch('user/setName',res) + // localStorage.setItem("currentUserInfo", JSON.stringify(res)); + // }) getInterfaceBoard().then(result => { localStorage.setItem("interfaceBoardColumnsNames", JSON.stringify(result.resources[_zh].texts)); this.$router.push({ path: '/'}) diff --git a/PC/InterFace.Dash/src/views/menuList/ExportCustomUserSetting.vue b/PC/InterFace.Dash/src/views/menuList/ExportCustomUserSetting.vue index df9ce45..0de057f 100644 --- a/PC/InterFace.Dash/src/views/menuList/ExportCustomUserSetting.vue +++ b/PC/InterFace.Dash/src/views/menuList/ExportCustomUserSetting.vue @@ -155,7 +155,7 @@ }, }, data () { - const userInfo=JSON.parse(localStorage.getItem("currentUserInfo")) + const userInfo=this.$store.getters.currentUserInfo return { tableLoading:false, //常用按钮数据