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.
 

270 lines
7.6 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/";
// 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==='身份证号码错误'?'身份证和姓名不匹配':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/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,
})
}
}
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=' + 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
}