Files
danyang-match/miniapp/pages/account-logout/account-logout.js
T

62 lines
1.4 KiB
JavaScript

/**
* 注销账号页
* 在线便捷渠道,不设置障碍
*/
const api = require('../../utils/api');
Page({
data: {
canWithdraw: false,
blockers: [],
reason: '',
submitting: false,
submitted: false
},
onLoad() {
this.checkCanWithdraw();
},
onReasonInput(e) {
this.setData({ reason: e.detail.value });
},
async checkCanWithdraw() {
try {
const token = wx.getStorageSync('accessToken');
const res = await api.get('/account/can-withdraw', {}, { Authorization: `Bearer ${token}` });
this.setData({
canWithdraw: res.canWithdraw,
blockers: Object.values(res.blockers || {})
});
} catch (err) {
console.error(err);
}
},
async submitWithdraw() {
if (!this.data.canWithdraw) return;
this.setData({ submitting: true });
try {
const token = wx.getStorageSync('accessToken');
await api.post('/account/close', { reason: this.data.reason.trim() }, {
Authorization: `Bearer ${token}`
});
this.setData({ submitted: true });
wx.setStorageSync('accessToken', '');
wx.setStorageSync('userId', '');
} catch (err) {
wx.showToast({ title: err.message || '注销失败', icon: 'none' });
this.setData({ submitting: false });
}
},
goBack() {
if (this.data.submitted) {
wx.reLaunch({ url: '/pages/login/login' });
} else {
wx.navigateBack();
}
}
});