diff --git a/src/api/system/login.js b/src/api/system/login.js
index dd83927..11272ba 100644
--- a/src/api/system/login.js
+++ b/src/api/system/login.js
@@ -94,3 +94,25 @@ export function verifyScan(data) {
data: data
})
}
+
+/**
+ * 发送短信验证码
+ * @param {*} data
+ * @returns
+ */
+export function checkMobile(data) {
+ return request({
+ method: 'post',
+ data: data,
+ url: '/checkMobile'
+ })
+}
+
+// 登录方法
+export function phoneLogin(data) {
+ return request({
+ url: '/phoneLogin',
+ method: 'POST',
+ data: data
+ })
+}
diff --git a/src/api/system/smscodelog.js b/src/api/system/smscodelog.js
new file mode 100644
index 0000000..991c7f8
--- /dev/null
+++ b/src/api/system/smscodelog.js
@@ -0,0 +1,40 @@
+import request from '@/utils/request'
+import { downFile } from '@/utils/request'
+
+/**
+ * 短信验证码记录分页查询
+ * @param {查询条件} data
+ */
+export function listSmscodeLog(query) {
+ return request({
+ url: 'system/SmscodeLog/list',
+ method: 'get',
+ params: query
+ })
+}
+
+/**
+ * 获取短信验证码记录详情
+ * @param {Id}
+ */
+export function getSmscodeLog(id) {
+ return request({
+ url: 'system/SmscodeLog/' + id,
+ method: 'get'
+ })
+}
+
+/**
+ * 删除短信验证码记录
+ * @param {主键} pid
+ */
+export function delSmscodeLog(pid) {
+ return request({
+ url: 'system/SmscodeLog/' + pid,
+ method: 'delete'
+ })
+}
+// 导出短信验证码记录
+export async function exportSmscodeLog(query) {
+ await downFile('system/SmscodeLog/export', { ...query })
+}
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index dff8eb7..3ca8a9b 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,4 +1,4 @@
-import { login, logout, getInfo, oauthCallback } from '@/api/system/login'
+import { login, logout, getInfo, oauthCallback, phoneLogin } from '@/api/system/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import useTagsViewStore from './tagsView'
import defAva from '@/assets/images/profile.jpg'
@@ -84,6 +84,25 @@ const useUserStore = defineStore('user', {
resolve(data.token) //then处理
})
},
+ // 手机号登录
+ phoneNumLogin(userInfo) {
+ return new Promise((resolve, reject) => {
+ phoneLogin(userInfo)
+ .then((res) => {
+ if (res.code == 200) {
+ setToken(res.data)
+ this.token = res.data
+ resolve() //then处理
+ } else {
+ console.log('login error ', res)
+ reject(res) //catch处理
+ }
+ })
+ .catch((error) => {
+ reject(error)
+ })
+ })
+ },
// 获取用户信息
getInfo() {
return new Promise((resolve, reject) => {
diff --git a/src/utils/request.js b/src/utils/request.js
index 1bf3af5..d1c91d0 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -26,7 +26,7 @@ service.interceptors.request.use(
//将token放到请求头发送给服务器,将tokenkey放在请求头中
config.headers['Authorization'] = 'Bearer ' + getToken()
config.headers['userid'] = useUserStore().userId
- config.headers['userName'] = useUserStore().userName
+ config.headers['userName'] = encodeURIComponent(useUserStore().userName)
}
const method = config?.method || 'get'
const header = config?.headers['Content-Type'] ?? ''
@@ -93,7 +93,7 @@ service.interceptors.response.use(
let { message, response } = error
if (response.status == 403) {
- window.location.href = '/401'
+ window.location.href = import.meta.env.VITE_APP_ROUTER_PREFIX + '401'
} else if (message == 'Network Error') {
message = '后端接口连接异常'
} else if (message.includes('timeout')) {
diff --git a/src/views/components/Login/phoneLogin.vue b/src/views/components/Login/phoneLogin.vue
index bd5c598..36efe1e 100644
--- a/src/views/components/Login/phoneLogin.vue
+++ b/src/views/components/Login/phoneLogin.vue
@@ -7,6 +7,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -18,16 +28,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -39,15 +39,14 @@