84 lines
2.5 KiB
TypeScript
84 lines
2.5 KiB
TypeScript
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' // 替换为你的首页路径
|
||
});
|
||
}
|
||
}
|
||
},
|
||
|
||
})
|