| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535 | const Mock = require('mockjs')const Random = Mock['Random']const mockGeneration = 7 // primaryconst mockGroups = [1, 2, 3, 4, 5, 6]const mockPreferenceCount = 3 // 1 or 3 // 1志愿/3志愿module.exports = [  {    url: '/mock/front/elective/generation/getElectiveStatus',    type: 'get',    response: config => {      return {        code: 200,        msg: 'success',        data: {          year: 2021,          roundId: 1,          roundName: '第X次选科',          groupIds: mockGroups.toString(),          roundGroups: mockGroups.map(groupId => ({            groupId: groupId,            classCount: Random.integer(2, 6),            personCount: function() {              return this.classCount * 50            },            limitPerson: false,            rankOut: false          })),          allEnrolled: true,          currentGeneration: mockGeneration,          // +          disenrollCount: 0, // 未录人数          enablePushNextDMGeneration: true,          allowDMAlgorithm: true,          doneDMAlgorithm: true,          allowForce: true,          enablePushForceAdjust: true        }      }    }  },  {    url: '/mock/front/elective/generation/getElectiveSummary',    type: 'get',    response: config => {      const results = []      for (let generation = 1; generation <= mockGeneration; generation++) {        const copyGeneration = generation        switch (generation) {          case 1:            // primary            const allPreferences = []            for (let pref = 0; pref < mockPreferenceCount; pref++) {              const preferences = []              const groupDefines = [                {                  category: 'actualCount',                  queryCode: Random.cname(),                  displayName: '已报名',                  detailName: '报名组合',                  values: mockGroups.map(groupId => ({                    groupId: groupId,                    value: Random.integer(120, 400),                    color: 'B',                    bold: false,                    star: false,                    disabled: false                  }))                }              ]              const nonGroupDefines = [                {                  category: 'unfinishedCount',                  queryCode: Random.cname(),                  displayName: '未报名',                  detailName: '',                  values: [{                    groupId: 0,                    value: Random.integer(0, 10),                    color: '',                    bold: false,                    star: false,                    disabled: false                  }]                }              ]              preferences.push(...groupDefines)              preferences.push(...nonGroupDefines)              allPreferences.push(preferences)            }            const primary = {              roundId: 1,              generation: copyGeneration,              categories: allPreferences            }            results.push(primary)            break          default:            const accumulateDefine = {              generations: [2, 4, 6, 7],              factory: () => [                {                  category: 'approvedCount',                  queryCode: Random.cname(),                  displayName: '正常录取',                  detailName: '录取组合',                  values: mockGroups.map(groupId => ({                    groupId: groupId,                    value: Random.integer(120, 300),                    color: '',                    bold: false,                    star: false,                    disabled: false                  }))                },                {                  category: 'forcedCount',                  queryCode: Random.cname(),                  displayName: '调剂录取',                  detailName: '调剂组合',                  values: mockGroups.map(groupId => ({                    groupId: groupId,                    value: Random.integer(0, 10),                    color: '',                    bold: false,                    star: false,                    disabled: false                  }))                }              ]            }            const commonDefines = [              {                generations: [2],                factory: () => [                  {                    category: 'indicateCount',                    displayName: '指标',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: true,                      queryCode: 'abc',                      disabled: false                    }))                  },                  {                    category: 'approvedCount',                    queryCode: Random.cname(),                    displayName: '录取人数',                    detailName: '录取组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'adjustCount',                    queryCode: Random.cname(),                    displayName: '调剂人数',                    detailName: '调剂组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'matchedCount',                    queryCode: Random.cname(),                    displayName: '专业符合',                    detailName: '推荐组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'nonmatchedCount',                    queryCode: Random.cname(),                    displayName: '专业不符',                    detailName: '推荐组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  }                ]              },              {                generations: [3, 5],                factory: () => [                  {                    category: 'matchedApproved',                    queryCode: Random.cname(),                    displayName: '专业符合同意',                    detailName: '报名组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'matchedNotOptional',                    queryCode: Random.cname(),                    displayName: '专业符合改选',                    detailName: '报名组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'matchedRejected',                    queryCode: Random.cname(),                    displayName: '专业符合拒绝',                    detailName: '拒绝组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'matchedNonaction',                    queryCode: Random.cname(),                    displayName: '专业符合未填',                    detailName: '推荐组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'matchedRankout',                    queryCode: Random.cname(),                    displayName: '专业符合被挤出',                    detailName: '报名组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'nonmatchedApproved',                    queryCode: Random.cname(),                    displayName: '专业符合已填',                    detailName: '报名组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'nonmatchedRejected',                    queryCode: Random.cname(),                    displayName: '不可调剂拒绝',                    detailName: '报名组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'nonmatchedNonaction',                    queryCode: Random.cname(),                    displayName: '不可调剂未填',                    detailName: '报名组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  }                ]              },              {                generations: [4],                factory: () => [                  {                    category: 'approvedCount',                    queryCode: Random.cname(),                    displayName: '补录录取',                    detailName: '录取组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'forcedCount',                    queryCode: Random.cname(),                    displayName: '调剂录取',                    detailName: '录取组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'matchedCount',                    queryCode: Random.cname(),                    displayName: '可调剂人数',                    detailName: '调剂组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'nonmatchedCount',                    queryCode: Random.cname(),                    displayName: '不可调剂人数',                    detailName: '报名组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  }                ]              },              {                generations: [6],                factory: () => [                  {                    category: 'approvedCount',                    queryCode: Random.cname(),                    displayName: '补录录取',                    detailName: '录取组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  },                  {                    category: 'forcedCount',                    queryCode: Random.cname(),                    displayName: '调剂录取',                    detailName: '录取组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  }                ]              },              {                generations: [7],                factory: () => [                  {                    category: 'forcedCount',                    queryCode: Random.cname(),                    displayName: '调剂录取',                    detailName: '录取组合',                    values: mockGroups.map(groupId => ({                      groupId: groupId,                      value: Random.integer(120, 400),                      color: '',                      bold: false,                      star: false,                      disabled: false                    }))                  }                ]              }            ]            const defines = commonDefines.find(d => d.generations.includes(generation))            const inAccDef = accumulateDefine.generations.includes(generation)            if (defines) {              results.push({                roundId: 1,                generation: copyGeneration,                categories: defines.factory(),                accumulates: inAccDef ? accumulateDefine.factory() : undefined              })            }            break        }      }      return {        code: 200,        msg: 'success',        data: results      }    }  },  {    url: '/mock/front/elective/generation/getElectiveGenerationDetails',    type: 'get',    response: config => {      return {        code: 200,        msg: 'success',        total: Random.integer(5, 200),        data: {          groupDescriptors: mockGroups.map(groupId => {            return {              groupId,              descriptors: [                { key: 'setting', value: Random.integer(100, 9999), description: '设置人数' },                { key: 'actual', value: Random.integer(0, 9999), description: '实报人数' }              ]            }          }),          'details|5-20': [            {              'id|+1': 1000,              'roundId': 1,              'studentId|+1': 100,              'studentName': Random.cname(),              'groupId': config.query.groupId,              'groupName': Random.cname(),              'classId|+1': 20,              'className': Random.cname(),              'datetime': Random.date(),              'histories|4-15': [                {                  'generation|1': [1, 2, 3, 4, 5, 6, 7],                  'groupId|1': mockGroups,                  'description': Random.cname(),                  'rankDescriptors|1-3': [                    { key: Random.cname(), value: Random.integer(1, 300), description: Random.cname() }                  ]                }              ]            }          ]        }      }    }  },  {    url: '/mock/front/elective/generation/getGenerationOptionalMajorsBatch',    type: 'get',    response: config => {      let studentIds = config.query.studentIds      if (typeof studentIds === 'string') studentIds = studentIds.split(',')      const majorsMap = {}      studentIds.forEach(id => {        majorsMap[id] = {          'bestMatchedGroupId|1': mockGroups,          'majors|0-6': [{            'collegeId|+1': 5000,            'collegeName': Random.cname(),            'majorCategoryCode': Random.cname(),            'majorCategoryName': Random.cname(),            'majors': {},            'limitationA': '', // 选科限制1            'limitationB': '', // 选科限制2            'matchedGroupIds|0-3': mockGroups // 匹配的组合          }]        }      })      return {        code: 200,        msg: 'success',        data: majorsMap      }    }  }]
 |