56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
import request from '../../utils/request.js';
|
|
import { STAFF_API, applyStaffFromLoginData } from '../../utils/staff-api.js';
|
|
import { enterLockedRole, lockPrimaryRole } from '../../utils/primary-role.js';
|
|
|
|
const app = getApp();
|
|
|
|
Page({
|
|
data: {
|
|
inviteCode: '',
|
|
loading: false,
|
|
},
|
|
|
|
onLoad(options) {
|
|
const code = options.code || options.inviteCode || '';
|
|
if (code) this.setData({ inviteCode: decodeURIComponent(code) });
|
|
},
|
|
|
|
onInput(e) {
|
|
this.setData({ inviteCode: (e.detail.value || '').trim() });
|
|
},
|
|
|
|
async onBind() {
|
|
const inviteCode = this.data.inviteCode;
|
|
if (!inviteCode) {
|
|
wx.showToast({ title: '请输入邀请码', icon: 'none' });
|
|
return;
|
|
}
|
|
this.setData({ loading: true });
|
|
try {
|
|
const res = await request({
|
|
url: STAFF_API.bind,
|
|
method: 'POST',
|
|
data: { inviteCode },
|
|
});
|
|
const d = res.data || {};
|
|
if (d.code === 0 && d.data && d.data.staff_context) {
|
|
applyStaffFromLoginData({
|
|
staffstatus: 1,
|
|
staff_context: d.data.staff_context,
|
|
});
|
|
lockPrimaryRole('shangjia', app);
|
|
wx.showToast({ title: '绑定成功', icon: 'success' });
|
|
setTimeout(() => {
|
|
enterLockedRole('shangjia', app);
|
|
}, 800);
|
|
} else {
|
|
wx.showToast({ title: d.msg || '绑定失败', icon: 'none' });
|
|
}
|
|
} catch (e) {
|
|
wx.showToast({ title: '网络错误', icon: 'none' });
|
|
} finally {
|
|
this.setData({ loading: false });
|
|
}
|
|
},
|
|
});
|