62 lines
1.4 KiB
JavaScript
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();
|
|
}
|
|
}
|
|
});
|