feat: 登录后跳转登录前页面
This commit is contained in:
@@ -40,6 +40,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { mapActions } from 'vuex'
|
import { mapActions } from 'vuex'
|
||||||
import { post, get } from '@/utils/http'
|
import { post, get } from '@/utils/http'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
name: 'Login',
|
name: 'Login',
|
||||||
@@ -71,6 +72,7 @@ export default {
|
|||||||
if (!this.$_.isEmpty(res.data.theme)) {
|
if (!this.$_.isEmpty(res.data.theme)) {
|
||||||
localStorage.setItem('cn-theme', res.data.theme)
|
localStorage.setItem('cn-theme', res.data.theme)
|
||||||
}
|
}
|
||||||
|
res.loginSuccessPath = this.loginSuccessPath
|
||||||
this.loginSuccess(res)
|
this.loginSuccess(res)
|
||||||
localStorage.setItem('cn-username', this.username)
|
localStorage.setItem('cn-username', this.username)
|
||||||
} else if (res.code === 518005) {
|
} else if (res.code === 518005) {
|
||||||
@@ -113,6 +115,12 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.appearance()
|
this.appearance()
|
||||||
|
},
|
||||||
|
setup (props) {
|
||||||
|
const { currentRoute } = useRouter()
|
||||||
|
return {
|
||||||
|
loginSuccessPath: currentRoute.value.query.redirect
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -46,9 +46,7 @@ export default {
|
|||||||
lineNumbers: false
|
lineNumbers: false
|
||||||
})
|
})
|
||||||
this.codeMirror.setOption('extraKeys', {
|
this.codeMirror.setOption('extraKeys', {
|
||||||
Enter: (cm) => {
|
Enter: (cm) => {}
|
||||||
this.search()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
search () {
|
search () {
|
||||||
@@ -68,6 +66,18 @@ export default {
|
|||||||
originalSql = originalSql.replaceAll(reg.notStrictIpv6, function (word) {
|
originalSql = originalSql.replaceAll(reg.notStrictIpv6, function (word) {
|
||||||
return `'${word}'`
|
return `'${word}'`
|
||||||
})
|
})
|
||||||
|
|
||||||
|
let tempArr = originalSql.split(' ')
|
||||||
|
tempArr = tempArr.map(t => {
|
||||||
|
if (t.lastIndexOf("'") !== (t.length - 1) && t.indexOf("'") !== 0) {
|
||||||
|
if (reg.containChinese.test(t)) {
|
||||||
|
return `'${t}'`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return t
|
||||||
|
})
|
||||||
|
originalSql = tempArr.join(' ')
|
||||||
|
|
||||||
const parser = new SqlParser(originalSql, this.columnList)
|
const parser = new SqlParser(originalSql, this.columnList)
|
||||||
const errorList = parser.validate()
|
const errorList = parser.validate()
|
||||||
if (this.$_.isEmpty(errorList)) {
|
if (this.$_.isEmpty(errorList)) {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ router.beforeEach(async (to, from, next) => {
|
|||||||
if (loginWhiteList.indexOf(to.path) !== -1) {
|
if (loginWhiteList.indexOf(to.path) !== -1) {
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
next({ path: '/login' })
|
next({ path: '/login', query: { redirect: to.fullPath } })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ const user = {
|
|||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
loginSuccess (store, res) {
|
loginSuccess (store, res) {
|
||||||
|
console.info(res)
|
||||||
window.$dayJs.tz.setDefault(res.data.timezone)
|
window.$dayJs.tz.setDefault(res.data.timezone)
|
||||||
localStorage.setItem('cn-token', res.data.token)
|
localStorage.setItem('cn-token', res.data.token)
|
||||||
localStorage.setItem('cn-sys-name', res.data.systemName)
|
localStorage.setItem('cn-sys-name', res.data.systemName)
|
||||||
@@ -52,22 +53,39 @@ const user = {
|
|||||||
localStorage.setItem('cn-sys-timezone', res.data.timezone)
|
localStorage.setItem('cn-sys-timezone', res.data.timezone)
|
||||||
localStorage.setItem('cn-timezone-offset', dayjs.tz().utcOffset() / 60)
|
localStorage.setItem('cn-timezone-offset', dayjs.tz().utcOffset() / 60)
|
||||||
localStorage.setItem('cn-timezone-local-offset', dayjs().utcOffset() / 60)
|
localStorage.setItem('cn-timezone-local-offset', dayjs().utcOffset() / 60)
|
||||||
post('/sys/user/permissions', { token: res.data.token }).then(res => {
|
post('/sys/user/permissions', { token: res.data.token }).then(res2 => {
|
||||||
const menuList = sortByOrderNum(res.data.menus)
|
const menuList = sortByOrderNum(res2.data.menus)
|
||||||
store.commit('setMenuList', menuList)
|
store.commit('setMenuList', menuList)
|
||||||
store.commit('setButtonList', res.data.buttons)
|
store.commit('setButtonList', res2.data.buttons)
|
||||||
store.commit('setRoleList', res.data.roles)
|
store.commit('setRoleList', res2.data.roles)
|
||||||
|
|
||||||
const welcomeMenu = getWelcomeMenu(menuList)
|
if (res.loginSuccessPath) {
|
||||||
if (welcomeMenu) {
|
let tempArr = res.loginSuccessPath.split('?')
|
||||||
|
const path = tempArr[0]
|
||||||
|
const query = {}
|
||||||
|
if (tempArr[1]) {
|
||||||
|
tempArr = tempArr[1].split('&')
|
||||||
|
tempArr.forEach(t => {
|
||||||
|
const kv = t.split('=')
|
||||||
|
query[kv[0]] = kv[1]
|
||||||
|
})
|
||||||
|
}
|
||||||
router.push({
|
router.push({
|
||||||
path: welcomeMenu.route,
|
path: path,
|
||||||
query: {
|
query: query
|
||||||
t: +new Date()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error('No menu')
|
const welcomeMenu = getWelcomeMenu(menuList)
|
||||||
|
if (welcomeMenu) {
|
||||||
|
router.push({
|
||||||
|
path: welcomeMenu.route,
|
||||||
|
query: {
|
||||||
|
t: +new Date()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
ElMessage.error('No menu')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user