123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- 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)
- }
|