helper.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * 辅助函数
  3. */
  4. const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
  5. export function joinTimestamp<T extends boolean>(join: boolean, restful: T): T extends true ? string : object;
  6. export function joinTimestamp(join: boolean, restful = false): string | object {
  7. if (!join) {
  8. return restful ? "" : {};
  9. }
  10. const now = new Date().getTime();
  11. if (restful) {
  12. return `?_t=${now}`;
  13. }
  14. return { _t: now };
  15. }
  16. /**
  17. * 格式化请求参数时间
  18. */
  19. export function formatRequestDate(params: Record<string, any>) {
  20. if (Object.prototype.toString.call(params) !== "[object Object]") {
  21. return;
  22. }
  23. for (const key in params) {
  24. const value = params[key];
  25. if (value) {
  26. try {
  27. // 如果是字符串,trim 处理
  28. if (typeof value === "string") {
  29. params[key] = value.trim();
  30. }
  31. // 如果是对象,递归处理
  32. if (typeof value === "object" && value !== null) {
  33. formatRequestDate(value);
  34. }
  35. } catch (error: any) {
  36. throw new Error(error);
  37. }
  38. }
  39. }
  40. }
  41. /**
  42. * 将对象转换为 URL 参数
  43. */
  44. export function setObjToUrlParams(baseUrl: string, obj: Record<string, any>): string {
  45. let parameters = "";
  46. for (const key in obj) {
  47. parameters += key + "=" + encodeURIComponent(obj[key]) + "&";
  48. }
  49. parameters = parameters.replace(/&$/, "");
  50. return /\?$/.test(baseUrl) ? baseUrl + parameters : baseUrl.replace(/\/?$/, "?") + parameters;
  51. }