elective-generation.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  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. disenrollCount: Random.integer(20, 100)
  32. }
  33. }
  34. }
  35. },
  36. {
  37. url: '/mock/front/report/getElectiveSummary',
  38. type: 'get',
  39. response: config => {
  40. const results = []
  41. for (let generation = 1; generation <= mockGeneration; generation++) {
  42. const copyGeneration = generation
  43. switch (generation) {
  44. case 1:
  45. // primary
  46. const allPreferences = []
  47. for (let pref = 0; pref < mockPreferenceCount; pref++) {
  48. const preferences = []
  49. const groupDefines = [
  50. {
  51. category: 'actualCount',
  52. displayName: '已报名',
  53. values: mockGroups.map(groupId => ({
  54. groupId: groupId,
  55. value: Random.integer(120, 400),
  56. color: 'B',
  57. bold: false,
  58. star: false,
  59. queryCode: 'abc',
  60. disabled: false
  61. }))
  62. }
  63. ]
  64. const nonGroupDefines = [
  65. {
  66. category: 'unfinishedCount',
  67. displayName: '未报名',
  68. values: [{
  69. groupId: 0,
  70. value: Random.integer(0, 10),
  71. color: '',
  72. bold: false,
  73. star: false,
  74. queryCode: 'abc',
  75. disabled: false
  76. }]
  77. }
  78. ]
  79. preferences.push(...groupDefines)
  80. preferences.push(...nonGroupDefines)
  81. allPreferences.push(preferences)
  82. }
  83. const primary = {
  84. roundId: 1,
  85. generation: copyGeneration,
  86. categories: allPreferences
  87. }
  88. results.push(primary)
  89. break
  90. default:
  91. const accumulateDefine = {
  92. generations: [2, 4, 6, 7],
  93. factory: () => [
  94. {
  95. category: 'approvedCount',
  96. displayName: '正常录取',
  97. values: mockGroups.map(groupId => ({
  98. groupId: groupId,
  99. value: Random.integer(120, 300),
  100. color: '',
  101. bold: false,
  102. star: false,
  103. queryCode: 'abc',
  104. disabled: false
  105. }))
  106. },
  107. {
  108. category: 'forcedCount',
  109. displayName: '调剂录取',
  110. values: mockGroups.map(groupId => ({
  111. groupId: groupId,
  112. value: Random.integer(0, 10),
  113. color: '',
  114. bold: false,
  115. star: false,
  116. queryCode: 'abc',
  117. disabled: false
  118. }))
  119. },
  120. {
  121. category: 'esignedCount',
  122. displayName: '已签人数',
  123. values: mockGroups.map(groupId => ({
  124. groupId: groupId,
  125. value: Random.integer(120, 400),
  126. color: '',
  127. bold: false,
  128. star: false,
  129. queryCode: 'abc',
  130. disabled: false
  131. }))
  132. },
  133. {
  134. category: 'esigningCount',
  135. displayName: '待签人数',
  136. values: mockGroups.map(groupId => ({
  137. groupId: groupId,
  138. value: Random.integer(120, 400),
  139. color: 'R',
  140. bold: false,
  141. star: false,
  142. queryCode: 'abc',
  143. disabled: false
  144. }))
  145. }
  146. ]
  147. }
  148. const commonDefines = [
  149. {
  150. generations: [2],
  151. factory: () => [
  152. {
  153. category: 'indicateCount',
  154. displayName: '指标',
  155. values: mockGroups.map(groupId => ({
  156. groupId: groupId,
  157. value: Random.integer(120, 400),
  158. color: '',
  159. bold: false,
  160. star: true,
  161. queryCode: 'abc',
  162. disabled: false
  163. }))
  164. },
  165. {
  166. category: 'approvedCount',
  167. displayName: '录取人数',
  168. values: mockGroups.map(groupId => ({
  169. groupId: groupId,
  170. value: Random.integer(120, 400),
  171. color: '',
  172. bold: false,
  173. star: false,
  174. queryCode: 'abc',
  175. disabled: false
  176. }))
  177. },
  178. {
  179. category: 'adjustCount',
  180. displayName: '调剂人数',
  181. values: mockGroups.map(groupId => ({
  182. groupId: groupId,
  183. value: Random.integer(120, 400),
  184. color: '',
  185. bold: false,
  186. star: false,
  187. queryCode: 'abc',
  188. disabled: false
  189. }))
  190. },
  191. {
  192. category: 'matchedCount',
  193. displayName: '可调剂人数',
  194. values: mockGroups.map(groupId => ({
  195. groupId: groupId,
  196. value: Random.integer(120, 400),
  197. color: '',
  198. bold: false,
  199. star: false,
  200. queryCode: 'abc',
  201. disabled: false
  202. }))
  203. },
  204. {
  205. category: 'nonmatchedCount',
  206. displayName: '不可调剂人数',
  207. values: mockGroups.map(groupId => ({
  208. groupId: groupId,
  209. value: Random.integer(120, 400),
  210. color: '',
  211. bold: false,
  212. star: false,
  213. queryCode: 'abc',
  214. disabled: false
  215. }))
  216. }
  217. ]
  218. },
  219. {
  220. generations: [3, 5],
  221. factory: () => [
  222. {
  223. category: 'matchedApproved',
  224. displayName: '可调剂同意',
  225. values: mockGroups.map(groupId => ({
  226. groupId: groupId,
  227. value: Random.integer(120, 400),
  228. color: '',
  229. bold: false,
  230. star: false,
  231. queryCode: 'abc',
  232. disabled: false
  233. }))
  234. },
  235. {
  236. category: 'matchedNotOptional',
  237. displayName: '可调剂改选',
  238. values: mockGroups.map(groupId => ({
  239. groupId: groupId,
  240. value: Random.integer(120, 400),
  241. color: '',
  242. bold: false,
  243. star: false,
  244. queryCode: 'abc',
  245. disabled: false
  246. }))
  247. },
  248. {
  249. category: 'matchedRejected',
  250. displayName: '可调剂拒绝',
  251. values: mockGroups.map(groupId => ({
  252. groupId: groupId,
  253. value: Random.integer(120, 400),
  254. color: '',
  255. bold: false,
  256. star: false,
  257. queryCode: 'abc',
  258. disabled: false
  259. }))
  260. },
  261. {
  262. category: 'matchedNonaction',
  263. displayName: '可调剂未填',
  264. values: mockGroups.map(groupId => ({
  265. groupId: groupId,
  266. value: Random.integer(120, 400),
  267. color: '',
  268. bold: false,
  269. star: false,
  270. queryCode: 'abc',
  271. disabled: false
  272. }))
  273. },
  274. {
  275. category: 'matchedRankout',
  276. displayName: '可调剂被挤出',
  277. values: mockGroups.map(groupId => ({
  278. groupId: groupId,
  279. value: Random.integer(120, 400),
  280. color: '',
  281. bold: false,
  282. star: false,
  283. queryCode: 'abc',
  284. disabled: false
  285. }))
  286. },
  287. {
  288. category: 'nonmatchedApproved',
  289. displayName: '不可调剂已填',
  290. values: mockGroups.map(groupId => ({
  291. groupId: groupId,
  292. value: Random.integer(120, 400),
  293. color: '',
  294. bold: false,
  295. star: false,
  296. queryCode: 'abc',
  297. disabled: false
  298. }))
  299. },
  300. {
  301. category: 'nonmatchedRejected',
  302. displayName: '不可调剂拒绝',
  303. values: mockGroups.map(groupId => ({
  304. groupId: groupId,
  305. value: Random.integer(120, 400),
  306. color: '',
  307. bold: false,
  308. star: false,
  309. queryCode: 'abc',
  310. disabled: false
  311. }))
  312. },
  313. {
  314. category: 'nonmatchedNonaction',
  315. displayName: '不可调剂未填',
  316. values: mockGroups.map(groupId => ({
  317. groupId: groupId,
  318. value: Random.integer(120, 400),
  319. color: '',
  320. bold: false,
  321. star: false,
  322. queryCode: 'abc',
  323. disabled: false
  324. }))
  325. }
  326. ]
  327. },
  328. {
  329. generations: [4],
  330. factory: () => [
  331. {
  332. category: 'approvedCount',
  333. displayName: '补录录取',
  334. values: mockGroups.map(groupId => ({
  335. groupId: groupId,
  336. value: Random.integer(120, 400),
  337. color: '',
  338. bold: false,
  339. star: false,
  340. queryCode: 'abc',
  341. disabled: false
  342. }))
  343. },
  344. {
  345. category: 'forcedCount',
  346. displayName: '调剂录取',
  347. values: mockGroups.map(groupId => ({
  348. groupId: groupId,
  349. value: Random.integer(120, 400),
  350. color: '',
  351. bold: false,
  352. star: false,
  353. queryCode: 'abc',
  354. disabled: false
  355. }))
  356. },
  357. {
  358. category: 'matchedCount',
  359. displayName: '可调剂人数',
  360. values: mockGroups.map(groupId => ({
  361. groupId: groupId,
  362. value: Random.integer(120, 400),
  363. color: '',
  364. bold: false,
  365. star: false,
  366. queryCode: 'abc',
  367. disabled: false
  368. }))
  369. },
  370. {
  371. category: 'nonmatchedCount',
  372. displayName: '不可调剂人数',
  373. values: mockGroups.map(groupId => ({
  374. groupId: groupId,
  375. value: Random.integer(120, 400),
  376. color: '',
  377. bold: false,
  378. star: false,
  379. queryCode: 'abc',
  380. disabled: false
  381. }))
  382. }
  383. ]
  384. },
  385. {
  386. generations: [6],
  387. factory: () => [
  388. {
  389. category: 'approvedCount',
  390. displayName: '补录录取',
  391. values: mockGroups.map(groupId => ({
  392. groupId: groupId,
  393. value: Random.integer(120, 400),
  394. color: '',
  395. bold: false,
  396. star: false,
  397. queryCode: 'abc',
  398. disabled: false
  399. }))
  400. },
  401. {
  402. category: 'forcedCount',
  403. displayName: '调剂录取',
  404. values: mockGroups.map(groupId => ({
  405. groupId: groupId,
  406. value: Random.integer(120, 400),
  407. color: '',
  408. bold: false,
  409. star: false,
  410. queryCode: 'abc',
  411. disabled: false
  412. }))
  413. }
  414. ]
  415. },
  416. {
  417. generations: [7],
  418. factory: () => [
  419. {
  420. category: 'forcedCount',
  421. displayName: '调剂录取',
  422. values: mockGroups.map(groupId => ({
  423. groupId: groupId,
  424. value: Random.integer(120, 400),
  425. color: '',
  426. bold: false,
  427. star: false,
  428. queryCode: 'abc',
  429. disabled: false
  430. }))
  431. }
  432. ]
  433. }
  434. ]
  435. const defines = commonDefines.find(d => d.generations.includes(generation))
  436. const inAccDef = accumulateDefine.generations.includes(generation)
  437. if (defines) {
  438. results.push({
  439. roundId: 1,
  440. generation: copyGeneration,
  441. categories: defines.factory(),
  442. accumulates: inAccDef ? accumulateDefine.factory() : undefined
  443. })
  444. }
  445. break
  446. }
  447. }
  448. return {
  449. code: 200,
  450. msg: 'success',
  451. data: results
  452. }
  453. }
  454. }
  455. ]