Files
toutoukan_front/miniprogram/pages/user-login/user-login.ts
2025-08-10 02:08:03 +08:00

84 lines
2.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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',
});
// 登录成功,存储用户信息并跳转首页
//wx.setStorageSync("userInfo", res.data.userInfo);
//wx.navigateTo({ url: "/pages/index/index" });
} else {
wx.showToast({ title: "登录失败", icon: "none" });
}
},
fail() {
wx.showToast({ title: "网络错误", icon: "none" });
}
});
} else {
// 用户拒绝授权
wx.showToast({ title: "请允许授权以完成登录", icon: "none" });
}
},
onBack() {
// 获取当前页面栈
const pages = getCurrentPages();
// 页面栈长度大于1说明有上一个页面
if (pages.length > 1) {
// 调用微信API返回上一页delta: 1 表示返回一层
wx.navigateBack({
delta: 1
});
} else {
// 如果没有上一页(比如从首页直接进入登录页),可跳转到默认页面(如首页)
wx.switchTab({
url: '/pages/index/index' // 替换为你的首页路径
});
}
}
},
})