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/"; let baseUrl = "https://api.cloud.sz-trip.com/api/"; const env = wx.getAccountInfoSync().miniProgram.envVersion if (env == 'develop1') { baseUrl = "https://test.api.cloud.sz-trip.com/api/" } else { // baseUrl = "https://api.cloud.sz-trip.com/api/"; // baseUrl = "https://test.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); util.detailPagePoint(url, 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); // if (url.indexOf('product/get_product_detail') != -1 ||) { util.detailPagePoint(url, 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) util.detailPagePoint(url, 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) { 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) { if (data.noLogin) { resolved(); return false; } wx.hideLoading(); // 去登陆 console.log("去登陆去登陆去登陆去登陆去登陆去登陆去登陆") checkLogin(); resolved(); return false; } else { const obj = { url, data, method: type ? type : 'POST', header: header, success: (res) => { wx.hideLoading(); 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) { // 不出现提示语 const noToast = [ 'getRaffle', 'getProductAllowancePrice' ] if (url.indexOf('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') // 清空购物车 try { console.log("清除购物车") let app = getApp() app.globalData.list = null;app.globalData.createDate = null; app.globalData.index = 0;app.globalData.productPrice = 0;app.globalData.ticketPrice = 0; app.globalData.isCartBuy = false } catch(e) { console.log("清空购物车失败", e) } 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) } } } let canToLogin = true let appData = getApp() const checkLogin = () => { // 判断是否已经授权过 let page = getCurrentPages()[getCurrentPages().length - 1];; // 审核不强制登录 if (!appData) { console.log("获取app") appData = getApp() } console.log(appData,page.route) // if(page.route !="pages/user/user"&& appData.globalData.configJson&&appData.globalData.configJson.isTest) { // return // } if (page.route!='pages/login/index' && canToLogin) { canToLogin = false wx.navigateTo({ url: '/pages/login/index', complete: function () { canToLogin = true } }) } 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 }