123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- let server = {
- baseHost: '',
- host: '',
- mapKey: '', //高德地图key
- staticMapKey: '', //腾讯静态地图key
- api: {
- login: '',
- uploadImg: ''
- }
- }
- let request = (obj, method) => {
- let api = obj.api,
- params = obj.params ? obj.params : {},
- cb = obj.cb ? obj.cb : null,
- failCb = obj.failCb ? obj.failCb : null,
- hideLoading = obj.hideLoading ? obj.hideLoading : false;
- /**
- * 重构api
- */
- if (typeof server.api[api] == 'undefined') {
- wx.showModal({
- title: '错误',
- content: `接口${api}不存在`,
- showCancel: false
- })
- return
- }
- let url = server.baseHost + server.api[api];
- if (!hideLoading) {
- wx.showLoading({
- title: "加载中"
- })
- }
- /**
- * 重构params,加上token
- */
- if (api != 'login') {
- if (wx.getStorageSync('token')) {
- params.token = wx.getStorageSync('token')
- } else {
- //重新登录
- login(() => {
- request(obj, method)
- })
- }
- }
- /**
- * http类型
- */
- let header = {}
- if (method == 'POST') {
- header = {
- 'Content-Type': 'application/x-www-form-urlencoded'
- }
- }
- /**
- * 发送http请求
- */
- wx.request({
- url,
- data: params,
- header,
- method,
- dataType: 'json',
- responseType: 'text',
- success(res) {
- if (!hideLoading) {
- wx.hideLoading()
- }
- switch (res.data.code) {
- case 1:
- cb && cb(res.data.data)
- break
- case 2:
- //重新登录
- login(() => {
- request(obj, method)
- })
- break
- default:
- if (failCb) {
- return failCb(res.data)
- }
- // 后台返回内容末尾含关键字history,则前台点击确定返回上一页或是首页
- let keyword = "back";
- if (!res.data.msg) return
- wx.showModal({
- title: '提示',
- content: res.data.msg.split(keyword)[0],
- showCancel: false,
- success: function(e) {
- if (e.confirm && res.data.msg.indexOf(keyword) > -1) {
- let pages = getCurrentPages();
- if (pages.length > 1) {
- wx.navigateBack({})
- } else {
- wx.reLaunch({
- url: '/pages/tabBar/home/index',
- })
- }
- }
- }
- })
- }
- },
- fail(res) {
- console.log('fail', res)
- },
- complete(res) {
- }
- })
- }
- /**
- * HTTP基本请求
- */
- let $Get = (obj) => {
- request(obj, 'GET')
- }
- let $Post = (obj) => {
- request(obj, 'POST')
- }
- /**
- * 登录
- */
- let login = (cb) => {
- wx.login({
- success(res) {
- if (res.code) {
- $Post({
- api: "login",
- params: {
- code: res.code
- },
- cb: (res) => {
- if (res.token) {
- wx.setStorageSync('token', res.token)
- }
- }
- })
- }
- cb && cb()
- },
- fail(res) {
- console.log('login fail', res)
- },
- complete(res) {
- }
- })
- }
- export {
- server,
- $Get,
- $Post,
- login
- }
|