elective-generation.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. const Mock = require('mockjs')
  2. const Random = Mock['Random']
  3. const mockGeneration = 8 // 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 accumulateDefine = {
  90. generations: [2,4,6,7],
  91. factory: ()=>[
  92. {
  93. category: 'approvedCount',
  94. displayName: '正常录取',
  95. values: mockGroups.map(groupId => ({
  96. groupId: groupId,
  97. value: Random.integer(120, 400),
  98. color: '',
  99. bold: false,
  100. star: false,
  101. queryCode: 'abc',
  102. disabled: false
  103. }))
  104. },
  105. {
  106. category: 'forcedCount',
  107. displayName: '调剂录取',
  108. values: mockGroups.map(groupId => ({
  109. groupId: groupId,
  110. value: Random.integer(120, 400),
  111. color: '',
  112. bold: false,
  113. star: false,
  114. queryCode: 'abc',
  115. disabled: false
  116. }))
  117. },
  118. {
  119. category: 'esignedCount',
  120. displayName: '已签人数',
  121. values: mockGroups.map(groupId => ({
  122. groupId: groupId,
  123. value: Random.integer(120, 400),
  124. color: '',
  125. bold: false,
  126. star: false,
  127. queryCode: 'abc',
  128. disabled: false
  129. }))
  130. },
  131. {
  132. category: 'esigningCount',
  133. displayName: '待签人数',
  134. values: mockGroups.map(groupId => ({
  135. groupId: groupId,
  136. value: Random.integer(120, 400),
  137. color: '',
  138. bold: false,
  139. star: false,
  140. queryCode: 'abc',
  141. disabled: false
  142. }))
  143. }
  144. ]
  145. }
  146. const commonDefines = [
  147. {
  148. generations: [2],
  149. factory: () => [
  150. {
  151. category: 'indicateCount',
  152. displayName: '指标',
  153. values: mockGroups.map(groupId => ({
  154. groupId: groupId,
  155. value: Random.integer(120, 400),
  156. color: '',
  157. bold: false,
  158. star: false,
  159. queryCode: 'abc',
  160. disabled: false
  161. }))
  162. },
  163. {
  164. category: 'approvedCount',
  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: 'adjustCount',
  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: 'matchedCount',
  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: 'nonmatchedCount',
  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. },
  217. {
  218. generations: [3, 5],
  219. factory: () => [
  220. {
  221. category: 'matchedApproved',
  222. displayName: '可调剂已填',
  223. values: mockGroups.map(groupId => ({
  224. groupId: groupId,
  225. value: Random.integer(120, 400),
  226. color: '',
  227. bold: false,
  228. star: false,
  229. queryCode: 'abc',
  230. disabled: false
  231. }))
  232. },
  233. {
  234. category: 'matchedRejected',
  235. displayName: '可调剂拒绝',
  236. values: mockGroups.map(groupId => ({
  237. groupId: groupId,
  238. value: Random.integer(120, 400),
  239. color: '',
  240. bold: false,
  241. star: false,
  242. queryCode: 'abc',
  243. disabled: false
  244. }))
  245. },
  246. {
  247. category: 'matchedNonaction',
  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: 'nonmatchedApproved',
  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: 'nonmatchedRejected',
  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: 'nonmatchedNonaction',
  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: [4],
  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. category: 'matchedCount',
  331. displayName: '可调剂人数',
  332. values: mockGroups.map(groupId => ({
  333. groupId: groupId,
  334. value: Random.integer(120, 400),
  335. color: '',
  336. bold: false,
  337. star: false,
  338. queryCode: 'abc',
  339. disabled: false
  340. }))
  341. },
  342. {
  343. category: 'nonmatchedCount',
  344. displayName: '不可调剂人数',
  345. values: mockGroups.map(groupId => ({
  346. groupId: groupId,
  347. value: Random.integer(120, 400),
  348. color: '',
  349. bold: false,
  350. star: false,
  351. queryCode: 'abc',
  352. disabled: false
  353. }))
  354. }
  355. ]
  356. },
  357. {
  358. generations: [6],
  359. factory: () => [
  360. {
  361. category: 'approvedCount',
  362. displayName: '补录录取',
  363. values: mockGroups.map(groupId => ({
  364. groupId: groupId,
  365. value: Random.integer(120, 400),
  366. color: '',
  367. bold: false,
  368. star: false,
  369. queryCode: 'abc',
  370. disabled: false
  371. }))
  372. },
  373. {
  374. category: 'forcedCount',
  375. displayName: '调剂录取',
  376. values: mockGroups.map(groupId => ({
  377. groupId: groupId,
  378. value: Random.integer(120, 400),
  379. color: '',
  380. bold: false,
  381. star: false,
  382. queryCode: 'abc',
  383. disabled: false
  384. }))
  385. }
  386. ]
  387. },
  388. {
  389. generations: [7],
  390. factory: () => [
  391. {
  392. category: 'forcedCount',
  393. displayName: '调剂录取',
  394. values: mockGroups.map(groupId => ({
  395. groupId: groupId,
  396. value: Random.integer(120, 400),
  397. color: '',
  398. bold: false,
  399. star: false,
  400. queryCode: 'abc',
  401. disabled: false
  402. }))
  403. }
  404. ]
  405. }
  406. ]
  407. const defines = commonDefines.find(d => d.generations.includes(generation))
  408. const inAccDef = accumulateDefine.generations.includes(generation)
  409. if (defines) {
  410. results.push({
  411. roundId: 1,
  412. generation: copyGeneration,
  413. categories: defines.factory(),
  414. accumulates: inAccDef ? accumulateDefine.factory() : undefined
  415. })
  416. }
  417. break
  418. }
  419. }
  420. return {
  421. code: 200,
  422. msg: 'success',
  423. data: results
  424. }
  425. }
  426. }
  427. ]