123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import BaseStore from './base';
- export default class UserStore extends BaseStore {
- initState() {
- return {
- name: '管理后台',
- logo: '',
- login: false,
- username: '',
- info: {},
- collapsed: false,
- openMenu: {},
- };
- }
- initAfter() {
- if (this.state.login) this.refreshToken();
- }
- refreshToken() {
- return this.apiPost('/auth/token', { token: this.getToken() })
- .then(result => {
- this.infoHandle(result);
- })
- .catch(() => {
- this.logout(false);
- });
- }
- needLogin() {
- if (this.state.login) {
- return Promise.resolve();
- }
- return new Promise(resolve => {
- this.loginCB = resolve;
- this.setState({ needLogin: true });
- });
- }
- login({ username, password }) {
- return this.apiPost('/auth/login', { username, password }).then(result => {
- this.infoHandle(result);
- });
- }
- register({ username, password }) {
- return this.apiPost('/auth/register', { username, password }).then(result => {
- this.infoHandle(result);
- });
- }
- infoHandle(result) {
- if (result.token) this.setToken(result.token);
- this.setState({ login: true, needLogin: false, info: result, username: result.username });
- if (this.loginCB) this.loginCB();
- this.loginCB = null;
- }
- editPassword(params) {
- return this.apiPost('/auth/editPassword', params);
- }
- logout(login = true) {
- return Promise.resolve()
- .then(() => {
- if (login) {
- return this.apiPost('/auth/logout', {});
- }
- return true;
- })
- .then(() => {
- this.setState({ login: false, info: {}, username: '' });
- })
- .then(() => {
- linkTo(this.project.loginPath);
- });
- }
- switchCollapse() {
- this.setState({ collapsed: !this.state.collapsed });
- }
- openMenu(mKey, keys) {
- const { openMenu } = this.state;
- openMenu[mKey] = keys;
- this.setState({ openMenu });
- }
- }
- export const User = new UserStore({ key: 'user', local: true });
|