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.
280 lines
9.2 KiB
280 lines
9.2 KiB
import {
|
|
host
|
|
} from '../Gdata'
|
|
import { router_list } from '../config'
|
|
const getRouter = function () {
|
|
var pages = getCurrentPages() //获取加载的页面
|
|
var currentPage = pages[pages.length - 1] //获取当前页面的对象
|
|
let id = ''
|
|
router_list.forEach(item => {
|
|
if (item.router_name == currentPage.route) {
|
|
id = item.id
|
|
}
|
|
})
|
|
return id
|
|
}
|
|
const formatTime = date => {
|
|
const year = date.getFullYear()
|
|
const month = date.getMonth() + 1
|
|
const day = date.getDate()
|
|
const hour = date.getHours()
|
|
const minute = date.getMinutes()
|
|
const second = date.getSeconds()
|
|
|
|
return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
|
|
}
|
|
|
|
const formatNumber = n => {
|
|
n = n.toString()
|
|
return n[1] ? n : `0${n}`
|
|
}
|
|
|
|
const httpUtil = (url, method, data, isLoading = true) => {
|
|
if (isLoading) {
|
|
wx.showLoading({
|
|
title: '加载中'
|
|
});
|
|
}
|
|
return new Promise(function (resolve, reject) {
|
|
wx.request({
|
|
url: host + url,
|
|
data: data,
|
|
method: method,
|
|
// header: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
success: res => {
|
|
if (isLoading) {
|
|
wx.hideLoading();
|
|
}
|
|
if (200 == res.data.status) {
|
|
resolve(res.data.data);
|
|
} else {
|
|
wx.showToast({
|
|
title: '请求错误!',
|
|
icon: 'none',
|
|
duration: 1000
|
|
})
|
|
}
|
|
},
|
|
fail: res => {
|
|
wx.hideLoading();
|
|
}
|
|
})
|
|
})
|
|
}
|
|
const http = (url, method, data, isLoading = true) => {
|
|
if (isLoading) {
|
|
wx.showLoading({
|
|
title: '加载中'
|
|
});
|
|
}
|
|
return new Promise(function (resolve, reject) {
|
|
let token = getApp().globalData.token
|
|
let uid = getApp().globalData.uid
|
|
let cps = wx.getStorageSync("cps") || null
|
|
let header = []
|
|
if (cps !== null && cps.vTime >= new Date().getTime()) {
|
|
header = {
|
|
'token': token,
|
|
'uid': uid,
|
|
'cps': cps.value
|
|
}
|
|
} else {
|
|
header = {
|
|
'token': token,
|
|
'uid': uid
|
|
}
|
|
}
|
|
// if (token && uid) {
|
|
wx.request({
|
|
url: host + url,
|
|
data: data,
|
|
method: method,
|
|
header,
|
|
success: res => {
|
|
if (isLoading) {
|
|
wx.hideLoading();
|
|
}
|
|
if (200 == res.data.status) {
|
|
resolve(res.data.data);
|
|
} else if (401 == res.data.status || 402 == res.data.status || 403 == res.data.status) {
|
|
wx.showModal({
|
|
title: '温馨提示',
|
|
content: '未登录或信息过期,是否前往登录?',
|
|
confirmText: '前往',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
getApp().globalData.gologin = true
|
|
wx.switchTab({
|
|
url: '/pages/user/user_index/user'
|
|
})
|
|
} else if (res.cancel) {
|
|
console.log('用户点击取消')
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: res.data.msg,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
}
|
|
},
|
|
fail: res => {
|
|
wx.hideLoading();
|
|
}
|
|
})
|
|
// } else {
|
|
// wx.showToast({
|
|
// title: '未登录\r\n点击个人中心头像登录',
|
|
// icon: 'none',
|
|
// duration: 2000
|
|
// })
|
|
// }
|
|
|
|
})
|
|
}
|
|
|
|
const login_check = n => {
|
|
if (!getApp().globalData.token || !getApp().globalData.uid || "undefined" == typeof (getApp().globalData.token) || "undefined" == typeof (getApp().globalData.uid)) {
|
|
if (n == 1) {
|
|
wx.showToast({
|
|
title: '未登录',
|
|
icon: 'error',
|
|
duration: 2000,
|
|
complete() {
|
|
function gologin() {
|
|
// getApp().globalData.gologin = true
|
|
// wx.switchTab({
|
|
// url: '/pages/user/user_index/user'
|
|
// })
|
|
wx.navigateTo({
|
|
url: '/pages/user/login/login',
|
|
})
|
|
}
|
|
setTimeout(gologin, 2000);
|
|
}
|
|
})
|
|
} else {
|
|
wx.showModal({
|
|
title: '温馨提示',
|
|
content: '您还没有登录,是否前往登录?',
|
|
confirmText: '前往',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
// getApp().globalData.gologin = true
|
|
// wx.switchTab({
|
|
// url: '/pages/user/user_index/user'
|
|
// })
|
|
wx.navigateTo({
|
|
url: '/pages/user/login/login',
|
|
})
|
|
} else if (res.cancel) {
|
|
console.log('用户点击取消')
|
|
}
|
|
}
|
|
})
|
|
}
|
|
} else {
|
|
return true
|
|
}
|
|
}
|
|
|
|
const location_city = function () {
|
|
let default_city = arguments[0]
|
|
return new Promise(function (resolve, reject) {
|
|
if (default_city == "beijing") {
|
|
let longitude = 116.404368
|
|
let latitude = 39.924338
|
|
httpUtil("/api/v1/get-city", "get", {
|
|
latitude,
|
|
longitude,
|
|
type: 1
|
|
}).then(res1 => {
|
|
resolve(res1)
|
|
})
|
|
} else {
|
|
wx.getLocation({
|
|
type: 'wgs84',
|
|
success(res) {
|
|
if (!res.longitude) {
|
|
setting()
|
|
return
|
|
}
|
|
httpUtil("/api/v1/get-city", "get", {
|
|
longitude: res.longitude,
|
|
latitude: res.latitude,
|
|
type: 1
|
|
}).then(res1 => {
|
|
resolve(res1)
|
|
})
|
|
},
|
|
fail(res) {
|
|
setting()
|
|
}
|
|
})
|
|
}
|
|
|
|
})
|
|
}
|
|
const setting = function () {
|
|
wx.getSetting({ //先查看授权情况
|
|
success: function (res) {
|
|
var statu = res.authSetting;
|
|
if (!statu['scope.userLocation']) { //判断是否授权,没有授权就提示下面的信息
|
|
wx.showModal({
|
|
title: '需要获取您的地理位置,请确认授权,否则小程序功能将无法使用',
|
|
cancelColor: '#666666',
|
|
success: function (tip) {
|
|
if (tip.confirm) { //查看是否点击确定
|
|
wx.openSetting({ //打开设置
|
|
success: function (data) {
|
|
if (data.authSetting["scope.userLocation"] == true) { //到这一步表示打开了位置授权
|
|
// wx.reLaunch({
|
|
// url: '/pages/index/index/index',
|
|
// })
|
|
wx.navigateBack({
|
|
delta: 0,
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '授权失败',
|
|
icon: 'error',
|
|
duration: 1000
|
|
})
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '下拉重新授权!',
|
|
icon: 'error',
|
|
duration: 1000
|
|
})
|
|
}
|
|
}
|
|
})
|
|
} else {
|
|
//用户已授权,但是获取地理位置失败,提示用户去系统设置中打开定位
|
|
wx.showModal({
|
|
title: '',
|
|
showCancel: false,
|
|
content: '请在系统设置中打开微信定位服务',
|
|
confirmText: '确定',
|
|
success: function (res) { }
|
|
})
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
module.exports = {
|
|
formatTime,
|
|
httpUtil,
|
|
http,
|
|
login_check,
|
|
location_city,
|
|
getRouter
|
|
}
|