import BaseStore from '@src/stores/base'; import * as querystring from 'querystring'; const SENTENCE_TRAIL = 'SENTENCE_TRAIL'; export default class UserStore extends BaseStore { initState() { const { token } = querystring.parse(window.location.search.replace('?', '')); if (token) { this.setToken(token); } const sentenceTrail = this.getLocal(SENTENCE_TRAIL); return { login: !!token, sentenceTrail }; } /** * 设置长难句试用 */ sentenceTrail() { this.saveLocal(SENTENCE_TRAIL, true); this.setState({ sentenceTrail: true }); } /** * 清除长难句试用 */ clearSentenceTrail() { this.removeLocal(SENTENCE_TRAIL); this.setState({ sentenceTrail: null }); } /** * 验证token */ token() { return this.apiPost('/auth/token'); } /** * 登陆 * @param {*} mobile 手机号 * @param {*} mobileVerifyCode 手机验证码 * @param {*} inviteCode 邀请人手机/邀请码 */ login(mobile, mobileVerifyCode, inviteCode) { return this.apiPost('/auth/login', { mobile, mobileVerifyCode, inviteCode }); } loginWechat(code) { return this.apiGet('/auth/wechat_pc', { code }).then(() => { this.setState({ login: true }); }); } /** * 登出 */ logout() { return this.apiPost('/auth/logout'); } /** * 绑定手机 * @param {*} mobile 手机号 * @param {*} mobileVerifyCode 手机验证码 * @param {*} inviteCode 邀请人手机/邀请码 */ bind(mobile, mobileVerifyCode, inviteCode) { return this.apiPost('/auth/bind', { mobile, mobileVerifyCode, inviteCode }); } /** * 查询邀请码对应账号 * @param {*} code 邀请码 */ validInviteCode(code) { return this.apiGet('/auth/valid/invite_code', { code }); } /** * 查询手机对应账号 */ validMobile(mobile) { return this.apiGet('/auth/valid/mobile', { mobile }); } } export const User = new UserStore({ key: 'user', local: true });