request.qs.js 1.0 KB
Newer Older
sin's avatar
sin committed
1 2 3 4 5 6 7 8 9 10 11
/* eslint-disable */
import qs from 'qs';

/**
 * 过滤字符串为 '' 直接不传了
 *
 * @param params
 */
function filterEmptyStr(params) {
  function filterObject(object) {
    const res = {};
sin's avatar
sin committed
12 13
    for (const key in object) {
      const val = object[key];
sin's avatar
sin committed
14 15 16 17 18 19 20
      if (
        new String(val).length > 0 &&
        val !== undefined &&
        val !== 'undefined' &&
        val !== null &&
        val !== 'null'
      ) {
sin's avatar
sin committed
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
        res[key] = val;
      }
    }
    return res;
  }

  if (typeof params === 'object') {
    return filterObject(params);
  } else if (params instanceof Array) {
    let res = [];
    for (const object in params) {
      res.push(filterObject(params));
    }
  }
}

sin's avatar
sin committed
37 38 39 40 41 42 43 44 45 46 47
export function arrayToStringParams(array) {
  let res = '';
  for (let i = 0; i < array.length; i++) {
    res += array[i];
    if (i < array.length - 1) {
      res += ',';
    }
  }
  return res;
}

sin's avatar
sin committed
48 49 50 51
export function stringify(params) {
  return qs.stringify(filterEmptyStr(params));
}

52 53 54 55
export default {
  ...qs,
  stringify,
};