| | |
| | | import Taro from '@tarojs/taro'; |
| | | import Qs from 'qs'; |
| | | import {Tools} from '@components/common/Tools'; |
| | | import project from '@project'; |
| | | |
| | | export class Fetcher { |
| | | |
| | |
| | | this._data = { |
| | | urlPrefix: options.urlPrefix || ['/api/common/', '/api/common/'], |
| | | }; |
| | | // 网页 |
| | | if (process.env.TARO_ENV === 'h5') { |
| | | this._defaultConfig.url = window.location.protocol + '//' + window.location.host; |
| | | } |
| | | // 小程序 |
| | | else if (process.env.TARO_ENV === 'weapp') { |
| | | if (Fetcher.inDevMod) { |
| | | this._defaultConfig.url = project.localHost; |
| | | } else { |
| | | this._defaultConfig.url = project.serverHost; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * @private |
| | | */ |
| | | _defaultConfig = { |
| | | url: window.location.protocol + '//' + window.location.host, |
| | | url: '', |
| | | header: { |
| | | 'X-Requested-With': 'XMLHttpRequest', |
| | | 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', |
| | |
| | | } |
| | | url = url.replace(/[./]\//g, ''); |
| | | return url; |
| | | } |
| | | |
| | | /** |
| | | * 显示提示信息 |
| | | * @param type |
| | | * @param msg |
| | | */ |
| | | message(type, msg) { |
| | | Taro.showToast({ |
| | | title: msg, |
| | | icon: 'none', |
| | | mask: true, |
| | | duration: type === 'error' ? 5000 : 3000, |
| | | }); |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /** |
| | | * 显示提示信息 |
| | | * @param type |
| | | * @param msg |
| | | */ |
| | | message(type, msg) { |
| | | Taro.showToast({ |
| | | title: msg, |
| | | icon: 'none', |
| | | mask: true, |
| | | duration: type === 'error' ? 5000 : 3000, |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 转换图片路径(旧版运营平台) |
| | | * @param {String} type - fix or cut |
| | | * @param {String} path |
| | | * @example |
| | | * fix -> '/upload/4/5e6c91eeccedc.jpg' |
| | | * cut -> '4/5e56307c489c7.jpg' |
| | | */ |
| | | transImgPath(type, path) { |
| | | if (!path) { |
| | | return ''; |
| | | } |
| | | if (path.indexOf(',') >= 0) { |
| | | return path.split(',').map(p => this.transImgPath(type, p)).join(','); |
| | | } else { |
| | | // 修复补齐 |
| | | if (type === 'fix') { |
| | | if (!path || /^(http|\/upload|\/static)/.test(path)) { |
| | | return path; |
| | | } else { |
| | | return '/upload/' + path; |
| | | } |
| | | } else if (type === 'cut') { |
| | | const pathArr = path.split('upload/'); |
| | | return pathArr[pathArr.length - 1]; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 记录是否为本地开发模式 |
| | | * @type {Boolean} |
| | | */ |
| | | static inDevMod = (() => { |
| | | // 网页 |
| | | if (process.env.TARO_ENV === 'h5') { |
| | | // 当处于 mock 请求模式,视为本地开发 |
| | | if (Tools.getUrlParam('query') === 'mock') { |
| | | return true; |
| | |
| | | } |
| | | // 当没有 url 指定时,只有内网 ip 和 33** 的端口号,视为本地开发模式 |
| | | return /^(192|127|localhost).*?:33\d{2}$/i.test(window.location.host); |
| | | } |
| | | // 小程序 |
| | | else if (process.env.TARO_ENV === 'weapp') { |
| | | // 开发编译 |
| | | if (process.env.NODE_ENV === 'development') { |
| | | return true; |
| | | } |
| | | // 生产编译 |
| | | else if (process.env.NODE_ENV === 'production') { |
| | | return false; |
| | | } |
| | | } |
| | | })(); |
| | | |
| | | |
| | | } |