Преглед на файлове

elective - add ai resolver

hare8999@163.com преди 2 години
родител
ревизия
489fee02ad

+ 1 - 1
src/views/elective/publish/components/steps/fauclty/faculty-forms.vue

@@ -122,7 +122,7 @@ export default {
         index = index.slice(index.indexOf('[') + 1, -1) * 1
         const field = arrField.last()
         const faculty = this.formModel.rows[index]
-        const required = faculty['isOffical']
+        const required = !!!faculty['isFixed'] // 不区分合格与等级考的科目才需要参与师资计算
         if (required && !(value > 0)) {
           const displayName = this.facultyTableDefines[field]?.label || key
           return callback(displayName + '须>0')

+ 5 - 27
src/views/elective/select/components/ai-round-select-resolvers/backTracking-ai-resolver-mixins.js

@@ -1,34 +1,12 @@
 export default {
   methods: {
     backTrackingAIResolver(model, activeModel, context) {
-      const models = model?.models || []
-      this.formatRows.forEach(item => {
-        const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        const disenrollAll = model.disenrollCount
-        item.groupIndicator = currentGroup.groupIndicator
-        item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
-        item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'
-        item.supplyRankInDisenroll = currentGroup.rankInDisenroll ? `${currentGroup.rankInDisenroll}/${disenrollAll}` : '-'
-        item.recommendRank = currentGroup.rankInIndicator ? `${currentGroup.rankInIndicator}/${currentGroup.groupIndicator}` : '-'
-
-      })
-      return {
-        groupIndicator: {
-          label: '补录计划'
-        },
-        supplyRankInDisenroll: {
-          label: '补录人数总排名'
-        },
-        supplyBestIndicator: {
-          label: '补录组合成绩最优人数'
-        },
-        supplyRankInBest: {
-          label: '补录组合成绩最优排名'
-        },
-        recommendRank: {
-          label: '补录最优推荐录取排名'
-        },
+      const prevModel = activeModel.prevModel
+      const prevResolverKey = prevModel.option.key + 'AIResolver'
+      if (typeof this[prevResolverKey] === 'function') {
+        return this[prevResolverKey](model, activeModel, context)
       }
+      return {}
     }
   }
 }

+ 6 - 16
src/views/elective/select/components/ai-round-select-resolvers/backTrackingDM-ai-resolver-mixins.js

@@ -1,31 +1,21 @@
 export default {
   methods: {
     backTrackingDMAIResolver(model, activeModel, context) {
-      const models = model?.models || []
-      this.formatRows.forEach(item => {
-        const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        const disenrollAll = model.disenrollCount
-        item.groupIndicator = currentGroup.nextGroupIndicator
-        item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
-        item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'
-        item.supplyRankInDisenroll = currentGroup.rankInDisenroll ? `${currentGroup.rankInDisenroll}/${disenrollAll}` : '-'
-        item.recommendRank = currentGroup.rankInIndicator ? `${currentGroup.rankInIndicator}/${currentGroup.nextGroupIndicator}` : '-'
-
-      })
+      this.commonAIResolver(model, activeModel, context)
       return {
-        groupIndicator: {
+        localGroupIndicator: {
           label: '二次补录计划'
         },
-        supplyRankInDisenroll: {
+        localRankInDisenroll: {
           label: '二次补录人数总排名'
         },
-        supplyBestIndicator: {
+        localBestInIndicator: {
           label: '二次补录组合成绩最优人数'
         },
-        supplyRankInBest: {
+        localRankInBest: {
           label: '二次补录组合成绩最优排名'
         },
-        recommendRank: {
+        localRankInRecommend: {
           label: '二次补录最优推荐录取排名'
         }
       }

+ 17 - 0
src/views/elective/select/components/ai-round-select-resolvers/common-ai-resolver-mixins.js

@@ -0,0 +1,17 @@
+export default {
+  methods: {
+    commonAIResolver(model, activeModel, context) {
+      debugger
+      const models = model?.models || []
+      this.formatRows.forEach(item => {
+        const currentGroup = models.find(group => group.groupId == item.groupId) || {}
+        const disenrollAll = model.disenrollCount
+        item.localGroupIndicator = model.option.decisionMaking ? currentGroup.nextGroupIndicator : currentGroup.groupIndicator
+        item.localBestInIndicator = currentGroup.bestInIndicator || '-'
+        item.localRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'
+        item.localRankInDisenroll = currentGroup.rankInDisenroll ? `${currentGroup.rankInDisenroll}/${disenrollAll}` : '-'
+        item.localRankInRecommend = currentGroup.rankInIndicator ? `${currentGroup.rankInIndicator}/${item.localGroupIndicator}` : '-'
+      })
+    }
+  }
+}

+ 5 - 27
src/views/elective/select/components/ai-round-select-resolvers/finalAdjust-ai-resolver-mixins.js

@@ -1,34 +1,12 @@
 export default {
   methods: {
     finalAdjustAIResolver(model, activeModel, context) {
-      const models = model?.models || []
-      this.formatRows.forEach(item => {
-        const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        const disenrollAll = model.disenrollCount
-        item.groupIndicator = currentGroup.groupIndicator
-        item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
-        item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'
-        item.supplyRankInDisenroll = currentGroup.rankInDisenroll ? `${currentGroup.rankInDisenroll}/${disenrollAll}` : '-'
-        item.recommendRank = currentGroup.rankInIndicator ? `${currentGroup.rankInIndicator}/${currentGroup.groupIndicator}` : '-'
-
-      })
-      return {
-        groupIndicator: {
-          label: '二次补录计划'
-        },
-        supplyRankInDisenroll: {
-          label: '二次补录人数总排名'
-        },
-        supplyBestIndicator: {
-          label: '二次补录组合成绩最优人数'
-        },
-        supplyRankInBest: {
-          label: '二次补录组合成绩最优排名'
-        },
-        recommendRank: {
-          label: '二次补录最优推荐录取排名'
-        }
+      const prevModel = activeModel.prevModel
+      const prevResolverKey = prevModel.option.key + 'AIResolver'
+      if (typeof this[prevResolverKey] === 'function') {
+        return this[prevResolverKey](model, activeModel, context)
       }
+      return {}
     }
   }
 }

+ 24 - 0
src/views/elective/select/components/ai-round-select-resolvers/finalAdjustDM-ai-resolver-mixins.js

@@ -0,0 +1,24 @@
+export default {
+  methods: {
+    finalAdjustDMAIResolver(model, activeModel, context) {
+      this.commonAIResolver(model, activeModel, context)
+      return {
+        localGroupIndicator: {
+          label: '补录调剂计划'
+        },
+        localRankInDisenroll: {
+          label: '补录调剂人数总排名'
+        },
+        localBestInIndicator: {
+          label: '补录调剂组合成绩最优人数'
+        },
+        localRankInBest: {
+          label: '补录调剂组合成绩最优排名'
+        },
+        localRankInRecommend: {
+          label: '补录调剂最优推荐录取排名'
+        }
+      }
+    }
+  }
+}

+ 12 - 0
src/views/elective/select/components/ai-round-select-resolvers/forceAdjust-ai-resolver-mixins.js

@@ -0,0 +1,12 @@
+export default {
+  methods: {
+    forceAdjustAIResolver(model, activeModel, context) {
+      const prevModel = activeModel.prevModel
+      const prevResolverKey = prevModel.option.key + 'AIResolver'
+      if (typeof this[prevResolverKey] === 'function') {
+        return this[prevResolverKey](model, activeModel, context)
+      }
+      return {}
+    }
+  }
+}

+ 6 - 16
src/views/elective/select/components/ai-round-select-resolvers/primaryDM-ai-resolver-mixins.js

@@ -1,31 +1,21 @@
 export default {
   methods: {
     primaryDMAIResolver(model, activeModel, context) {
-      const models = model?.models || []
-      this.formatRows.forEach(item => {
-        const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-        const disenrollAll = model.disenrollCount
-        item.groupIndicator = currentGroup.nextGroupIndicator
-        item.supplyBestIndicator = currentGroup.bestInIndicator || '-'
-        item.supplyRankInBest = currentGroup.rankInBest ? `${currentGroup.rankInBest}/${currentGroup.bestInIndicator}` : '-'
-        item.supplyRankInDisenroll = currentGroup.rankInDisenroll ? `${currentGroup.rankInDisenroll}/${disenrollAll}` : '-'
-        item.recommendRank = currentGroup.rankInIndicator ? `${currentGroup.rankInIndicator}/${currentGroup.nextGroupIndicator}` : '-'
-
-      })
+      this.commonAIResolver(model, activeModel, context)
       return {
-        groupIndicator: {
+        localGroupIndicator: {
           label: '补录计划'
         },
-        supplyRankInDisenroll: {
+        localRankInDisenroll: {
           label: '补录人数总排名'
         },
-        supplyBestIndicator: {
+        localBestInIndicator: {
           label: '补录组合成绩最优人数'
         },
-        supplyRankInBest: {
+        localRankInBest: {
           label: '补录组合成绩最优排名'
         },
-        recommendRank: {
+        localRankInRecommend: {
           label: '补录最优推荐录取排名'
         }
       }