|
|
@@ -4,19 +4,21 @@
|
|
|
<img src="@/assets/img/logo.png" class="img">
|
|
|
</div>
|
|
|
<div class="input">
|
|
|
- <van-form @submit.prevent="submitForm" >
|
|
|
+ <van-form @submit="submitForm" >
|
|
|
<van-tabs v-model:active="login_typ" @change="resetForm">
|
|
|
<van-tab title="密码登录" name="pwd"></van-tab>
|
|
|
<van-tab title="验证码登录" name="sms"></van-tab>
|
|
|
</van-tabs>
|
|
|
- <van-field style="font-size: 16px;" v-model="loginForm.account" name="用户名" label="用户名"
|
|
|
+ <van-field v-if="login_typ === 'pwd'" style="font-size: 16px;" v-model="loginForm.account" name="用户名" label="用户名"
|
|
|
placeholder="请输入用户名" :rules="[{ required: true, message: '请填写用户名' }]" />
|
|
|
+ <van-field v-else-if="login_typ === 'sms'" type="tel" style="font-size: 16px;" v-model="loginForm.account" name="手机号" label="手机号"
|
|
|
+ placeholder="请输入手机号" :rules="[{ required: true, message: '请填写手机号' }]" />
|
|
|
<van-field v-if="login_typ === 'pwd'" style="font-size: 16px;" v-model="loginForm.password" type="password" name="密码"
|
|
|
label="密 码" placeholder="请输入密码" :rules="[{ required: true, message: '请填写密码' }]" />
|
|
|
<van-field v-else-if="login_typ === 'sms'" style="font-size: 16px;" v-model="loginForm.smsCaptcha" type="number" name="密码"
|
|
|
label="验证码" placeholder="请输入验证码" :rules="[{ required: true, message: '请填写验证码' }]">
|
|
|
<template #button>
|
|
|
- <van-button size="small" type="primary" style="width: 20vw;" :disabled="!can_send" @click="getCaptcha">{{ smsMessage }}</van-button>
|
|
|
+ <van-button size="small" type="primary" style="width: 20vw;" :disabled="!can_send || loginForm.account.length!==11" @click="getCaptcha">{{ smsMessage }}</van-button>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
<van-field style="font-size: 16px;" v-model="loginForm.password" type="hidden" id="md5_password" />
|
|
|
@@ -34,7 +36,7 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { reactive, ref, onMounted } from 'vue';
|
|
|
-import { getUserLogin } from '@/api/index'
|
|
|
+import { getUserLogin, captchaLogin, getCaptchaHttp, userProfile } from '@/api/index'
|
|
|
import Message from '@/utils/Message'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { useStore } from '@/store/index'
|
|
|
@@ -60,53 +62,91 @@ const loginForm = reactive<login>({
|
|
|
timestamp: parseInt(`${Date.now() / 1000}`),
|
|
|
smsCaptcha: undefined
|
|
|
})
|
|
|
-
|
|
|
+const from = ref<1 | 2>(1)
|
|
|
const submitForm = async () => {
|
|
|
- // 登录密码加密
|
|
|
- let md5Pwd: any = document.querySelector('#md5_password')
|
|
|
- md5Pwd = md5(md5(md5(loginForm.password)) + loginForm.timestamp)
|
|
|
+ console.log(login_typ.value);
|
|
|
+
|
|
|
+ if(login_typ.value === 'pwd'){
|
|
|
+ // 登录密码加密
|
|
|
+ let md5Pwd: any = document.querySelector('#md5_password')
|
|
|
+ md5Pwd = md5(md5(md5(loginForm.password)) + loginForm.timestamp)
|
|
|
|
|
|
- const params = {
|
|
|
- account: loginForm.account,
|
|
|
- password: md5Pwd,
|
|
|
- timestamp: loginForm.timestamp
|
|
|
- }
|
|
|
- await getUserLogin(params).then(res => {
|
|
|
- // console.log('res---->', res);
|
|
|
- if (res.data.code === 200) {
|
|
|
- Message.success('登录成功')
|
|
|
- // 保存用户信息 和 token
|
|
|
- localStorage.setItem('token', res.data.data.token)
|
|
|
- localStorage.setItem('account', loginForm.account)
|
|
|
+ const params = {
|
|
|
+ account: loginForm.account,
|
|
|
+ password: md5Pwd,
|
|
|
+ timestamp: loginForm.timestamp
|
|
|
+ }
|
|
|
+ await getUserLogin(params).then(async(res) => {
|
|
|
+ // console.log('res---->', res);
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ Message.success('登录成功')
|
|
|
+ // 保存用户信息 和 token
|
|
|
+ localStorage.setItem('token', res.data.data.token)
|
|
|
+ localStorage.setItem('account', loginForm.account)
|
|
|
+ localStorage.setItem('from', '1')
|
|
|
+ await user.getUserProfile()
|
|
|
|
|
|
- user.setUerInfo(loginForm)
|
|
|
- // 浏览器记住账户和密码
|
|
|
- window.sessionStorage.setItem('token', res.data.data.token)
|
|
|
- window.sessionStorage.setItem('account', loginForm.account)
|
|
|
- window.sessionStorage.setItem('password', loginForm.password)
|
|
|
- // 跳转我的游戏页面
|
|
|
- setTimeout(() => {
|
|
|
- router.push({ path: '/m_mine', query: { account: loginForm.account } })
|
|
|
- local.set('headerPath', '我的')
|
|
|
- }, 1000);
|
|
|
+ // 浏览器记住账户和密码
|
|
|
+ // window.sessionStorage.setItem('token', res.data.data.token)
|
|
|
+ // window.sessionStorage.setItem('account', loginForm.account)
|
|
|
+ // window.sessionStorage.setItem('password', loginForm.password)
|
|
|
+ // 跳转我的游戏页面
|
|
|
+ setTimeout(() => {
|
|
|
+ router.push({ path: '/m_mine', query: { account: loginForm.account } })
|
|
|
+ local.set('headerPath', '我的')
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ // console.log('err===>', err);
|
|
|
+ Message.error(err.data.msg)
|
|
|
+ })
|
|
|
+ }else if(login_typ.value === 'sms'){
|
|
|
+ const params = {
|
|
|
+ mobile: loginForm.account,
|
|
|
+ captcha: loginForm.smsCaptcha
|
|
|
}
|
|
|
- }).catch(err => {
|
|
|
- // console.log('err===>', err);
|
|
|
- Message.error(err.data.msg)
|
|
|
- })
|
|
|
+ console.log(params);
|
|
|
+
|
|
|
+ await captchaLogin(params).then(async(res) => {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ showSuccessToast('登录成功');
|
|
|
+ localStorage.setItem('token', res.data.data.token)
|
|
|
+ localStorage.setItem('account', loginForm.account)
|
|
|
+ localStorage.setItem('from', '2')
|
|
|
+ await user.getUserProfile()
|
|
|
+ setTimeout(() => {
|
|
|
+ router.push({ path: '/m_mine', query: { account: loginForm.account } })
|
|
|
+ local.set('headerPath', '我的')
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+
|
|
|
+ }).catch((error) => {
|
|
|
+ console.log(error)
|
|
|
+ showFailToast(error.data.msg)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
const resetForm = () => {
|
|
|
loginForm.account = ''
|
|
|
loginForm.password = '',
|
|
|
- loginForm.smsCaptcha = null
|
|
|
+ loginForm.smsCaptcha = undefined
|
|
|
}
|
|
|
-const getCaptcha = () => {
|
|
|
- can_send.value = false
|
|
|
- smsMessage.value = VALID
|
|
|
- settimes()
|
|
|
- sessionStorage.setItem('LOGIN_CAPTCHA', Math.round(new Date().getTime() / 1000).toString())
|
|
|
- showSuccessToast('验证码已发送,请注意查收');
|
|
|
+const getCaptcha = async() => {
|
|
|
+ await getCaptchaHttp({mobile: loginForm.account}).then((res) => {
|
|
|
+ console.log(res)
|
|
|
+ can_send.value = false
|
|
|
+ smsMessage.value = VALID
|
|
|
+ settimes()
|
|
|
+ sessionStorage.setItem('LOGIN_CAPTCHA', Math.round(new Date().getTime() / 1000).toString())
|
|
|
+ showSuccessToast('验证码已发送,请注意查收');
|
|
|
+ }).catch((error) => {
|
|
|
+ console.log(error)
|
|
|
+ showFailToast(error.data.msg)
|
|
|
+ })
|
|
|
+
|
|
|
}
|
|
|
const settimes = () => {
|
|
|
var interval
|