feat: 登录后跳转登录前页面

This commit is contained in:
chenjinsong
2022-04-13 10:14:36 +08:00
parent ea2f8724c2
commit 6537d88956
5 changed files with 56 additions and 16 deletions

View File

@@ -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>

View File

@@ -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)) {

View File

@@ -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 } })
} }
} }
}) })

View File

@@ -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