var app = getApp(); import util from "../utils/util" // import userApi from "../utils/https/user.js"; // const baseUrl = "https://test.api.cloud.sz-trip.com/api/"; const baseUrl = "https://api.cloud.sz-trip.com/api/"; const orders = ['','weight','distance','sale_number','sale_price','price']; //封装GET请求 function _get(url,data) { //为了用户体验,加一个loading效果 wx.showLoading({ title: '加载中', mask: true }); url = baseUrl+url; // 如果有order // if(data && data.order){ // data.order = orders[data.order]; // if(data.order=='sale_price' || data.order == 'distance' || data.order=='price'){ // data.sort = "asc"; // } // } return new Promise((resolved, rejected) => { const obj = { url, data, method: 'GET', success: (res) => { if (res.statusCode == 200) { if (res.data.code != 1) { wx.showToast({ title: res.data.msg, icon: "none", duration:2000 }) } resolved(res.data); } else { rejected(res.data) } }, fail: (err) => rejected(err), complete: () => { wx.hideLoading(); } } wx.request(obj) }) } function back(){ const pages = getCurrentPages(); if (pages.length <= 1) { wx.switchTab({ url: '/pages/index/index', }) } else { wx.navigateBack({ delta: 1 }) } } //封装POST请求 function _post(url,data={}) { //为了用户体验,加一个loading效果 wx.showLoading({ title: '加载中', mask: true }); url = baseUrl + url; // 如果有order // if(data && data.order){ // data.order = orders[data.order]; // if(data.order=='sale_price' || data.order == 'distance' || data.order=='price'){ // data.sort = "asc"; // } // } return new Promise((resolved, rejected) => { const obj = { url, data, method: 'POST', success: (res) => { wx.hideLoading(); if (res.statusCode == 200) { // if (res.data.code != 200) { // wx.showToast({ // title: res.data.message, // icon: "none", // }) // } if(url.indexOf('product/get_product_detail')!=-1){ // 如果是产品详情的话 需要加埋点 _post('browse/ProductStatistics',{ uuid:wx.getStorageSync('uuid'), product_id:res.data.data.id, product_name:res.data.data.title, type:res.data.data.type }) util.pagePoint({ event:'product_view', param:{ type:res.data.data.type, id:res.data.data.id } },1) } resolved(res.data); } else { rejected(res.data); } }, fail: (err) => {wx.hideLoading();rejected(err)} } wx.request(obj) }) } function user_post(url,data={},type){ if(wx.getStorageSync('authCode')){ // 如果有授权码的话 用授权码去获取下用户信息 return new Promise((resolved,rejected)=>{ _post("/uservice/user/loginWithUserCenterAuthCode",{ auth_code:wx.getStorageSync('authCode') }).then(res=>{ wx.removeStorageSync('authCode') if(res && res.data){ wx.setStorageSync('jstrip_userid', res.data.id) wx.setStorageSync('jstrip_token', res.data.token) wx.setStorageSync('jstrip_userInfo', res.data) } user_post_new(url,data,type).then(res=>{ resolved(res) }).catch(err=>{ rejected(err) }) }).catch(err=>{ wx.removeStorageSync('authCode') user_post_new(url,data,type).then(res=>{ resolved(res) }).catch(err=>{ rejected(err) }) }) }) } else { return user_post_new(url,data,type) } } function user_post_new(url,data={},type){ console.log(type) var token = wx.getStorageSync("jstrip_token"),userId = wx.getStorageSync("jstrip_userid"); //为了用户体验,加一个loading效果 wx.showLoading({ title: '加载中', mask: true }); url = baseUrl + url; var header = Object.assign({ token:token, userId:userId },{ 'context-type': 'application/json' }) // 如果有order // 排序 // if(data && data.order){ // data.order = orders[data.order]; // if(data.order=='sale_price' || data.order == 'distance' || data.order=='price'){ // data.sort = "asc"; // } // } return new Promise((resolved, rejected) => { // 判断是否登录 // 没有登录就跳转到登录页面 if (!token || !userId){ wx.hideLoading(); // 去登陆 console.log("去登陆去登陆去登陆去登陆去登陆去登陆去登陆") checkLogin(); resolved(); return false; } else { const obj = { url, data, method: type?type:'POST', header: header, success: (res) => { wx.hideLoading(); console.log(url,url.indexOf('team_order/apply_post')!=-1) if(url.indexOf('user/getJumpThirdAppCode')!=-1){ } else if (res.data.code == 401) { // 登录出现问题,需要重新登录 wx.removeStorageSync("jstrip_userid"); wx.removeStorageSync("jstrip_token"); wx.removeStorageSync("jstrip_userInfo"); checkLogin(); } else if(res.data.code==4005){ wx.navigateTo({ url: '/pages/user/verify/index', }) return; } else if (res.data.code != 1 && res.data.msg) { // 不出现提示语 if(url.indexOf('actonline/video_act/getRaffle')!=-1 || url.indexOf('team_order/apply_post')!=-1 && type=='get'){ } else if(url.indexOf('actonline/act_online/vote')!=-1 && res.data.code==0){ wx.showToast({ title: res.data.msg, icon: "none", duration:2000 }) } else if(url.indexOf('actonline/act_online/vote')==-1){ wx.showToast({ title: res.data.msg==='身份证号码错误'?'身份证和姓名不匹配':res.data.msg, icon: "none", duration:2000 }) } } if(res.statusCode == 200){ if(url.indexOf('/order/create')!=-1 && res.data.code==1 && res.data.data){ // 下单成功 wx.removeStorageSync('prizeId') if(res.data.data.pay_status==1){ // 0元直接付款成功 wx.navigateTo({ url:"/pages/order/payresult/index?tid="+res.data.data.order_id }) // util.gotoOrder(res.data.data) // // wx.navigateTo({ // // url: '/pages/user/order/sceneOrderInfo/index?id='+res.data.data.order_id, // // }) } else { wx.navigateTo({ url: '/pages/order/pay/index?id='+res.data.data.order_id, }) } if(wx.getStorageSync('order_from')){ util.pagePoint({ event:wx.getStorageSync('order_from') },1) } wx.removeStorageSync('order_from') } else if(url.indexOf('/order/create')!=-1 && res.data.msg=='您有正在进行中或待支付的拼团,请查看拼团订单'){ setTimeout(() => { wx.navigateTo({ url: '/pages/user/order/list', }) }, 1000); } if(url.indexOf('product/get_product_detail')!=-1){ // 如果是产品详情的话 需要加埋点 _post('browse/ProductStatistics',{ uuid:wx.getStorageSync('uuid'), product_id:res.data.data.id, product_name:res.data.data.title, type:res.data.data.type }) util.pagePoint({ event:'product_view', param:{ type:res.data.data.type, id:res.data.data.id } },1) } resolved(res.data); } else { rejected(res.data); } }, fail: (err) => { console.log(err) wx.hideLoading(); rejected(err) } } wx.request(obj) } }) } const set_logininfo = r => { wx.setStorageSync("jstrip_userid", r.data.id) wx.setStorageSync("jstrip_token", r.data.token) wx.setStorageSync("jstrip_userInfo", r.data) // 此时重新加载页面 if (getCurrentPages().length != 0) { //刷新当前页面的数据 let item = getCurrentPages()[getCurrentPages().length - 1]; if(item.route.indexOf('login')!=-1){ item = getCurrentPages()[getCurrentPages().length - 2]; item.onLoad(item.__displayReporter.query) } else if(item.route=='pages/index/index'){ // 首页只可能去获取苏康码 item.gotoSkm(); } else { item.onShow() item.onLoad(item.__displayReporter.query) } } } const checkLogin = () => { // 判断是否已经授权过 let page = getCurrentPages(); if(page[page.length-1].route!='pages/login/index') { wx.navigateTo({ url: '/pages/login/index', }) } return; wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.login({ success: r => { wx.getUserInfo({ success: function (res) { userApi._post("user/wxLogin", { code: r.code, encryptedData: res.encryptedData, iv: res.iv, loginType: 3 }).then(r => { if (r.code != 1) { // 请求失败 back() } else if (r.data.id && r.data.token) { set_logininfo(r); } // r.data.isBind是false的时候去绑定手机号 该用户没有注册过 // 已经注册的用户返回userinfo else if (r.data.isBindMobile === 0 && page[page.length-1].route!='pages/user/bindtel/index') { wx.navigateTo({ url: '/pages/user/bindtel/index?regToken=' + encodeURIComponent(r.data.openid), }) } }).catch(err => { wx.showToast({ title: '网络请求失败', icon: 'none' }) console.log(err,"666666") back() }) } }) } }) } else { if(page[page.length-1].route!='pages/login/index') { wx.navigateTo({ url: '/pages/login/index', }) } } }, fail:err=>{ } }) } //导出封装的_post方法 export default { _post, _get, user_post, set_logininfo, checkLogin, baseUrl }