const app = getApp(); const baseUrl = app.globalData.baseUrl; Page({ data: { thumb: "", // 用户头像 nickname: "", // 用户昵称 orders: [], // 订单列表 hasAddress: false, // 是否有地址信息 address: {}, // 地址信息 }, onLoad() { this.checkUserProfile(); // 检查并获取用户信息 /** * 发起请求获取订单列表信息 */ this.loadOrders(); // 加载订单列表 }, /** * 检查本地缓存中是否有用户信息 */ checkUserProfile() { const userInfo = wx.getStorageSync('userInfo'); if (userInfo) { // 如果有用户信息,直接设置数据 this.setData({ thumb: userInfo.userInfo.avatarUrl, nickname: userInfo.userInfo.nickName, }); } else { // 没有用户信息,提示用户登录授权 wx.showModal({ title: '温馨提示', content: '请先登录!', showCancel: false, success: (res) => { if (res.confirm) { this.getUserProfile(); } } }); } }, /** * 获取用户信息 */ getUserProfile() { wx.getUserProfile({ desc: "用于完善会员资料", // 这里必须声明用途 success: (userInfo) => { // 存储用户信息到本地缓存中 wx.setStorageSync('userInfo', userInfo); // 在页面中展示用户信息 this.setData({ thumb: userInfo.userInfo.avatarUrl, nickname: userInfo.userInfo.nickName, }); console.log('用户信息', userInfo); }, fail: (err) => { wx.showToast({ title: "用户拒绝了授权", icon: "none", }); console.log(err); } }); }, /** * 微信登录 */ wxLogin() { wx.login({ success: (res) => { if (res.code) { console.log('微信登录成功,code:', res.code); // 可以将code发送到服务器进行登录验证 } else { console.log('登录失败!' + res.errMsg); } } }); }, /** * 登录到服务器(可选,基于需求) */ loginToServer(code, userInfo) { wx.request({ url: `${baseUrl}/login`, // 替换为你的服务器登录接口 method: 'POST', data: { code: code, // 微信登录凭证 avatar: userInfo.avatarUrl, nickname: userInfo.nickName, gender: userInfo.gender }, success: (res) => { if (res.data.code === 1) { // 登录成功,保存服务器返回的 token wx.setStorageSync('token', res.data.token); // 其他登录后的初始化操作 } }, fail: (err) => { console.log('服务器登录失败', err); } }); }, /** * 加载订单列表 */ loadOrders() { wx.request({ url: `${baseUrl}/order/loadData`, method: "POST", data: { userId: 1, // 示例用户ID }, success: (res) => { this.setData({ orders: res.data, }); }, fail: (err) => { console.log('获取订单失败', err); } }); }, onShow() { /** * 获取本地缓存 地址信息 */ wx.getStorage({ key: "address", success: (res) => { this.setData({ hasAddress: true, address: res.data, }); }, }); }, /** * 发起支付请求 */ payOrders() { wx.requestPayment({ timeStamp: "String1", nonceStr: "String2", package: "String3", signType: "MD5", paySign: "String4", success: (res) => { console.log(res); }, fail: (res) => { wx.showModal({ title: "支付提示", content: "", showCancel: false, }); }, }); }, });