Procházet zdrojové kódy

手机号+密码登录

Xiao_123 před 1 rokem
rodič
revize
f2e7ad1d0e

+ 1 - 1
.env.development

@@ -1,6 +1,6 @@
 NODE_ENV = 'development'
 
-VITE_APP_TITLE = 门墩儿
+VITE_APP_TITLE = 门墩儿
 
 VITE_BASE_URL = 'http://192.168.3.80'
 

+ 12 - 2
src/api/common/index.js

@@ -10,12 +10,22 @@ export const smsLogin = (params) => {
   return http.post('/app-api/menduner/system/auth/sms-login', params)
 }
 
+// 密码登录
+export const passwordLogin = (params) => {
+  return http.post('/app-api/menduner/system/auth/login', params)
+}
+
 // 退出登录
 export const logout = () => {
   return http.post('/app-api/menduner/system/auth/logout')
 }
 
+// 修改密码
+export const updatePassword = (params) => {
+  return http.put('/app-api/menduner/system/mde-user/update-password', params)
+}
+
 // 重置密码
 export const resetPassword = (params) => {
-  return http.put('/app-api/menduner/system/mde-user/reset-password', params)
-} 
+  return http.put('/admin-api/menduner/system/mde-user/update-password', params)
+}

+ 1 - 1
src/layout/personal/navBar.vue

@@ -103,7 +103,7 @@ const handleLogout = async () => {
 }
 
 const items = ref([
-  { title: '账号设置', change: () => router.push({ path: '/personalAccount' }) },
+  { title: '账号设置', change: () => router.push({ path: '/personalAccount/accountBinding' }) },
   { title: '切换为招聘者', change: changeRole },
   { title: '退出登录', change: handleLogout }
 ])

+ 27 - 6
src/store/user.js

@@ -1,7 +1,7 @@
 import { defineStore } from 'pinia'
 import { reactive } from 'vue'
 import { setToken, deleteToken } from '@/utils/auth'
-import { smsLogin } from '@/api/common/index'
+import { smsLogin, passwordLogin } from '@/api/common/index'
 import { logout } from '@/api/common/index'
 import { getUserInfo } from '@/api/personal/user'
 
@@ -9,8 +9,9 @@ export const userLocaleStore = defineStore('user',
   () => {
     let accountInfo = reactive({}) // 登录返回的信息
     let userInfo = reactive({}) // 当前登录账号信息
-    // 登录
-    const handleLogin = async (data) => {
+
+    // 短信登录
+    const handleSmsLogin = async (data) => {
       return new Promise((resolve, reject) => {
         smsLogin(data).then(res => {
           const { data } = res
@@ -19,11 +20,29 @@ export const userLocaleStore = defineStore('user',
           accountInfo = data
           localStorage.setItem('accountInfo', JSON.stringify(data))
           localStorage.setItem('expiresTime', data.expiresTime) // token过期时间
-          getUserInfos() // 获取当前登录账户信息
+          getUserInfos()
+          resolve()
+        }).catch(err => { reject(err) })
+      })
+    }
+
+    // 密码登录
+    const handlePasswordLogin = async (data) => {
+      return new Promise((resolve, reject) => {
+        passwordLogin(data).then(res => {
+          const { data } = res
+          console.log(data, 'res-login-password')
+          setToken(data.accessToken)
+          accountInfo = data
+          localStorage.setItem('accountInfo', JSON.stringify(data))
+          localStorage.setItem('expiresTime', data.expiresTime) // token过期时间
+          getUserInfos()
           resolve()
         }).catch(err => { reject(err) })
       })
     }
+
+    // 获取当前登录账户信息
     const getUserInfos = async () => {
       try {
         const { data } = await getUserInfo({ id: accountInfo.userId })
@@ -34,6 +53,7 @@ export const userLocaleStore = defineStore('user',
         alert(error.msg)
       }
     }
+
     // 退出登录
     const userLogout = async () => {
       await logout()
@@ -44,8 +64,9 @@ export const userLocaleStore = defineStore('user',
     }
     return {
       userInfo,
-      handleLogin,
-      userLogout
+      handleSmsLogin,
+      userLogout,
+      handlePasswordLogin
     }
   },
   {

+ 3 - 1
src/views/Home/personal/account/dynamic/accountBinding.vue

@@ -3,13 +3,15 @@
     <h3>账号绑定</h3>
     <v-divider class="mb-4"></v-divider>
     <div>
-      <div class="login-user">当前登录账号: <span>13229740091</span> <span class="activeText ml-3">改绑手机号</span></div>
+      <div class="login-user">当前登录账号: <span>{{ userInfo.phone }}</span> <span class="activeText ml-3">改绑手机号</span></div>
       <div class="tips mt-2 mb-1">账号即绑定的手机号,用于使用账号密码或获取验证码进行登录。</div>
     </div>
   </div>
 </template>
 
 <script setup name="accountBinding">
+// 当前登录的用户信息
+const userInfo = JSON.parse(localStorage.getItem('userInfo'))
 </script>
 
 <style lang="scss" scoped>

+ 4 - 2
src/views/Home/personal/account/dynamic/editPassword.vue

@@ -43,7 +43,7 @@
 
 <script setup name="editPassword">
 import PhonePage from '@/components/VerificationCode'
-import { resetPassword } from '@/api/common/index'
+import { updatePassword } from '@/api/common/index'
 import { ref, reactive, computed } from 'vue'
 
 const phoneRef = ref()
@@ -68,9 +68,11 @@ const handleSubmit = async () => {
   if (!phoneValid || !passValid) return
   loading.value = true
   try {
-    await resetPassword({ password: query.password, ...phoneRef.value.loginData })
+    await updatePassword({ password: query.password, code: phoneRef.value.loginData.code })
+    console.log('success')
   } catch (error) {
     console.log(error, 'error')
+    alert(error.msg)
   } finally {
     loading.value = false
   }

+ 6 - 2
src/views/login/index.vue

@@ -79,11 +79,15 @@ const tips = reactive({
   text: ''
 })
 const handleLogin = async () => {
-  const { valid } = await phoneRef.value.phoneForm.validate()
+  const { valid } = tab.value === 1 ? await phoneRef.value.phoneForm.validate() : await passRef.value.passwordForm.validate()
   if (!valid) return
   loginLoading.value = true
   try {
-    await userStore.handleLogin(phoneRef.value.loginData)
+    if (tab.value === 1) {
+      await userStore.handleSmsLogin(phoneRef.value.loginData)
+    } else {
+      await userStore.handlePasswordLogin(passRef.value.loginData)
+    }
     tips.color = 'success'
     tips.text = '登录成功'
     tips.show = true