login.js 13.7 KB
var t = require("../../../utils/common.js");
const app=getApp();
var os = app.globalData.setting;
var regeneratorRuntime = require('../../../utils/runtime.js');

Component({

    properties: {
        // 这里定义了innerText属性,属性值可以在组件使用时指定
        object:{
            type:Object,
            value:null
        },
   },

  data: {
    user:null,
	show_bind:0,
	imghots: os.imghost,
	store_logo:'',
	first_leader:'',   //-- 邀请人 --
	config2:null,
    show_no:1,
  },
    ready: function () {

        var set=this.properties.object;
        if(set && set.hasOwnProperty('show_no')){
            this.setData({show_no:set.show_no});
        }

	  if (wx.getUserProfile) {
	        this.setData({
	          canIUseGetUserProfile: true
	        })
	  }
	   var th=this;
	   app.getConfig(function (e) {
		    var logo=th.data.imghots+e.store_logo;
	        th.setData({ store: e,store_logo:logo});
	   })

	   //判断注册的条件
	   app.getConfig2(function (e) {
	   		if(e.reg_type==1){
				var arr=JSON.parse(e.reg_info);
				if(arr['name_state']==1) th.data.name_need_go=1;
				if(arr['birthday_state']==1) th.data.birth_need_go=1;
				if(arr['idcard_state']==1) th.data.idcard_need_go=1;
				if(arr['address_state']==1) th.data.address_need_go=1;
				if(arr['pick_state']==1) th.data.pick_need_go=1;
				if(arr['sex_state']==1) th.data.sex_need_go=1;
				if(arr['introducer_state']==1) th.data.introducer_need_go=1;
			}
	   },1)

	  getApp().promiseGet("/api/wx/weappSendlist/page", {
		  data: {
			  store_id: os.stoid,
			  typeid: "1007"
		  }}).then(res=>{
		  if (res.data.code == 0 && res.data.data.pageData.length > 0) {
			  var template_id = res.data.data.pageData[0].template_id;
			  th.setData({template_id:template_id});
		  }
	  })
  },

    methods: {

        //绑定手机号
        getphone: function (e) {
            //接下来写业务代码登录
            e = e.detail;
            if (e.encryptedData == undefined) {
                this.setData({show_bind: 0})
                return app.my_warnning("登录需要授权手机号码!", 0, this);
                return false;
            }
            var sessionKey = getApp().globalData.sessionKey;
            var openid = getApp().globalData.openid;
            var r = getApp().globalData.getu;
            this.save_the_data(r, e, sessionKey, openid)
        },


        //-- 会员授权 --
        bindGetUserInfo: function (ee) {
            if (!this.data.isAgree) {
                wx.showToast({
                    title: '请您先阅读和勾选指定的内容',
                    icon: 'none',
                });
                return false;
            }
            var that = this;
            //-- 点击授权 --
            that.getUserProfile(function (res) {
                var user = res;
                //--拿下code--
                wx.login({
                    success: function (o) {
                        var dd = {
                            js_code: o.code,
                            store_id: os.stoid,
                            nickname: app.clear_word(app.globalData.getu.nickName),
                            head_pic: app.clear_word(app.globalData.getu.avatarUrl)
                        };
                        //-- 导购会员ID --
                        if (getApp().globalData.guide_id) {
                            dd.guide_id = getApp().globalData.guide_id;
                        }

                        getApp().request.get("/api/weshop/users/openidandkey", {
                            data: dd,
                            success: function (e) {
                                if (e.data.code == 0) {
                                    that.setData({user: user})
                                    //如果有会员的话,没有sessionKey
                                    if (!e.data.data.sessionKey) {
                                        getApp().showWarning("登录成功");
                                        getApp().globalData.userInfo = e.data.data;
                                        getApp().globalData.user_id = e.data.data.user_id;
                                        getApp().globalData.openid = e.data.data.weapp_openid;
                                        //把会员的信息存在内存
                                        wx.setStorageSync("userinfo", e.data.data);

                                        setTimeout(function () {
                                            getApp().globalData.login_back = 1;
                                            that.cancle_bind();  //关闭
                                        }, 1000)
                                    } else {
                                        getApp().globalData.sessionKey = e.data.data.sessionKey;
                                        getApp().globalData.openid = e.data.data.openid;
                                        that.setData({show_bind: 1});
                                    }
                                } else {
                                    getApp().confirmBox(e.data.msg);
                                }
                            }
                        });
                    }
                })

            })
        },

        //-- 调整后的获取会员信息 --
        getUserProfile: function (func) {
            var that = this;
            wx.getUserProfile({
                desc: '获取用户相关信息',
                success: res => {
                    console.log("getUserProfile", res);
                    //此处授权得到userInfo
                    getApp().globalData.getu = res.userInfo;
                    func(res.userInfo);
                }
            });
        },

        //暂不登录,返回上一页
        cancle_bind: function () {
            var item={};
            this.triggerEvent('cancle_lg',item)//通过triggerEvent将参数传给父组件
        },

        close_pop: function () {
            this.setData({show_bind: 0})
        },
        show_bind_mobile: function () {
            let th = this;
            th.sendsm(function () {
                th.setData({show_bind: 1})
            })
        },


        save_the_data: async function (r, e, sessionKey, openid) {
            var app = getApp(), a = app, th = this;
            var dd = {
                oauth: "miniapp",
                nickname: a.clear_word(r.nickName),
                head_pic: r.avatarUrl,
                sex: r.gender,
                terminal: "miniapp",
                sessionKey: sessionKey,
                openid: openid,
                encryptedData: e.encryptedData,
                iv: e.iv,
                store_id: getApp().globalData.setting.stoid,
            };
            //--如果有邀请人的时候--
            if (th.data.first_leader) {
                //判断一下分享人是不是分享商
                await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + th.data.first_leader, {}).then(res => {
                    if (res.data.code == 0) {
                        var user = res.data.data;
                        if (user.is_distribut == 1) {
                            dd.first_leader = th.data.first_leader;
                        }
                    }
                })
            }
            //-- 导购会员ID --
            if (getApp().globalData.guide_id) {
                dd.guide_id = getApp().globalData.guide_id;
            }

            //门店的扫描识别码
            if (getApp().globalData.store_number) {
                dd.SunCode = encodeURIComponent(getApp().globalData.store_number.trim());
            }

            console.log("-----会员注册的信息-------");
            console.log(dd);
            app.request.get("/api/weshop/users/thirdLogin", {
                data: dd,
                success: function (e) {

                    if (e.data.code == 0) {
                        app.globalData.user_id = e.data.data.user_id;
                    } else {
                        return app.showWarning("授权登入失败!" + e.data.msg);
                    }


                    var need_go = 0;
                    var t_user = e.data.data;


                    getApp().globalData.login_back = 1;
                    wx.setStorageSync("userinfo", e.data.data);
                    wx.setStorageSync("isAuth", !0), app.globalData.userInfo = e.data.data, app.globalData.userInfo.head_pic = t.getFullUrl(a.globalData.userInfo.head_pic);

                    //如果有需要完善的信息没有完善,就需要跳转
                    if (!t_user['vipname'] && th.data.name_need_go) {
                        need_go = 1;
                    }
                    if (!t_user['birthday'] && th.data.birth_need_go) {
                        need_go = 1;
                    }
                    if (!t_user['idcard'] && th.data.idcard_need_go) {
                        need_go = 1;
                    }
                    if (!t_user['address'] && th.data.address_need_go) {
                        need_go = 1;
                    }
                    if (!t_user['pickup_id'] && th.data.pick_need_go) {
                        need_go = 1;
                    }
                    if (!t_user['sex'] && th.data.sex_need_go) {
                        need_go = 1;
                    }
                    if (!t_user['fromuser_id'] && th.data.introducer_need_go) {
                        need_go = 1;
                    }

                    if (need_go) {
                        getApp().goto("/packageA/pages/profile/profile?is_back=1");
                    } else {
                        that.cancle_bind();//关闭
                    }

                },
                failStatus: function (t) {
                    return app.my_warnning("授权登入失败,请稍后再试!", 0, that);
                },
                fail: function (t) {
                    return i.clearAuth(), i.alertLoginErrorAndGoHome(), !1;
                }
            });
        },

        bind_bnerr: function (e) {
            var _errImg = e.target.dataset.errorimg;
            var _errObj = {};
            _errObj[_errImg] = this.data.imghots + "/miniapp/images/logo.png";
            this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
        },

        //-- 会员授权 --
        bindUserInfo: function (ee) {
            var that = this;
            var user = ee.detail.userInfo;
            //此处授权得到userInfo
            getApp().globalData.getu = user;

            //--拿下code--
            wx.login({
                success: function (o) {
                    var dd = {
                        js_code: o.code,
                        store_id: os.stoid,
                        nickname: app.clear_word(app.globalData.getu.nickName),
                        head_pic: app.clear_word(app.globalData.getu.avatarUrl)
                    };
                    //-- 导购会员ID --
                    if (getApp().globalData.guide_id) {
                        dd.guide_id = getApp().globalData.guide_id;
                    }

                    getApp().request.get("/api/weshop/users/openidandkey", {
                        data: dd,
                        success: function (e) {
                            if (e.data.code == 0) {
                                that.setData({user: user})
                                //如果有会员的话,没有sessionKey
                                if (!e.data.data.sessionKey) {
                                    getApp().showWarning("登录成功");
                                    getApp().globalData.userInfo = e.data.data;
                                    getApp().globalData.user_id = e.data.data.user_id;
                                    getApp().globalData.openid = e.data.data.weapp_openid;
                                    //把会员的信息存在内存
                                    wx.setStorageSync("userinfo", e.data.data);

                                    setTimeout(function () {
                                        //getApp().globalData.login_back = 1;
                                        that.cancle_bind();  //关闭
                                    }, 1000)
                                } else {
                                    getApp().globalData.sessionKey = e.data.data.sessionKey;
                                    getApp().globalData.openid = e.data.data.openid;
                                    that.setData({show_bind: 1});
                                }
                            } else {
                                getApp().confirmBox(e.data.msg);
                            }
                        }
                    });
                }
            })


        },


        close_pop_back: function () {
            this.close_pop();
            wx.navigateBack({delta: 1})
        },


        // 是否同意协议
        isAgree(e) {
            let isAgree = null;
            if (e.detail.value[0]) {
                isAgree = true;
            } else {
                isAgree = false;
            }
            ;
            // this.data.isAgree = isAgree;
            this.setData({
                isAgree,
            });
        },


        //通过路径跳转到其他页面
        goto: function (e) {
            console.log('xxxx', e);
            var url = e.currentTarget.dataset.url;
            getApp().goto(url);
        },

        //订阅消息提醒
        sendsm: function (func) {
            var template_id = this.data.template_id;
            // //授权订阅
            wx.requestSubscribeMessage({
                tmplIds: [template_id],
                success(res) {
                    func();
                },
                fail(res) {
                    func();
                }
            })

        },
    }


})