You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

213 lines
6.2 KiB

// pages/login/login.js
var network = require("../../utils/net.js");
var app = getApp();
var openID;
var isBindedPath = '/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/AccountRpc/IsBinded';
var isBindByPhone = '/MainSystem/B3MiniProgramRpc/XuRpcs/Employee/AccountRpc/XuBindByPhone';
var isBindWeixinPath = '/MainSystem/B3WeChatMiniProgram/Rpcs/CommonRpc/IsBindWeixinMP';
var getOpenIdByCode = '/MainSystem/B3WeChatMiniProgram/Rpcs/CommonRpc/GetMiniOpenIdByCode';
var bindPath = "/MainSystem/B3WeChatMiniProgram/Rpcs/CommonRpc/Bind";
var getBindCustomer = '/MainSystem/B3WeChatMiniProgram/Rpcs/CommonRpc/GetBindCustomer';
var getCookie ='/MainSystem/MainSystem/Auth/WeixinLogin';
var getCustomerList = '/MainSystem/B3WeChatMiniProgram/Rpcs/CustomerRpc/GetList';
/**
* 获取绑定客户ID及用户电话 参数1、appID 2、openID
* 返回值globalCustomerID,WeixinUser_Phone
* 成功调用获取cookie方法及判断是否绑定成功方法
*/
function GetBindCustomer(that) {
let method = getBindCustomer;
let params = [app.globalData.appID, app.globalData.openID];
network.requestLoading(method, params, function (res) {
if (res.result != null) {
app.globalData.globalCustomerID = res.result.ID;
app.globalData.phoneNum = res.result.WeixinUser_Phone;
// 获取cookie值
WeixinLogin(function (res) {
// 判断是否绑定成功 参数openid 返回值phoneNum
IsBinded(app.globalData.openID);
});
}
})
}
/**
* 判断是否绑定成功 参数openid
* 返回值phoneNum
* 成功调用是否关注公众号方法
*/
function IsBinded(openid) {
let method = isBindedPath;
let params = [openid];
network.transfer_request(method, params, function (res) {
if (res.result != "") {
app.globalData.phoneNum = res.result;
// 判断是否关注公众号
IsBindWeixinMP(app.globalData.phoneNum)
}
})
}
// 判断是否关注公众号 参数phone 返回值bool 成功进入首页
function IsBindWeixinMP(phone) {
let method = isBindWeixinPath;
let params = [phone];
network.requestLoading(method, params, function (res) {
// res.result = false;
if (res.result == true) {
wx.switchTab({
url: '/pages/homePage/homePage',
})
} else {
wx.showModal({
title: '提示',
content: '请关注公众号',
showCancel: false,
})
}
})
}
// 获取cookie值 参数1、appID 2、openID
function WeixinLogin(successtion) {
let method = getCookie;
let params = [app.globalData.appID, app.globalData.openID];
network.transfer_request(method, params, function (res) {
app.globalData.cookie = res.result;
successtion();
})
}
//绑定中转服务器客户对应信息 成功判断是否关注公众号
function Bind(that) {
let userInfos = app.globalData.userInfo
let method2 = bindPath;
let params2 = [{
"AppId": app.globalData.appID,
"OpenId": app.globalData.openID,
"Phone": that.data.phoneNum,
"NickName": userInfos.nickName,
"Sex": userInfos.gender,
"Province": userInfos.province,
"City": userInfos.city,
"Country": userInfos.country,
"HeadImgUrl": userInfos.avatarUrl,
"UnionId": "",
"CustomerId": app.globalData.globalCustomerID
}];
network.requestLoading(method2, params2, function (res) {
if (res.result == true) {
IsBindWeixinMP(app.globalData.phoneNum)
}
})
}
Page({
data: {
phoneNum: "",
index: 0,
customerArray: [{
ID: 0,
Name: "请选择所属客户"
}],
},
// 客户列表变更选项信息
listenerPickerSelected: function (e) {
this.setData({
index: e.detail.value,
});
app.globalData.globalCustomerID = this.data.customerArray[this.data.index].ID;
},
// 页面生命周期函数
onShow: function () {
var that = this;
//由登录页面进入详情页变更值为0;分享直接进入为1
app.globalData.shareInState = 0;
wx.login({
success: function (res) {
let code = res.code;
let method = getOpenIdByCode;
let params = [app.globalData.appID, code];
// 获取openID
network.requestLoading(method, params, function (res) {
app.globalData.openID = res.result;
// 获取绑定客户ID及用户电话
GetBindCustomer(that)
})
}
});
// 获取客户列表
let method = getCustomerList;
let params = [];
network.requestLoading(method, params, function (res) {
if (res.result.length > 0) {
var lastArr = that.data.customerArray.concat(res.result)
that.setData({
customerArray: lastArr,
})
}
})
},
// 电话输入框
getPhone: function (e) {
let val = e.detail.value;
this.data.phoneNum = val;
},
// 获取授权 成功 绑定信息到客户服务器 回调函数绑定中转服务器
getUserInfo: function (e) {
var that = this;
if (e.detail.userInfo != null) {
app.globalData.userInfo = e.detail.userInfo
if (that.data.customerArray[that.data.index].ID == 0) {
wx.showToast({
title: '请选择所属客户',
})
return false;
}
if (this.data.phoneNum == "") {
wx.showToast({
title: '请输入手机号码',
})
return false;
} else if (!(/^1[34578]\d{9}$/.test(this.data.phoneNum))) {
wx.showToast({
title: '号码不正确',
})
return false;
}
let userInfos = app.globalData.userInfo
let method = isBindByPhone;
let params = [{
"OpenId": app.globalData.openID,
"Phone": this.data.phoneNum,
"NickName": userInfos.nickName,
"Sex": userInfos.gender,
"Province": userInfos.province,
"City": userInfos.city,
"Country": userInfos.country,
"HeadImgUrl": userInfos.avatarUrl,
"UnionId": ""
}];
network.transfer_request(method, params, function (res) {
if (res.result != null) {
app.globalData.phoneNum = that.data.phoneNum;
// 判断是否绑定成功
Bind(that)
}
})
} else {
wx.showModal({
title: '授权提示',
content: '请给予权限,不涉及个人隐私',
showCancel: false
})
}
},
})