var app = getApp(); import util from "../utils/util" import userApi from "../utils/https/user.js"; // const baseUrl = "https://js-tript-test.xmainc.com"; 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", // }) // } resolved(res.data); } else { rejected(res.data); } }, fail: (err) => {wx.hideLoading();rejected(err)} } wx.request(obj) }) } function user_post(url,data={}){ 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: 'POST', header: header, success: (res) => { wx.hideLoading(); 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) { wx.showToast({ title: res.data.msg, icon: "none", duration:2000 }) } if(res.statusCode == 200){ if(url.indexOf('order/create')!=-1 && res.data.code==1 && res.data.data){ // 下单成功 if(res.data.data.pay_status==1){ // 0元直接付款成功 wx.navigateTo({ url:"/pages/user/order/list" }) // 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, }) } } 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(); 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=' + 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 }