You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
3.4 KiB
173 lines
3.4 KiB
<template>
|
|
<view class="con">
|
|
<image src="@/static/logo.png" />
|
|
<!-- 登录 -->
|
|
<view class="login-form">
|
|
<view :class="['item',errorTips==1? 'error':'']">
|
|
<view class="account">
|
|
<text class="input-item">
|
|
账号
|
|
</text>
|
|
<input
|
|
type="text"
|
|
data-type="account"
|
|
placeholder-class="inp-palcehoder"
|
|
placeholder="请输入用户名"
|
|
@input="getInputVal"
|
|
>
|
|
</view>
|
|
<view
|
|
v-if="errorTips==1"
|
|
class="error-text"
|
|
>
|
|
<text class="warning-icon">
|
|
!
|
|
</text>
|
|
请输入账号!
|
|
</view>
|
|
</view>
|
|
<view :class="['item',errorTips==2? 'error':'']">
|
|
<view class="account">
|
|
<text class="input-item">
|
|
密码
|
|
</text>
|
|
<input
|
|
type="password"
|
|
data-type="password"
|
|
placeholder-class="inp-palcehoder"
|
|
placeholder="请输入密码"
|
|
@input="getInputVal"
|
|
>
|
|
</view>
|
|
<view
|
|
v-if="errorTips==2"
|
|
class="error-text"
|
|
>
|
|
<text class="warning-icon">
|
|
!
|
|
</text>
|
|
请输入密码!
|
|
</view>
|
|
</view>
|
|
<view class="operate">
|
|
<view
|
|
class="to-register"
|
|
@tap="toRegitser"
|
|
>
|
|
还没有账号?
|
|
<text>去注册></text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view>
|
|
<button
|
|
class="authorized-btn"
|
|
@tap="login"
|
|
>
|
|
登录
|
|
</button>
|
|
<button
|
|
class="to-idx-btn"
|
|
@tap="toIndex"
|
|
>
|
|
回到首页
|
|
</button>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { encrypt } from '@/utils/crypto.js'
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow(() => {
|
|
// 头部导航标题
|
|
uni.setNavigationBarTitle({
|
|
title: '用户登录'
|
|
})
|
|
})
|
|
|
|
const principal = ref('') // 账号
|
|
const errorTips = ref(0) // 错误提示
|
|
watch(
|
|
() => principal.value,
|
|
() => {
|
|
errorTips.value = 0
|
|
}
|
|
)
|
|
|
|
const credentials = ref('') // 密码
|
|
/**
|
|
* 输入框的值
|
|
*/
|
|
const getInputVal = (e) => {
|
|
const type = e.currentTarget.dataset.type
|
|
if (type == 'account') {
|
|
principal.value = e.detail.value
|
|
} else if (type == 'password') {
|
|
credentials.value = e.detail.value
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 登录
|
|
*/
|
|
const login = () => {
|
|
if (principal.value.length == 0) {
|
|
errorTips.value = 1
|
|
} else if (credentials.value.length == 0) {
|
|
errorTips.value = 2
|
|
} else {
|
|
errorTips.value = 0
|
|
http.request({
|
|
url: '/login',
|
|
method: 'post',
|
|
data: {
|
|
userName: principal.value,
|
|
passWord: encrypt(credentials.value)
|
|
}
|
|
})
|
|
.then(({ data }) => {
|
|
http.loginSuccess(data, () => {
|
|
uni.showToast({
|
|
title: '登录成功',
|
|
icon: 'none',
|
|
complete: () => {
|
|
setTimeout(() => {
|
|
wx.switchTab({
|
|
url: '/pages/index/index'
|
|
})
|
|
}, 1000)
|
|
}
|
|
})
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 去注册
|
|
*/
|
|
const toRegitser = () => {
|
|
uni.navigateTo({
|
|
url: '/pages/register/register'
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 回到首页
|
|
*/
|
|
const toIndex = () => {
|
|
wx.switchTab({
|
|
url: '/pages/index/index'
|
|
})
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@import "./accountLogin.scss";
|
|
</style>
|