login.js 5.5 KB
Newer Older
D
devil_gong 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
const app = getApp();
Page({
  data: {
    params: null,
    user: null,
    mobile: null,
    verify_submit_text: '获取验证码',
    verify_loading: false,
    verify_disabled: false,
    form_submit_loading: false,
    verify_time_total: 60,
    temp_clear_time: null,
  },

  /**
   * 页面加载初始化
   */
  onLoad(option) {
    // 设置用户信息
G
微信  
gongfuxiang 已提交
20 21
    this.setData({
      params: option,
D
devil_gong 已提交
22
      user: app.get_user_cache_info() || null
G
微信  
gongfuxiang 已提交
23
    });
G
gongfuxiang 已提交
24 25 26

    // 标题设置
    wx.setNavigationBarTitle({ title: (this.data.user == null) ? '授权用户信息' : '手机绑定' });
D
devil_gong 已提交
27 28
  },

G
微信  
gongfuxiang 已提交
29 30 31 32
  /**
   * 登录授权事件
   */
  get_user_info_event(e) {
G
gongfuxiang 已提交
33
    this.user_auth_code(null, null, e.detail);
34 35 36 37 38 39
  },

  /**
   * 用户授权
   * object     回调操作对象
   * method     回调操作对象的函数
G
gongfuxiang 已提交
40
   * auth_data  授权数据
41
   */
G
gongfuxiang 已提交
42
  user_auth_code(object, method, auth_data) {
43 44 45 46 47 48 49
    // 请求授权接口
    var $this = this;
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.userInfo']) {
          $this.setData({ user: null});
        } else {
G
gongfuxiang 已提交
50
          app.user_auth_login($this, 'user_auth_back_event', auth_data);
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
        }
      },
      fail: (e) => {
        app.showToast("授权校验失败");
      }
    });
  },

  /**
   * 授权返回事件
   */
  user_auth_back_event() {
    this.setData({
      user: app.get_user_cache_info() || null
    });
G
gongfuxiang 已提交
66 67 68 69
    if((this.data.user.mobile || null) != null)
    {
      wx.navigateBack();
    }
G
gongfuxiang 已提交
70
  },
G
微信  
gongfuxiang 已提交
71

D
devil_gong 已提交
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
  /**
   * 输入手机号码事件
   */
  bind_key_input(e)
  {
    this.setData({mobile: e.detail.value});
  },

  /**
   * 短信验证码发送
   */
  verify_send()
  {
    // 数据验证
    var validation = [{fields: 'mobile', msg: '请填写手机号码'}];
    if(app.fields_check(this.data, validation))
    {
      // 网络请求
      var $this = this;
G
gongfuxiang 已提交
91
      wx.showLoading({title: '发送中...'});
D
devil_gong 已提交
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
      this.setData({verify_submit_text: '发送中', verify_loading: true, verify_disabled: true});

      wx.request({
        url: app.get_request_url('regverifysend', 'user'),
        method: 'POST',
        data: {mobile: this.data.mobile},
        dataType: 'json',
        header: { 'content-type': 'application/x-www-form-urlencoded' },
        success: (res) => {
          wx.hideLoading();
          if(res.data.code == 0)
          {
            this.setData({verify_loading: false});
            var temp_time = this.data.verify_time_total;
            this.data.temp_clear_time = setInterval(function()
            {
              if(temp_time <= 1)
              {
                clearInterval($this.data.temp_clear_time);
                $this.setData({verify_submit_text: '获取验证码', verify_disabled: false});
              } else {
                temp_time--;
                $this.setData({verify_submit_text: '剩余 '+temp_time+''});
              }
            }, 1000);
          } else {
            this.setData({verify_submit_text: '获取验证码', verify_loading: false, verify_disabled: false});
            
120
            app.showToast(res.data.msg);
D
devil_gong 已提交
121 122 123 124 125 126
          }
        },
        fail: () => {
          wx.hideLoading();
          this.setData({verify_submit_text: '获取验证码', verify_loading: false, verify_disabled: false});

127
          app.showToast("服务器请求出错");
D
devil_gong 已提交
128 129 130 131 132 133 134 135 136 137 138 139 140 141
        }
      });
    }
  },

  /**
   * 表单提交
   */
  formSubmit(e)
  {              
    // 数据验证
    var validation = [
      {fields: 'mobile', msg: '请填写手机号码'},
      {fields: 'verify', msg: '请填写验证码'},
142
      {fields: 'weixin_openid', msg: '授权id不能为空'}
D
devil_gong 已提交
143
    ];
144
    e.detail.value['weixin_openid'] = this.data.user.weixin_openid;
D
devil_gong 已提交
145 146 147 148 149 150
    e.detail.value['nickname'] = this.data.user.nickname;
    e.detail.value['avatar'] = this.data.user.avatar;
    e.detail.value['province'] = this.data.user.province;
    e.detail.value['city'] = this.data.user.city;
    e.detail.value['gender'] = this.data.user.gender;
    e.detail.value['referrer'] = this.data.user.referrer;
151
    e.detail.value['app_type'] = 'weixin';
D
devil_gong 已提交
152 153
    if(app.fields_check(e.detail.value, validation))
    {
G
gongfuxiang 已提交
154
      wx.showLoading({title: '处理中...'});
D
devil_gong 已提交
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
      this.setData({form_submit_loading: true});

      // 网络请求
      wx.request({
        url: app.get_request_url('reg', 'user'),
        method: 'POST',
        data: e.detail.value,
        dataType: 'json',
        header: { 'content-type': 'application/x-www-form-urlencoded' },
        success: (res) => {
          wx.hideLoading();

          if(res.data.code == 0 && (res.data.data || null) != null)
          {
            clearInterval(this.data.temp_clear_time);
170
            app.showToast(res.data.msg, 'success');
D
devil_gong 已提交
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
            
            wx.setStorage({
              key: app.data.cache_user_info_key,
              data: res.data.data
            });
            
            var event_callback = this.data.params.event_callback || null;
            setTimeout(function()
            {
              // 触发回调函数
              if(event_callback != null)
              {
                getCurrentPages()[getCurrentPages().length-2][event_callback]();
              }
              wx.navigateBack();
            }, 1000);
          } else {
            this.setData({form_submit_loading: false});
            
190
            app.showToast(res.data.msg);
D
devil_gong 已提交
191 192 193 194 195 196
          }
        },
        fail: () => {
          wx.hideLoading();
          this.setData({form_submit_loading: false});

197
          app.showToast("服务器请求出错");
D
devil_gong 已提交
198 199 200 201 202 203
        }
      });
    }
  }

});