Files
zsxt_nbzs_h5/Web/src/common/login/index.js

64 lines
2.0 KiB
JavaScript

import { api } from '@/common/api'
import { token } from '@/common/token'
import { encryptByDES, decryptByDES } from '@/util/des'
import { encryptByRSA } from '@/util/rsa'
import { removeGlobal, RSA_PUBLIC_KEY } from '@/util/global'
import app from '@/main'
const doLogin = (args) => {
return new Promise((resolve, reject) => {
let { account, password } = args
password = encryptByRSA(password, RSA_PUBLIC_KEY)
api.login({ account, password }).then(({ success, data, message }) => {
if (success) {
token.value = data
app.$message.success('登录成功')
if (app.$route.query.return) {
const r = decryptByDES(app.$route.query.return)
app.$router.replace(r)
} else {
app.$router.replace('/')
}
resolve()
} else {
app.$message.error(message)
reject()
}
}).catch(({ message }) => {
if (typeof message === 'object' && message[0]) {
app.$message.error(message[0].messages[0])
}
reject()
})
})
}
const doLogout = () => {
return new Promise((resolve, reject) => {
api.logout().then(({ success, message }) => {
if (success) {
removeGlobal()
token.value = ''
if (app.$route.path === '/') {
app.$router.replace('/login')
} else {
app.$router.replace({
path: '/login',
query: {
return: decodeURIComponent(encryptByDES(app.$route.path))
}
})
}
resolve()
} else {
app.$message.error(message)
reject()
}
})
})
}
export {
doLogin,
doLogout,
}