import React from 'react' import Taro from '@tarojs/taro' // const baseURL = HOST export default async (options) => { const opts = optionBuilder(options) console.log(opts, "optsoptsoptsoptsoptsoptsoptsoptsoptsopts") return Taro.request(opts) .then((res) => { console.log(res, '----------'); const { code } = typeof res.data === 'string' ? JSON.parse(res.data) : res.data if (code == '1000') { return res } else { throw res } return res }) .catch((err) => { console.log(err, '111111111111'); if(err.status=== 504){ Taro.showToast({ title: "请检查网络", icon: 'none' }) throw err } throw err }) } export function optionBuilder(options) { const { url, data = {}, method = 'get', params = {}, header } = options // console.log(user,'user') let api = `/api/mp${url}` if (JSON.stringify(params) != "{}") { api = `${api}?${paramsToString(params)}` } const token = Taro.getStorageSync('token')||'' return { url: api, method, data, header: { 'content-type': 'application/json', 'X-Authorization-JWT': `${token}`, // 'appId': appId, // 'x-action': 'miniapp', // 'x-version': Version, // 'x-consultant': consultant, // 'x-recommender': recommender, ...header || {}, }, mode: 'cors', } } function paramsToString(params) { return Object.keys(params).map((key) => { const val = params[key] return Array.isArray(val) ? val.map((x) => { return composeKeyValue(key, x) }).join('&') : composeKeyValue(key, val) }).join('&') } function composeKeyValue(k, v, encode) { return encode === false ? `${k}=${v}` : `${encodeURIComponent(k)}=${encodeURIComponent(v)}` } export const uploadFiles = async (files,url) => { const uploads = [] const token = Taro.getStorageSync('token')||'' for (var i = 0; i < files.length; i++) { uploads[i] = new Promise((resolve, reject) => { Taro.uploadFile({ url: url||`/api/mp/image`, filePath: files[i], header: { 'authorization': `X-Authorization-JWT ${token}`, // 'x-action': 'miniapp' }, name: 'file', success: function (res) { // debugger const _data = JSON.parse(res.data) // if (_data.code !== CODE_SUCCESS) { // reject(new Error(_data.message)) // } resolve(_data.data) }, fail(err) { reject(err) } }) }) } return Promise.all(uploads) }