diff --git a/oms_web/oms_vue/src/api/login.js b/oms_web/oms_vue/src/api/login.js
index 186420d9..59a829a2 100644
--- a/oms_web/oms_vue/src/api/login.js
+++ b/oms_web/oms_vue/src/api/login.js
@@ -1,5 +1,11 @@
import request from '@/utils/request'
+function createLoginFormData(data) {
+ const formData = new FormData()
+ Object.keys(data).forEach(key => formData.append(key, data[key]))
+ return formData
+}
+
// 登录方法 - 基于 Session 认证,使用 FormData 格式
export function login(username, password, code, rememberMe) {
const formData = new FormData()
@@ -9,6 +15,41 @@ export function login(username, password, code, rememberMe) {
formData.append('rememberMe', rememberMe || false)
return request({
url: '/login',
+ headers: {
+ isToken: false,
+ 'Content-Type': 'multipart/form-data',
+ repeatSubmit: false,
+ allowWarning: true
+ },
+ method: 'post',
+ data: formData
+ })
+}
+
+export function resetLoginPwd(data) {
+ const formData = createLoginFormData({
+ username: data.username,
+ oldPassword: data.oldPassword,
+ newPassword: data.newPassword,
+ confirmPassword: data.confirmPassword,
+ emailCode: data.emailCode
+ })
+ return request({
+ url: '/login/resetPwd',
+ headers: {
+ isToken: false,
+ 'Content-Type': 'multipart/form-data',
+ repeatSubmit: false
+ },
+ method: 'post',
+ data: formData
+ })
+}
+
+export function sendResetPwdEmailCode(username) {
+ const formData = createLoginFormData({ username })
+ return request({
+ url: '/login/sendResetPwdEmailCode',
headers: {
isToken: false,
'Content-Type': 'multipart/form-data',
diff --git a/oms_web/oms_vue/src/store/modules/user.js b/oms_web/oms_vue/src/store/modules/user.js
index 71852f98..f4cb14c3 100644
--- a/oms_web/oms_vue/src/store/modules/user.js
+++ b/oms_web/oms_vue/src/store/modules/user.js
@@ -52,7 +52,7 @@ const user = {
const rememberMe = userInfo.rememberMe
return new Promise((resolve, reject) => {
login(username, password, code, rememberMe).then(res => {
- resolve()
+ resolve(res)
}).catch(error => {
reject(error)
})
@@ -60,17 +60,16 @@ const user = {
},
// 获取用户信息
- GetInfo({ commit, state }) {
+ GetInfo({ commit }) {
return new Promise((resolve, reject) => {
getInfo().then(res => {
- // 后端返回的数据在 res.data 中
const data = res.data || res
const user = data.user
- let avatar = user.avatar? '/common/download/resource?resource='+encodeURIComponent(user.avatar) : ""
+ let avatar = user.avatar ? '/common/download/resource?resource=' + encodeURIComponent(user.avatar) : ""
if (!isHttp(avatar)) {
avatar = (isEmpty(avatar)) ? defAva : process.env.VUE_APP_BASE_API + avatar
}
- if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
+ if (data.roles && data.roles.length > 0) {
commit('SET_ROLES', data.roles)
commit('SET_PERMISSIONS', data.permissions)
} else {
@@ -82,15 +81,13 @@ const user = {
commit('SET_NAME', user.loginName)
commit('SET_NICK_NAME', user.userName)
commit('SET_AVATAR', avatar)
- /* 初始密码提示 */
- if(data.isDefaultModifyPwd) {
- MessageBox.confirm('您的密码还是初始密码,请修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => {
+ if (data.isDefaultModifyPwd) {
+ MessageBox.confirm('您的密码还是初始密码,请修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => {
router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } })
}).catch(() => {})
}
- /* 过期密码提示 */
- if(!data.isDefaultModifyPwd && data.isPasswordExpired) {
- MessageBox.confirm('您的密码已过期,请尽快修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => {
+ if (!data.isDefaultModifyPwd && data.isPasswordExpired) {
+ MessageBox.confirm('您的密码已过期,请尽快修改密码!', '安全提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => {
router.push({ name: 'Profile', params: { activeTab: 'resetPwd' } })
}).catch(() => {})
}
@@ -102,7 +99,7 @@ const user = {
},
// 退出系统 - 基于 Session 认证
- LogOut({ commit, state }) {
+ LogOut({ commit }) {
return new Promise((resolve, reject) => {
logout().then(() => {
commit('SET_ROLES', [])
diff --git a/oms_web/oms_vue/src/utils/request.js b/oms_web/oms_vue/src/utils/request.js
index e8d13767..3d3e027e 100644
--- a/oms_web/oms_vue/src/utils/request.js
+++ b/oms_web/oms_vue/src/utils/request.js
@@ -110,6 +110,8 @@ service.interceptors.response.use(res => {
} else if (code === 601) {
Message({ message: msg, type: 'warning' })
return Promise.reject('error')
+ } else if (code === 301 && res.config.headers && res.config.headers.allowWarning) {
+ return res.data
} else if (code !== 200) {
Notification.error({ title: msg })
return Promise.reject('error')
diff --git a/oms_web/oms_vue/src/views/login.vue b/oms_web/oms_vue/src/views/login.vue
index 6b2f50ba..a08f16d8 100644
--- a/oms_web/oms_vue/src/views/login.vue
+++ b/oms_web/oms_vue/src/views/login.vue
@@ -54,6 +54,37 @@
+