|  | @@ -9,56 +9,78 @@
 | 
											
												
													
														|  |      <div>
 |  |      <div>
 | 
											
												
													
														|  |        <div class="mb10" >
 |  |        <div class="mb10" >
 | 
											
												
													
														|  |          <p class="mb5">1,报名情况:</p>
 |  |          <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>
 | 
											
												
													
														|  | -      <div class="mt10" v-if="aiType == 'single' && !singleRow.allowSelect">
 |  | 
 | 
											
												
													
														|  | -        <span class="f-red">{{ singleRow.groupName }} </span>不可报名
 |  | 
 | 
											
												
													
														|  | -      </div>
 |  | 
 | 
											
												
													
														|  | -      <div v-else>
 |  | 
 | 
											
												
													
														|  | 
 |  | +      <div>
 | 
											
												
													
														|  |          <div class="mb10">
 |  |          <div class="mb10">
 | 
											
												
													
														|  |            <p class="mb5">2,专业符合情况:</p>
 |  |            <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">
 |  |              <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>
 |  |              </div>
 | 
											
												
													
														|  | -            <p style="display: inline" class="f-red" v-else>您的自选专业没有符合该组合的</p>
 |  | 
 | 
											
												
													
														|  | 
 |  | +            <p style="display: inline" class="f-red" v-else>该组合没有您自选的专业</p>
 | 
											
												
													
														|  |            </div>
 |  |            </div>
 | 
											
												
													
														|  |          </div>
 |  |          </div>
 | 
											
												
													
														|  |          <div class="mb10">
 |  |          <div class="mb10">
 | 
											
												
													
														|  |            <p class="mb5">3,成绩情况:</p>
 |  |            <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>
 |  |          </div>
 | 
											
												
													
														|  |          <div class="mb10">
 |  |          <div class="mb10">
 | 
											
												
													
														|  |            <p class="mb5">4,录取分析:</p>
 |  |            <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>
 |  |        </div>
 | 
											
												
													
														|  |      </div>
 |  |      </div>
 | 
											
										
											
												
													
														|  | @@ -71,11 +93,11 @@
 | 
											
												
													
														|  |  import MxSelectTranslateMixin from '@/components/Cache/modules/mx-select-translate-mixin.js'
 |  |  import MxSelectTranslateMixin from '@/components/Cache/modules/mx-select-translate-mixin.js'
 | 
											
												
													
														|  |  import ElectiveEnrollInfo from '@/views/elective/select/components/elective-enroll-info'
 |  |  import ElectiveEnrollInfo from '@/views/elective/select/components/elective-enroll-info'
 | 
											
												
													
														|  |  import ElectiveToolsMixin from '@/views/elective/select/components/elective-tools-mixins'
 |  |  import ElectiveToolsMixin from '@/views/elective/select/components/elective-tools-mixins'
 | 
											
												
													
														|  | 
 |  | +import ElectiveTableMixin from '@/views/elective/select/components/elective-table-mixins'
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  export default {
 |  |  export default {
 | 
											
												
													
														|  |    name: 'elective-ai-report-dialog',
 |  |    name: 'elective-ai-report-dialog',
 | 
											
												
													
														|  | -  mixins: [MxSelectTranslateMixin, ElectiveToolsMixin],
 |  | 
 | 
											
												
													
														|  | -  components: { ElectiveEnrollInfo },
 |  | 
 | 
											
												
													
														|  | 
 |  | +  mixins: [MxSelectTranslateMixin, ElectiveToolsMixin,ElectiveTableMixin,ElectiveEnrollInfo],
 | 
											
												
													
														|  |    props: {
 |  |    props: {
 | 
											
												
													
														|  |      generation: {
 |  |      generation: {
 | 
											
												
													
														|  |        type: Object,
 |  |        type: Object,
 | 
											
										
											
												
													
														|  | @@ -89,29 +111,17 @@ export default {
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |    },
 |  |    },
 | 
											
												
													
														|  |    computed: {
 |  |    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 {}
 |  |        if (!this.generation) return {}
 | 
											
												
													
														|  | -      return this.generation.activeModel.models
 |  | 
 | 
											
												
													
														|  | 
 |  | +      return this.generation.activeModel
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |      tipsModel() {
 |  |      tipsModel() {
 | 
											
												
													
														|  |        const countNumber = this.canSign.reduce((prev, cur) => {
 |  |        const countNumber = this.canSign.reduce((prev, cur) => {
 | 
											
										
											
												
													
														|  | @@ -122,9 +132,13 @@ export default {
 | 
											
												
													
														|  |          countNumber
 |  |          countNumber
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  | 
 |  | +    // 成绩最优
 | 
											
												
													
														|  | 
 |  | +    bestAchieve(){
 | 
											
												
													
														|  | 
 |  | +      return this.canSign[0]
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  |      canSign() {
 |  |      canSign() {
 | 
											
												
													
														|  |        // if (!this.reportInfo.length) return []
 |  |        // if (!this.reportInfo.length) return []
 | 
											
												
													
														|  | -      return this.reportInfo.filter(item => {
 |  | 
 | 
											
												
													
														|  | 
 |  | +      return this.activeModel.models.filter(item => {
 | 
											
												
													
														|  |          return item.allowSelect
 |  |          return item.allowSelect
 | 
											
												
													
														|  |        }).sort((prev, next) => prev.scoreSumGroup < next.scoreSumGroup ? 1 : -1)
 |  |        }).sort((prev, next) => prev.scoreSumGroup < next.scoreSumGroup ? 1 : -1)
 | 
											
												
													
														|  |      }
 |  |      }
 |