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.
396 lines
12 KiB
396 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')
|
|
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
|
|
}
|