浏览代码

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

shilipojs 3 年之前
父节点
当前提交
8d1b9f035c

+ 2 - 2
src/views/elective/generation/detail.vue

@@ -202,11 +202,11 @@ export default {
       const options = Object.values(config.electiveGenerationOptions)
       const histories = row['histories'] || []
       const filterHistories = []
-      for (let g = current; g > 0; g--) {
+      for (let g = config.electiveGenerationOptions.rankBalance.value; g > 0; g--) {
         const opt = options.find(opt => opt.value == g)
         const groupHistories = histories.filter(h => h.generation == g && h.groupId == groupId)
         if (groupHistories.length) filterHistories.push(groupHistories)
-        if (g < current && opt.decisionMaking) break // TODO: 仅迭代至最近的决策代(可能需要调整)
+        // if (g < current && opt.decisionMaking) break // TODO: 仅迭代至最近的决策代(可能需要调整)
       }
       if (!filterHistories.length) return { matchedMajors }
       filterHistories.reverse() // 还原顺序

+ 3 - 4
src/views/permission/components/steps/fauclty/faculty-result.vue

@@ -2,10 +2,7 @@
   <div class="fx-column">
     <mx-table :prop-defines="facultyTableDefines" :rows="rows">
       <template #tag="{value}">
-        <el-badge :value="badgeValue(value)" :hidden="!badgeValue(value)" :type="value>0?'danger':'success'">
-          <el-tag v-if="badgeValue(value)" effect="light">{{ Math.abs(value) }}</el-tag>
-          <span v-else>{{ value }}</span>
-        </el-badge>
+        <over-under-badge :value="value"></over-under-badge>
       </template>
     </mx-table>
     <div class="fx-column mt15">
@@ -18,8 +15,10 @@
 </template>
 
 <script>
+import OverUnderBadge from '@/views/permission/components/steps/fauclty/over-under-badge'
 export default {
   name: 'faculty-result',
+  components: { OverUnderBadge },
   props: {
     rows: {
       type: Array,

+ 59 - 0
src/views/permission/components/steps/fauclty/over-under-badge.vue

@@ -0,0 +1,59 @@
+<template>
+  <el-badge :value="badgeValue" :hidden="!valid" :type="badgeType">
+    <el-tag v-if="valid" effect="light">{{ Math.abs(value * 1) }}</el-tag>
+    <span v-else>{{ value }}</span>
+  </el-badge>
+</template>
+
+<script>
+export default {
+  name: 'over-under-badge',
+  props: {
+    value: {
+      type: Number | String,
+      default: 0
+    },
+    overType: {
+      type: String,
+      default: 'success'
+    },
+    underType: {
+      type: String,
+      default: 'danger'
+    },
+    overText: {
+      type: String,
+      default: '超'
+    },
+    underText: {
+      type: String,
+      default: '缺'
+    },
+    exchange: {
+      // 超缺正负判定交换
+      type: Boolean,
+      default: false
+    }
+  },
+  computed: {
+    valid() {
+      return this.value && !isNaN(this.value)
+    },
+    badgeValue() {
+      if (!this.valid) return ''
+      if (this.value * 1 > 0) return this.exchange ? this.underText : this.overText
+      return this.exchange ? this.overText : this.underText
+    },
+    badgeType() {
+      if (!this.valid) return this.exchange ? this.overType : this.underType
+      if (this.value * 1 > 0) return this.exchange ? this.underType : this.overType
+      return this.exchange ? this.overType : this.underType
+    }
+  },
+  methods: {}
+}
+</script>
+
+<style scoped>
+
+</style>