main
parent
b185eecd85
commit
5ab6f40d5f
@ -0,0 +1,164 @@
|
||||
<template>
|
||||
<view class="login-container">
|
||||
<!-- Login Form -->
|
||||
<view class="form">
|
||||
<view class="input-group">
|
||||
<text class="icon">👤</text>
|
||||
<input class="input" v-model="form.studentId" placeholder="请输入账号" />
|
||||
</view>
|
||||
<view class="input-group">
|
||||
<text class="icon">🔒</text>
|
||||
<input class="input" v-model="form.password" type="password" placeholder="请输入密码" />
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- Buttons -->
|
||||
<button class="login-button" @click="login">登录</button>
|
||||
<button class="register-button" @click="navigateToRegister">注册</button>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const form = ref({
|
||||
studentId: '',
|
||||
password: ''
|
||||
});
|
||||
|
||||
const loginData = ref([]);
|
||||
|
||||
const navigateToRegister = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/login/zhuce/shenfen',
|
||||
success: res => {
|
||||
console.log("成功跳转到注册页面");
|
||||
},
|
||||
fail: err => {
|
||||
console.error("跳转失败:", err);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const login = async () => {
|
||||
try {
|
||||
let res = await uni.request({
|
||||
url: "http://10.198.140.41:3000/api/students/login",
|
||||
method: 'POST',
|
||||
header: {
|
||||
'Content-Type': 'application/json' // 设置请求头为 JSON 格式
|
||||
},
|
||||
data: {
|
||||
studentId: form.value.studentId,
|
||||
password: form.value.password
|
||||
},
|
||||
});
|
||||
|
||||
console.log("响应数据:", res.data); // 打印响应数据
|
||||
|
||||
if (res && res.data) {
|
||||
loginData.value = res.data; // 处理返回的数据
|
||||
if(res.data.message === "登录成功"){
|
||||
console.log("登录成功!");
|
||||
uni.switchTab({
|
||||
url:"/pages/index/index"
|
||||
})
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("登录请求失败:", error); // 错误处理
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.login-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 20px;
|
||||
height: 760px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 16px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.form {
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
margin-bottom: 20px;
|
||||
margin-top: 140px;
|
||||
}
|
||||
|
||||
.input-group {
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 36px;
|
||||
margin-bottom: 15px;
|
||||
background-color: white;
|
||||
border-radius: 25px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
margin-right: 10px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.input {
|
||||
flex: 1;
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.login-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
padding: 10px;
|
||||
height: 48px;
|
||||
background-color: #4CAF50;
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 25px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.register-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 48px;
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
padding: 10px;
|
||||
background-color: transparent;
|
||||
color: #4CAF50;
|
||||
border: 1px solid #4CAF50;
|
||||
border-radius: 25px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error-message {
|
||||
color: red;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
</style>
|
Loading…
Reference in new issue