|
@@ -0,0 +1,176 @@
|
|
|
+Page({
|
|
|
+ data: {
|
|
|
+ isLogin: false, // 登录状态
|
|
|
+ isHidden: true, // 弹窗状态
|
|
|
+ avatarUrl: '', // 用户头像
|
|
|
+ nickName: '', // 用户昵称
|
|
|
+ username: '', // 用户名(用户名密码登录)
|
|
|
+ password: '', // 密码(用户名密码登录)
|
|
|
+ errorMessage: '', // 错误信息
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取用户头像
|
|
|
+ getAvatar(e) {
|
|
|
+ const avatarUrl = e.detail.avatarUrl; // 从事件中获取头像URL
|
|
|
+
|
|
|
+ if (avatarUrl) {
|
|
|
+ this.setData({
|
|
|
+ avatarUrl: avatarUrl
|
|
|
+ });
|
|
|
+
|
|
|
+ // 授权登录后,自动设置默认密码到缓存
|
|
|
+ wx.setStorageSync('password', '123');
|
|
|
+
|
|
|
+ // 创建userInfo对象,保存头像和昵称到缓存
|
|
|
+ let userInfo = {
|
|
|
+ avatarUrl: avatarUrl,
|
|
|
+ nickName: this.data.nickName
|
|
|
+ };
|
|
|
+ wx.setStorageSync('userinfo', userInfo); // 保存到缓存
|
|
|
+ } else {
|
|
|
+ wx.showToast({
|
|
|
+ title: '头像获取失败',
|
|
|
+ icon: 'error',
|
|
|
+ duration: 2000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取用户昵称
|
|
|
+ getName(e) {
|
|
|
+ const nickName = e.detail.value; // 获取昵称
|
|
|
+ this.setData({
|
|
|
+ nickName: nickName
|
|
|
+ });
|
|
|
+
|
|
|
+ // 在授权登录时,将昵称更新到缓存的 userInfo 对象中
|
|
|
+ let userInfo = wx.getStorageSync('userinfo') || {};
|
|
|
+ userInfo.nickName = nickName;
|
|
|
+ wx.setStorageSync('userinfo', userInfo); // 更新缓存
|
|
|
+ },
|
|
|
+
|
|
|
+ // 显示登录弹窗
|
|
|
+ gologin() {
|
|
|
+ this.setData({
|
|
|
+ isHidden: false
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 取消登录弹窗
|
|
|
+ potNo() {
|
|
|
+ this.setData({
|
|
|
+ isHidden: true
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 确认登录弹窗
|
|
|
+ popYes() {
|
|
|
+ const { avatarUrl, nickName } = this.data;
|
|
|
+ if (!avatarUrl || !nickName) {
|
|
|
+ wx.showToast({
|
|
|
+ icon: 'error',
|
|
|
+ title: '请获取头像和昵称',
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setData({
|
|
|
+ isLogin: true,
|
|
|
+ isHidden: true,
|
|
|
+ });
|
|
|
+
|
|
|
+ // 登录成功后跳转到指定页面
|
|
|
+ wx.switchTab({
|
|
|
+ url: '/pages/Calculate/Calculate',
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 用户名密码登录
|
|
|
+ inputUsername(e) {
|
|
|
+ this.setData({
|
|
|
+ username: e.detail.value
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ inputPassword(e) {
|
|
|
+ this.setData({
|
|
|
+ password: e.detail.value
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 登录验证
|
|
|
+ login() {
|
|
|
+ const { username, password } = this.data;
|
|
|
+
|
|
|
+ if (!username || !password) {
|
|
|
+ this.setData({
|
|
|
+ errorMessage: '用户名和密码不能为空'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ wx.showLoading({
|
|
|
+ title: '登录中...'
|
|
|
+ });
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ wx.hideLoading();
|
|
|
+
|
|
|
+ // 假设用户名和密码为123时登录成功
|
|
|
+ if (username === '123' && password === '123') {
|
|
|
+ wx.showToast({
|
|
|
+ title: '登录成功',
|
|
|
+ icon: 'success',
|
|
|
+ duration: 2000
|
|
|
+ });
|
|
|
+ this.setData({
|
|
|
+ isLogin: true,
|
|
|
+ errorMessage: '',
|
|
|
+ });
|
|
|
+
|
|
|
+ // 登录成功后跳转到指定页面
|
|
|
+ wx.switchTab({
|
|
|
+ url: '/pages/Calculate/Calculate',
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ errorMessage: '用户名或密码错误'
|
|
|
+ });
|
|
|
+ wx.showToast({
|
|
|
+ title: '用户名或密码错误',
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }, 1500);
|
|
|
+ },
|
|
|
+
|
|
|
+ // 页面加载时,检查是否有缓存的密码
|
|
|
+ onLoad() {
|
|
|
+ const storedPassword = wx.getStorageSync('password');
|
|
|
+ const storedUserInfo = wx.getStorageSync('userinfo');
|
|
|
+
|
|
|
+ // 如果有缓存的密码,则自动填充
|
|
|
+ if (storedPassword) {
|
|
|
+ this.setData({
|
|
|
+ password: storedPassword // 自动填充缓存的密码
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果有缓存的用户信息,自动填充头像和昵称
|
|
|
+ if (storedUserInfo) {
|
|
|
+ this.setData({
|
|
|
+ avatarUrl: storedUserInfo.avatarUrl || '/assets/taddar/授权管理.png', // 默认头像
|
|
|
+ nickName: storedUserInfo.nickName || '未登录', // 默认昵称
|
|
|
+ isLogin: true, // 设置已登录状态
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果没有设置头像,使用默认头像
|
|
|
+ if (!this.data.avatarUrl) {
|
|
|
+ this.setData({
|
|
|
+ avatarUrl: '/assets/taddar/授权管理.png' // 默认头像
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+});
|