Bläddra i källkod

elective master - enroll info

hare8999@163.com 2 år sedan
förälder
incheckning
4aac66ab84

+ 67 - 23
src/views/elective/generation/components/elective-generation-enroll-info.vue

@@ -30,32 +30,48 @@
             <template v-if="prevDMData">
               <div>
                 专业成绩符合学生中,按照系统推荐报名
-                <span class="f-primary bold">{{ getMatchedAgree(g) }}</span>
+                <span class="bold" :class="{'f-primary':getMatchedAgree(g)}">{{ getMatchedAgree(g) }}</span>
                 人,拒绝填报
-                <span class="f-red bold">{{ getMatchedReject(g) }}</span>
+                <span class="bold" :class="{'f-red':getMatchedReject(g)}">{{ getMatchedReject(g) }}</span>
                 人,未填报
-                <span class="f-red bold">{{ getMatchedNonaction(g) }}</span>
+                <span class="bold" :class="{'f-red':getMatchedNonaction(g)}">{{ getMatchedNonaction(g) }}</span>
                 人,改出
-                <span class="f-warning bold">{{ getMatchedApplyOut(g) }}</span>
+                <span class="bold" :class="{'f-warning':getMatchedApplyOut(g)}">{{ getMatchedApplyOut(g) }}</span>
                 人,改进
-                <span class="f-primary bold">{{ getMatchedApplyIn(g) }}</span>
+                <span class="bold" :class="{'f-primary':getMatchedApplyIn(g)}">{{ getMatchedApplyIn(g) }}</span>
                 人。
               </div>
               <div>
                 成绩符合专业不符合学生中,按照系统推荐报名
-                <span class="f-primary bold">{{ getNonMatchedAgree(g) }}</span>
+                <span class="bold" :class="{'f-primary':getNonMatchedAgree(g)}">{{ getNonMatchedAgree(g) }}</span>
                 人,拒绝填报
-                <span class="f-red bold">{{ getNonMatchedReject(g) }}</span>
+                <span class="bold" :class="{'f-red':getNonMatchedReject(g)}">{{ getNonMatchedReject(g) }}</span>
                 人,未填报
-                <span class="f-red bold">{{ getNonMatchedNonaction(g) }}</span>
+                <span class="bold" :class="{'f-red':getNonMatchedNonaction(g)}">{{ getNonMatchedNonaction(g) }}</span>
                 人,改出
-                <span class="f-warning bold">{{ getNonMatchedApplyOut(g) }}</span>
+                <span class="bold" :class="{'f-warning':getNonMatchedApplyOut(g)}">{{ getNonMatchedApplyOut(g) }}</span>
                 人,改进
-                <span class="f-primary bold">{{ getNonMatchedApplyIn(g) }}</span>
+                <span class="bold" :class="{'f-primary':getNonMatchedApplyIn(g)}">{{ getNonMatchedApplyIn(g) }}</span>
                 人。
               </div>
             </template>
           </el-collapse-item>
+          <el-collapse-item :name="0">
+            <template #title>
+              其它状态总人数:
+              <span class="bold" :class="{'f-red': getAllUnApplied()}">{{ getAllUnApplied() }}</span>
+              人
+            </template>
+            <div>其中未填报人数:
+              <span class="bold"
+                    :class="{'f-red': getAllUnAppliedOfNonaction()}">{{ getAllUnAppliedOfNonaction() }}</span>
+              人
+            </div>
+            <div v-if="prevDMData">其中拒绝填报人数:
+              <span class="bold" :class="{'f-red': getAllUnAppliedOfReject()}">{{ getAllUnAppliedOfReject() }}</span>
+              人
+            </div>
+          </el-collapse-item>
         </el-collapse>
       </template>
       <template v-else>
@@ -129,7 +145,7 @@ export default {
   },
   watch: {
     'hasIndicateGroups': function() {
-      this.collapseModel = this.hasIndicateGroups.map(g => g.groupId)
+      this.collapseModel = [...this.hasIndicateGroups.map(g => g.groupId), 0]
     }
   },
   methods: {
@@ -149,7 +165,7 @@ export default {
         const isMultiplePreference = this.prevApplyData.categories.some(sub => Array.isArray(sub))
         const tableData = isMultiplePreference ? { categories: this.prevApplyData.categories.first() } : this.prevApplyData
         const val = this.getCategoryValue(tableData, 'actualCount', group)
-        return val.value
+        return val?.value || 0
       } else {
         // 取报名代所有细分合并
         const subCategories = ['matchedApproved', 'matchedRankout', 'nonmatchedApproved', 'nonmatchedRankout']
@@ -157,37 +173,65 @@ export default {
       }
     },
     getEnrollCount(group) {
-      return this.getCategoryValue(this.activeDMData, 'approvedCount', group)?.value || '-'
+      // 录取
+      return this.getCategoryValue(this.activeDMData, 'approvedCount', group)?.value || 0
     },
     getMatchedAgree(group) {
-      return this.getCategoryValue(this.prevApplyData, 'matchedApproved', group)?.value || '-'
+      // 专业符合同意
+      return this.getCategoryValue(this.prevApplyData, 'matchedApproved', group)?.value || 0
     },
     getNonMatchedAgree(group) {
-      return this.getCategoryValue(this.prevApplyData, 'nonmatchedApproved', group)?.value || '-'
+      // 专业不符同意
+      return this.getCategoryValue(this.prevApplyData, 'nonmatchedApproved', group)?.value || 0
     },
     getMatchedReject(group) {
-      return this.getCategoryValue(this.prevApplyData, 'matchedNotOptional', group)?.value || '-'
+      // 专业符合拒绝
+      return this.getCategoryValue(this.prevApplyData, 'matchedNotOptional', group)?.value || 0
     },
     getNonMatchedReject(group) {
-      return this.getCategoryValue(this.prevApplyData, 'nonmatchedNotOptional', group)?.value || '-'
+      // 专业不符合拒绝
+      return this.getCategoryValue(this.prevApplyData, 'nonmatchedNotOptional', group)?.value || 0
     },
     getMatchedNonaction(group) {
-      return this.getCategoryValue(this.prevApplyData, 'matchedNonaction', group)?.value || '-'
+      // 初录未填,初录段只需要适配1个未填条件即可unfinishedCount
+      if (!this.prevDMData) {
+        // 报名人数,只取第一志愿
+        const isMultiplePreference = this.prevApplyData.categories.some(sub => Array.isArray(sub))
+        const tableData = isMultiplePreference ? { categories: this.prevApplyData.categories.first() } : this.prevApplyData
+        const val = this.getCategoryValue(tableData, 'unfinishedCount', group)
+        return val?.value || 0
+      }
+      // 专业符合未填
+      return this.getCategoryValue(this.prevApplyData, 'matchedNonaction', group)?.value || 0
     },
     getNonMatchedNonaction(group) {
-      return this.getCategoryValue(this.prevApplyData, 'nonmatchedNonaction', group)?.value || '-'
+      // 专业不符合未填
+      return this.getCategoryValue(this.prevApplyData, 'nonmatchedNonaction', group)?.value || 0
     },
     getMatchedApplyIn(group) {
-      return this.getCategoryValue(this.prevApplyData, 'matchedRankout', group)?.value || '-'
+      // 专业符合改进
+      return this.getCategoryValue(this.prevApplyData, 'matchedRankout', group)?.value || 0
     },
     getNonMatchedApplyIn(group) {
-      return this.getCategoryValue(this.prevApplyData, 'nonmatchedRankout', group)?.value || '-'
+      // 专业不符合改进
+      return this.getCategoryValue(this.prevApplyData, 'nonmatchedRankout', group)?.value || 0
     },
     getMatchedApplyOut(group) {
-      return this.getCategoryValue(this.prevApplyData, 'matchedRejected', group)?.value || '-'
+      // 专业符合改出
+      return this.getCategoryValue(this.prevApplyData, 'matchedRejected', group)?.value || 0
     },
     getNonMatchedApplyOut(group) {
-      return this.getCategoryValue(this.prevApplyData, 'nonmatchedRejected', group)?.value || '-'
+      // 专业不符合改出
+      return this.getCategoryValue(this.prevApplyData, 'nonmatchedRejected', group)?.value || 0
+    },
+    getAllUnAppliedOfReject() {
+      return this.hasIndicateGroups.sum(g => this.getMatchedReject(g) + this.getNonMatchedReject(g))
+    },
+    getAllUnAppliedOfNonaction() {
+      return this.hasIndicateGroups.sum(g => this.getMatchedNonaction(g) + this.getNonMatchedNonaction(g))
+    },
+    getAllUnApplied() {
+      return this.getAllUnAppliedOfReject() + this.getAllUnAppliedOfNonaction()
     }
   }
 }

+ 2 - 2
src/views/elective/generation/components/elective-generation-push-setting.vue

@@ -6,12 +6,12 @@
     <el-row>
       <el-col :span="12">
         <el-form-item prop="onlyRecommand" class="form-item-readonly">
-          <el-checkbox :checked="!model.onlyRecommand" @change="model.onlyRecommand=!$event">是否同意学生选择非推荐组合</el-checkbox>
+          <el-checkbox :checked="!model.onlyRecommand" @change="model.onlyRecommand=!$event">同意学生选择非推荐组合</el-checkbox>
         </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item prop="onlyAgree" class="form-item-readonly" label-width="0">
-          <el-checkbox :checked="!model.onlyAgree" @change="model.onlyAgree=!$event">是否同意学生拒绝填报</el-checkbox>
+          <el-checkbox :checked="!model.onlyAgree" @change="model.onlyAgree=!$event">同意学生拒绝填报</el-checkbox>
         </el-form-item>
       </el-col>
       <el-col :span="12">