Bläddra i källkod

ai选科报名

shilipojs 2 år sedan
förälder
incheckning
56ed6b1a0e
1 ändrade filer med 74 tillägg och 60 borttagningar
  1. 74 60
      src/views/elective/select/components/elective-ai-report-dialog.vue

+ 74 - 60
src/views/elective/select/components/elective-ai-report-dialog.vue

@@ -9,56 +9,78 @@
     <div>
       <div class="mb10" >
         <p class="mb5">1,报名情况:</p>
-        <elective-enroll-info :isFormReport="true" :generation="generation"
-                              :enroll-status="enrollStatus"
-        >
-          <span>,学校现在所开设的 {{ reportInfo.length }} 种科目,</span> 现有
-          <span class="f-primary">
-                        {{ canSign.map(item => item.groupName).join(',') }}
-          </span>您可以报名
-        </elective-enroll-info>
+          <span v-if="approved">恭喜</span>
+          <span>
+            <span>您在{{subTitle(appliedModel.option.title)}}阶段填报的</span>
+            <span :class="approved ? 'f-primary': 'f-red'"> {{apply.toString(',')}}组合 </span>
+            <span  v-if="approved">已被录取</span>
+            <span v-else>未被录取</span>,
+          </span>
+          <span>学校现在所开设的{{activeModel.models.length}}种科目,现有 <span class="f-primary">{{ canSign.map(item => item.groupName).join(',') }}  {{canSign.length}}个科目缺额,</span> </span>
+          <span>系统推荐您 <span class="f-primary">{{activeModel.models.find(item => item.isRecommend).groupName}}科目</span> 组合</span>
       </div>
-      <div class="mt10" v-if="aiType == 'single' && !singleRow.allowSelect">
-        <span class="f-red">{{ singleRow.groupName }} </span>不可报名
-      </div>
-      <div v-else>
+      <div>
         <div class="mb10">
           <p class="mb5">2,专业符合情况:</p>
-          <div class="mb5" v-for="item in canSign" v-if="!singleRow || singleRow.groupId == item.groupId">
-            <span class="f-primary mr5"> {{ item.groupName }}:</span>
+          <div class="mb5" v-for="item in canSign">
+            <div class="f-primary mr5 mb5"> {{item.groupName}}{{item.groupName == recommend ? '(系统推荐科目组合)' : ''}}</div>
             <div style="display: inline" v-if="item.colleges.length > 0">
-              <span class="mr5" v-for="college in item.colleges">{{ `${college.major}(${college.college})` }},</span>
+              <span class="mr5" v-for="college in item.colleges">{{ college.college }}:{{college.major}}。</span>
               符合您的专业要求;
             </div>
-            <p style="display: inline" class="f-red" v-else>您自选专业没有符合该组合的</p>
+            <p style="display: inline" class="f-red" v-else>该组合没有您自选专业</p>
           </div>
         </div>
         <div class="mb10">
           <p class="mb5">3,成绩情况:</p>
-          <div v-for="(item,index) in canSign" v-if="!singleRow || singleRow.groupId == item.groupId">
-            <span>{{ item.groupName }} : </span>成绩{{ item.scoreSumGroup }} <span class="f-primary" v-if="index == 0"> *成绩最优</span>
+          <div v-for="(item,index) in canSign" class="mb10">
+            <div class="mb5">{{ item.groupName }}:{{index == 0 ? '(成绩最优)': ''}}</div>
+            <div>成绩{{ item.scoreSumGroup }}</div>
           </div>
         </div>
         <div class="mb10">
           <p class="mb5">4,录取分析:</p>
-          <div v-for="(item,index) in canSign" class="mb10">
-            <div v-if="!singleRow || singleRow.groupId == item.groupId">
-              <p>{{ item.groupName }} : 成绩{{ item.scoreSumGroup }}<span class="f-primary" v-if="index == 0"
-              > (成绩最优组合)</span>
-              </p>
-              <p>
-                在补录学生{{ tipsModel.countNumber }}人中该组合成绩最优学生有{{ item.bestInIndicator }}人,该组合计划人数为{{
-                  item.groupIndicator
-                }}
-                您在该<span v-if="index == 0">最优</span>组合中排名{{ item.rankInBest }},您可以被该组合录取。您的成绩符合该组合。<span
-                v-if="item.colleges.length == 0"
-              >(自选专业不符合)</span>
-                <span v-if="index == 0">按照成绩优先原则,系统推荐您报该组合。</span>
-                <span v-else>您如果不填写系统推荐您的最优组合,您也可以报该组合。</span>
-              </p>
-            </div>
-
-          </div>
+          <p  class="f-primary">系统推荐:{{recommend}}{{canSign[0].groupName == recommend ? '成绩最优组合' : ''}}</p>
+          <p>您所在学校参与{{activeModel.option.title}}的学生共计有{{activeModel.disenrollCount}}人</p>
+          <p>您在未录满的{{canSign.length}}个组合中,全校{{ activeModel.option.title }}人数排名如下:</p>
+          <p v-for="item in canSign">
+            {{item.groupName}} <span class="f-red">{{item.rankInDisenroll}}</span> 名 <span>{{`(${item.rankInDisenroll}/${activeModel.disenrollCount})`}}</span>
+          </p>
+          <p>计划数如下:</p>
+          <p v-for="item in canSign">{{item.groupName}} <span class="f-red">{{item.groupIndicator}}</span> 人</p>
+          <p>成绩最优人数如下:</p>
+          <p v-for="item in canSign">{{item.groupName}} <span class="f-red">{{item.bestInIndicator}}</span> 人</p>
+          <p class="f-red">
+            您在{{canSign.length}}个缺额组合中{{bestAchieve.groupName}}成绩最优组合{{ bestAchieve.scoreSumGroup }}分,
+            在该组合最优人数{{ bestAchieve.bestInIndicator }}人中,排名第{{bestAchieve.bestInIndicator}}名,
+            全校排名{{bestAchieve.rankInDisenroll}}名,计划数为{{bestAchieve.groupIndicator}}人
+            <span v-if="bestAchieve.bestInIndicator <= bestAchieve.groupIndicator && bestAchieve.rankInDisenroll<= bestAchieve.bestInIndicator">
+              ,您可以被该组合录取。
+            </span>
+            <span v-else-if="bestAchieve.bestInIndicator <= bestAchieve.groupIndicator  && bestAchieve.rankInDisenroll > bestAchieve.bestInIndicator">
+              ,如果没有其他学生在该组合全校排名比您高且填报该组合,您可以被该组合录取。
+            </span>
+            <span v-else-if="bestAchieve.bestInIndicator > bestAchieve.groupIndicator  && bestAchieve.rankInDisenroll > bestAchieve.bestInIndicator">
+              ,所以您不能被成绩最优组合{{bestAchieve.groupName}}录取,系统推荐您报名{{recommend}}组合
+            </span>
+          </p>
+          <!--          <div v-for="(item,index) in canSign" class="mb10">-->
+<!--            <div >-->
+<!--              <p>{{ item.groupName }} : 成绩{{ item.scoreSumGroup }}<span class="f-primary" v-if="index == 0"-->
+<!--              > (成绩最优组合)</span>-->
+<!--              </p>-->
+<!--              <p>-->
+<!--                在补录学生{{ tipsModel.countNumber }}人中该组合成绩最优学生有{{ item.bestInIndicator }}人,该组合计划人数为{{-->
+<!--                  item.groupIndicator-->
+<!--                }}-->
+<!--                您在该<span v-if="index == 0">最优</span>组合中排名{{ item.rankInBest }},您可以被该组合录取。您的成绩符合该组合。<span-->
+<!--                v-if="item.colleges.length == 0"-->
+<!--              >(自选专业不符合)</span>-->
+<!--                <span v-if="index == 0">按照成绩优先原则,系统推荐您报该组合。</span>-->
+<!--                <span v-else>您如果不填写系统推荐您的最优组合,您也可以报该组合。</span>-->
+<!--              </p>-->
+<!--            </div>-->
+<!--          </div>-->
         </div>
       </div>
     </div>
@@ -71,11 +93,11 @@
 import MxSelectTranslateMixin from '@/components/Cache/modules/mx-select-translate-mixin.js'
 import ElectiveEnrollInfo from '@/views/elective/select/components/elective-enroll-info'
 import ElectiveToolsMixin from '@/views/elective/select/components/elective-tools-mixins'
+import ElectiveTableMixin from '@/views/elective/select/components/elective-table-mixins'
 
 export default {
   name: 'elective-ai-report-dialog',
-  mixins: [MxSelectTranslateMixin, ElectiveToolsMixin],
-  components: { ElectiveEnrollInfo },
+  mixins: [MxSelectTranslateMixin, ElectiveToolsMixin,ElectiveTableMixin,ElectiveEnrollInfo],
   props: {
     generation: {
       type: Object,
@@ -89,29 +111,17 @@ export default {
     }
   },
   computed: {
-    enrollStatus() {
-      const enrolledGroup = this.generation.activeModel.models?.find(this.isGroupEnrolled)
-      if (enrolledGroup) {
-        let enrolledModel = this.generation.activeModel
-        do {
-          const matched = enrolledModel.models?.find(this.isGroupEnrolled)
-          if (matched
-            && matched.groupId == enrolledGroup.groupId
-            && enrolledModel.selectedList.includes(matched)) {
-            return {
-              enrolledGroup,
-              enrolledModel
-            }
-          }
-          enrolledModel = enrolledModel.prevModel
-        }
-        while (enrolledModel)
-      }
-      return { enrolledGroup, enrolledModel: null }
+    // 1报名情况 填报组合
+    apply(){
+      return this.appliedModel.selectedList.map(item => item.groupName)
     },
-    reportInfo() {
+    // 1报名情况 推荐组合
+    recommend() {
+      return this.activeModel.models.find(item => item.isRecommend)?.groupName
+    },
+    activeModel() {
       if (!this.generation) return {}
-      return this.generation.activeModel.models
+      return this.generation.activeModel
     },
     tipsModel() {
       const countNumber = this.canSign.reduce((prev, cur) => {
@@ -122,9 +132,13 @@ export default {
         countNumber
       }
     },
+    // 成绩最优
+    bestAchieve(){
+      return this.canSign[0]
+    },
     canSign() {
       // if (!this.reportInfo.length) return []
-      return this.reportInfo.filter(item => {
+      return this.activeModel.models.filter(item => {
         return item.allowSelect
       }).sort((prev, next) => prev.scoreSumGroup < next.scoreSumGroup ? 1 : -1)
     }