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.

341 lines
9.9 KiB

5 years ago
var app = getApp();
5 years ago
import util from "../utils/util"
5 years ago
import userApi from "../utils/https/user.js";
5 years ago
// const baseUrl = "https://test.api.cloud.sz-trip.com/api/";
const baseUrl = "https://api.cloud.sz-trip.com/api/";
5 years ago
const orders = ['','weight','distance','sale_number','sale_price','price'];
//封装GET请求
function _get(url,data) {
//为了用户体验,加一个loading效果
wx.showLoading({ title: '加载中', mask: true });
url = baseUrl+url;
// 如果有order
5 years ago
// if(data && data.order){
// data.order = orders[data.order];
// if(data.order=='sale_price' || data.order == 'distance' || data.order=='price'){
// data.sort = "asc";
// }
// }
5 years ago
return new Promise((resolved, rejected) => {
const obj = {
url,
data,
method: 'GET',
success: (res) => {
if (res.statusCode == 200) {
5 years ago
if (res.data.code != 1) {
5 years ago
wx.showToast({
5 years ago
title: res.data.msg,
5 years ago
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
5 years ago
// if(data && data.order){
// data.order = orders[data.order];
// if(data.order=='sale_price' || data.order == 'distance' || data.order=='price'){
// data.sort = "asc";
// }
// }
5 years ago
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",
// })
// }
5 years ago
if(url.indexOf('product/get_product_detail')!=-1){
// 如果是产品详情的话 需要加埋点
_post('browse/ProductStatistics',{
uuid:wx.getStorageSync('uuid'),
5 years ago
product_id:res.data.data.id,
product_name:res.data.data.title,
type:res.data.data.type
5 years ago
})
}
5 years ago
resolved(res.data);
}
else {
rejected(res.data);
}
},
fail: (err) => {wx.hideLoading();rejected(err)}
}
wx.request(obj)
})
}
function user_post(url,data={}){
console.log(wx.getStorageSync('authCode'))
if(wx.getStorageSync('authCode')){
// 如果有授权码的话 用授权码去获取下用户信息
return new Promise((resolved,rejected)=>{
_post("/uservice/user/loginWithUserCenterAuthCode",{
auth_code:wx.getStorageSync('authCode')
}).then(res=>{
if(res && res.data){
wx.setStorageSync('jstrip_userid', res.data.id)
wx.setStorageSync('jstrip_token', res.data.token)
wx.setStorageSync('jstrip_userInfo', res.data)
wx.removeStorageSync('authCode')
}
user_post_new(url,data).then(res=>{
resolved(res)
}).catch(err=>{
rejected(err)
})
}).catch(err=>{
user_post_new(url,data).then(res=>{
resolved(res)
}).catch(err=>{
rejected(err)
})
})
})
}
else {
return user_post_new(url,data)
}
}
function user_post_new(url,data={}){
5 years ago
var token = wx.getStorageSync("jstrip_token"),userId = wx.getStorageSync("jstrip_userid");
//为了用户体验,加一个loading效果
wx.showLoading({ title: '加载中', mask: true });
url = baseUrl + url;
var header = Object.assign({
5 years ago
token:token,
5 years ago
userId:userId
},{
'context-type': 'application/json'
})
// 如果有order
// 排序
5 years ago
// if(data && data.order){
// data.order = orders[data.order];
// if(data.order=='sale_price' || data.order == 'distance' || data.order=='price'){
// data.sort = "asc";
// }
// }
5 years ago
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();
console.log(url)
if(url.indexOf('user/getJumpThirdAppCode')!=-1){
}
else if (res.data.code == 401) {
5 years ago
// 登录出现问题,需要重新登录
wx.removeStorageSync("jstrip_userid");
wx.removeStorageSync("jstrip_token");
wx.removeStorageSync("jstrip_userInfo");
checkLogin();
}
5 years ago
else if(res.data.code==4005){
wx.navigateTo({
url: '/pages/user/verify/index',
})
return;
}
else if (res.data.code != 1 && res.data.msg) {
5 years ago
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
})
}
5 years ago
}
if(res.statusCode == 200){
5 years ago
if(url.indexOf('/order/create')!=-1 && res.data.code==1 && res.data.data){
5 years ago
// 下单成功
if(res.data.data.pay_status==1){
// 0元直接付款成功
wx.navigateTo({
5 years ago
url:"/pages/order/payresult/index?tid="+res.data.data.order_id
5 years ago
})
// 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,
})
}
}
5 years ago
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
})
}
5 years ago
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();
5 years ago
if(page[page.length-1].route!='pages/login/index') {
wx.navigateTo({
url: '/pages/login/index',
})
}
return;
5 years ago
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.login({
success: r => {
wx.getUserInfo({
success: function (res) {
5 years ago
userApi._post("user/wxLogin", { code: r.code, encryptedData: res.encryptedData, iv: res.iv, loginType: 3 }).then(r => {
if (r.code != 1) {
5 years ago
// 请求失败
back()
}
else if (r.data.id && r.data.token) {
set_logininfo(r);
}
// r.data.isBind是false的时候去绑定手机号 该用户没有注册过
// 已经注册的用户返回userinfo
5 years ago
else if (r.data.isBindMobile === 0 && page[page.length-1].route!='pages/user/bindtel/index') {
5 years ago
wx.navigateTo({
5 years ago
url: '/pages/user/bindtel/index?regToken=' + encodeURIComponent(r.data.openid),
5 years ago
})
}
}).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
}