فهرست منبع

选科报名列行动态填充

shilipojs 3 سال پیش
والد
کامیت
d820619c83

+ 2 - 0
doc/Mind/PrimaryElective.cs

@@ -90,6 +90,7 @@ namespace mxdemo.Mind
 
         // 5.7 hht +字段,用来展示报告
         public int groupIndicator; // 组合指标 // primary时为设置人数,之后为决策完毕后剩余的设置数
+        public int nextGroupIndicator; // 下阶段组合指标
         public int rankInIndicator; // 组合指标排名
         public int rankInBest; // bestInIndicator中的排名
         public int rankInDisenroll; // 全组合指标排名,即所有未录取人员中的排名 // 可能没用
@@ -106,6 +107,7 @@ namespace mxdemo.Mind
         public bool selected;  // 已报名
         public int selectedRank; // 多志愿时的排序
 
+
         // 5.13 去除动态列,改为固定字段 +
         public int actualCount; // 阶段实际报名人数
         public bool approved; // 已被正常录取

+ 222 - 165
doc/Mind/analysis.json

@@ -1,165 +1,222 @@
-// Al分析
-[
-  {
-    // 组合成绩
-    name: '组合成绩',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '80',
-            description: '剩余计划'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 组合成绩最高人数
-    name: '组合成绩最高人数',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '80',
-            description: '剩余计划'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    name: '组合成绩最高人数排名',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '3',
-            description: '组合成绩最高人数排名'
-          },
-          {
-            key: '',
-            value: '50',
-            description: '组合成绩最高人数'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 初录结果时返回的字段
-    name: '补录剩余计划', // 动态字段名称
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '80',
-            description: '剩余计划'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    name: '补录人数排名,',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '3',
-            description: '补录人数排名'
-          },
-          {
-            key: '',
-            value: '50',
-            description: '补录人数'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 布录结果时 追加
-    name: '二次补录剩余计划', // 动态字段名称
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '80',
-            description: '剩余计划'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 布录结果时 追加
-    name: '二次补录人数排名,',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '3',
-            description: '二次补录人数排名'
-          },
-          {
-            key: '',
-            value: '50',
-            description: '二次补录人数'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 二次布录结果时 追加
-    name: '调剂补录剩余计划', // 动态字段名称
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '80',
-            description: '调剂补录剩余计划'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 二次补录结果时 追加
-    name: '调剂人数排名,',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '3',
-            description: '调剂补录人数排名'
-          },
-          {
-            key: '',
-            value: '50',
-            description: '调剂补录人数'
-          }
-        ]
-      }
-    ]
-  }
-]
+{
+  "models": [
+    {
+      "groupId": 1,
+      "groupName": "物化生",
+      "classCount": 5,
+      "personCount": 200,
+      "rankInGroup": 53,
+      "rankInGrade": 64,
+      "allowSelect": true,
+      "disabledReason": "不知道",
+      "selected": false,
+      "selectedRank": 1,
+      "scoreSumGroup": 514,
+      "groupIndicator": 30,
+      "bestInIndicator": 20,
+      "rankInBest": 16,
+      "rankInIndicator": "",
+      "rankInDisenroll": 14,
+      "isRecommend": true
+    },
+    {
+      "groupId": 2,
+      "groupName": "物化政",
+      "classCount": 4,
+      "personCount": 180,
+      "rankInGroup": 32,
+      "rankInGrade": 67,
+      "allowSelect": true,
+      "disabledReason": "不知道",
+      "selected": false,
+      "selectedRank": 2,
+      "scoreSumGroup": 578,
+      "groupIndicator": 30,
+      "bestInIndicator": 20,
+      "rankInBest": 10,
+      "rankInIndicator": "",
+      "rankInDisenroll": 14,
+      "isRecommend": false
+    },
+    {
+      "groupId": 3,
+      "groupName": "历化政",
+      "classCount": 3,
+      "personCount": 180,
+      "rankInGroup": 32,
+      "rankInGrade": 67,
+      "allowSelect": true,
+      "disabledReason": "不知道",
+      "selected": false,
+      "selectedRank": 2,
+      "scoreSumGroup": 549,
+      "groupIndicator": 30,
+      "bestInIndicator": 20,
+      "rankInBest": 4,
+      "rankInIndicator": "",
+      "rankInDisenroll": 14,
+      "isRecommend": false
+    },
+    {
+      "groupId": 4,
+      "groupName": "历化地",
+      "classCount": 4,
+      "personCount": 180,
+      "rankInGroup": 32,
+      "rankInGrade": 67,
+      "allowSelect": false,
+      "disabledReason": "不知道",
+      "selected": false,
+      "selectedRank": 2,
+      "scoreSumGroup": 478,
+      "groupIndicator": 0,
+      "bestInIndicator": 0,
+      "rankInBest": 0,
+      "rankInIndicator": "",
+      "rankInDisenroll": 0,
+      "isRecommend": false
+    }
+  ],
+  "statColumns": [
+    {
+      "name": "初录选科人数比",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": "80",
+              "description": "初录报名人数"
+            },
+            {
+              "key": "",
+              "value": "200",
+              "description": "组合设置人数"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "初录超/缺",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": "超61",
+              "description": ""
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "补录选科人数比",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": 10,
+              "description": "补录选科人数"
+            },
+            {
+              "key": "",
+              "value": 15,
+              "description": "需要补录人数"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "补录超/缺",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": "超61",
+              "description": ""
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "二次补录选科人数比",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": 10,
+              "description": "二次补录选科人数"
+            },
+            {
+              "key": "",
+              "value": 15,
+              "description": "需要二次补录人数"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "二次补录超/缺",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": "缺31",
+              "description": ""
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "调剂选科人数比",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": 10,
+              "description": "调剂选科人数"
+            },
+            {
+              "key": "",
+              "value": 15,
+              "description": "需要调剂人数"
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name": "调剂超/缺",
+      "groupDescriptors": [
+        {
+          "groupId": 1,
+          "descriptors": [
+            {
+              "key": "",
+              "value": "缺31",
+              "description": ""
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}

+ 204 - 0
doc/Mind/electiveModels.json

@@ -0,0 +1,204 @@
+[
+  {
+     models : [
+      {
+         groupIndicator: 20,
+         groupId : 1,
+         groupName : '物化生',
+         classCount : 6,
+         personCount : 300,
+         rankInGroup : 290,
+         rankInGrade : 357,
+         allowSelect : true,
+         disabledReason : '0',
+         selected : false,
+         selectedRank : 1,
+         actualCount : 320,
+         approved : false,
+         forceAdjusted : false,
+         groupApprovedCount :0,
+         groupForceAdjustedCount : 0
+      }
+    ],
+     generation : 1,
+     studentId : 1001
+  },
+  {
+     models : [
+      {
+         groupId : 1,
+         groupName : '物化生',
+         classCount : 6,
+         personCount : 300,
+         rankInGroup : 290,
+         rankInGrade : 357,
+         allowSelect : true,
+         disabledReason : '',
+         selected : false,
+         selectedRank : 1,
+         actualCount : 320,
+         approved : false,
+         forceAdjusted : false,
+         groupApprovedCount : 300,
+         groupForceAdjustedCount : 0
+      }
+    ],
+     generation : 2,
+     studentId : 1001
+  },
+  {
+     models : [
+      {
+         groupIndicator :30,
+         rankInIndicator : 14,
+         rankInBest : 16,
+         rankInDisenroll : 0,
+         bestInIndicator : 20,
+         scoreSumAll : 0,
+         scoreSumGroup : 514,
+         isRecommend : false,
+         groupId : 1,
+         groupName : '物化生',
+         classCount : 6,
+         personCount : 300,
+         rankInGroup : 10,
+         rankInGrade : 357,
+         allowSelect : true,
+         disabledReason : '',
+         selected : false,
+         selectedRank : 1,
+         actualCount : 320,
+         approved : false,
+         forceAdjusted : false,
+         groupApprovedCount : 300,
+         groupForceAdjustedCount : 0
+      }
+    ],
+     generation : 3,
+     studentId : 1001
+  },
+  {
+     models : [
+      {
+         groupIndicator :30,
+         rankInIndicator : 14,
+         rankInBest : 16,
+         rankInDisenroll : 0,
+         bestInIndicator : 20,
+         scoreSumAll : 0,
+         scoreSumGroup : 514,
+         isRecommend : false,
+         groupId : 1,
+         groupName : '物化生',
+         classCount : 6,
+         personCount : 300,
+         rankInGroup : 10,
+         rankInGrade : 357,
+         allowSelect : true,
+         disabledReason : '',
+         selected : false,
+         selectedRank : 1,
+         actualCount : 302,
+         approved : false,
+         forceAdjusted : false,
+         groupApprovedCount : 300,
+         groupForceAdjustedCount : 0
+      }
+    ],
+     generation : 4,
+     studentId : 1001
+  },
+  {
+     models : [
+      {
+         groupIndicator :30,
+         rankInIndicator : 14,
+         rankInBest : 16,
+         rankInDisenroll : 0,
+         bestInIndicator : 20,
+         scoreSumAll : 0,
+         scoreSumGroup : 514,
+         isRecommend : false,
+         groupId : 1,
+         groupName : '物化生',
+         classCount : 6,
+         personCount : 300,
+         rankInGroup : 10,
+         rankInGrade : 357,
+         allowSelect : true,
+         disabledReason : '',
+         selected : false,
+         selectedRank : 1,
+         actualCount : 302,
+         approved : false,
+         forceAdjusted : false,
+         groupApprovedCount : 300,
+         groupForceAdjustedCount : 0
+      }
+    ],
+     generation : 5,
+     studentId : 1001
+  },
+  {
+     models : [
+      {
+         groupIndicator : 30,
+         rankInIndicator : 14,
+         rankInBest : 16,
+         rankInDisenroll : 0,
+         bestInIndicator : 20,
+         scoreSumAll : 0,
+         scoreSumGroup : 514,
+         isRecommend : false,
+         groupId : 1,
+         groupName : '物化生',
+         classCount : 6,
+         personCount : 300,
+         rankInGroup : 10,
+         rankInGrade : 357,
+         allowSelect : true,
+         disabledReason : '',
+         selected : false,
+         selectedRank : 1,
+         actualCount : 300,
+         approved : false,
+         forceAdjusted : false,
+         groupApprovedCount : 300,
+         groupForceAdjustedCount : 0
+      }
+    ],
+     generation : 6,
+     studentId : 1001
+  },
+  {
+     models : [
+      {
+         groupIndicator :30,
+         rankInIndicator : 14,
+         rankInBest : 16,
+         rankInDisenroll : 0,
+         bestInIndicator : 20,
+         scoreSumAll : 0,
+         scoreSumGroup : 514,
+         isRecommend : false,
+         groupId : 1,
+         groupName : '物化生',
+         classCount : 6,
+         personCount : 300,
+         rankInGroup : 10,
+         rankInGrade : 357,
+         allowSelect : true,
+         disabledReason : '',
+         selected : false,
+         selectedRank : 1,
+         actualCount : 300,
+         approved : false,
+         forceAdjusted : false,
+         groupApprovedCount : 300,
+         groupForceAdjustedCount : 0
+      }
+    ],
+     generation : 7,
+     studentId : 1001
+  }
+]

+ 0 - 151
doc/Mind/statColum.json

@@ -1,151 +0,0 @@
-// 初录报名 需要动态返回的字段
-[
-  {
-    // 初录报名时动态追加此字段
-    name: '初录选科人数比', // 动态字段名称
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '80',
-            description: '初录报名人数'
-          },
-          {
-            key: '',
-            value: '200',
-            description: '组合设置人数'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 初录结果追加
-    name: '初录超/缺',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '超61',
-            description: ''
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 补录结果追加
-    name: '补录选科人数比',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: 10,
-            description: '补录选科人数'
-          },
-          {
-            key: '',
-            value: 15,
-            description: '需要补录人数'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 补录结果追加
-    name: '补录超/缺',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '超61',
-            description: ''
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 二次补录结果追加
-    name: '二次补录选科人数比',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: 10,
-            description: '二次补录选科人数'
-          },
-          {
-            key: '',
-            value: 15,
-            description: '需要二次补录人数'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 二次补录结果追加
-    name: '二次补录超/缺',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '缺31',
-            description: ''
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 调剂结果追加
-    name: '调剂选科人数比',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: 10,
-            description: '调剂选科人数'
-          },
-          {
-            key: '',
-            value: 15,
-            description: '需要调剂人数'
-          }
-        ]
-      }
-    ]
-  },
-  {
-    // 调剂结果追加
-    name: '调剂超/缺',
-    groupDescriptors: [
-      {
-        groupId: 1,
-        descriptors: [
-          {
-            key: '',
-            value: '缺31',
-            description: ''
-          }
-        ]
-      }
-    ]
-  }
-]

+ 395 - 248
mock/modules/elective-subject.js

@@ -1,4 +1,4 @@
-
+// import electiveModels from '/doc/Mind/electiveModels.json'
 const Mock = require('mockjs')
 
 module.exports = [
@@ -55,9 +55,9 @@ module.exports = [
       }
     }
   },
-  // 评测推荐专业
+  // 选科报名models
   {
-    url: '/mock/front/elective/evaluationMajors',
+    url: '/mock/front/elective/studentElectiveModels',
     type:'get',
     response: config => {
       return {
@@ -65,276 +65,423 @@ module.exports = [
         msg: 'success',
         data:[
           {
-            majorCategoryName: '法学',  // 专业类别
-            majorCategoryCode: '1',  // 专业编码
-            limitationA: '',
-            limitationB: '',
-            matchedGroupIds: [3,2], // 匹配哪几个组合?
+            models: [
+              {
+                groupId: 1,
+                groupName: '物化生',
+                classCount: 6,
+                personCount: 300,
+                rankInGroup: 290,
+                rankInGrade: 357,
+                allowSelect: true,
+                disabledReason: '0',
+                selected: false,
+                selectedRank: 1,
+                actualCount: 320,
+                approved: false,
+                forceAdjusted: false,
+                groupApprovedCount: 0,
+                groupForceAdjustedCount: 0
+              }
+            ],
+            generation: 1,
+            studentId: 1001
           },
           {
-            majorCategoryName: '心理学',  // 专业类别
-            majorCategoryCode: '2',  // 专业编码
-            limitationA: '',
-            limitationB: '',
-            matchedGroupIds: [2], // 匹配哪几个组合?
+            models: [
+              {
+                groupId: 1,
+                groupName: '物化生',
+                classCount: 6,
+                personCount: 300,
+                rankInGroup: 290,
+                rankInGrade: 357,
+                allowSelect: true,
+                disabledReason: '',
+                selected: false,
+                selectedRank: 1,
+                actualCount: 320,
+                approved: false,
+                forceAdjusted: false,
+                groupApprovedCount: 300,
+                groupForceAdjustedCount: 0
+              }
+            ],
+            generation: 2,
+            studentId: 1001
           },
           {
-            majorCategoryName: '管理学',  // 专业类别
-            majorCategoryCode: '3',  // 专业编码
-            limitationA: '',
-            limitationB: '',
-            matchedGroupIds: [1,2], // 匹配哪几个组合?
+            models: [
+              {
+                groupIndicator: 30,
+                rankInIndicator: 14,
+                rankInBest: 16,
+                rankInDisenroll: 0,
+                bestInIndicator: 20,
+                scoreSumAll: 0,
+                scoreSumGroup: 514,
+                isRecommend: false,
+                groupId: 1,
+                groupName: '物化生',
+                classCount: 6,
+                personCount: 300,
+                rankInGroup: 10,
+                rankInGrade: 357,
+                allowSelect: true,
+                disabledReason: '',
+                selected: false,
+                selectedRank: 1,
+                actualCount: 320,
+                approved: false,
+                forceAdjusted: false,
+                groupApprovedCount: 300,
+                groupForceAdjustedCount: 0
+              }
+            ],
+            generation: 3,
+            studentId: 1001
           },
           {
-            majorCategoryName: '土木工程',  // 专业类别
-            majorCategoryCode: 'a',  // 专业编码
-            limitationA: '',
-            limitationB: '',
-            matchedGroupIds: [1,3], // 匹配哪几个组合?
+            models: [
+              {
+                groupIndicator: 30,
+                rankInIndicator: 14,
+                rankInBest: 16,
+                rankInDisenroll: 0,
+                bestInIndicator: 20,
+                scoreSumAll: 0,
+                scoreSumGroup: 514,
+                isRecommend: false,
+                groupId: 1,
+                groupName: '物化生',
+                classCount: 6,
+                personCount: 300,
+                rankInGroup: 10,
+                rankInGrade: 357,
+                allowSelect: true,
+                disabledReason: '',
+                selected: false,
+                selectedRank: 1,
+                actualCount: 302,
+                approved: false,
+                forceAdjusted: false,
+                groupApprovedCount: 300,
+                groupForceAdjustedCount: 0
+              }
+            ],
+            generation: 4,
+            studentId: 1001
+          },
+          {
+            models: [
+              {
+                groupIndicator: 30,
+                rankInIndicator: 14,
+                rankInBest: 16,
+                rankInDisenroll: 0,
+                bestInIndicator: 20,
+                scoreSumAll: 0,
+                scoreSumGroup: 514,
+                isRecommend: false,
+                groupId: 1,
+                groupName: '物化生',
+                classCount: 6,
+                personCount: 300,
+                rankInGroup: 10,
+                rankInGrade: 357,
+                allowSelect: true,
+                disabledReason: '',
+                selected: false,
+                selectedRank: 1,
+                actualCount: 302,
+                approved: false,
+                forceAdjusted: false,
+                groupApprovedCount: 300,
+                groupForceAdjustedCount: 0
+              }
+            ],
+            generation: 5,
+            studentId: 1001
+          },
+          {
+            models: [
+              {
+                groupIndicator: 30,
+                rankInIndicator: 14,
+                rankInBest: 16,
+                rankInDisenroll: 0,
+                bestInIndicator: 20,
+                scoreSumAll: 0,
+                scoreSumGroup: 514,
+                isRecommend: false,
+                groupId: 1,
+                groupName: '物化生',
+                classCount: 6,
+                personCount: 300,
+                rankInGroup: 10,
+                rankInGrade: 357,
+                allowSelect: true,
+                disabledReason: '',
+                selected: false,
+                selectedRank: 1,
+                actualCount: 300,
+                approved: false,
+                forceAdjusted: false,
+                groupApprovedCount: 300,
+                groupForceAdjustedCount: 0
+              }
+            ],
+            generation: 6,
+            studentId: 1001
+          },
+          {
+            models: [
+              {
+                groupIndicator: 30,
+                rankInIndicator: 14,
+                rankInBest: 16,
+                rankInDisenroll: 0,
+                bestInIndicator: 20,
+                scoreSumAll: 0,
+                scoreSumGroup: 514,
+                isRecommend: false,
+                groupId: 1,
+                groupName: '物化生',
+                classCount: 6,
+                personCount: 300,
+                rankInGroup: 10,
+                rankInGrade: 357,
+                allowSelect: true,
+                disabledReason: '',
+                selected: false,
+                selectedRank: 1,
+                actualCount: 300,
+                approved: false,
+                forceAdjusted: false,
+                groupApprovedCount: 300,
+                groupForceAdjustedCount: 0
+              }
+            ],
+            generation: 7,
+            studentId: 1001
           }
         ]
+
       }
     }
   },
-  // 选科报名表状态数据
+  // 选科报名models
   {
     url: '/mock/front/elective/studentElectiveModels',
     type:'get',
     response: config => {
       return {
-        code: 200,
+        code: '200',
         msg: 'success',
-        data:{
-          models: [
-            {
-              groupId: 1, // 组合
-              groupName: '物化生', // 名称
-              classCount: 5,  // 班级数
-              personCount: 200,  // 限制人数
-              rankInGroup: 53, // 选科实时排名
-              rankInGrade: 64, // 选科全校排名
-              allowSelect: true, // 是否可以报名
-              disabledReason: '不知道', // 不可报名时的原因
-              selected:  false, // 报名状态
-              selectedRank:  1, // 多志愿时的排序
-              scoreSumGroup: 514, // 6门成绩
-              groupIndicator: 30, // 组合剩余指标
-              bestInIndicator: 20, // 该组合成绩为学生最高成绩的学生人数
-              rankInBest: 16, // 该组合成绩为学生最高成绩的学生人数的排名
-              rankInIndicator: '', // 组合指标排名
-              rankInDisenroll: 14,// 全组合指标排名 如 补录人数排名
-              isRecommend: true , // 推荐专业
-            },
-            {
-              groupId: 2, // 组合
-              groupName: '物化政', // 名称
-              classCount: 4,  // 班级数
-              personCount: 180,  // 限制人数
-              rankInGroup: 32, // 选科实时排名
-              rankInGrade: 67, // 选科全校排名
-              allowSelect: true, // 是否可以报名
-              disabledReason: '不知道', // 不可报名时的原因
-              selected:  false, // 报名状态
-              selectedRank:  2, // 多志愿时的排序
-              scoreSumGroup: 578, // 6门成绩
-              groupIndicator: 30, // 组合剩余指标
-              bestInIndicator: 20, // 该组合成绩为学生最高成绩的学生人数
-              rankInBest: 10, // 该组合成绩为学生最高成绩的学生人数的排名
-              rankInIndicator: '', // 组合指标排名
-              rankInDisenroll: 14,// 全组合指标排名 如 补录人数排名
-              isRecommend: false , // 推荐专业
-            },
-            {
-              groupId: 3, // 组合
-              groupName: '历化政', // 名称
-              classCount: 3,  // 班级数
-              personCount: 180,  // 限制人数
-              rankInGroup: 32, // 选科实时排名
-              rankInGrade: 67, // 选科全校排名
-              allowSelect: true, // 是否可以报名
-              disabledReason: '不知道', // 不可报名时的原因
-              selected:  false, // 报名状态
-              selectedRank:  2, // 多志愿时的排序
-              scoreSumGroup: 549, // 6门成绩
-              groupIndicator: 30, // 组合剩余指标
-              bestInIndicator: 20, // 该组合成绩为学生最高成绩的学生人数
-              rankInBest: 4, // 该组合成绩为学生最高成绩的学生人数的排名
-              rankInIndicator: '', // 组合指标排名
-              rankInDisenroll: 14,// 全组合指标排名 如 补录人数排名
-              isRecommend: false , // 推荐专业
-            },
-            {
-              groupId: 4, // 组合
-              groupName: '历化地', // 名称
-              classCount: 4,  // 班级数
-              personCount: 180,  // 限制人数
-              rankInGroup: 32, // 选科实时排名
-              rankInGrade: 67, // 选科全校排名
-              allowSelect: false, // 是否可以报名
-              disabledReason: '不知道', // 不可报名时的原因
-              selected:  false, // 报名状态
-              selectedRank:  2, // 多志愿时的排序
-              scoreSumGroup: 478, // 6门成绩
-              groupIndicator: 0, // 组合剩余指标
-              bestInIndicator: 0, // 该组合成绩为学生最高成绩的学生人数
-              rankInBest: 0, // 该组合成绩为学生最高成绩的学生人数的排名
-              rankInIndicator: '', // 组合指标排名
-              rankInDisenroll: 0,// 全组合指标排名 如 补录人数排名
-              isRecommend: false , // 推荐专业
-            },
-          ],
-          statColumns: [
-              {
-                // 初录报名时动态追加此字段
-                name: '初录选科人数比', // 动态字段名称
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: '80',
-                        description: '初录报名人数'
-                      },
-                      {
-                        key: '',
-                        value: '200',
-                        description: '组合设置人数'
-                      }
-                    ]
-                  }
-                ]
-              },
+        data: [
+          {
+            "models": [
               {
-                // 初录结果追加
-                name: '初录超/缺',
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: '超61',
-                        description: ''
-                      }
-                    ]
-                  }
-                ]
-              },
+                "groupId": 1,
+                "groupName": '物化生',
+                "classCount": 6,
+                "personCount": 300,
+                "rankInGroup": 290,
+                "rankInGrade": 357,
+                "allowSelect": true,
+                "disabledReason": '0',
+                "selected": false,
+                "selectedRank": 1,
+                "actualCount": 320,
+                "approved": false,
+                "forceAdjusted": false,
+                "groupApprovedCount":0,
+                "groupForceAdjustedCount": 0
+              }
+            ],
+            "generation": 1,
+            "studentId": 1001
+          },
+          {
+            "models": [
               {
-                // 补录结果追加
-                name: '补录选科人数比',
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: 10,
-                        description: '补录选科人数'
-                      },
-                      {
-                        key: '',
-                        value: 15,
-                        description: '需要补录人数'
-                      }
-                    ]
-                  }
-                ]
-              },
+                "groupId": 1,
+                "groupName": '物化生',
+                "classCount": 6,
+                "personCount": 300,
+                "rankInGroup": 290,
+                "rankInGrade": 357,
+                "allowSelect": true,
+                "disabledReason": '',
+                "selected": false,
+                "selectedRank": 1,
+                "actualCount": 320,
+                "approved": false,
+                "forceAdjusted": false,
+                "groupApprovedCount": 300,
+                "groupForceAdjustedCount": 0
+              }
+            ],
+            "generation": 2,
+            "studentId": 1001
+          },
+          {
+            "models": [
               {
-                // 补录结果追加
-                name: '补录超/缺',
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: '超61',
-                        description: ''
-                      }
-                    ]
-                  }
-                ]
-              },
+                "groupIndicator":30,
+                "rankInIndicator": 14,
+                "rankInBest": 16,
+                "rankInDisenroll": 0,
+                "bestInIndicator": 20,
+                "scoreSumAll": 0,
+                "scoreSumGroup": 514,
+                "isRecommend": false,
+                "groupId": 1,
+                "groupName": '物化生',
+                "classCount": 6,
+                "personCount": 300,
+                "rankInGroup": 10,
+                "rankInGrade": 357,
+                "allowSelect": true,
+                "disabledReason": '',
+                "selected": false,
+                "selectedRank": 1,
+                "actualCount": 320,
+                "approved": false,
+                "forceAdjusted": false,
+                "groupApprovedCount": 300,
+                "groupForceAdjustedCount": 0
+              }
+            ],
+            "generation": 3,
+            "studentId": 1001
+          },
+          {
+            "models": [
               {
-                // 二次补录结果追加
-                name: '二次补录选科人数比',
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: 10,
-                        description: '二次补录选科人数'
-                      },
-                      {
-                        key: '',
-                        value: 15,
-                        description: '需要二次补录人数'
-                      }
-                    ]
-                  }
-                ]
-              },
+                "groupIndicator":30,
+                "rankInIndicator": 14,
+                "rankInBest": 16,
+                "rankInDisenroll": 0,
+                "bestInIndicator": 20,
+                "scoreSumAll": 0,
+                "scoreSumGroup": 514,
+                "isRecommend": false,
+                "groupId": 1,
+                "groupName": '物化生',
+                "classCount": 6,
+                "personCount": 300,
+                "rankInGroup": 10,
+                "rankInGrade": 357,
+                "allowSelect": true,
+                "disabledReason": '',
+                "selected": false,
+                "selectedRank": 1,
+                "actualCount": 302,
+                "approved": false,
+                "forceAdjusted": false,
+                "groupApprovedCount": 300,
+                "groupForceAdjustedCount": 0
+              }
+            ],
+            "generation": 4,
+            "studentId": 1001
+          },
+          {
+            "models": [
               {
-                // 二次补录结果追加
-                name: '二次补录超/缺',
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: '缺31',
-                        description: ''
-                      }
-                    ]
-                  }
-                ]
-              },
+                "groupIndicator":30,
+                "rankInIndicator": 14,
+                "rankInBest": 16,
+                "rankInDisenroll": 0,
+                "bestInIndicator": 20,
+                "scoreSumAll": 0,
+                "scoreSumGroup": 514,
+                "isRecommend": false,
+                "groupId": 1,
+                "groupName": '物化生',
+                "classCount": 6,
+                "personCount": 300,
+                "rankInGroup": 10,
+                "rankInGrade": 357,
+                "allowSelect": true,
+                "disabledReason": '',
+                "selected": false,
+                "selectedRank": 1,
+                "actualCount": 302,
+                "approved": false,
+                "forceAdjusted": false,
+                "groupApprovedCount": 300,
+                "groupForceAdjustedCount": 0
+              }
+            ],
+            "generation": 5,
+            "studentId": 1001
+          },
+          {
+            "models": [
               {
-                // 调剂结果追加
-                name: '调剂选科人数比',
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: 10,
-                        description: '调剂选科人数'
-                      },
-                      {
-                        key: '',
-                        value: 15,
-                        description: '需要调剂人数'
-                      }
-                    ]
-                  }
-                ]
-              },
+                "groupIndicator": 30,
+                "rankInIndicator": 14,
+                "rankInBest": 16,
+                "rankInDisenroll": 0,
+                "bestInIndicator": 20,
+                "scoreSumAll": 0,
+                "scoreSumGroup": 514,
+                "isRecommend": false,
+                "groupId": 1,
+                "groupName": '物化生',
+                "classCount": 6,
+                "personCount": 300,
+                "rankInGroup": 10,
+                "rankInGrade": 357,
+                "allowSelect": true,
+                "disabledReason": '',
+                "selected": false,
+                "selectedRank": 1,
+                "actualCount": 300,
+                "approved": false,
+                "forceAdjusted": false,
+                "groupApprovedCount": 300,
+                "groupForceAdjustedCount": 0
+              }
+            ],
+            "generation": 6,
+            "studentId": 1001
+          },
+          {
+            "models": [
               {
-                // 调剂结果追加
-                name: '调剂超/缺',
-                groupDescriptors: [
-                  {
-                    groupId: 1,
-                    descriptors: [
-                      {
-                        key: '',
-                        value: '缺31',
-                        description: ''
-                      }
-                    ]
-                  }
-                ]
+                "groupIndicator":30,
+                "rankInIndicator": 14,
+                "rankInBest": 16,
+                "rankInDisenroll": 0,
+                "bestInIndicator": 20,
+                "scoreSumAll": 0,
+                "scoreSumGroup": 514,
+                "isRecommend": false,
+                "groupId": 1,
+                "groupName": '物化生',
+                "classCount": 6,
+                "personCount": 300,
+                "rankInGroup": 10,
+                "rankInGrade": 357,
+                "allowSelect": true,
+                "disabledReason": '',
+                "selected": false,
+                "selectedRank": 1,
+                "actualCount": 300,
+                "approved": false,
+                "forceAdjusted": false,
+                "groupApprovedCount": 300,
+                "groupForceAdjustedCount": 0
               }
-            ]
-        }
+            ],
+            "generation": 7,
+            "studentId": 1001
+          }
+        ]
       }
     }
-  },
+  }
 ]

+ 11 - 9
src/api/webApi/elective/ selected-subject.js

@@ -9,6 +9,14 @@ export function getOptionalMajors(params) {
     params
   })
 }
+// 学生获取评测推荐专业
+export function getRecommendMajor(params) {
+  return request({
+    url: '/front/elective/enroll/getTestMajors',
+    method: 'get',
+    params
+  })
+}
 
 // 学生获取选科状态数据,得到是每个组合最终状态和结果
 export function getPrimaryElectivesModels(params) {
@@ -20,8 +28,9 @@ export function getPrimaryElectivesModels(params) {
 }
 
 
+
 // 学生获取选科状态数据,得到是每个组合最终状态和结果
-export function getData(params) {
+export function getModels(params) {
   return request({
     url: '/mock/front/elective/studentElectiveModels',
     method: 'get',
@@ -29,14 +38,7 @@ export function getData(params) {
   })
 }
 
-// 学生获取评测推荐专业
-export function getRecommendMajor(params) {
-  return request({
-    url: '/front/elective/enroll/getTestMajors',
-    method: 'get',
-    params
-  })
-}
+
 
 
 

+ 134 - 94
src/views/system/user/profile/components/report-table.vue

@@ -7,31 +7,7 @@
       </div>
     </div>
 
-    <mx-table :propDefines="formatTable.cols" :rows="formatTable.rows">
-      <template #rankInGroup="{label, key}">
-        <div class="fx-column">
-          <span>{{ label }}</span>
-          <el-popover
-            placement="bottom"
-            trigger="click"
-          >
-            <span>组合成绩在填报组合的排名</span>
-            <i slot="reference" class="pointer el-icon-question el-icon"></i>
-          </el-popover>
-        </div>
-      </template>
-      <template #rankInGrade="{label, key}">
-        <div class="fx-column">
-          <span>{{ label }}</span>
-          <el-popover
-            placement="bottom"
-            trigger="click"
-          >
-            <span>组合成绩在全校的排名</span>
-            <i slot="reference" class="pointer el-icon-question el-icon"></i>
-          </el-popover>
-        </div>
-      </template>
+    <mx-table :propDefines="formatCols" :rows="formatRows">
       <template #temp="{row}">
         <span class="btn-blue mr5" @click="toSelectSub(row)">选择</span>
         <span class="btn-green" @click="toReport">查看记录</span>
@@ -111,11 +87,12 @@
           <el-button slot="reference" type="danger">不同意</el-button>
         </el-popover>
       </div>
+      {{ resolveDynamicTable }}
     </div>
     <esign-dialog ref="esignDialog"></esign-dialog>
     <choose-subject-dialog ref="chooseDialog"></choose-subject-dialog>
     <select-subject-report-dialog ref="reportDialog"></select-subject-report-dialog>
-    <Ai-dialog ref="aiDialog" :prevPreferences="prevPreferences"></Ai-dialog>
+    <!--    <Ai-dialog ref="aiDialog" :prevPreferences="prevPreferences"></Ai-dialog>-->
   </div>
 </template>
 <script>
@@ -126,17 +103,26 @@ import ChooseSubjectDialog from './choose-subject-dialog'
 import SelectSubjectReportDialog from '@/views/system/user/profile/components/select-subject-report-dialog'
 import EsignDialog from '@/views/system/user/profile/components/esign-dialog'
 import ReportStep from './report-step'
+import PrimaryResolverMixins
+  from '@/views/system/user/profile/components/round-select-resolvers/primary-resolver-mixins'
+import PrimaryDMResolverMixins
+  from '@/views/system/user/profile/components/round-select-resolvers/primaryDM-resolver-mixins'
+import BackTrackingResolverMixins
+  from '@/views/system/user/profile/components/round-select-resolvers/backTracking-resolver-mixins'
+import BackTrackingDMResolverMixins
+  from '@/views/system/user/profile/components/round-select-resolvers/backTrackingDM-resolver-mixins'
+
+import FinalAdjustResolverMixins
+  from '@/views/system/user/profile/components/round-select-resolvers/finalAdjust-resolver-mixins'
+import FinalAdjustDMResolverMixins
+  from '@/views/system/user/profile/components/round-select-resolvers/finalAdjustDM-resolver-mixins'
+import RankBalanceResolverMixins
+  from '@/views/system/user/profile/components/round-select-resolvers/rankBalance-resolver-mixins'
 
 export default {
+
   props: {
-    generation: {
-      type: Number,
-      default: 1 // 模拟报名所处状态, 0为初录
-    },
-    preferenceCount: {
-      type: Number,
-      default: 3 // 多志愿个数
-    }
+    generation: Object
   },
   components: {
     SelectSubjectReportDialog,
@@ -146,7 +132,16 @@ export default {
     ChooseSubjectDialog,
     AiDialog
   },
-  mixins: [MxSelectTranslate],
+  mixins: [
+    MxSelectTranslate,
+    PrimaryResolverMixins,
+    PrimaryDMResolverMixins,
+    BackTrackingResolverMixins,
+    BackTrackingDMResolverMixins,
+    FinalAdjustDMResolverMixins,
+    FinalAdjustResolverMixins,
+    RankBalanceResolverMixins
+  ],
   data() {
     return {
       popoShow: false,
@@ -157,46 +152,16 @@ export default {
       dialogVisible: false,
       modelsWrapper: {},
       selectedList: [],
-      singleList: [] // 单志愿列表
+      singleList: [], // 单志愿列表
+      formatRows: []
     }
   },
   mounted() {
     // this.$refs.drage.init(this.selectedList)
   },
   computed: {
-    formatTable() {
-      if (!this.modelsWrapper.models) return {}
-      if (!this.optionalMajors) return {}
-
-      // 行
-      const rows = this.modelsWrapper.models.map(item => {
-        item.allowSelectTips = item.allowSelect ? '报名中' : '无法报名'
-        item.subjects = this.optionalMajors.filter(college => {
-          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
-        }).map(item => item.majorCategoryName)
-        item.colleges = this.optionalMajors.filter(college => {
-          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
-        }).map(item => {
-          return {
-            college: item.collegeName,
-            major: item.majorCategoryName
-          }
-        })
-        return item
-      })
-
-      // 列
-      const statCols = {}
-      this.modelsWrapper.statColumns.map((column, index) => {
-        const prop = 'statistic_' + index
-        statCols[prop] = { label: column.name }
-        rows.forEach((row) => {
-          const descriptors = column.groupDescriptors.find(desc => desc.groupId == row.groupId) ?
-            column.groupDescriptors.find(desc => desc.groupId == row.groupId).descriptors : []
-          row[prop] = descriptors.length > 0 ? descriptors.length > 1 ? `${descriptors[0].value}/${descriptors[1].value}` : `${descriptors[0].value}` : ''
-        })
-      })
-      const cols = {
+    resolveTablePrefix() {
+      return {
         index: {
           type: 'index',
           label: '编号'
@@ -209,16 +174,11 @@ export default {
         },
         personCount: {
           label: '人数设置'
-        },
-        ...statCols,
-        rankInGroup: {
-          label: '当前组合实时排名',
-          slotHeader: 'rankInGroup'
-        },
-        rankInGrade: {
-          label: '选科全校排名',
-          slotHeader: 'rankInGrade'
-        },
+        }
+      }
+    },
+    resolveTableSuffix() {
+      return {
         allowSelectTips: {
           label: '报名状态'
         },
@@ -244,14 +204,106 @@ export default {
           fixed: 'right'
         }
       }
+    },
+    resolveDynamicTable() {
+      const resolverKey = this.generation.activeOpt.key + 'Resolver'
+      const resolver = this[resolverKey]
+      if (typeof resolver === 'function') {
+        return resolver()
+      }
+      return {}
+    },
+    formatCols() {
       return {
-        rows,
-        cols
+        ...this.resolveTablePrefix,
+        ...this.resolveDynamicTable,
+        ...this.resolveTableSuffix
       }
     }
-
+    // formatTable() {
+    //   // if (!this.models.length) return {}
+    //   // if (!this.optionalMajors) return {}
+    //   return {}
+    //   // 初始化 rows cols
+    //   // let rows = this.models[0].models.map(item => {
+    //   //   item.allowSelectTips = item.allowSelect ? '报名中' : '无法报名'
+    //   //   item.subjects = this.optionalMajors.filter(college => {
+    //   //     if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+    //   //   }).map(item => item.majorCategoryName)
+    //   //   item.colleges = this.optionalMajors.filter(college => {
+    //   //     if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+    //   //   }).map(item => {
+    //   //     return {
+    //   //       college: item.collegeName,
+    //   //       major: item.majorCategoryName
+    //   //     }
+    //   //   })
+    //   //   return item
+    //   // })
+    //   // let formatCols  = this.formatCols({})
+    //   // let stateCol = {}
+    //   // // 判断当前步骤
+    //   // const step = this.models.length
+    //   // // step = 1  reutrn cols 选科人数比 组合实时排名 学校实时排名
+    //   // console.log(this.activeOpt)
+    //   // switch (this.activeOpt) {
+    //   //   // 初录报名
+    //   //   case config.electiveGenerationOptions.primary:
+    //   //     console.log(2222222222222)
+    //   //     // cols
+    //   //     stateCol = {
+    //   //       applyCount: {
+    //   //         label: '选科人数比'
+    //   //       },
+    //   //       rankInGroup: {
+    //   //         label: '当前组合实时排名',
+    //   //       },
+    //   //       rankInGrade: {
+    //   //         label: '选科全校排名',
+    //   //       }
+    //   //     }
+    //   //     formatCols = this.formatCols(stateCol)
+    //   //     // rows
+    //   //     console.log(rows)
+    //   //     rows  = rows.map(item => {
+    //   //       item.applyCount = `${item.actualCount}/${item.personCount}`
+    //   //       return item
+    //   //     })
+    //   //     break
+    //   //   // 初录结果
+    //   //   case config.electiveGenerationOptions.primaryDM:
+    //   //     stateCol = {
+    //   //       applyCount: {
+    //   //         label: '选科人数比'
+    //   //       },
+    //   //       groupIndicator: {
+    //   //         label: '超/缺'
+    //   //       },
+    //   //       rankInGroup: {
+    //   //         label: '当前组合实时排名',
+    //   //       },
+    //   //       rankInGrade: {
+    //   //         label: '选科全校排名',
+    //   //       }
+    //   //     }
+    //   //     rows  = rows.map(item => {
+    //   //       item.applyCount = `${item.actualCount}/${item.personCount}`
+    //   //       item.groupIndicator = item.groupIndicator
+    //   //       return item
+    //   //     })
+    //   //     formatCols = this.formatCols(stateCol)
+    //   // }
+    //   //
+    //   // return {
+    //   //   rows,
+    //   //   formatCols
+    //   // }
+    // }
   },
   methods: {
+    getModelsByStep() {
+      return this.models.findIndex()
+    },
     toReport() {
       this.$refs.reportDialog.open()
     },
@@ -312,18 +364,6 @@ export default {
       const course1 = this.translateCourse1(row.groupId)
       this.$refs.chooseDialog.open(course0, course1)
     },
-    init(list) {
-      console.log(list)
-      this.modelsWrapper = list
-      this.selectedList = this.modelsWrapper.models.filter(item => {
-        return item.selected
-      })
-      // generation > 0 时 是单志愿报名
-      this.singleList = this.modelsWrapper.models.filter(item => {
-        return item.allowSelect
-      })
-      this.$nextTick(() => this.$refs.drage.init(this.selectedList))
-    },
     initOption(optionalMajors) {
       console.log(optionalMajors)
       this.optionalMajors = optionalMajors

+ 38 - 0
src/views/system/user/profile/components/round-select-resolvers/backTracking-resolver-mixins.js

@@ -0,0 +1,38 @@
+export default {
+  methods: {
+    backTrackingResolver() {
+      const activeIndex = this.generation.activeModels.findIndex(item => item.generation == 1)
+      // 激活状态的row初始化
+      this.formatRows = this.generation.activeModels[activeIndex].models.map(item => {
+        item.allowSelectTips = item.allowSelect ? '报名中' : '无法报名'
+        item.subjects = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => item.majorCategoryName)
+        item.colleges = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => {
+          return {
+            college: item.collegeName,
+            major: item.majorCategoryName
+          }
+        })
+        return item
+      })
+
+      return {
+        applyCount:{
+          label:'选科人数比'  // 初录结束的人数比
+        },
+        groupIndicator:{
+          label:'超/缺'  // 初录的超缺
+        },
+        rankInIndicator:{
+          label:'当前组合实时排名' // 在指标内的排名
+        },
+        rankInDisenroll:{
+          label:'选科全校排名'
+        }
+      }
+    }
+  }
+}

+ 36 - 0
src/views/system/user/profile/components/round-select-resolvers/backTrackingDM-resolver-mixins.js

@@ -0,0 +1,36 @@
+export default {
+  methods: {
+    backTrackingDMResolver() {
+      this.formatRows = this.generation.activeModels[3].models.map(item => {
+        item.allowSelectTips = item.allowSelect ? '报名中' : '无法报名'
+        item.subjects = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => item.majorCategoryName)
+        item.colleges = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => {
+          return {
+            college: item.collegeName,
+            major: item.majorCategoryName
+          }
+        })
+        return item
+      })
+      return {
+        applyCount:{
+          label:'初录情况'
+        },
+        groupIndicator:{
+          label:'初录超/缺'
+        },
+        supplyRecord:{
+          label:'补录情况' // 补录情况 =
+          // groupApprovedCount(补录阶段实际报名人数) + actualCount(补录本组合已被录取人数) / personCount(设置的人数)
+        },
+        supplyIndicator:{
+          label:'补录结果' // 补录的超缺
+        }
+      }
+    }
+  }
+}

+ 21 - 0
src/views/system/user/profile/components/round-select-resolvers/finalAdjust-resolver-mixins.js

@@ -0,0 +1,21 @@
+export default {
+  methods: {
+    finalAdjustResolver() {
+      return {
+        applyCount:{
+          label:'初录情况'
+        },
+        groupIndicator:{
+          label:'初录超/缺'
+        },
+        supplyRecord:{
+          label:'补录情况' // 补录情况 =
+          // groupApprovedCount(补录阶段实际报名人数) + actualCount(补录本组合已被录取人数) / personCount(设置的人数)
+        },
+        supplyIndicator:{
+          label:'补录结果' // 补录的超缺
+        }
+      }
+    }
+  }
+}

+ 27 - 0
src/views/system/user/profile/components/round-select-resolvers/finalAdjustDM-resolver-mixins.js

@@ -0,0 +1,27 @@
+export default {
+  methods: {
+    finalAdjustDMResolver() {
+      return {
+        applyCount:{
+          label:'初录情况'
+        },
+        groupIndicator:{
+          label:'初录超/缺'
+        },
+        supplyRecord:{
+          label:'补录情况' // 补录情况 =
+          // groupApprovedCount(补录阶段实际报名人数) + actualCount(补录本组合已被录取人数) / personCount(设置的人数)
+        },
+        supplyIndicator:{
+          label:'补录结果' // 补录的超缺
+        },
+        towSupplyRecord:{
+          label:'二次补录情况'
+        },
+        towSupplyIndicator:{
+          label:'二次补录结果'
+        }
+      }
+    }
+  }
+}

+ 41 - 0
src/views/system/user/profile/components/round-select-resolvers/primary-resolver-mixins.js

@@ -0,0 +1,41 @@
+export default {
+  methods: {
+    primaryResolver() {
+      const activeIndex = this.generation.activeModels.findIndex(item => item.generation == 1)
+      // 激活状态的row初始化
+      this.formatRows = this.generation.activeModels[activeIndex].models.map(item => {
+        item.allowSelectTips = item.allowSelect ? '报名中' : '无法报名'
+        item.subjects = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => item.majorCategoryName)
+        item.colleges = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => {
+          return {
+            college: item.collegeName,
+            major: item.majorCategoryName
+          }
+        })
+        return item
+      })
+
+
+      this.formatRows = this.formatRows.map(item => {
+        item.applyCount = `${item.actualCount}/${item.personCount}`
+        return item
+      })
+
+      return {
+        applyCount:{
+          label:'选科人数比'
+        },
+        rankInGroup:{
+          label:'当前组合实时排名'
+        },
+        rankInGrade:{
+          label:'选科全校排名'
+        }
+      }
+    }
+  }
+}

+ 40 - 0
src/views/system/user/profile/components/round-select-resolvers/primaryDM-resolver-mixins.js

@@ -0,0 +1,40 @@
+export default {
+  methods: {
+    primaryDMResolver() {
+      const activeIndex = this.generation.activeModels.findIndex(item => item.generation == 2)
+      this.formatRows = this.generation.activeModels[activeIndex].models.map(item => {
+        item.allowSelectTips = item.allowSelect ? '报名中' : '无法报名'
+        item.subjects = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => item.majorCategoryName)
+        item.colleges = this.optionalMajors.filter(college => {
+          if (college.matchedGroupIds.indexOf(item.groupId) != -1) return college.majorCategoryName
+        }).map(item => {
+          return {
+            college: item.collegeName,
+            major: item.majorCategoryName
+          }
+        })
+        return item
+      })
+      this.formatRows = this.formatRows.map(item => {
+        item.applyCount = `${item.actualCount}/${item.personCount}`
+        return item
+      })
+      return {
+        applyCount:{
+          label:'选科人数比'
+        },
+        groupIndicator:{
+          label:'超/缺'
+        },
+        rankInGroup:{
+          label:'当前组合实时排名'
+        },
+        rankInGrade:{
+          label:'选科全校排名'
+        }
+      }
+    }
+  }
+}

+ 33 - 0
src/views/system/user/profile/components/round-select-resolvers/rankBalance-resolver-mixins.js

@@ -0,0 +1,33 @@
+export default {
+  methods: {
+    rankBalanceResolver() {
+      return {
+        applyCount:{
+          label:'初录情况'
+        },
+        groupIndicator:{
+          label:'初录超/缺'
+        },
+        supplyRecord:{
+          label:'补录情况' // 补录情况 =
+          // groupApprovedCount(补录阶段实际报名人数) + actualCount(补录本组合已被录取人数) / personCount(设置的人数)
+        },
+        supplyIndicator:{
+          label:'补录结果' // 补录的超缺
+        },
+        towSupplyRecord:{
+          label:'二次补录情况'
+        },
+        towSupplyIndicator:{
+          label:'二次补录结果'
+        },
+        adjustRecord:{
+          label:'调剂补录情况'
+        },
+        adjustIndicator:{
+          label:'调剂补录结果'
+        }
+      }
+    }
+  }
+}

+ 262 - 22
src/views/system/user/profile/round-select.vue

@@ -25,13 +25,16 @@
       </el-row>
     </el-card>
     <!--  自选专业 推荐专业  -->
-    <select-subject class="mt20" :evaluationMajors="evaluationMajors" :optionalMajors="optionalMajors" :list="reportInfo.models"></select-subject>
+    <select-subject class="mt20" :evaluationMajors="evaluationMajors" :optionalMajors="optionalMajors"
+                    :list="reportInfo.models"
+    ></select-subject>
     <!--  选科报名表  -->
-    <el-card class="box-card mt20" >
+    <el-card class="box-card mt20">
       <template #header>
-        <elective-generation-steps v-if="allowSelect" v-model="activeStep" :generation="generations"></elective-generation-steps>
+        <elective-generation-steps v-if="allowSelect" v-model="activeStep" :generation="generation"
+        ></elective-generation-steps>
       </template>
-      <report-table   ref="reportRef" ></report-table>
+      <report-table ref="reportRef" :generation="generation"></report-table>
     </el-card>
 
     <el-card shadow="hover" class="mt20">
@@ -95,7 +98,8 @@
 
     <el-dialog :visible.sync="helpVideo.visible">
       <mx-video v-if="helpVideo.visible" :src="helpVideo.src" :ali-id-type="helpVideo.aliIdType"
-                class="mt15"></mx-video>
+                class="mt15"
+      ></mx-video>
     </el-dialog>
   </div>
 </template>
@@ -109,18 +113,19 @@ import ReportTable from '@/views/system/user/profile/components/report-table'
 import ElectiveGenerationSteps from '@/views/elective/generation/components/elective-generation-steps'
 import config from '@/common/mx-config'
 import {
+  getModels,
   getOptionalMajors,
-  getRecommendMajor,
-  getPrimaryElectivesModels
+  getPrimaryElectivesModels,
+  getRecommendMajor
 } from '@/api/webApi/elective/ selected-subject'
 
 export default {
-  provide(){
+  provide() {
     return {
       optionalMajors: this.getOptionalMajors
     }
   },
-  components: { SelectSubject, TestResult, TestEntry,ReportTable,ElectiveGenerationSteps },
+  components: { SelectSubject, TestResult, TestEntry, ReportTable, ElectiveGenerationSteps },
   name: 'round-select',
   data() {
     return {
@@ -147,18 +152,245 @@ export default {
       submitting: false,
       propData: {},
       stepOptions: config.electiveGenerationOptions,
-      activeStep: ''
+      activeStep: '',
+      generationModels: [
+        {
+          models: [
+            {
+              scoreSumGroup: 514,
+              groupIndicator: 30,
+              bestInIndicator: 20,
+              rankInBest: 16,
+              rankInIndicator: 10,
+              rankInDisenroll: 14,
+              isRecommend: true,
+
+              groupId: 1,
+              groupName: '物化生',
+              classCount: 6,
+              personCount: 300,
+              rankInGroup: 290,
+              rankInGrade: 357,
+              allowSelect: true,
+              disabledReason: '0',
+              selected: false,
+              selectedRank: 1,
+              actualCount: 320,
+              approved: false,
+              forceAdjusted: false,
+              groupApprovedCount: 0,
+              groupForceAdjustedCount: 0
+            }
+          ],
+          generation: 1,
+          studentId: 1001
+        },
+        {
+          models: [
+            {
+              scoreSumGroup: 514,
+              groupIndicator: 30,
+              bestInIndicator: 20,
+              rankInBest: 16,
+              rankInIndicator: 10,
+              rankInDisenroll: 10,
+              isRecommend: true,
+
+              groupId: 1,
+              groupName: '物化生',
+              classCount: 6,
+              personCount: 300,
+              rankInGroup: 290,
+              rankInGrade: 357,
+              allowSelect: true,
+              disabledReason: '',
+              selected: false,
+              selectedRank: 1,
+              actualCount: 320,
+              approved: false,
+              forceAdjusted: false,
+              groupApprovedCount: 300,
+              groupForceAdjustedCount: 0
+            }
+          ],
+          generation: 2,
+          studentId: 1001
+        },
+        {
+          models: [
+            {
+              scoreSumGroup: 514,
+              groupIndicator: 30,
+              bestInIndicator: 20,
+              rankInBest: 16,
+              rankInIndicator: 30,
+              rankInDisenroll: 14,
+              isRecommend: true,
+
+              groupId: 1,
+              groupName: '物化生',
+              classCount: 6,
+              personCount: 300,
+              rankInGroup: 10,
+              rankInGrade: 357,
+              allowSelect: true,
+              disabledReason: '',
+              selected: false,
+              selectedRank: 1,
+              actualCount: 320,
+              approved: false,
+              forceAdjusted: false,
+              groupApprovedCount: 300,
+              groupForceAdjustedCount: 0
+            }
+          ],
+          generation: 3,
+          studentId: 1001
+        },
+        {
+          models: [
+            {
+              scoreSumGroup: 514,
+              groupIndicator: 30,
+              bestInIndicator: 20,
+              rankInBest: 16,
+              rankInIndicator: '',
+              rankInDisenroll: 14,
+              isRecommend: true,
+
+              scoreSumAll: 0,
+              groupId: 1,
+              groupName: '物化生',
+              classCount: 6,
+              personCount: 300,
+              rankInGroup: 10,
+              rankInGrade: 357,
+              allowSelect: true,
+              disabledReason: '',
+              selected: false,
+              selectedRank: 1,
+              actualCount: 302,
+              approved: false,
+              forceAdjusted: false,
+              groupApprovedCount: 300,
+              groupForceAdjustedCount: 0
+            }
+          ],
+          generation: 4,
+          studentId: 1001
+        },
+        {
+          models: [
+            {
+              scoreSumGroup: 514,
+              groupIndicator: 30,
+              bestInIndicator: 20,
+              rankInBest: 16,
+              rankInIndicator: '',
+              rankInDisenroll: 14,
+              isRecommend: true,
+
+              groupId: 1,
+              groupName: '物化生',
+              classCount: 6,
+              personCount: 300,
+              rankInGroup: 10,
+              rankInGrade: 357,
+              allowSelect: true,
+              disabledReason: '',
+              selected: false,
+              selectedRank: 1,
+              actualCount: 302,
+              approved: false,
+              forceAdjusted: false,
+              groupApprovedCount: 300,
+              groupForceAdjustedCount: 0
+            }
+          ],
+          generation: 5,
+          studentId: 1001
+        },
+        {
+          models: [
+            {
+              scoreSumGroup: 514,
+              groupIndicator: 30,
+              bestInIndicator: 20,
+              rankInBest: 16,
+              rankInIndicator: '',
+              rankInDisenroll: 14,
+              isRecommend: true,
+
+              groupId: 1,
+              groupName: '物化生',
+              classCount: 6,
+              personCount: 300,
+              rankInGroup: 10,
+              rankInGrade: 357,
+              allowSelect: true,
+              disabledReason: '',
+              selected: false,
+              selectedRank: 1,
+              actualCount: 300,
+              approved: false,
+              forceAdjusted: false,
+              groupApprovedCount: 300,
+              groupForceAdjustedCount: 0
+            }
+          ],
+          generation: 6,
+          studentId: 1001
+        },
+        {
+          models: [
+            {
+              scoreSumGroup: 514,
+              groupIndicator: 30,
+              bestInIndicator: 20,
+              rankInBest: 16,
+              rankInIndicator: '',
+              rankInDisenroll: 14,
+              isRecommend: true,
+
+              groupId: 1,
+              groupName: '物化生',
+              classCount: 6,
+              personCount: 300,
+              rankInGroup: 10,
+              rankInGrade: 357,
+              allowSelect: true,
+              disabledReason: '',
+              selected: false,
+              selectedRank: 1,
+              actualCount: 300,
+              approved: false,
+              forceAdjusted: false,
+              groupApprovedCount: 300,
+              groupForceAdjustedCount: 0
+            }
+          ],
+          generation: 7,
+          studentId: 1001
+        }
+      ]
     }
   },
+  created() {
+    // this.getData()
+  },
   computed: {
     currentOpt() {
       /// 当前进程代对应的配置项,可能没有值
       return Object.values(this.stepOptions).find(opt => opt.value == this.selectObj.currentGeneration)
     },
     activeOpt() {
+      return Object.values(this.stepOptions).find(opt => opt.key == this.activeStep)
+    },
+    activeModels() {
+      if (!this.activeStep || !this.selectObj) return []
+      if (this.activeOpt.value > this.selectObj.currentGeneration) return []
       /// 当前选中的进程代,可能没有值
-      console.log('round select active step changed', this.activeStep)
-      return this.stepOptions[this.activeStep]
+      return this.generationModels.filter(gm => gm.generation <= this.activeOpt.value)
     },
     // stepOptions() {
     //   const steps = {}
@@ -170,8 +402,8 @@ export default {
     //   }
     //   return steps
     // },
-    generations() {
-      if(!this.selectObj) return {}
+    generation() {
+      if (!this.selectObj) return {}
       return {
         // generation key value
         hiddenGenerations: [],
@@ -181,9 +413,11 @@ export default {
         active: this.active,
         activeOpt: this.activeOpt,
         status: {
-          roundName: this.selectObj.name || '',
-          year: this.selectObj.year || '',
+          ...this.selectObj,
+          roundName: this.selectObj.name || ''
         },
+        models: this.generationModels,
+        activeModels: this.activeModels
       }
     },
     stepChange(key) {
@@ -200,18 +434,23 @@ export default {
     this.loadStudentSelected()
 
     this.getOptionalMajors()
-    this.getReportList()
+    // this.getReportList()
     this.getRecommendMajor()
   },
   methods: {
+    getData() {
+      getModels().then(res => {
+        console.log(res)
+      })
+    },
     getRecommendMajor() {
       getRecommendMajor().then(res => {
-        this.evaluationMajors= res.data
+        this.evaluationMajors = res.data
       })
     },
     getReportList() {
       getPrimaryElectivesModels().then(res => {
-        this.reportInfo= res.data
+        this.reportInfo = res.data
         this.$refs.reportRef.init(this.reportInfo)
       })
 
@@ -219,7 +458,7 @@ export default {
     getOptionalMajors() {
       getOptionalMajors().then(res => {
         console.log(res)
-        this.optionalMajors= res.data.reverse().splice(0,6)
+        this.optionalMajors = res.data.reverse().splice(0, 6)
         this.$refs.reportRef.initOption(this.optionalMajors)
       })
     },
@@ -227,11 +466,12 @@ export default {
       getStudentSelected().then(res => {
         console.log('getStudentSelected', res)
         const selectStatus = res.data.selectResult
-        selectStatus.currentGeneration = 6 // 当前所处的状态
-        selectStatus.preferenceCount = 1 // 志愿数
+        selectStatus.currentGeneration = 7 // 当前所处的状态
+        selectStatus.preferenceCount = 3 // 志愿数
         this.selectObj = selectStatus
         this.allowSelect = res.data.allowSelect
         this.form.groupId = this.selectObj?.groupId
+
       })
     },
     handleSubmit() {