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.

128 lines
3.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// pages/login/login.js
Page({
data: {
ID: '', // 用户输入的 ID
password: '', // 用户输入的密码
errorMessage: '' // 错误信息提示
},
// 处理 ID 输入
onIDInput(e) {
this.setData({
ID: e.detail.value // 将输入的ID存储到 data 中
});
this.clearErrorMessage(); // 清除错误提示
},
// 处理密码输入
onPasswordInput(e) {
this.setData({
password: e.detail.value // 将输入的密码存储到 data 中
});
this.clearErrorMessage(); // 清除错误提示
},
// 清除错误信息
clearErrorMessage() {
if (this.data.errorMessage) {
this.setData({ errorMessage: '' });
}
},
// 检查管理员状态
checkAdminStatus() {
const token = getApp().globalData.token || wx.getStorageSync('token');
if (!token) {
this.setData({ errorMessage: 'Token 丢失,请重新登录' });
return;
}
console.log("Checking admin status with token:", token); // 输出 token 确认
wx.request({
header: {
'Authorization': `${token}`, // 使用存储的 token
'content-type': 'application/x-www-form-urlencoded'
},
url: 'http://192.168.144.1:8080/user/is_admin', // 管理员状态查询接口
method: 'GET',
success: (res) => {
console.log("Admin status response:", res); // 输出请求返回数据
if (res.data.data) {
wx.navigateTo({
url: '/pages/admin/admin' // 管理员页面
});
} else {
wx.switchTab({
url: '/pages/home/home' // 普通用户主页
});
}
},
fail: (error) => {
console.log("Admin status check failed", error);
this.setData({
errorMessage: '无法验证管理员状态,请稍后再试'
});
}
});
},
submitUserInfo() {
const { ID, password } = this.data;
if (!ID || !password) {
this.setData({
errorMessage: 'ID和密码不能为空'
});
return;
}
wx.request({
header: {
'content-type': 'application/x-www-form-urlencoded'
},
url: 'http://192.168.144.1:8080/user/login',
method: 'POST',
data: {
'username': ID,
'password': password
},
success: (res) => {
if (res.data.code == 0) {
wx.showToast({
title: '登录成功',
icon: 'success'
});
// 检查 getApp() 和 globalData 是否定义
const appInstance = getApp();
if (appInstance && appInstance.globalData) {
appInstance.globalData.token = res.data.data;
wx.setStorageSync('token', res.data.data);
} else {
console.error("App instance or globalData is not initialized");
}
this.checkAdminStatus();
} else {
this.setData({
errorMessage: res.data.message || '登录失败请检查ID和密码'
});
}
},
fail: (error) => {
console.log('登录失败', error);
this.setData({
errorMessage: '网络请求失败,请稍后再试'
});
}
});
},
// 跳转到注册页面
goToRegister() {
wx.redirectTo({
url: '/pages/register/register' // 跳转到注册页面
});
}
});