浏览代码

Merge branch 'master' of http://121.4.203.192:9000/mingxue/front

shilipojs 2 年之前
父节点
当前提交
454ab27515

+ 16 - 3
src/assets/styles/common.scss

@@ -155,6 +155,10 @@
   margin-right: 5px;
 }
 
+.mr3 {
+  margin-right: 3px;
+}
+
 .pl100 {
   padding-left: 100px;
 }
@@ -553,9 +557,11 @@
 .fx-5 {
   flex: 5;
 }
+
 .pd10 {
   padding: 10px;
 }
+
 .fx-wrap {
   flex-wrap: wrap;
 }
@@ -577,7 +583,8 @@
 .bg-page {
   background-color: #FEFEFE;
 }
-.bd-f2{
+
+.bd-f2 {
   border: 1px solid #f2f2f2;
 }
 
@@ -650,9 +657,11 @@
 .f24 {
   font-size: 24px;
 }
+
 .f28 {
   font-size: 28px;
 }
+
 .f-red {
   color: #dd524d;
 }
@@ -664,12 +673,15 @@
 .f-primary {
   color: #47C6A2
 }
+
 .f-danger {
   color: #F56C6C
 }
+
 .f-warning {
   color: #E6A23C
 }
+
 .f-333 {
   color: #333333
 }
@@ -716,8 +728,9 @@
 .pointer {
   cursor: pointer;
 }
-.pd20{
-  padding: 20px ;
+
+.pd20 {
+  padding: 20px;
 }
 
 

+ 1 - 1
src/common/mx-config.js

@@ -179,7 +179,7 @@ export default {
       key: 'terminate',
       value: 9,
       code: 'Terminate',
-      decisionMaking: false,
+      decisionMaking: true,
       stepsVisible: false,
       title: '选科结束',
       description: '',

+ 25 - 0
src/views/components/blocks/index-login-check-mixin.js

@@ -0,0 +1,25 @@
+import { mapGetters } from 'vuex'
+import auth from '@/utils/auth'
+
+export default {
+  provide() {
+    return {
+      loginCheck: this.loginStatusCheck
+    }
+  },
+  computed: {
+    ...mapGetters(['currentUser'])
+  },
+  methods: {
+    isLogin() {
+      return !!auth.getToken()
+    },
+    loginStatusCheck() {
+      // 首页统一注入登陆检测方法,未登陆时直接跳至登陆框
+      if (this.isLogin()) {
+        return Promise.resolve(true)
+      }
+      // TODO: 提示并回滚至登陆窗口
+    }
+  }
+}

+ 14 - 0
src/views/components/blocks/index-login-interceptor-mixin.js

@@ -0,0 +1,14 @@
+export default {
+  inject: {
+    loginCheck: {
+      default: function() {
+        // 首页用到的block均需要混入此mixin
+        // 目的在于形成统一的点击响应
+
+        // 默认通过,因为block组件可能不止在首页使用
+        // 不同的嵌入块可以由容器注入不同的校验逻辑
+        return Promise.resolve(true)
+      }
+    }
+  }
+}

+ 43 - 31
src/views/elective/select/components/elective-enroll-info.vue

@@ -1,37 +1,38 @@
 <template>
   <p>
-    <span>您在{{ appliedModel.option.title }}阶段</span>
-    <template v-if="!appliedModel.selectedList.length">
-      <span>未填报志愿</span>
+    <span v-if="approved">恭喜</span>
+    <span>您在{{ subTitle(appliedModel.option.title) }}阶段</span>
+    <template v-if="forceAdjusted">
+      <span>未被录取,您选择被系统调剂至</span>
+      <span class="f-primary bold ml3 mr3">{{ enrollStatus.enrolledGroup.groupName }}</span>
+      <span>组合</span>
     </template>
-    <template v-else-if="appliedModel.selectedList.some(m=>m.rejected)">
-      <span>拒绝填报志愿。</span>
+    <template v-else-if="approved">
+      <span>被</span>
+      <span class="f-primary bold ml3 mr3">{{ enrollStatus.enrolledGroup.groupName }}</span>
+      <span>组合录取</span>
     </template>
     <template v-else>
-      <span>填报的</span>
-      <span v-for="(group,index) in appliedModel.selectedList" :key="group.groupId" :class="enrollGroupClass(group)">
-        {{ group.groupName }}{{index < appliedModel.selectedList.length - 1 ? '、' : ''}}
-      </span>
-    </template>
-    <template v-if="approved">
-      <span v-if="appliedModel.selectedList.length == 1">
-        符合条件,已被录取。
-      </span>
-      <span v-else-if="appliedModel.selectedList.length > 1">
-        其中 <span class="bold">{{ enrollStatus.enrolledGroup.groupName }}</span> 符合条件,已被录取。
-      </span>
-      <template v-else-if="appliedModel.nextModel.selectedList.length == 1">
-        但系统按推荐组合 <span class="f-primary">{{ appliedModel.nextModel.selectedList.first().groupName }}</span> 进行了录取
+      <template v-if="!appliedModel.selectedList.length">
+        <span>未被填报</span>
+      </template>
+      <template v-else-if="appliedModel.selectedList.some(m=>m.rejected)">
+        <span>拒绝填报</span>
+      </template>
+      <template v-else>
+        <span>未被录取</span>
+      </template>
+      <template v-if="enableSelect">
+        <span>,系统推荐您</span>
+        <span class="f-warning bold ml3 mr3">{{ nextRecommend.groupName }}</span>
+        <span>组合</span>
+      </template>
+      <template v-else-if="nextApplyModel">
+        <span>,请参加{{ nextApplyModel.option.title }}</span>
+      </template>
+      <template v-else>
+        <span>,学校会帮助您调剂报名</span>
       </template>
-    </template>
-    <template v-else>
-      <span v-if="appliedModel.selectedList.length">不符合条件</span>,未被录取。
-    </template>
-    <template v-if="forceAdjusted">
-      学校将您调剂录取至<span class="f-warning">{{ enrollStatus.enrolledGroup.groupName }}</span>组合。
-    </template>
-    <template v-if="enableSelect">
-      现有以下标黄组合可以重新报名
     </template>
     <slot></slot>
   </p>
@@ -40,7 +41,7 @@
 <script>
 export default {
   name: 'elective-enroll-info',
-  props: ['generation', 'enrollStatus','isFormReport'],
+  props: ['generation', 'enrollStatus', 'isFormReport'],
   computed: {
     enrolled() {
       return !!this.enrollStatus?.enrolledGroup
@@ -56,13 +57,24 @@ export default {
       while (appliedModel.option.decisionMaking) appliedModel = appliedModel.prevModel
       return appliedModel
     },
+    nextApplyModel() {
+      let next = this.appliedModel.nextModel
+      while (next?.option?.decisionMaking) next = next.nextModel
+      return next?.option?.decisionMaking ? null : next
+    },
+    nextRecommend() {
+      return this.nextApplyModel.models.find(m => m.isRecommend)
+    },
     enableSelect() {
       return !this.enrolled &&
-        this.generation.active == this.generation.current &&
-        !this.generation.activeOpt.decisionMaking && !this.isFormReport
+        !this.generation.activeOpt.decisionMaking
     }
   },
   methods: {
+    subTitle(title) {
+      if (!(title?.length > 2)) return title
+      return title.substring(0, title.length - 2)
+    },
     enrollGroupClass(group) {
       if (this.approved) {
         if (group.groupId == this.enrollStatus.enrolledGroup.groupId) return 'f-primary'