diff --git a/src/api/user.js b/src/api/user.js index db4d13e..4b6a377 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -8,11 +8,11 @@ export function login(data) { }) } -export function getInfo(token) { +export function getInfo(params) { return request({ url: 'user/userInfo', method: 'get', - params: { token } + params }) } @@ -22,3 +22,11 @@ export function logout() { method: 'get' }) } + +export function userUpdate(data) { + return request({ + url: 'user/update', + method: 'post', + data + }) +} diff --git a/src/components/Cropper/dialog.vue b/src/components/Cropper/dialog.vue new file mode 100644 index 0000000..56404a0 --- /dev/null +++ b/src/components/Cropper/dialog.vue @@ -0,0 +1,190 @@ + + + + + + diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 6cbf83f..c562fb2 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -11,9 +11,9 @@ - + - 个人信息 + 设置 diff --git a/src/main.js b/src/main.js index da068e1..d7add96 100644 --- a/src/main.js +++ b/src/main.js @@ -84,7 +84,7 @@ new Vue({ el: '#app', router, store, - render: h => h(App) + render: h => h(App), }) if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) { diff --git a/src/permission.js b/src/permission.js index 0cb07ae..dcda198 100644 --- a/src/permission.js +++ b/src/permission.js @@ -33,7 +33,6 @@ router.beforeEach(async(to, from, next) => { try { // get user info await store.dispatch('user/getInfo') - next() } catch (error) { // remove token and go to login page to re-login diff --git a/src/router/index.js b/src/router/index.js index 7e31dfc..e568a7a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -87,13 +87,13 @@ export const constantRoutes = [ }, { - path: '/userinfo', + path: '/setting', component: Layout, children: [ { path: '', - name: 'userInfo', - component: () => import('@/views/userInfo/index'), + name: 'setting', + component: () => import('@/views/setting/index'), } ] }, diff --git a/src/store/modules/user.js b/src/store/modules/user.js index a31a71a..ef84dd7 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,5 +1,5 @@ import { login, logout, getInfo } from '@/api/user' -import { getToken, setToken, removeToken } from '@/utils/auth' +import { getToken, setToken, getConsumerId, setConsumerId, removeToken, removeConsumerId } from '@/utils/auth' import { resetRouter } from '@/router' const getDefaultState = () => { @@ -7,7 +7,7 @@ const getDefaultState = () => { token: getToken(), name: '', avatar: '', - userId: '' + userId: getConsumerId(), } } @@ -40,6 +40,8 @@ const actions = { const { data } = response commit('SET_TOKEN', data.token) setToken(data.token) + commit('SET_USERID', data.userId) + setConsumerId(data.userId) resolve() }).catch(error => { reject(error) @@ -50,9 +52,11 @@ const actions = { // get user info getInfo({ commit, state }) { return new Promise((resolve, reject) => { - getInfo(state.token).then(response => { + getInfo({ + id: state.userId, + token: state.token + }).then(response => { const { data } = response - if (!data) { // reject('Verification failed, please Login again.') } @@ -62,6 +66,7 @@ const actions = { commit('SET_NAME', username) commit('SET_AVATAR', avatar) commit('SET_USERID', id) + sessionStorage.setItem('store', JSON.stringify(state)) resolve(data) }).catch(error => { reject(error) @@ -74,6 +79,7 @@ const actions = { return new Promise((resolve, reject) => { logout(state.token).then(() => { removeToken() // must remove token first + removeConsumerId() resetRouter() commit('RESET_STATE') resolve() @@ -87,6 +93,7 @@ const actions = { resetToken({ commit }) { return new Promise(resolve => { removeToken() // must remove token first + removeConsumerId() commit('RESET_STATE') resolve() }) diff --git a/src/styles/setting.scss b/src/styles/setting.scss new file mode 100644 index 0000000..579729c --- /dev/null +++ b/src/styles/setting.scss @@ -0,0 +1,45 @@ +.img-dialog { + +} +.form-item-avatar { + .avatar-value{ + position: absolute; + z-index: 1; + } + .avatar-value:hover { + cursor: pointer; + z-index: 0; + } + .avatar-overlay{ + position: absolute; + } + .avatar-overlay:hover{ + cursor: pointer; + z-index: 1; + background: #2f2f2fa8; + } +} +.form-item-avatar /deep/ .el-form-item__label{ + padding: 30px 12px; +} +.dialog-avatar { + /deep/.el-dialog { + min-width: 800px; + margin-top: 5vh!important; + } +} +/deep/.el-input { + width: unset; +} +/deep/.el-textarea { + max-width: 500px; +} +.form-slogan { + width: 100%; + max-width: 500px; +} +.quota-space { + margin-top: 10px; + max-width: 300px; +} + diff --git a/src/utils/auth.js b/src/utils/auth.js index 059af18..1e4e43f 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -1,6 +1,7 @@ import Cookies from 'js-cookie' -const TokenKey = 'vue_admin_template_token' +const TokenKey = 'jmal_token' +const consumerId = 'consumerId' export function getToken() { return Cookies.get(TokenKey) @@ -13,3 +14,15 @@ export function setToken(token) { export function removeToken() { return Cookies.remove(TokenKey) } + +export function getConsumerId() { + return Cookies.get(consumerId) +} + +export function setConsumerId(userId) { + return Cookies.set(consumerId, userId) +} + +export function removeConsumerId() { + return Cookies.remove(consumerId) +} diff --git a/src/utils/request.js b/src/utils/request.js index 6e71dfc..eed84cb 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -46,6 +46,10 @@ service.interceptors.response.use( // if the custom code is not 20000, it is judged as an error. if (res.code !== 0) { + if(res.code === 5) { + this.$router.push(`/login?redirect=${this.$route.fullPath}`) + return + } if(res.code === -2){ Message({ message: res.message || '服务器开小差了...', diff --git a/src/views/demo/index.vue b/src/views/demo/index.vue index d443678..49b9bd7 100644 --- a/src/views/demo/index.vue +++ b/src/views/demo/index.vue @@ -1,47 +1,78 @@ - - + + + diff --git a/src/views/login/index.vue b/src/views/login/index.vue index e0cf275..07cd5d8 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -74,8 +74,8 @@ export default { } return { loginForm: { - username: '', - password: '' + username: 'jmal', + password: '123456' }, loginRules: { username: [{ required: true, trigger: 'blur', validator: validateUsername }], @@ -116,7 +116,6 @@ export default { this.loading = false }) } else { - console.log('error submit!!') return false } }) diff --git a/src/views/setting/index.vue b/src/views/setting/index.vue new file mode 100644 index 0000000..5433bd9 --- /dev/null +++ b/src/views/setting/index.vue @@ -0,0 +1,167 @@ + + + + + + diff --git a/src/views/userInfo/index.vue b/src/views/userInfo/index.vue deleted file mode 100644 index 31ea4c6..0000000 --- a/src/views/userInfo/index.vue +++ /dev/null @@ -1,194 +0,0 @@ - - - - - -