diff --git a/package.json b/package.json
index 255d4643..934ad0ba 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "d2-admin",
- "version": "1.6.5",
+ "version": "1.6.6",
"private": true,
"scripts": {
"serve": "vue-cli-service serve --open",
diff --git a/src/pages/demo/playground/index/index.vue b/src/pages/demo/playground/index/index.vue
index f487a605..a61fd305 100644
--- a/src/pages/demo/playground/index/index.vue
+++ b/src/pages/demo/playground/index/index.vue
@@ -11,7 +11,9 @@
diff --git a/src/pages/demo/playground/log/console/index.vue b/src/pages/demo/playground/log/console/index.vue
index 1ac646d0..0a079dd7 100644
--- a/src/pages/demo/playground/log/console/index.vue
+++ b/src/pages/demo/playground/log/console/index.vue
@@ -43,7 +43,9 @@
diff --git a/src/pages/demo/plugins/i18n/demo2.vue b/src/pages/demo/plugins/i18n/demo2.vue
index d7bbbe97..c30a4f00 100644
--- a/src/pages/demo/plugins/i18n/demo2.vue
+++ b/src/pages/demo/plugins/i18n/demo2.vue
@@ -13,7 +13,9 @@ export default {
DemoI18n: () => import('./components/DemoI18n')
},
data () {
- filename: __filename
+ return {
+ filename: __filename
+ }
}
}
diff --git a/src/pages/demo/plugins/index/index.vue b/src/pages/demo/plugins/index/index.vue
index 9900c41e..38a36e57 100644
--- a/src/pages/demo/plugins/index/index.vue
+++ b/src/pages/demo/plugins/index/index.vue
@@ -11,7 +11,9 @@
diff --git a/src/pages/demo/plugins/js-cookie/index.vue b/src/pages/demo/plugins/js-cookie/index.vue
index 7a7651d5..0d76f4b5 100644
--- a/src/pages/demo/plugins/js-cookie/index.vue
+++ b/src/pages/demo/plugins/js-cookie/index.vue
@@ -26,7 +26,9 @@
import util from '@/libs/util.js'
export default {
data () {
- filename: __filename
+ return {
+ filename: __filename
+ }
},
methods: {
set (name = 'default-name', value = 'default-value') {
diff --git a/src/pages/login/page.vue b/src/pages/login/page.vue
index ad2bdc7a..ea7cc85b 100644
--- a/src/pages/login/page.vue
+++ b/src/pages/login/page.vue
@@ -141,6 +141,16 @@ export default {
username: this.formLogin.username,
password: this.formLogin.password
})
+ .then(() => {
+ const redirect = this.$route.query.redirect
+ if (redirect) {
+ // 重定向到指定的页面
+ this.$router.replace(redirect)
+ } else {
+ // 重定向到开始路径
+ this.$router.replace('/')
+ }
+ })
} else {
// 登录表单校验失败
this.$message.error('表单校验失败')
diff --git a/src/router/index.js b/src/router/index.js
index 241e6215..496b9504 100755
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -36,12 +36,13 @@ router.beforeEach((to, from, next) => {
if (token && token !== 'undefined') {
next()
} else {
- // 将当前预计打开的页面完整地址临时存储 登录后继续跳转
- // 这个 cookie(redirect) 会在登录后自动删除
- util.cookies.set('redirect', to.fullPath)
// 没有登录的时候跳转到登录界面
+ // 携带上登陆成功之后需要跳转的页面完整路径
next({
- name: 'login'
+ name: 'login',
+ query: {
+ redirect: to.fullPath
+ }
})
}
} else {
diff --git a/src/store/modules/d2admin/modules/account.js b/src/store/modules/d2admin/modules/account.js
index b999e7a9..40f20df8 100644
--- a/src/store/modules/d2admin/modules/account.js
+++ b/src/store/modules/d2admin/modules/account.js
@@ -15,40 +15,36 @@ export default {
login ({ dispatch }, {
vm,
username,
- password,
- route = {
- path: '/'
- }
+ password
}) {
- // 开始请求登录接口
- AccountLogin({
- username,
- password
+ return new Promise((resolve, reject) => {
+ // 开始请求登录接口
+ AccountLogin({
+ username,
+ password
+ })
+ .then(async res => {
+ // 设置 cookie 一定要存 uuid 和 token 两个 cookie
+ // 整个系统依赖这两个数据进行校验和存储
+ // uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
+ // token 代表用户当前登录状态 建议在网络请求中携带 token
+ // 如有必要 token 需要定时更新,默认保存一天
+ util.cookies.set('uuid', res.uuid)
+ util.cookies.set('token', res.token)
+ // 设置 vuex 用户信息
+ await dispatch('d2admin/user/set', {
+ name: res.name
+ }, { root: true })
+ // 用户登录后从持久化数据加载一系列的设置
+ await dispatch('load')
+ // 结束
+ resolve()
+ })
+ .catch(err => {
+ console.log('err: ', err)
+ reject(err)
+ })
})
- .then(async res => {
- // 设置 cookie 一定要存 uuid 和 token 两个 cookie
- // 整个系统依赖这两个数据进行校验和存储
- // uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
- // token 代表用户当前登录状态 建议在网络请求中携带 token
- // 如有必要 token 需要定时更新,默认保存一天
- util.cookies.set('uuid', res.uuid)
- util.cookies.set('token', res.token)
- // 设置 vuex 用户信息
- await dispatch('d2admin/user/set', {
- name: res.name
- }, { root: true })
- // 用户登录后从持久化数据加载一系列的设置
- await dispatch('load')
- // 更新路由 尝试去获取 cookie 里保存的需要重定向的页面完整地址
- const path = util.cookies.get('redirect')
- // 根据是否存有重定向页面判断如何重定向
- vm.$router.replace(path ? { path } : route)
- // 删除 cookie 中保存的重定向页面
- util.cookies.remove('redirect')
- })
- .catch(err => {
- console.log('err: ', err)
- })
},
/**
* @description 注销用户并返回登录页面