dictionary.ts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. import { resultSuccess } from '../_util';
  2. const dictionaryList = [
  3. {
  4. id: '@integer(10,9999)',
  5. label: '预约事项',
  6. key: 'makeMatter',
  7. children: [
  8. {
  9. id: '@integer(10,9999)',
  10. label: '初次预约',
  11. key: 'theMake',
  12. },
  13. {
  14. id: '@integer(10,9999)',
  15. label: '多次预约',
  16. key: 'towMake',
  17. },
  18. ],
  19. },
  20. {
  21. id: '@integer(10,9999)',
  22. label: '注册来源',
  23. key: 'registeredSource',
  24. },
  25. ];
  26. const dictionaryItems = () => {
  27. return [
  28. {
  29. key: 'registeredSource',
  30. values: [
  31. {
  32. id: '@integer(10,9999)',
  33. value: 'baidu',
  34. label: '百度',
  35. 'order|1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  36. create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
  37. },
  38. {
  39. id: '@integer(10,9999)',
  40. value: 'weibo',
  41. label: '微博',
  42. 'order|1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  43. create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
  44. },
  45. {
  46. id: '@integer(10,9999)',
  47. value: 'weixin',
  48. label: '微信',
  49. 'order|1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  50. create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
  51. },
  52. ],
  53. },
  54. {
  55. key: 'theMake',
  56. parentKey: 'makeMatter',
  57. values: [
  58. {
  59. id: '@integer(10,9999)',
  60. value: 'examine',
  61. label: '检查',
  62. 'order|1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  63. create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
  64. },
  65. {
  66. id: '@integer(10,9999)',
  67. value: 'tooth',
  68. label: '拔牙',
  69. 'order|1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  70. create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
  71. },
  72. ],
  73. },
  74. {
  75. key: 'towMake',
  76. parentKey: 'makeMatter',
  77. values: [
  78. {
  79. id: '@integer(10,9999)',
  80. value: 'take',
  81. label: '拆线',
  82. 'order|1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  83. create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
  84. },
  85. {
  86. id: '@integer(10,9999)',
  87. value: 'periodontal',
  88. label: '牙周',
  89. 'order|1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
  90. create_date: `@date('yyyy-MM-dd hh:mm:ss')`,
  91. },
  92. ],
  93. },
  94. ];
  95. };
  96. const dictionaryInfo = (_, key: string) => {
  97. const list: any[] = [];
  98. dictionaryItems().forEach((item: any) => {
  99. if (item.key === key || item.parentKey === key) {
  100. list.push(item as any);
  101. }
  102. });
  103. const valuesList: any[] = [];
  104. list.forEach((item: any) => {
  105. item.values.map((values) => {
  106. valuesList.push(values);
  107. });
  108. });
  109. return valuesList;
  110. };
  111. export default [
  112. //字典列表
  113. {
  114. url: '/api/dictionary/list',
  115. timeout: 1000,
  116. method: 'get',
  117. response: () => {
  118. return resultSuccess(dictionaryList);
  119. },
  120. },
  121. //字典详情
  122. {
  123. url: '/api/dictionary/info',
  124. timeout: 1000,
  125. method: 'get',
  126. response: ({ query }) => {
  127. const { page = 1, pageSize = 10, key, keywords } = query;
  128. let list = dictionaryInfo(Number(pageSize), key);
  129. //实现搜索筛选
  130. if (keywords) {
  131. list = list.filter((item) => {
  132. return item.label.indexOf(keywords) != -1;
  133. });
  134. }
  135. const count =
  136. list.length > Number(pageSize) ? Math.ceil(list.length / Number(pageSize)) : list.length;
  137. const itemCount = count > Number(pageSize) ? count * Number(pageSize) : count;
  138. return resultSuccess({
  139. page: Number(page),
  140. pageSize: Number(pageSize),
  141. pageCount: count,
  142. itemCount,
  143. list,
  144. });
  145. },
  146. },
  147. ];