article.ts 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import { Random } from 'mockjs';
  2. import { resultSuccess, doCustomTimes } from '../_util';
  3. const avatarList = [
  4. 'https://img.naiveadmin.com/assets/avatar/avatar-1.jpg',
  5. 'https://img.naiveadmin.com/assets/avatar/avatar-2.jpg',
  6. 'https://img.naiveadmin.com/assets/avatar/avatar-3.jpg',
  7. 'https://img.naiveadmin.com/assets/avatar/avatar-4.jpg',
  8. 'https://img.naiveadmin.com/assets/avatar/avatar-5.jpg',
  9. 'https://img.naiveadmin.com/assets/avatar/avatar-6.jpg',
  10. ];
  11. const coverList = [
  12. 'https://img.naiveadmin.com/assets/article/1.jpeg',
  13. 'https://img.naiveadmin.com/assets/article/2.jpeg',
  14. 'https://img.naiveadmin.com/assets/article/3.jpeg',
  15. 'https://img.naiveadmin.com/assets/article/4.jpg',
  16. 'https://img.naiveadmin.com/assets/article/5.jpeg',
  17. 'https://img.naiveadmin.com/assets/article/6.jpeg',
  18. 'https://img.naiveadmin.com/assets/article/7.jpeg',
  19. 'https://img.naiveadmin.com/assets/article/8.jpeg',
  20. 'https://img.naiveadmin.com/assets/article/9.jpeg',
  21. 'https://img.naiveadmin.com/assets/article/10.jpeg',
  22. ];
  23. const articleList = (pageSize) => {
  24. const result: any[] = [];
  25. doCustomTimes(pageSize, () => {
  26. result.push({
  27. id: '@integer(10,999999)',
  28. title: Random.csentence(),
  29. tags: getRandomArrayElements(
  30. [
  31. '有限理性',
  32. '智商',
  33. '情绪智力',
  34. '心理理论',
  35. '多动症',
  36. '抑郁症',
  37. '梦的解析',
  38. '催眠',
  39. '投射测验',
  40. '习惯化范式',
  41. ],
  42. 2,
  43. 4,
  44. ),
  45. summary: Random.cparagraph(),
  46. avatar: Random.pick(avatarList),
  47. cover: Random.pick(coverList),
  48. author: '@cname()',
  49. collection: Random.natural(10, 999),
  50. like: Random.natural(10, 999),
  51. comment: Random.natural(10, 999),
  52. date: `@date('yyyy-MM-dd')`,
  53. 'no|100000-10000000': 100000,
  54. });
  55. });
  56. return result;
  57. };
  58. export default [
  59. {
  60. url: '/api/article/list',
  61. timeout: 1000,
  62. method: 'get',
  63. response: ({ query }) => {
  64. const { page = 1, pageSize = 1 } = query;
  65. const list = articleList(Number(pageSize));
  66. return resultSuccess({
  67. page: Number(page),
  68. pageSize: Number(pageSize),
  69. pageCount: 60,
  70. itemCount: 60 * Number(pageSize),
  71. list,
  72. });
  73. },
  74. },
  75. ];
  76. //从数组中取出指定个数的元素
  77. function getRandomArrayElements(arr, start, end) {
  78. const count = Math.floor(Math.random() * (end - start) + start);
  79. const shuffled = arr.slice(0);
  80. let i = arr.length;
  81. const min = i - count;
  82. let temp: any;
  83. let index: number;
  84. while (i-- > min) {
  85. index = Math.floor((i + 1) * Math.random());
  86. temp = shuffled[index];
  87. shuffled[index] = shuffled[i];
  88. shuffled[i] = temp;
  89. }
  90. return shuffled.slice(min);
  91. }