Skip to content

Commit a249258

Browse files
fix(plugins/score): 修复了选中课程中存在重修课程时,计算会始终忽视低分课程的bug
在判断课程是否被选中前,低分课程就已经被过滤走了,这造成选中课程中存在重修课程时,计算会始终忽视低分课程,调整顺序为先过滤选中课程,再过滤低分课程后bug修复。 fix #46
1 parent 445b6ff commit a249258

File tree

5 files changed

+32
-100
lines changed

5 files changed

+32
-100
lines changed

src/plugins/score/ExpectedGradesEstimation.vue

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,6 @@ import FourTypeGradeLabels from './components/ExpectedGradesEstimation/FourTypeG
151151
import { emitDataAnalysisEvent } from '../data-analysis'
152152
import { convertCourseScoreInfoListToScoreRecords } from '@/helper/converter'
153153
import {
154-
getCompulsoryCoursesGPA,
155-
getCompulsoryCoursesScore,
156154
getAllCoursesGPA,
157155
getAllCoursesScore,
158156
getCompulsoryCourses,
@@ -333,11 +331,11 @@ export default class ExpectedGradeEstimation extends Vue {
333331
}
334332
335333
getCompulsoryCoursesGPA(arr: CourseScoreRecord[]): number {
336-
return getCompulsoryCoursesGPA(arr)
334+
return getAllCoursesGPA(getCompulsoryCourses(arr))
337335
}
338336
339337
getCompulsoryCoursesScore(arr: CourseScoreRecord[]): number {
340-
return getCompulsoryCoursesScore(arr)
338+
return getAllCoursesScore(getCompulsoryCourses(arr))
341339
}
342340
343341
getAllCoursesGPA(arr: CourseScoreRecord[]): number {

src/plugins/score/components/SemesterTranscript/Header.vue

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,6 @@ export default class Header extends Vue {
9292
})
9393
selectedCourses!: CourseScoreRecord[]
9494
95-
get allCourses(): CourseScoreRecord[] {
96-
return reserveHigherCoursesForRetakenCourses(this.courses)
97-
}
98-
9995
get majorCourses(): CourseScoreRecord[] {
10096
return reserveHigherCoursesForRetakenCourses(
10197
removeMinorCourses(this.courses)

src/plugins/score/components/SemesterTranscript/LabelBar.vue

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,16 @@ div
4646
|
4747
span.gpa-st-tag.gpa-st-tag-selected-score.label.label-pink(
4848
v-if='type !== `compact` && selectedCoursesLength',
49-
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均分为 ${getSelectedCoursesScore(allCourses)}`'
49+
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均分为 ${getSelectedCoursesScore(courses)}`'
5050
)
51-
| 选中课程平均分:{{ getSelectedCoursesScore(allCourses) }}
51+
| 选中课程平均分:{{ getSelectedCoursesScore(courses) }}
5252
|
5353
|
5454
span.gpa-st-tag.gpa-st-tag-selected-gpa.label.label-pink(
5555
v-if='type !== `compact` && selectedCoursesLength',
56-
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均绩点为 ${getSelectedCoursesGPA(allCourses)}`'
56+
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均绩点为 ${getSelectedCoursesGPA(courses)}`'
5757
)
58-
| 选中课程绩点:{{ getSelectedCoursesGPA(allCourses) }}
58+
| 选中课程绩点:{{ getSelectedCoursesGPA(courses) }}
5959
p(v-if='type === `compact`')
6060
span.gpa-st-tag.label.label-light(
6161
v-if='minorCourses.length',
@@ -75,29 +75,26 @@ div
7575
|
7676
span.gpa-st-tag.gpa-st-tag-selected-score.label.label-pink(
7777
v-if='selectedCoursesLength',
78-
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均分为 ${getSelectedCoursesScore(allCourses)}`'
78+
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均分为 ${getSelectedCoursesScore(courses)}`'
7979
)
80-
| 选中课程平均分:{{ getSelectedCoursesScore(allCourses) }}
80+
| 选中课程平均分:{{ getSelectedCoursesScore(courses) }}
8181
|
8282
|
8383
span.gpa-st-tag.gpa-st-tag-selected-gpa.label.label-pink(
8484
v-if='selectedCoursesLength',
85-
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均绩点为 ${getSelectedCoursesGPA(allCourses)}`'
85+
:title='`在${semester},您当前选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均绩点为 ${getSelectedCoursesGPA(courses)}`'
8686
)
87-
| 选中课程绩点:{{ getSelectedCoursesGPA(allCourses) }}
87+
| 选中课程绩点:{{ getSelectedCoursesGPA(courses) }}
8888
</template>
8989

9090
<script lang="ts">
9191
import { Vue, Component, Prop } from 'vue-property-decorator'
9292
import { CourseScoreRecord } from '@/plugins/score/types'
9393
import {
94-
getCompulsoryCoursesGPA,
95-
getCompulsoryCoursesScore,
9694
getAllCoursesGPA,
9795
getAllCoursesScore,
9896
getCompulsoryCourses,
99-
getSelectedCoursesScore,
100-
getSelectedCoursesGPA,
97+
getSelectedCourses,
10198
removeMinorCourses,
10299
reserveHigherCoursesForRetakenCourses,
103100
reserveMinorCourses
@@ -126,10 +123,6 @@ export default class LabelBar extends Vue {
126123
})
127124
selectedCourses!: CourseScoreRecord[]
128125
129-
get allCourses(): CourseScoreRecord[] {
130-
return reserveHigherCoursesForRetakenCourses(this.courses)
131-
}
132-
133126
get majorCourses(): CourseScoreRecord[] {
134127
return reserveHigherCoursesForRetakenCourses(
135128
removeMinorCourses(this.courses)
@@ -151,19 +144,23 @@ export default class LabelBar extends Vue {
151144
}
152145
153146
getCompulsoryCoursesGPA(arr: CourseScoreRecord[]): number {
154-
return getCompulsoryCoursesGPA(arr)
147+
return getAllCoursesGPA(getCompulsoryCourses(arr))
155148
}
156149
157150
getCompulsoryCoursesScore(arr: CourseScoreRecord[]): number {
158-
return getCompulsoryCoursesScore(arr)
151+
return getAllCoursesScore(getCompulsoryCourses(arr))
159152
}
160153
161154
getSelectedCoursesGPA(arr: CourseScoreRecord[]): number {
162-
return getSelectedCoursesGPA(arr)
155+
return getAllCoursesGPA(
156+
reserveHigherCoursesForRetakenCourses(getSelectedCourses(arr))
157+
)
163158
}
164159
165160
getSelectedCoursesScore(arr: CourseScoreRecord[]): number {
166-
return getSelectedCoursesScore(arr)
161+
return getAllCoursesScore(
162+
reserveHigherCoursesForRetakenCourses(getSelectedCourses(arr))
163+
)
167164
}
168165
169166
getAllCoursesGPA(arr: CourseScoreRecord[]): number {

src/plugins/score/components/TotalTranscript.vue

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -101,29 +101,26 @@
101101
|
102102
span.gpa-tt-tag.gpa-tt-tag-selected-score.label.label-pink(
103103
v-if='selectedCoursesLength',
104-
:title='`在 ${semestersQuantity} 个学期中,您当前一共选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均分为 ${getSelectedCoursesScore(allCourses)}`'
104+
:title='`在 ${semestersQuantity} 个学期中,您当前一共选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均分为 ${getSelectedCoursesScore(courses)}`'
105105
)
106-
| 所有选中课程平均分:{{ getSelectedCoursesScore(allCourses) }}
106+
| 所有选中课程平均分:{{ getSelectedCoursesScore(courses) }}
107107
|
108108
|
109109
span.gpa-tt-tag.gpa-tt-tag-selected-gpa.label.label-pink(
110110
v-if='selectedCoursesLength',
111-
:title='`在 ${semestersQuantity} 个学期中,您当前一共选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均绩点为 ${getSelectedCoursesGPA(allCourses)}`'
111+
:title='`在 ${semestersQuantity} 个学期中,您当前一共选出了 ${selectedCoursesLength} 门课程进行计算,选中课程的加权平均绩点为 ${getSelectedCoursesGPA(courses)}`'
112112
)
113-
| 所有选中课程绩点:{{ getSelectedCoursesGPA(allCourses) }}
113+
| 所有选中课程绩点:{{ getSelectedCoursesGPA(courses) }}
114114
</template>
115115

116116
<script lang="ts">
117117
import { Vue, Component, Prop } from 'vue-property-decorator'
118118
import { CourseScoreRecord } from '@/plugins/score/types'
119119
import {
120-
getCompulsoryCoursesGPA,
121-
getCompulsoryCoursesScore,
122120
getAllCoursesGPA,
123121
getAllCoursesScore,
124122
getCompulsoryCourses,
125-
getSelectedCoursesScore,
126-
getSelectedCoursesGPA,
123+
getSelectedCourses,
127124
reserveHigherCoursesForRetakenCourses,
128125
removeMinorCourses,
129126
reserveMinorCourses,
@@ -148,10 +145,6 @@ export default class TotalTranscript extends Vue {
148145
})
149146
selectedCourses!: CourseScoreRecord[]
150147
151-
get allCourses(): CourseScoreRecord[] {
152-
return reserveHigherCoursesForRetakenCourses(this.courses)
153-
}
154-
155148
get majorCourses(): CourseScoreRecord[] {
156149
return reserveHigherCoursesForRetakenCourses(
157150
removeMinorCourses(this.courses)
@@ -184,19 +177,23 @@ export default class TotalTranscript extends Vue {
184177
}
185178
186179
getCompulsoryCoursesGPA(arr: CourseScoreRecord[]): number {
187-
return getCompulsoryCoursesGPA(arr)
180+
return getAllCoursesGPA(getCompulsoryCourses(arr))
188181
}
189182
190183
getCompulsoryCoursesScore(arr: CourseScoreRecord[]): number {
191-
return getCompulsoryCoursesScore(arr)
184+
return getAllCoursesScore(getCompulsoryCourses(arr))
192185
}
193186
194187
getSelectedCoursesGPA(arr: CourseScoreRecord[]): number {
195-
return getSelectedCoursesGPA(arr)
188+
return getAllCoursesGPA(
189+
reserveHigherCoursesForRetakenCourses(getSelectedCourses(arr))
190+
)
196191
}
197192
198193
getSelectedCoursesScore(arr: CourseScoreRecord[]): number {
199-
return getSelectedCoursesScore(arr)
194+
return getAllCoursesScore(
195+
reserveHigherCoursesForRetakenCourses(getSelectedCourses(arr))
196+
)
200197
}
201198
202199
getAllCoursesGPA(arr: CourseScoreRecord[]): number {

src/plugins/score/utils.ts

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -114,58 +114,6 @@ function getSelectedCourses(arr: CourseScoreRecord[]): CourseScoreRecord[] {
114114
return arr.filter((v) => v.selected)
115115
}
116116

117-
/**
118-
* 输入课程数组,得到必修加权平均绩点
119-
*
120-
* @param {CourseScoreRecord[]} 课程数组
121-
* @returns 必修加权平均绩点
122-
*/
123-
function getCompulsoryCoursesGPA(arr: CourseScoreRecord[]): number {
124-
return reserveDigits(getWeightedAverage(mapGPA(getCompulsoryCourses(arr))))
125-
}
126-
127-
/**
128-
* 输入课程数组,得到选中课程加权平均分
129-
*
130-
* @param {CourseScoreRecord[]} arr 课程数组
131-
* @returns 选中课程加权平均分
132-
*/
133-
function getSelectedCoursesScore(arr: CourseScoreRecord[]): number {
134-
return reserveDigits(
135-
getWeightedAverage(
136-
mapScore(removeIllegalScoreCourses(getSelectedCourses(arr)))
137-
)
138-
)
139-
}
140-
141-
/**
142-
* 输入课程数组,得到选中课程加权平均绩点
143-
*
144-
* @param {CourseScoreRecord[]} 课程数组
145-
* @returns 选中课程加权平均绩点
146-
*/
147-
function getSelectedCoursesGPA(arr: CourseScoreRecord[]): number {
148-
return reserveDigits(
149-
getWeightedAverage(
150-
mapGPA(removeIllegalScoreCourses(getSelectedCourses(arr)))
151-
)
152-
)
153-
}
154-
155-
/**
156-
* 输入课程数组,得到必修加权平均分
157-
*
158-
* @param {CourseScoreRecord[]} arr 课程数组
159-
* @returns 必修加权平均分
160-
*/
161-
function getCompulsoryCoursesScore(arr: CourseScoreRecord[]): number {
162-
return reserveDigits(
163-
getWeightedAverage(
164-
mapScore(removeIllegalScoreCourses(getCompulsoryCourses(arr)))
165-
)
166-
)
167-
}
168-
169117
/**
170118
* 输入课程数组,得到全部课程加权平均绩点
171119
*
@@ -454,14 +402,10 @@ export function getLevelCodeByScore(
454402
}
455403

456404
export {
457-
getCompulsoryCoursesGPA,
458-
getCompulsoryCoursesScore,
459405
getAllCoursesGPA,
460406
getAllCoursesScore,
461407
getCompulsoryCourses,
462408
getSelectedCourses,
463-
getSelectedCoursesScore,
464-
getSelectedCoursesGPA,
465409
getPointByScore,
466410
reserveNewerCoursesForRetakenCourses,
467411
reserveOlderCoursesForRetakenCourses

0 commit comments

Comments
 (0)