index.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import Mock from 'mockjs'
  2. import { toAnyString } from '@/utils'
  3. let List: any[] = []
  4. const count = 100
  5. const baseContent = '<p>I am testing data, I am testing data.</p><p><img src="https://wpimg.wallstcn.com/4c69009c-0fd4-4153-b112-6cb53d1cf943"></p>'
  6. // const image_uri = 'https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3'
  7. for (let i = 0; i < count; i++) {
  8. List.push(Mock.mock({
  9. id: toAnyString(),
  10. // timestamp: +Mock.Random.date('T'),
  11. author: '@first',
  12. title: '@title(5, 10)',
  13. content: baseContent,
  14. importance: '@integer(1, 3)',
  15. display_time: '@datetime',
  16. pageviews: '@integer(300, 5000)'
  17. // image_uri
  18. }))
  19. }
  20. export default [
  21. // 列表接口
  22. {
  23. url: 'http://mockjs.test.cn/example/list',
  24. type: 'get',
  25. response: (config: any) => {
  26. const { title, pageIndex, pageSize } = config.query
  27. const mockList = List.filter(item => {
  28. if (title && item.title.indexOf(title) < 0) return false
  29. return true
  30. })
  31. const pageList = mockList.filter((item, index) => index < pageSize * pageIndex && index >= pageSize * (pageIndex - 1))
  32. return {
  33. code: '0000',
  34. data: {
  35. total: mockList.length,
  36. list: pageList
  37. }
  38. }
  39. }
  40. },
  41. // 删除接口
  42. {
  43. url: 'http://mockjs.test.cn/example/delete',
  44. type: 'post',
  45. response: (config: any) => {
  46. const ids = config.body.ids
  47. if (!ids) {
  48. return {
  49. code: '500',
  50. message: '请选择需要删除的数据'
  51. }
  52. } else {
  53. let i = List.length
  54. while (i--) {
  55. if (ids.indexOf(List[i].id) !== -1) {
  56. List.splice(i, 1)
  57. }
  58. }
  59. return {
  60. code: '0000',
  61. data: 'success'
  62. }
  63. }
  64. }
  65. },
  66. // 详情接口
  67. {
  68. url: 'http://mockjs.test.cn/example/detail',
  69. type: 'get',
  70. response: (config: any) => {
  71. const { id } = config.query
  72. for (const example of List) {
  73. if (example.id === id) {
  74. return {
  75. code: '0000',
  76. data: example
  77. }
  78. }
  79. }
  80. }
  81. },
  82. // 保存接口
  83. {
  84. url: 'http://mockjs.test.cn/example/save',
  85. type: 'post',
  86. response: (config: any) => {
  87. const data = config.body
  88. if (!data.id) {
  89. List = [Object.assign(data, { id: toAnyString(), importance: Number(data.importance) })].concat(List)
  90. return {
  91. code: '0000',
  92. data: 'success'
  93. }
  94. } else {
  95. List.map(item => {
  96. if (item.id === data.id) {
  97. for (const key in item) {
  98. if (key === 'importance') {
  99. item[key] = Number(data[key])
  100. } else {
  101. item[key] = data[key]
  102. }
  103. }
  104. }
  105. })
  106. return {
  107. code: '0000',
  108. data: 'success'
  109. }
  110. }
  111. }
  112. }
  113. ]