_util.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import Mock from 'mockjs';
  2. export function resultSuccess(result, { message = 'ok' } = {}) {
  3. return Mock.mock({
  4. code: 200,
  5. result,
  6. message,
  7. type: 'success',
  8. });
  9. }
  10. export function resultPageSuccess<T = any>(
  11. page: number,
  12. pageSize: number,
  13. list: T[],
  14. { message = 'ok' } = {}
  15. ) {
  16. const pageData = pagination(page, pageSize, list);
  17. return {
  18. ...resultSuccess({
  19. page,
  20. pageSize,
  21. pageCount: list.length,
  22. list: pageData,
  23. }),
  24. message,
  25. };
  26. }
  27. export function resultError(message = 'Request failed', { code = -1, result = null } = {}) {
  28. return {
  29. code,
  30. result,
  31. message,
  32. type: 'error',
  33. };
  34. }
  35. export function pagination<T = any>(pageNo: number, pageSize: number, array: T[]): T[] {
  36. const offset = (pageNo - 1) * Number(pageSize);
  37. const ret =
  38. offset + Number(pageSize) >= array.length
  39. ? array.slice(offset, array.length)
  40. : array.slice(offset, offset + Number(pageSize));
  41. return ret;
  42. }
  43. /**
  44. * @param {Number} times 回调函数需要执行的次数
  45. * @param {Function} callback 回调函数
  46. */
  47. export function doCustomTimes(times: number, callback: any) {
  48. let i = -1;
  49. while (++i < times) {
  50. callback(i);
  51. }
  52. }
  53. export interface requestParams {
  54. method: string;
  55. body: any;
  56. headers?: { token?: string };
  57. query: any;
  58. }
  59. /**
  60. * @description 本函数用于从request数据中获取token,请根据项目的实际情况修改
  61. *
  62. */
  63. export function getRequestToken({ headers }: requestParams): string | undefined {
  64. return headers?.token;
  65. }