import { baseUrl, api_version } from './setting.js' import { getToken, getSign, getSycCache, setSycCache, } from './cache.js' /* * 获取配置信息 */ const apiGetConfig = async (refresh = false) => { let config = getSycCache('config'); if (!config || refresh) { const res = await apiGet('/config'); if (res.success == true) { let config = typeof(res.data) != 'undefined' ? res.data : {}; setSycCache('config', config) return config; } } return config; } /* * 获取用户信息 */ const apiGetUserInfo = async (vue, refresh = false, type = 'mine') => { let info = getSycCache('userInfo'); if (!info || refresh) { const res = await apiGet('/user/info'); if (res.success == true) { let info = typeof(res.data) != 'undefined' ? res.data : {}; setSycCache('userInfo', info) return info; } else if (res.code == '403') { uni.navigateTo({ url: '/pages/login/login?type=' + type }) } } return info; } /* * 请求带token */ const apiGet = (url = '', data = {}, header = '') => { url = '/api/' + api_version + url data = typeof(data) != 'undefined' && data ? data : {}; data.system = {} data.system.uuid = uni.getSystemInfoSync().deviceId; data.system.sys_time = (Date.parse(new Date()) / 1000); var token = getToken(); token = typeof(token) != 'undefined' ? token : ''; if (typeof(header) != 'undefined' && header) { if (token) { header.Authorization = 'Bearer ' + token } let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time; let sign = getSign(signStr) header.Sign = sign; } else { let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time; let sign = getSign(signStr) header = { 'Content-Type': 'application/json', 'Authorization': token ? 'Bearer ' + token : '', 'Sign': sign, }; } try { return new Promise((resolve, reject) => { uni.request({ method: 'GET', url: baseUrl + url, data: data, header: header, dataType: 'json', timeout: 8000, }).then((response) => { let [error, res] = response; if (typeof(res) != 'undefined' && typeof(res.data) != 'undefined') { resolve(res.data); } else { throw response } }).catch(error => { //console.log('请求错误:', error) let err = typeof(error[0].errMsg) ? error[0].errMsg : ''; let patt = /^request:fail/; err = patt.test(err) ? '网络错误' : err; resolve({ success: false, msg: err ? err : '请求失败' }) }) }); } catch (e) { //console.log('请求异常', e) // console.log(e) return { 'success': false, 'msg': 'request error' }; } } /* * 请求带token */ const api = (url = '', data = {}, header = '', type = 'post') => { url = '/api/' + api_version + url data = typeof(data) != 'undefined' && data ? data : {}; data.system = {} data.system.app_version = uni.getSystemInfoSync().appVersion; data.system.app_sources = uni.getSystemInfoSync().osName; data.system.sys_version = uni.getSystemInfoSync().osVersion; data.system.sys_model = uni.getSystemInfoSync().deviceModel; data.system.uuid = uni.getSystemInfoSync().deviceId; data.system.sys_time = (Date.parse(new Date()) / 1000); var token = getToken(); token = typeof(token) != 'undefined' ? token : ''; if (typeof(header) != 'undefined' && header) { if (token) { header.Authorization = 'Bearer ' + token } let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time; let sign = getSign(signStr) header.Sign = sign; } else { let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time; let sign = getSign(signStr) header = { 'Content-Type': 'application/json', 'Authorization': token ? 'Bearer ' + token : '', 'Sign': sign, }; } try { return new Promise((resolve, reject) => { uni.request({ method: type, url: baseUrl + url, data: data, header: header, dataType: 'json', timeout: 8000, }).then((response) => { let [error, res] = response; if (typeof(res) != 'undefined' && typeof(res.data) != 'undefined') { resolve(res.data); } else { throw response } }).catch(error => { //console.log('请求错误:', error) let err = typeof(error[0].errMsg) ? error[0].errMsg : ''; let patt = /^request:fail/; err = patt.test(err) ? '网络错误' : err; resolve({ success: false, msg: err ? err : '请求失败' }) }) }); } catch (e) { //console.log('请求异常', e) // console.log(e) return { 'success': false, 'msg': 'request error' }; } } /* * 请求带token */ const uploadApi = (url = '', data = {}, header = '', type = 'post') => { url = '/api/' + api_version + url data = typeof(data) != 'undefined' && data ? data : {}; data.system = {} data.system.app_version = uni.getSystemInfoSync().appVersion; data.system.app_sources = uni.getSystemInfoSync().osName; data.system.sys_version = uni.getSystemInfoSync().osVersion; data.system.sys_model = uni.getSystemInfoSync().deviceModel; data.system.uuid = uni.getSystemInfoSync().deviceId; data.system.sys_time = (Date.parse(new Date()) / 1000); var token = getToken(); token = typeof(token) != 'undefined' ? token : ''; if (header) { if (token) { header.Authorization = 'Bearer ' + token } } else { header = { 'Content-Type': 'application/json', 'Authorization': token ? 'Bearer ' + token : '', }; } try { return new Promise((resolve, reject) => { uni.uploadFile({ url: baseUrl + url, // 服务器接口地址 filePath: data.file_url, header: header, name: 'video', // 对应后台的参数名称 formData: data, // 其他需要发送到服务器的formdata信息 dataType: 'json', success(response) { // console.log(response) let res = response ? JSON.parse(response.data) : {}; if (typeof(res) != 'undefined' && typeof(res.data) != 'undefined') { resolve(res); } else { throw response } }, fail(error) { console.log('上传失败:', error) reject(error) } }); }); } catch (e) { console.log('请求异常', e) return { 'success': false, 'msg': 'request error' }; } } export default { api, apiGet, apiGetConfig, apiGetUserInfo, uploadApi, }