浏览代码

elective student - dynamic table resolver

hare8999@163.com 2 年之前
父节点
当前提交
5744557228

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

@@ -1,8 +1,7 @@
 export default {
   methods: {
-    backTrackingResolver(gen, active) {
-      const models = this.generation.activeModels.find(item => item.generation == gen)?.models || []
-      console.log('back',models)
+    backTrackingResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.rows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
         const disenrollAll = Math.abs(models.sum(m => m.groupIndicator))

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

@@ -1,8 +1,7 @@
 export default {
   methods: {
-    finalAdjustResolver(gen, active) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
-      console.log('final',models)
+    finalAdjustResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.rows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
         const disenrollAll = Math.abs(models.sum(m => m.groupIndicator))

+ 5 - 7
src/views/elective/select/components/elective-table.vue

@@ -213,17 +213,15 @@ export default {
       if (!Object.keys(this.formatRows).length) return {}
       const options = this.generation.options
       if (!options || !this.generation.active) return {}
-      const optValues = Object.values(options)
       const dynamicColumns = {}
-      for (let gen = options.primary.value; gen <= this.generation.active; gen++) {
-        const opt = optValues.find(opt => opt.value == gen)
-        const resolverKey = opt.key + 'Resolver'
+      this.generation.activeModels.forEach(model => {
+        const resolverKey = model.option.key + 'Resolver'
         const resolver = this[resolverKey]
         if (typeof resolver === 'function') {
-          const genColumns = resolver(gen, this.generation.active, dynamicColumns)
+          const genColumns = resolver(model, this.generation.activeModel, dynamicColumns)
           Object.assign(dynamicColumns, genColumns)
         }
-      }
+      })
       return dynamicColumns
     },
     formatRows() {
@@ -233,7 +231,7 @@ export default {
       const activeModel = this.generation.activeModel
       return this.generation.roundGroups.map(rg => {
         const row = activeModel.models?.find(item => item.groupId == rg.groupId) || {}
-        row.allowSelectTips = this.combineGroupStatus(row, activeModel)
+        this.$set(row, 'allowSelectTips', this.combineGroupStatus(row, activeModel))
         const matchedMajors = this.optionalMajors.filter(college => college.matchedGroupIds.includes(row.groupId))
         this.$set(row, 'colleges', matchedMajors.map(m => ({ college: m.collegeName, major: m.majorCategoryName })))
         this.$set(row, 'subjects', matchedMajors.map(m => m['majorCategoryName']))

+ 3 - 3
src/views/elective/select/components/round-select-resolvers/backTracking-resolver-mixins.js

@@ -1,13 +1,13 @@
 export default {
   methods: {
-    backTrackingResolver(gen, active,context) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
+    backTrackingResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
         item.backTrackingApply = `${currentGroup.actualCount} /${currentGroup.groupIndicator}`
       })
 
-      if (active < 4) {
+      if (activeModel.generation < 4) {
         return {
           backTrackingApply: {
             label: '补录报名情况'

+ 2 - 3
src/views/elective/select/components/round-select-resolvers/backTrackingDM-resolver-mixins.js

@@ -1,8 +1,7 @@
 export default {
   methods: {
-    backTrackingDMResolver(gen) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
-
+    backTrackingDMResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
         item.supplyIndicator = currentGroup.nextGroupIndicator

+ 2 - 3
src/views/elective/select/components/round-select-resolvers/finalAdjust-resolver-mixins.js

@@ -1,8 +1,7 @@
 export default {
   methods: {
-    finalAdjustResolver(gen) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
-
+    finalAdjustResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
 

+ 2 - 4
src/views/elective/select/components/round-select-resolvers/finalAdjustDM-resolver-mixins.js

@@ -1,11 +1,9 @@
 export default {
   methods: {
-    finalAdjustDMResolver(gen) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
-
+    finalAdjustDMResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-
         item.towSupplyIndicator = currentGroup.nextGroupIndicator
       })
       return {

+ 2 - 4
src/views/elective/select/components/round-select-resolvers/forceAdjust-resolver-mixins.js

@@ -1,11 +1,9 @@
 export default {
   methods: {
-    forceAdjustResolver(gen) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
-
+    forceAdjustResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
-
         item.adjustIndicator = currentGroup.nextGroupIndicator
         item.adjustRecord = `${currentGroup.groupApprovedCount + currentGroup.actualCount} /${currentGroup.personCount}`
       })

+ 3 - 4
src/views/elective/select/components/round-select-resolvers/primary-resolver-mixins.js

@@ -6,15 +6,14 @@ export default {
     ...mapGetters(['hasPermissions'])
   },
   methods: {
-    primaryResolver(gen, active) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
-
+    primaryResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
         item.applyCount = `${currentGroup.actualCount} /${currentGroup.personCount}`
       })
 
-      if(active < 4){
+      if(activeModel.generation < 4){
         return {
           applyCount:{
             label:'选科人数比',

+ 3 - 4
src/views/elective/select/components/round-select-resolvers/primaryDM-resolver-mixins.js

@@ -1,14 +1,13 @@
 export default {
   methods: {
-    primaryDMResolver(gen, active, context) {
-      const models = this.generation.activeModels.find(item => item.generation == gen).models
-
+    primaryDMResolver(model, activeModel, context) {
+      const models = model?.models || []
       this.formatRows.forEach(item => {
         const currentGroup = models.find(group => group.groupId == item.groupId) || {}
         item.primarySituation = currentGroup.nextGroupIndicator
       })
 
-      if (active < 4) {
+      if (activeModel.generation < 4) {
         return {
           primarySituation: {
             label: '超/缺',