elective-generation.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. const Mock = require('mockjs')
  2. const Random = Mock['Random']
  3. const mockGeneration = 4 // primary
  4. const mockGroups = [1, 2, 3, 4, 5, 6]
  5. const mockPreferenceCount = 3 // 1 or 3 // 1志愿/3志愿
  6. module.exports = [
  7. {
  8. url: '/mock/front/report/getElectiveStatus',
  9. type: 'get',
  10. response: config => {
  11. return {
  12. code: 200,
  13. msg: 'success',
  14. data: {
  15. year: 2021,
  16. roundId: 1,
  17. roundName: '第X次选科',
  18. groupIds: mockGroups.toString(),
  19. roundGroups: mockGroups.map(groupId => ({
  20. groupId: groupId,
  21. classCount: Random.integer(2, 6),
  22. personCount: function() {
  23. return this.classCount * 50
  24. },
  25. limitPerson: false,
  26. rankOut: false
  27. })),
  28. allMatched: false,
  29. currentGeneration: mockGeneration
  30. }
  31. }
  32. }
  33. },
  34. {
  35. url: '/mock/front/report/getElectiveSummary',
  36. type: 'get',
  37. response: config => {
  38. const results = []
  39. for (let generation = 1; generation <= mockGeneration; generation++) {
  40. const copyGeneration = generation
  41. switch (generation) {
  42. case 1:
  43. // primary
  44. const allPreferences = []
  45. for (let pref = 0; pref < mockPreferenceCount; pref++) {
  46. const preferences = []
  47. const groupDefines = [
  48. {
  49. category: 'actualCount',
  50. displayName: '实际人数',
  51. values: mockGroups.map(groupId => ({
  52. groupId: groupId,
  53. value: Random.integer(120, 400),
  54. color: '',
  55. bold: false,
  56. star: false,
  57. queryCode: 'abc',
  58. disabled: false
  59. }))
  60. }
  61. ]
  62. const nonGroupDefines = [
  63. {
  64. category: 'unfinishedCount',
  65. displayName: '未完成人数',
  66. values: [{
  67. groupId: 0,
  68. value: Random.integer(0, 10),
  69. color: '',
  70. bold: false,
  71. star: false,
  72. queryCode: 'abc',
  73. disabled: false
  74. }]
  75. }
  76. ]
  77. preferences.push(...groupDefines)
  78. preferences.push(...nonGroupDefines)
  79. allPreferences.push(preferences)
  80. }
  81. const primary = {
  82. roundId: 1,
  83. generation: copyGeneration,
  84. categories: allPreferences
  85. }
  86. results.push(primary)
  87. break
  88. default:
  89. const commonDefines = [
  90. {
  91. generations: [2],
  92. factory: () => [
  93. {
  94. category: 'indicateCount',
  95. displayName: '指标',
  96. values: mockGroups.map(groupId => ({
  97. groupId: groupId,
  98. value: Random.integer(120, 400),
  99. color: '',
  100. bold: false,
  101. star: false,
  102. queryCode: 'abc',
  103. disabled: false
  104. }))
  105. },
  106. {
  107. category: 'approvedCount',
  108. displayName: '录取人数',
  109. values: mockGroups.map(groupId => ({
  110. groupId: groupId,
  111. value: Random.integer(120, 400),
  112. color: '',
  113. bold: false,
  114. star: false,
  115. queryCode: 'abc',
  116. disabled: false
  117. }))
  118. },
  119. {
  120. category: 'adjustCount',
  121. displayName: '调剂人数',
  122. values: mockGroups.map(groupId => ({
  123. groupId: groupId,
  124. value: Random.integer(120, 400),
  125. color: '',
  126. bold: false,
  127. star: false,
  128. queryCode: 'abc',
  129. disabled: false
  130. }))
  131. },
  132. {
  133. category: 'matchedCount',
  134. displayName: '可调剂人数',
  135. values: mockGroups.map(groupId => ({
  136. groupId: groupId,
  137. value: Random.integer(120, 400),
  138. color: '',
  139. bold: false,
  140. star: false,
  141. queryCode: 'abc',
  142. disabled: false
  143. }))
  144. },
  145. {
  146. category: 'nonmatchedCount',
  147. displayName: '不可调剂人数',
  148. values: mockGroups.map(groupId => ({
  149. groupId: groupId,
  150. value: Random.integer(120, 400),
  151. color: '',
  152. bold: false,
  153. star: false,
  154. queryCode: 'abc',
  155. disabled: false
  156. }))
  157. }
  158. ]
  159. },
  160. {
  161. generations: [3, 5],
  162. factory: () => [
  163. {
  164. category: 'matchedApproved',
  165. displayName: '可调剂已填人数',
  166. values: mockGroups.map(groupId => ({
  167. groupId: groupId,
  168. value: Random.integer(120, 400),
  169. color: '',
  170. bold: false,
  171. star: false,
  172. queryCode: 'abc',
  173. disabled: false
  174. }))
  175. },
  176. {
  177. category: 'matchedRejected',
  178. displayName: '可调剂已拒绝人数',
  179. values: mockGroups.map(groupId => ({
  180. groupId: groupId,
  181. value: Random.integer(120, 400),
  182. color: '',
  183. bold: false,
  184. star: false,
  185. queryCode: 'abc',
  186. disabled: false
  187. }))
  188. },
  189. {
  190. category: 'matchedNonaction',
  191. displayName: '可调剂未完成人数',
  192. values: mockGroups.map(groupId => ({
  193. groupId: groupId,
  194. value: Random.integer(120, 400),
  195. color: '',
  196. bold: false,
  197. star: false,
  198. queryCode: 'abc',
  199. disabled: false
  200. }))
  201. },
  202. {
  203. category: 'nonmatchedApproved',
  204. displayName: '不可调剂已填人数',
  205. values: mockGroups.map(groupId => ({
  206. groupId: groupId,
  207. value: Random.integer(120, 400),
  208. color: '',
  209. bold: false,
  210. star: false,
  211. queryCode: 'abc',
  212. disabled: false
  213. }))
  214. },
  215. {
  216. category: 'nonmatchedRejected',
  217. displayName: '不可调剂已拒绝人数',
  218. values: mockGroups.map(groupId => ({
  219. groupId: groupId,
  220. value: Random.integer(120, 400),
  221. color: '',
  222. bold: false,
  223. star: false,
  224. queryCode: 'abc',
  225. disabled: false
  226. }))
  227. },
  228. {
  229. category: 'nonmatchedNonaction',
  230. displayName: '不可调剂未完成人数',
  231. values: mockGroups.map(groupId => ({
  232. groupId: groupId,
  233. value: Random.integer(120, 400),
  234. color: '',
  235. bold: false,
  236. star: false,
  237. queryCode: 'abc',
  238. disabled: false
  239. }))
  240. }
  241. ]
  242. },
  243. {
  244. generations: [4],
  245. factory: () => [
  246. {
  247. category: 'approvedCount',
  248. displayName: '补录录取人数',
  249. values: mockGroups.map(groupId => ({
  250. groupId: groupId,
  251. value: Random.integer(120, 400),
  252. color: '',
  253. bold: false,
  254. star: false,
  255. queryCode: 'abc',
  256. disabled: false
  257. }))
  258. },
  259. {
  260. category: 'forcedCount',
  261. displayName: '调剂录取人数',
  262. values: mockGroups.map(groupId => ({
  263. groupId: groupId,
  264. value: Random.integer(120, 400),
  265. color: '',
  266. bold: false,
  267. star: false,
  268. queryCode: 'abc',
  269. disabled: false
  270. }))
  271. },
  272. {
  273. category: 'matchedCount',
  274. displayName: '可调剂人数',
  275. values: mockGroups.map(groupId => ({
  276. groupId: groupId,
  277. value: Random.integer(120, 400),
  278. color: '',
  279. bold: false,
  280. star: false,
  281. queryCode: 'abc',
  282. disabled: false
  283. }))
  284. },
  285. {
  286. category: 'nonmatchedCount',
  287. displayName: '不可调剂人数',
  288. values: mockGroups.map(groupId => ({
  289. groupId: groupId,
  290. value: Random.integer(120, 400),
  291. color: '',
  292. bold: false,
  293. star: false,
  294. queryCode: 'abc',
  295. disabled: false
  296. }))
  297. }
  298. ]
  299. },
  300. {
  301. generations: [6],
  302. factory: () => [
  303. {
  304. category: 'approvedCount',
  305. displayName: '补录录取人数',
  306. values: mockGroups.map(groupId => ({
  307. groupId: groupId,
  308. value: Random.integer(120, 400),
  309. color: '',
  310. bold: false,
  311. star: false,
  312. queryCode: 'abc',
  313. disabled: false
  314. }))
  315. },
  316. {
  317. category: 'forcedCount',
  318. displayName: '调剂录取人数',
  319. values: mockGroups.map(groupId => ({
  320. groupId: groupId,
  321. value: Random.integer(120, 400),
  322. color: '',
  323. bold: false,
  324. star: false,
  325. queryCode: 'abc',
  326. disabled: false
  327. }))
  328. }
  329. ]
  330. },
  331. {
  332. generations: [7],
  333. factory: () => [
  334. {
  335. category: 'forcedCount',
  336. displayName: '调剂录取人数',
  337. values: mockGroups.map(groupId => ({
  338. groupId: groupId,
  339. value: Random.integer(120, 400),
  340. color: '',
  341. bold: false,
  342. star: false,
  343. queryCode: 'abc',
  344. disabled: false
  345. }))
  346. }
  347. ]
  348. }
  349. ]
  350. const defines = commonDefines.find(d => d.generations.includes(generation))
  351. if (defines) {
  352. results.push({
  353. roundId: 1,
  354. generation: copyGeneration,
  355. categories: defines.factory()
  356. })
  357. }
  358. break
  359. }
  360. }
  361. return {
  362. code: 200,
  363. msg: 'success',
  364. data: results
  365. }
  366. }
  367. }
  368. ]