1 Star 0 Fork 1K

Junle / 微信电商小程序

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
app.js 47.65 KB
一键复制 编辑 原始数据 按行查看 历史
赵同学 提交于 2019-03-14 13:51 .
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327
import { dellUrl } from "/public/requestUrl.js";
const Promise = require('/promise/promise.js');
App({
//clientUrl: 'http://127.0.0.1:3000/chainalliance/', // 本地链接地址
clientUrl: 'https://mini.sansancloud.com/chainalliance/',//一定加https
//clientUrl: 'https://mini.tunzai.vip/chainalliance/',//106.14.213.48 mini.tunzai.vip
/**
* 切换项目的开关 ↓↓↓↓↓
*/
clientNo: 'xianhua', //自定义的项目的名称。
preCallbackObj:{key:{callback:''}},
clientName: '',
more_scene: '', //扫码进入场景 用来分销
shareParam: null,//分享页面参数onloa
miniIndexPage: '',
setting: { platformSetting: { defaultColor: "#FE3737", secondColor: "#FF996E"}}, // 全局设置
loginUser: "", //登陆返回的个人信息
cookie: null,
shopOpen: null, // 店铺营业时间-开关
mapProIconArray:{},
cart_offline: {},
//addr:null,
kefuCount:0,
loginSuccessListeners:[],
payItem: null, //下单的时候传过去的
userSign: null, //账号密码
EditAddr: null,//传值的
richTextHtml: '',
productParam: null,//传值的
// customPageJson:null,//page的动态组件json
header: {
'content-type': 'application/json' // 默认值
},
headerPost: {
'content-type': 'application/x-www-form-urlencoded'
},
successOnlaunch: false,
defaultMendianID: "",
// 扫描二维码所带的参数,即扫码进来携带MendianID
enterMenDianID:"",
/* 页面影藏 */
appHide: false,
shareSubPage :true,
onHide: function (e) {
console.log('hide', this.shareSubPage)
console.log(e)
},
addLoginListener:function(listener){
console.log('addLoginListener', listener)
this.loginSuccessListeners.push(listener);
},
onShow: function (e) {
let that=this
console.log('======app.show=====')
console.log("=======eeeee======",e)
if (e.scene == "1011" || e.scene == "1012" || e.scene == "1013" || e.scene == "1047") {
this.appHide = true
console.log("=====1011====");
if (e.query.platformNo){
console.log("HAHAHAHHAA" + e.query.platformNo)
}
}
console.log("=====on show==="+this.clientNo);
/* let pagePath = e.path
if(this.appHide){
this.appHide = false
} */
},
onLaunchOptions: {},
/* 第一次加载 */
onLaunch: function (options) {
console.log('------options------', options)
this.onLaunchOptions = options
let that = this
console.log('------onlauch------'+this.clientNo)
// 扫码登录 判断将使用哪些数据
// this.getSdkVersion()获取 个人信息例如name,nickname,password,platformNo,手机号等等 在900行
this.getSdkVersion()
let extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {}
if (extConfig.clientNo) {
console.log('extConfig')
that.clientNo = extConfig.clientNo
}
console.log('===' + this.clientNo + '====')
console.log("options111", this.onLaunchOptions)
let inputPlatformNo = this.onLaunchOptions.query.platformNo;
if (!!inputPlatformNo) { this.clientNo = inputPlatformNo}
let more_scene = decodeURIComponent(this.onLaunchOptions.scene)
if (more_scene) {this.more_scene = more_scene}
console.log("clinetNo:" + this.clientNo+" more_scene:"+more_scene)
that.loadFirstEnter(more_scene)
},
timer: 0,
// 确保onLaunch事件完成后再开始调用其他函数
promiseonLaunch: function (self) {
let that = this
console.log('promiseonLaunch')
if (!!this.setting) {
self.onLoad()
}
else {
that.timer = setTimeout(function () {
that.promiseonLaunch(self);
}, 500);
}
},
navigateBack:function(time){
setTimeout(function () { wx.navigateBack() }, time);
},
//第一次登录加载的函数
loadFirstEnter: function (more_scene) {
console.log('第一次登录加载的函数');
// this.linkEvent("https://mini.sansancloud.com/chainalliance/sansancloud/bindWxGz.html?platformUserId=71076")
this.wxLogin(more_scene)
this.getSetting()
},
loadScene: function (inputPlatformNo) {
this.clientNo = inputPlatformNo
},
globalData: {
userInfo: null,
sansanUser: null,
sysWidth: wx.getSystemInfoSync().windowWidth, //图片宽度
sysHeight: wx.getSystemInfoSync().windowHeight,
},
createOrder: function (baseProData, pintuanData, customFromCommitId,callback,failed){
console.log('=====app.createOrder=====');
let params = Object.assign({}, params, baseProData, pintuanData,{})
if (customFromCommitId){
params = Object.assign({}, params, { customFromCommitId: customFromCommitId})
}
let that = this
let customIndex = that.AddClientUrl("/buy_now.html", params, 'post')
wx.request({
url: customIndex.url,
data: customIndex.params,
header: that.headerPost,
method: 'POST',
success: function (res) {
console.log("点击确定后内容", res.data)
if(callback){
callback(res);
return;
}
if (res.data.payStatus==0) {
wx.navigateTo({
url: '/pages/edit_order/index?orderNo=' + res.data.orderNo,
})
} else if (res.data.payStatus == 1 && res.data.processInstanceCount>0){//进入流程列表
wx.hideLoading()
let processId=0
wx.navigateTo({
url: '/pages/process_list/index?processId=' + processId,
})
} else if (res.data.payStatus == 1 && res.data.processInstanceCount == 0){
wx.redirectTo({
url: '/pages/order_list_tab/index',
})
}
},
fail: function (res) {
// wx.hideLoading()
// app.loadFail()
},
complete: function (res) {
}
})
},
toIndex: function () {
console.log('首页叫做:' + this.miniIndexPage)
console.log('首页叫做:' + this.clientNo)
//这个需要注意 switchTab 和 redirectTo
if (this.clientNo == 'tunzai') {
console.log("1111111111111")
wx.switchTab({
url: '/pageTab/tunzai/index/index',
})
return;
}
else if (this.miniIndexPage) {
console.log("2222222222222")
wx.switchTab({
url: '/pageTab/' + this.miniIndexPage + '/index',
})
} else {
console.log("33333333333333")
wx.switchTab({
url: '/pageTab/custom_page_index/index',
})
}
},
// 一键回到顶部
goTop: function (e) {
if (wx.pageScrollTo) {
wx.pageScrollTo({
scrollTop: 0
})
} else {
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
})
}
},
toMy: function () {
console.log('我的叫做:' + this.clientNo)
//这个需要注意 switchTab 和 redirectTo
if (this.clientNo == 'tunzai') {
console.log("1111111111111")
wx.switchTab({
url: '/pageTab/tunzai/myInfo/index',
})
return;
}else{
console.log("222222")
wx.switchTab({
url: '/pageTab/aikucun_userinfo/index',
})
}
},
echoErr: function (errMessage) {
wx.showToast({
title: errMessage,
image: '/images/icons/tip.png',
duration: 2000
})
},
//加载失败处理
loadFail: function () {
let that = this
/*
wx.showModal({
title: '提示',
content: '加载失败,重新加载',
success: function (res) {
if (res.confirm) {
that.toIndex()
} else if (res.cancel) {
}
}
})*/
wx.showToast({
title: "加载失败",
image: '/images/icons/tip.png',
duration: 2000
})
},
loadLogin: function (e) {
wx.showModal({
title: '提示',
content: '用户未登录',
success: function (res) {
if (res.confirm) {
wx.navigateTo({
url: '/pages/login_wx/index'
})
} else if (res.cancel) {
}
}
})
},
//检查是否已经登录
checkIfLogin: function () {
if (this.loginUser) {
console.log('已经登录了')
return true
} else {
console.log('未登录')
wx.showModal({
title: '提示',
content: '用户未登录',
success: function (res) {
if (res.confirm) {
wx.navigateTo({
url: '/pages/login_wx/index'
})
} else if (res.cancel) {
}
}
})
return false
}
},
//检查商家开店?
checkShopOpenTime: function () {
let that = this
let shopBean = this.setting.platformSetting.defaultShopBean
let nowTime = {
hour: '',
minutes: ''
}
let myDate = new Date();
nowTime.hour = myDate.getHours()
nowTime.minutes = myDate.getMinutes()
let myTime = ''
if (nowTime.minutes < 10) {
myTime = Number(nowTime.hour + '.0' + nowTime.minutes)
} else {
myTime = Number(nowTime.hour + '.' + nowTime.minutes)
}
if (myTime < Number(shopBean.serviceStartTime) || myTime > Number(shopBean.serviceEndTime)) {
wx.showModal({
title: '不是营业时间',
content: '营业时间为' + shopBean.serviceStartTime + '-' + shopBean.serviceEndTime,
success: function (res) {
if (res.confirm) {
that.toIndex()
} else if (res.cancel) {
}
}
})
return false
} else {
return true
}
},
/* 处理url的函数,放到app里吧 */
AddClientUrl: function (url, params, method, random, noToken) {
let loginToken = ''
if (noToken || (!this.loginUser || !this.loginUser.platformUser || !this.loginUser.platformUser.loginToken)) {
loginToken = ''
} else {
loginToken = this.loginUser.platformUser.loginToken
}
if (url.indexOf("get_product_comment_list") != -1 || url.indexOf("product_detail") != -1 || url.indexOf("get_platform_setting.html") != -1 || url.indexOf("more_product_list.html") != -1 || url.indexOf("index.html") != -1 || url.indexOf("get_promotions_detail.html") != -1 || url.indexOf("/super_shop_manager_get_mini_code.html") != -1){
loginToken="";
random="tunzai";
}
var returnUrl = dellUrl(url, params, method, random, loginToken)
returnUrl.url = this.clientUrl + this.clientNo + returnUrl.url
console.log("returnUrl", returnUrl);
return returnUrl;
},
/* 解析LinkUrl */
getUrlParams: function (url) {
console.log('------getUrlParams--------')
console.log(url)
let theResult = {
url: '',
param: ''
}
if (url.indexOf('?') != -1) {
let str2 = url.substr(0, url.indexOf('?') - 5);
let str3 = url.substr(url.indexOf('?'));
theResult.url = str2
theResult.param = str3
}
if (url.indexOf('?') == -1) {
let str2 = url.substr(0, url.indexOf('.'))
let str3 = ''
theResult.url = str2
theResult.param = str3
}
console.log("======theResult======", theResult)
return theResult
},
getSpaceStr: function (str, p) {
let theResult = {
str1: '',
str2: ''
}
if (str.indexOf(p) != -1) {
let str2 = str.substr(0, str.indexOf(p));
let str3 = str.substr(str.indexOf(p) + 1);
theResult.str1 = str2
theResult.str2 = str3
}
return theResult
},
/* 转换成str 带?*/
jsonToStr: function (json) {
var returnParam = "?"
var str = [];
for (var p in json) {
str.push(p + "=" + json[p]);
//str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p]));
}
returnParam += str.join("&")
console.log(returnParam)
return returnParam
},
// 不带问号 过滤loginTocken
jsonToStr2: function (json) {
var returnParam = ""
var str = [];
for (var p in json) {
if (p != 'loginToken') {
str.push(p + "=" + json[p]);
}
}
returnParam += str.join("&")
console.log("returnParam", returnParam)
return returnParam
},
//link事件 绑定导向对应的控件上
lookBigImage: function (e) {
let imgSrc = e.currentTarget.dataset.imageurl
console.log(imgSrc)
let PostImageSrc = imgSrc.replace(/http/, "https")
// let PostImageSrc = imgSrc
console.log(PostImageSrc)
if (!imgSrc) {
return
}
let urls = []
urls.push(imgSrc)
wx.previewImage({
current: imgSrc, // 当前显示图片的http链接
urls: urls // 需要预览的图片http链接列表
})
},
linkEvent: function (linkUrl) {
console.log('====linkUrl======', linkUrl)
if (!linkUrl) {
return
}
let urlData = this.getUrlParams(linkUrl)
let If_Order_url = urlData.url.substr(0, 10)
console.log('-----toGridLinkUrl---------')
console.log('==urlData===',urlData)
console.log('==jpg===', linkUrl.substr(-3, 3))
console.log(If_Order_url)
if (linkUrl.substr(0, 3) == 'tel') {
wx.makePhoneCall({
phoneNumber: linkUrl.substr(4) //仅为示例,并非真实的电话号码
})
} else if (linkUrl.substr(0, 4) == 'http' && (linkUrl.substr(-3, 3).toLowerCase() == 'jpg' || linkUrl.substr(-3, 3).toLowerCase() == 'png')) {
this.lookBigImage(linkUrl)
}else if (linkUrl.substr(0, 12) == 'custom_page_') {
var resultUrl = linkUrl.substring(12, linkUrl.length - 5)
if (urlData.param == '') {
urlData.param = '?'
}
wx.navigateTo({
url: '/pages/custom_page/index' + urlData.param + '&Cpage=' + resultUrl,
})
}
else if (If_Order_url == 'order_list') {
wx.navigateTo({
url: '/pages/' + 'order_list_tab' + '/index' + urlData.param,
})
}
//else if (If_Order_url == 'fx_center') {
// wx.navigateTo({
// url: '/pageTab/' + 'fx_center' + '/index' + urlData.param,
// })
// } else if (If_Order_url == 'process_list') {
// wx.navigateTo({
// url: '/pageTab/' + 'process_list' + '/index' + urlData.param,
// })
// } else if (If_Order_url == 'location_servant') {
// wx.navigateTo({
// url: '/pageTab/' + 'location_servant' + '/index' + urlData.param,
// })
// }
else if (linkUrl.substr(0, 13) == 'order_pintuan') {
wx.navigateTo({
url: '/pages/' + 'order_pintuan_list' + '/index' + urlData.param,
})
}
else if (linkUrl.substr(0, 5) == 'https') {
let url = encodeURIComponent(linkUrl);
console.log("==url+web_view===", url)
wx.navigateTo({
url: '/pages/' + 'web_view' + '/index?url=' + url,
})
}
else if (linkUrl.substr(0, 14) == 'product_detail') {
let productId = linkUrl.replace(/[^0-9]/ig, "");
console.log(linkUrl.substr(15, 6))
if (linkUrl.substr(15, 6) == 'tunzai'){
wx.navigateTo({
url: '/pages/productDetail_tunzai/index?id=' + productId + "&addShopId=236",
})
} else {
wx.navigateTo({
url: '/pages/productDetail/index?id=' + productId + "&addShopId=236",
})
}
}
else if (urlData.url == 'shop_map') {
this.openLocation()
} else if (urlData.url == 'location'){
console.log(urlData.param + urlData.url)
var params = urlData.param.slice(1);
let paramArr = params.split('&')
var paramObj={}
for (let i = 0; i < paramArr.length;i++){
var a = paramArr[i].split('=')
paramObj[a[0]]=a[1]
}
var a = Number(paramObj['latitude']); var b = Number(paramObj['longitude']);
wx.openLocation({
latitude:a,
longitude:b,
scale: 12,
name: paramObj.title,
address: paramObj.description
})
}
else {
// promotion_products.html form_detail.html?customFormId=12
console.log("9999999999999999" + linkUrl.substr(0, 14))
wx.navigateTo({
url: "/pageTab/" + urlData.url + "/index" + urlData.param,
fail: function () {
//pages里不存在该页面
console.log("pageTab里不存在该页面,跳转pages目录下的页面")
wx.navigateTo({
url: "/pages/" + urlData.url + "/index" + urlData.param,
fail: function () {
console.log("跳转tab页")
wx.switchTab({
url: "/pageTab/" + urlData.url + "/index" + urlData.param,
})
}
})
}
})
}
},
checkLogin: function () {
//let that = this
if (!this.loginUser) {
this.wxLogin()
}
},
/* 检查是否过期 */
checkSession: function () {
let that = this
wx.checkSession({
success: function () {
console.log('session 未过期,并且在本生命周期一直有效')
wx.getStorage({
//拿cookie
key: 'cookie',
success: function (res) {
that.cookie = res.data
that.header = {
'content-type': 'application/json', // 默认值
'Cookie': res.data
}
that.headerPost = {
'content-type': 'application/x-www-form-urlencoded',
'Cookie': res.data
}
}
})
wx.getStorage({
key: 'loginUser',
success: function (res) {
that.loginUser = res.data
}
})
},
fail: function () {
//登录态过期
console.log('登录态过期')
that.wxLogin()
}
})
},
/* 设置cookie */
setCookie: function (cookie) {
this.cookie = cookie
this.header = {
'content-type': 'application/json', // 默认值
'Cookie': cookie
}
this.headerPost = {
'content-type': 'application/x-www-form-urlencoded',
'Cookie': cookie
}
},
//存用户信息
setloginUser: function (loginUser, cookie) {
console.log('--------setloginUser----------')
if (loginUser) {
wx.setStorage({
key: "loginUser",
data: loginUser
})
}
if (cookie) {
wx.setStorage({
key: "cookie",
data: cookie
})
}
},
//获取已经登录了的用户信息和login时一样
get_session_userinfo: function () {
let customIndex = this.AddClientUrl("/get_session_userinfo.html", {}, 'post')
let that = this
wx.request({
url: customIndex.url, //仅为示例,并非真实的接口地址
data: customIndex.params,
header: that.headerPost,
success: function (res) {
console.log('===========get_session_userinfo============', res)
if (res.data.errcode == 0) {
console.log(res.data.relateObj)
that.loginUser = res.data.relateObj
that.setloginUser(res.data.relateObj)
}
},
fail: function (res) {
}
})
},
//sentWxUserInfo 第一次登录给他设置头像
sentWxUserInfo: function (loginJson) {
console.warn("========sentWxUserInfo:loginJson=======", loginJson)
let that = this
let userInfo = this.globalData.userInfo
wx.getUserInfo({
success: function (res) {
console.log('--获取用户信息--')
console.log(res.userInfo)
userInfo = res.userInfo
let infoParam = {
headimg: '',
nickname: '',
sex: ''
}
if (loginJson && loginJson.platformUser.telNo) {
console.error(loginJson.platformUser.telNo)
infoParam.telno = loginJson.platformUser.telNo
} else {
infoParam.telno = ''
}
infoParam.headimg = userInfo.avatarUrl
infoParam.nickname = userInfo.nickName
infoParam.sex = userInfo.gender
// 用户所在城市,市,区,
infoParam.city = userInfo.city
if (that.loginUser.nickName != userInfo.nickName){
let customIndex = that.AddClientUrl("/change_user_info.html", infoParam, 'post')
wx.request({
url: customIndex.url,
data: customIndex.params,
header: that.headerPost,
method: 'POST',
success: function (res) {
console.log('---change_user_info----- success-')
console.log(res.data)
if (res.data.errcode == 0) {
that.loginUser.nickName = userInfo.nickName;
that.loginUser.sex = userInfo.sex;
that.loginUser.userIcon = userInfo.avatarUrl;
console.log('-----第一次登录 传头像成功 --------')
} else {
console.log('-----第一次登录 传头像失败 --------')
}
that.get_session_userinfo()
},
fail: function (res) {
console.log('-----第一次登录 传头像失败 回调fail--------')
console.log()
},
complete: function (res) {
},
})
}
},
fail: function (e) {
console.log(e)
setTimeout(function(){
wx.showModal({
title: '授权提示',
content: '取消用户授权可能导致部分功能不可用,请确认授权!',
cancelText: '拒绝',
confirmText: '去授权',
success: function (res) {
if (res.confirm) {
wx.openSetting({
success: (res) => {
res.authSetting = {
"scope.userInfo": true,
}
that.sentWxUserInfo(loginJson)
}
})
} else if (res.cancel) {
}
}
})
},500);
}
})
},
getCaption: function (str1) {
var str2 = (str1.match(/MINI_PLATFORM_USER_ID_(\S*)/))[1];
console.log("这是测试str2"+str2)
return str2;
},
hasNoScope: false,
showAuthUserInfoButton:true,
changeUserBelong: function (more_scene) {
if (!more_scene) return;
if (!this.loginUser || !this.loginUser.platformUser|| this.loginUser.platformUser.parentId>0){
// console.log("parent id:"+this.loginUser.platformUser.parentId);
console.log("未登录或 已经有推广用户了");
return;
} else {
console.log("修改用户推广人");
}
let that = this
console.error("hello:"+more_scene)
console.log("测试有没有调用")
let parentPlatformUserId = this.getCaption(more_scene)
console.error(parentPlatformUserId)
if (!parentPlatformUserId){
return ;
}
let param_post = {}
param_post.parentPlatformUserId = parentPlatformUserId
var customIndex = that.AddClientUrl("/change_fx_user.html", param_post, 'post')
wx.request({
url: customIndex.url,
data: customIndex.params,
header: that.headerPost,
method: 'POST',
success: function (res) {
console.warn('修改分销 -- 返回')
console.log(res.data)
if (res.data.errcode == 0) {
let loginUser = that.loginUser
loginUser.platformUser.mendian = res.data.relateObj.mendian
}
},
fail: function (res) {
that.loadFail()
}
})
},
/* 微信登录测试 */
wxLogin: function (more_scene) {
console.warn("===wxLogin===", more_scene)
if (!more_scene || more_scene == 'undefined') {
more_scene = '0'
}
console.log('--------------微信登录--------------')
wx.showLoading({
title: '登录中',
mask: true
})
var that = this
console.log('===1===')
wx.login({//微信登入接口
success: function (res) {
console.log("=======wxCode======", res.code, more_scene)
if (res.code && res.code.indexOf('mock') == -1) {
//发起网络请求
let loginParam = {}
loginParam.code = res.code
loginParam.scene = more_scene
setTimeout(function(){
let customIndex = that.AddClientUrl("/wx_mini_code_login.html", loginParam, 'post')
wx.request({
url: customIndex.url,
data: customIndex.params,
header: that.headerPost,
method: 'POST',
success: function (e) {
if (e.data.errcode == 0) {
console.log("===========wx.login=============", e)
let header = e.header
let cookie = null
if (!!header['Set-Cookie']) {
cookie = header['Set-Cookie']
}
if (!!header['set-cookie']) {
cookie = header['set-cookie']
}
let loginJson = e.data.relateObj
that.setCookie(cookie)
console.log('登陆成功')
if (loginJson.platformUser.scanChangeBelongMendian == 1 && that.enterMenDianID != 0 && loginJson.platformUser.belongMendian != that.enterMenDianID && !loginJson.platformUser.managerMendianId){
console.warn("变更归属门店")
let customIndex = that.AddClientUrl("/wx_change_belong_mendian.html", { scanMendianId: that.enterMenDianID})
wx.request({
url: customIndex.url,
header: that.header,
success: function (res) {
console.log('change_belong_mendian', res)
loginJson.platformUser = res.data.relateObj
that.setloginUser(loginJson, cookie)
that.loginUser = loginJson
that.globalData.sansanUser = that.loginUser
if (that.loginSuccessListeners && that.loginSuccessListeners.length > 0) {
console.log('000000000000', that.loginSuccessListeners)
for (let t = 0; t < that.loginSuccessListeners.length; t++) {
try {
that.loginSuccessListeners[t].loginSuccess(that.globalData);
} catch (e) {
console.log(res);
}
}
}
},
fail: function (res) {
console.warn("change_belong_mendian_fail")
}
})
} else {
console.warn("不变更归属门店")
that.setloginUser(e.data.relateObj, cookie)
that.loginUser = e.data.relateObj
that.globalData.sansanUser = e.data.relateObj
if (that.loginSuccessListeners && that.loginSuccessListeners.length > 0) {
console.log('000000000000', that.loginSuccessListeners)
for (let t = 0; t < that.loginSuccessListeners.length; t++) {
try {
that.loginSuccessListeners[t].loginSuccess(e.data.relateObj);
} catch (e) {
console.log(e);
}
}
}
}
wx.hideLoading()
wx.getSetting({//检查用户是否授权了
success(res) {
console.warn("======getSetting:res========", res)
if (!res.authSetting['scope.userInfo']) {
console.error('没有授权')
that.hasNoScope = res.authSetting['scope.userInfo']
that.showAuthUserInfoButton=true;
}else{
that.showAuthUserInfoButton = false;
//that.sentWxUserInfo(loginJson)
}
}
})
//that.get_session_userinfo()
if (!loginJson.platformUser.nickname) {
// console.error('没有昵称调用上传接口')
//that.sentWxUserInfo(loginJson)
}
console.log(loginJson.platformUser.mendian)
console.log('===more_scene===', more_scene)
// if (!loginJson.platformUser.mendian && more_scene.indexOf("PLATFORM_USER_ID") > 0) {
//console.error('more_scene',more_scene)
that.changeUserBelong(that.USER_DEFINED_SCENE)
// }
// that.toIndex()
} else {
console.log("失败原因" + JSON.stringify(e.data))
wx.hideLoading()
wx.showToast({
title: '登录失败',
image: '/images/icons/tip.png',
duration: 2000
})
if (that.loginSuccessListeners && that.loginSuccessListeners.length > 0) {
console.log('000000000000', that.loginSuccessListeners)
for (let t = 0; t < that.loginSuccessListeners.length; t++) {
try {
that.loginSuccessListeners[t].loginFailed(e.data);
} catch (e) {
console.log(e);
}
}
}
}
},
fail: function (e) {
console.log('----fail------')
console.log(e)
wx.showToast({
title: '登录失败',
image: '/images/icons/tip.png',
duration: 2000
})
if (that.loginSuccessListeners && that.loginSuccessListeners.length > 0) {
console.log('000000000000', that.loginSuccessListeners)
for (let t = 0; t < that.loginSuccessListeners.length; t++) {
try {
that.loginSuccessListeners[t].loginFailed(e);
} catch (e) {
console.log(e);
}
}
}
}
})
}, 0)
} else {
console.log('获取用户登录态失败!' + res.errMsg)
}
},
fail: function (res) {
console.log('---------111111 fail----------')
console.log(res)
},
complete: function (res) {
console.log('---------111111 complete----------')
console.log(res)
wx.hideLoading()
},
});
},
//获取setting
getSetting: function (self) {
if (!self) {
self = 0
}
console.log('**************************************', self)
var settUrl = this.AddClientUrl("/get_platform_setting.html", {}, 'get', 1, 1)
var that = this
console.log("======settUrl.url======", settUrl.url)
//拿setting
return new Promise(function (resolve, reject) {
wx.request({
url: settUrl.url, //仅为示例,并非真实的接口地址
header: that.header,
success: function (res) {
resolve(res);
console.log("====Promise-resSetting====",res.data)
//获取门店ID
console.log("====门店ID====", res.data.platformSetting.defaultShopBean.defaultMendianId);
that.defaultMendianID = res.data.platformSetting.defaultShopBean.defaultMendianId;
if (res.data.platformSetting) {
that.clientName = res.data.platformSetting.platformName
if (res.data.platformSetting.categories) {//产品类别
let categories = res.data.platformSetting.categories
let allType = {}
allType.id = 'all'
allType.name = '全部'
allType.active = true
for (let i = 0; i < categories.length; i++) {
categories[i].active = false
}
categories.unshift(allType)
}
}
that.setting = res.data
if (res.data.platformSetting.miniIndexPage) {
let miniIndexPage = that.getSpaceStr(res.data.platformSetting.miniIndexPage, '.')
that.miniIndexPage = miniIndexPage.str1
} else {
that.miniIndexPage = 'custom_page_index'
}
if (!self) {
} else {
self.setData({ setting: res.data })
self.setNavBar()
}
wx.hideLoading()//隐藏 loading 提示框
return
let ShopBean = res.data.platformSetting.defaultShopBean
if (ShopBean.serviceStartTime) {
}
// 完成初次加载
that.successOnlaunch = true
},
fail: function (res) {
reject('error');
wx.hideLoading()//隐藏 loading 提示框
that.loadFail()//获取失败
}
})
})
},
//微信内部地图
openLocation: function () {
console.log('---------打开地图-------')
let markers = this.setting.platformSetting.defaultShopBean
let lat = Number(markers.latitude)
let lng = Number(markers.longitude)
let name = markers.shopName
let address = ''
wx.getLocation({
type: 'wgs84', //返回可以用于wx.openLocation的经纬度
success: function (res) {
console.log('11111')
wx.openLocation({
latitude: Number(markers.latitude),
longitude: Number(markers.longitude),
scale: 28,
name: name,
address: address,
success: function (res) {
console.log(res)
},
fail: function (res) {
console.log(res)
}
})
}, fail: function (res) {
console.log('22222')
console.log(res)
}
})
},
// 拼团转发
sharePintuan: function (pageName, pageTitle, pageCode) {
console.log('pageCode', pageName,pageTitle,pageCode)
let that = this
let AllCode = ''
if (!pageCode) {
pageCode = ''
}
AllCode = pageCode
console.log('AllCode', AllCode)
return {
title: pageTitle,
path: '/pages/' + pageName + '/index?' + AllCode,
success: function (res) {
console.log('转发出去的参数集合: ' + AllCode)
},
fail: function (res) {
}
}
},
//带参转发
shareForFx: function (pageName, pageTitle, pageCode) {
let that = this
let AllCode = ''
let fxCode = '' //userId
if (this.loginUser) {
fxCode = 'scene=MINI_PLATFORM_USER_ID_' + this.loginUser.platformUser.id
} else {
fxCode = 'scene=MINI_PLATFORM_USER_ID_' + this.more_scene
}
if (!pageName) {
pageName = 'index'
}
if (!pageTitle) {
pageTitle = that.clientName
}
if (!pageCode) {
pageCode = ''
AllCode = fxCode
} else {
AllCode = fxCode + '&' + pageCode
}
console.log('AllCode', AllCode)
return {
title: pageTitle,
path: '/pages/' + pageName + '/index?' + AllCode,
success: function (res) {
console.log('转发出去的参数集合: ' + AllCode)
},
fail: function (res) {
}
}
},
// 获取二维码
getQrCode: function (data) {
console.log(" this.loginUser", this.loginUser)
let userId = "";
let mendianId = "";
if (this.loginUser && this.loginUser.platformUser) {
userId = 'MINI_PLATFORM_USER_ID_' + this.loginUser.platformUser.id
if(this.loginUser.platformUser.managerMendianId){
mendianId ='%26ENTER_MENDIAN%3d' + this.loginUser.platformUser.managerMendianId
}
}
console.log("this.loginUser.platformUser", this.loginUser.platformUser.id)
console.log("data", data)
// path=pageTab%2findex%2findex%3fAPPLY_SERVER_CHANNEL_CODE%3d'
let postParam = {}
let str = '';
let str2 = '';
if (data.type == 'active') {
str = 'SHARE_PROMOTION_PRODUCTS_PAGE'
str2 = '/super_shop_manager_get_mini_code.html?mini=1&path=pageTab%2findex%2findex%3fSHARE_PROMOTION_PRODUCTS_PAGE%3d'
postParam[str] = data.id;
} else if (data.type == 'news_detail'){
console.log(data.type)
str = 'SHARE_NEWS_DETAIL_PAGE'
str2 = '/super_shop_manager_get_mini_code.html?mini=1&path=pageTab%2findex%2findex%3fSHARE_NEWS_DETAIL_PAGE%3d'
postParam[str] = data.id;
} else if (data.type == 'form_detail') {
console.log(data.type)
str = 'SHARE_FORM_DETAIL_PAGE'
str2 = '/super_shop_manager_get_mini_code.html?mini=1&path=pageTab%2findex%2findex%3fSHARE_FORM_DETAIL_PAGE%3d'
postParam[str] = data.id;
} else if (data.type == 'user_info') {
console.log(data.type)
str = 'SHARE_USER_INFO_PAGE'
str2 = '/super_shop_manager_get_mini_code.html?mini=1&path=pageTab%2findex%2findex%3fSHARE_USER_INFO_PAGE%3d'
postParam[str] = data.id;
} else if (data.type == 'pin_tuan') {
console.log(data.type)
str = 'PINTUAN_CODE'
str2 = '/super_shop_manager_get_mini_code.html?mini=1&path=pageTab%2findex%2findex%3fPINTUAN_CODE%3d'
postParam[str] = data.id;
}else {
str = 'SHARE_PRODUCT_DETAIL_PAGE'
str2 = '/super_shop_manager_get_mini_code.html?mini=1&path=pageTab%2findex%2findex%3fSHARE_PRODUCT_DETAIL_PAGE%3d'
postParam[str] = data.id;
}
postParam.scene = userId
console.log(str, str2, postParam)
// 上面是需要的参数下面的url
var customIndex = this.AddClientUrl(str2 + postParam[str] + "%26scene%3d" + userId + mendianId, postParam, 'get', '1')
var result = customIndex.url.split("?");
customIndex.url = result[0] + "?" + result[1]
console.log("customIndex", customIndex.url, result[0])
var that = this
return customIndex.url
},
shareForFx2: function (pageName, pageTitle, pageCode, imageUrl) {
//组合参数,交给custompage_index 解析
// 组合参数所带
console.log("000000000000", pageName)
console.log("111111111111", pageTitle)
console.log("333333333333", pageCode)
let that = this
let AllCode = ''
let fxCode = '' //userId
if (this.loginUser&&this.loginUser.platformUser) {
fxCode = 'scene=MINI_PLATFORM_USER_ID_' + this.loginUser.platformUser.id
}
if (!pageName && !this.miniIndexPage) {
if (!this.miniIndexPage) {
pageName = 'custom_page_index'
} else {
pageName = this.miniIndexPage
}
}
if (!pageTitle) {
pageTitle = that.clientName
}
if (!pageCode) {
pageCode = {}
}
// title存在的时候显示活动名
if (pageCode.title && pageCode.title!=""){
pageTitle = that.clientName + "-" + pageCode.title
}
if (pageCode.shopName){
console.log("=========shopName=====", pageCode.shopName);
pageTitle = pageCode.shopName
}
if (this.loginUser && this.loginUser.platformUser) {
pageCode.scene = 'MINI_PLATFORM_USER_ID_' + this.loginUser.platformUser.id;
}
else{
pageCode.scene = 'MINI_PLATFORM_USER_ID_' + 0;
}
// 如果带有id的产品传参则进入产品详情页
if (pageCode.id && pageCode.id != "" && pageName=="productDetail"){
pageCode.SHARE_PRODUCT_DETAIL_PAGE = pageCode.id
} else if (pageCode.id && pageCode.id != "" && pageName == "news_detail"){
pageCode.SHARE_NEWS_DETAIL_PAGE = pageCode.id
}else{
// pageCode.SHARE_PRODUCT_DETAIL_PAGE = pageName
}
if (pageCode.belongShop && pageCode.belongShop != "") {
pageCode.ENTER_SHOP = pageCode.belongShop
}
// jsonToStr2在333行
AllCode = that.jsonToStr2(pageCode)
console.log('转发出去的参数集合: ' + AllCode)
console.log('转发出去的imageUrl: ' + imageUrl)
console.log('转发出去的pageTitle: ' + pageTitle)
return {
title: pageTitle,
path: '/pageTab/index/index?' + AllCode,
imageUrl: imageUrl,
success: function (res) {
},
fail: function (res) {
}
}
},
toFix: function (money) {
money = money.toFixed(2)
return money
},
lookBigImage: function (url, urls) {
console.log("==lookBigImage===",url, urls)
if (!url) {
return
}
if (!urls) {
urls = []
urls.push(url)
}
wx.previewImage({
current: url, // 当前显示图片的http链接
urls: urls // 需要预览的图片http链接列表
})
},
getRad: function (d) {
let PI = Math.PI;
return d * PI / 180.0;
},
getDistance: function (lng1, lat1, lng2, lat2) {
let that = this;
let EARTH_RADIUS = 6378.1370; //单位KM
lng1 = parseFloat(lng1);
lat1 = parseFloat(lat1);
lng2 = parseFloat(lng2);
lat2 = parseFloat(lat2);
let radLat1 = that.getRad(lat1);
let radLat2 = that.getRad(lat2);
let a = radLat1 - radLat2;
let b = that.getRad(lng1) - that.getRad(lng2);
let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000.0;
console.log("====getDistance===", s)
return s;
},
SDKVersion: '',
// 个人信息,连接90行
getSdkVersion: function () {
//获取版本信息
let that = this
wx.getSystemInfo({
success: function (res) {
console.log("=======getSystemInfo=========",res.SDKVersion)
that.SDKVersion = res.SDKVersion
}
})
},
compareVersion: function (v1, v2) {
//判断版本大小
v1 = v1.split('.')
v2 = v2.split('.')
var len = Math.max(v1.length, v2.length)
while (v1.length < len) {
v1.push('0')
}
while (v2.length < len) {
v2.push('0')
}
for (var i = 0; i < len; i++) {
var num1 = parseInt(v1[i])
var num2 = parseInt(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
}
})
微信
1
https://gitee.com/ljx5790/wechatApp.git
git@gitee.com:ljx5790/wechatApp.git
ljx5790
wechatApp
微信电商小程序
master

搜索帮助