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.
 

406 lines
12 KiB

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
}