// pages/login/login.js const app = getApp(); const api = require('../../utils/api'); Page({ data: { role: 'parent', // parent 或 child loading: false }, onLoad() { // 检查是否已登录 if (app.globalData.token) { this.redirectByRole(); } }, // 选择角色 onRoleSelect(e) { this.setData({ role: e.currentTarget.dataset.role }); }, // 微信登录 async onWechatLogin() { if (this.data.loading) return; this.setData({ loading: true }); try { // 获取微信登录code const loginRes = await new Promise((resolve, reject) => { wx.login({ success: resolve, fail: reject }); }); // 调用后端登录接口 const result = await api.login({ code: loginRes.code, role: this.data.role }); // 保存登录信息 app.globalData.token = result.token; app.globalData.role = result.role; wx.setStorageSync('token', result.token); wx.setStorageSync('role', result.role); wx.showToast({ title: '登录成功', icon: 'success' }); // 跳转到对应首页 setTimeout(() => { this.redirectByRole(); }, 1000); } catch (err) { console.error('登录失败:', err); wx.showToast({ title: '登录失败', icon: 'none' }); } finally { this.setData({ loading: false }); } }, // 根据角色跳转 redirectByRole() { if (this.data.role === 'parent') { wx.switchTab({ url: '/pages/parent-home/parent-home' }); } else { wx.switchTab({ url: '/pages/child-home/child-home' }); } } })