import envConfig from '../../env'; import Toast from 'tdesign-miniprogram/toast/index'; Component({ data: { image: 'https://tdesign.gtimg.com/mobile/demos/avatar1.png', }, methods: { async getLoginCode() { return new Promise((resolve, reject) => { wx.login({ success: (res) => { if (res.code) { resolve(res.code); // 返回获取到的code } else { reject(new Error('获取登录凭证失败: ' + res.errMsg)); } }, fail: (err) => { reject(err); } }); }); }, async wxPhone(e: { detail: any; }){ console.log("授权回调结果:", e); if (e.detail.errMsg === "getPhoneNumber:ok") { const { encryptedData, iv} = e.detail; console.log("encryptedData:",encryptedData) const code = await this.getLoginCode(); console.log("获得的code为:",code) wx.request({ url: `${envConfig.apiBaseUrl}/user/login`, method: "POST", data: { encryptedData, iv, code, }, success(res) { console.log(res) if (res.data.code == "20001") { Toast({ selector: '#t-toast', message: '登录成功', theme: 'success', direction: 'column', }); const app = getApp() app.setToken(res.data.token) app.setUserInfo({ uid: res.data.userinfo.uid, username: res.data.userinfo.username, telephone: res.data.userinfo.telephone, gender: 2, }) setTimeout(() => { // 3.1 刷新user组件 const pages = getCurrentPages(); let homePage = null; pages.forEach(page => { if (page.route === 'pages/index/index') { homePage = page; } }); if (homePage) { const userComponent = homePage.selectComponent('#userComp'); if (userComponent) { userComponent.refreshUserStatus(); } } else { // 首页不在栈中,跳转首页 wx.redirectTo({ url: '/pages/home/home' }); // 注意:如果跳转后不需要执行下面的返回逻辑,可在此处加 return // return; } // 3.2 页面跳转/返回 if (pages.length > 1) { // 返回上一页 wx.navigateBack({ delta: 1 }); } else { // 跳转到首页(tabBar页面用switchTab) wx.switchTab({ url: '/pages/index/index' }); } }, 1500); // 延迟时间:1500毫秒(1.5秒),可根据需要调整 }else{ Toast({ selector: '#t-toast', message: '登录失败', theme: 'error', direction: 'column', }); } }, fail() { wx.showToast({ title: "网络错误", icon: "none" }); } }); } else { // 用户拒绝授权 wx.showToast({ title: "请允许授权以完成登录", icon: "none" }); } }, testSend(){ const token = wx.getStorageSync("token"); wx.request({ url: `${envConfig.apiBaseUrl}/user/test`, method: "POST", data: { }, header:{ 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}` } , success(res){ console.log(res) Toast({ selector: '#t-toast', message: '测试成功', theme: 'success', direction: 'column', }); } }) }, onBack() { // 获取当前页面栈 const pages = getCurrentPages(); // 页面栈长度大于1,说明有上一个页面 if (pages.length > 1) { // 调用微信API返回上一页,delta: 1 表示返回一层 wx.navigateBack({ delta: 1 }); } else { // 如果没有上一页(比如从首页直接进入登录页),可跳转到默认页面(如首页) wx.switchTab({ url: '/pages/index/index' // 替换为你的首页路径 }); } } }, })