index.js 2.84 KB
// index.js
import wx from '../../utils/wx';
import event from '../../common/event';
import { getLoginButtonType } from '../../common/login';
import { parse } from '../../vendors/query-stringify';
import accountModel from '../../models/account/index';
import Promise from '../../vendors/es6-promise';
import config from '../../common/config';
import Yas from '../../common/yas';

let app = getApp();
let yas;
let router = global.router;

Page({
  data: {
    loginButtonType: '', // 获取登录button-type
    channellist: [],
    userInfo: {
      phoneNum: '',
      avatarUrl: '',
      defaultAvatar: false,
      nickName: ''
    },
    coinNum: 0,
    isBound: false,
    myQrCodeUrl: 'https://m.yohobuy.com/home/newQrcode?needLogin=1',
    loginText: '点击登录'
  },
  onLoad: function() {
    let that = this;

    yas = new Yas(app); // 实例化埋点
    yas.pageOpenReport();
    event.on('user-login-success', this.showBindUserInfo);
    event.on('user-login-callback', this.loginCallback.bind(this));
    event.on('change-login-status', params => {
      that.setData({
        loginText: params.text || '点击登录'
      });
    });
  },
  onShow: function() {
    setTimeout(() => {
      app = app || getApp();
      this.showBindUserInfo();
    }, app ? 0 : 1000);

  },
  onReady: function() {


  },
  changeLoginStatus: function(params) {
    console.log(params);
  },
  loginCallback: function(res) {
    this.setData({
      loginButtonType: getLoginButtonType()
    });
  },
  showBindUserInfo: function() {
    let that = this;

    this.setData({
      loginButtonType: getLoginButtonType()
    });

    if (app && app.getUid()) {
      return Promise.all([
        accountModel.getProfile(),
        accountModel.getCoinTotal(),
      ]).then(res => {
        let defaultAvatar = '../../static/images/icons/default-avatar.png';
        let resUserInfo = res[0].data || {};

        console.log('resUserInfo:', resUserInfo);

        let user = Object.assign({}, this.data.userInfo, app.globalData.userInfo, {
          nickName: resUserInfo.nickname,
          avatarUrl: resUserInfo.head_ico || defaultAvatar,
          phoneNum: resUserInfo.mobile,
          defaultAvatar: (resUserInfo.head_ico || defaultAvatar) === defaultAvatar,
        });

        app.setUserInfo(user);// 把用户信息写入storage


        that.setData({
          isBound: true,
          userInfo: user,
          coinNum: res[1].data && res[1].data.total || 0
        });
      }).catch({});
    }
  },
  outLogin: function() {
    return wx.showModal({
      title: '',
      content: '确认退出?',
      confirmText: '退出',
      confirmColor: '#000'
    }).then(res1 => {
      if (res1.confirm) {
        app.clearUserSession();

        // app._setSync('disableAutoLogin', true);
        wx.reLaunch({
          url: '/pages/index/index'
        });
      }
    });
  }
});