- 人员数:{{ personnelList.length }}
- 平均分:{{ averageScore }}
+ 人员数:{{ filteredPersonnelList.length }}
+ 平均分:{{ filteredAverageScore }}
@@ -131,11 +154,35 @@ export default {
filters: {
department: '',
personnel: '',
- grade: ''
+ grade: '',
+ scoreCondition: '',
+ scoreValue: null
}
}
},
computed: {
+ filteredPersonnelList() {
+ let filtered = [...this.personnelList]
+
+ if (this.filters.scoreCondition && this.filters.scoreValue !== null && this.filters.scoreValue !== '') {
+ const value = Number(this.filters.scoreValue)
+ filtered = filtered.filter(person => {
+ const score = Number(person.total_score || 0)
+ switch (this.filters.scoreCondition) {
+ case 'gt':
+ return score > value
+ case 'eq':
+ return Math.abs(score - value) < 0.01
+ case 'lt':
+ return score < value
+ default:
+ return true
+ }
+ })
+ }
+
+ return filtered
+ },
averageScore() {
if (!this.personnelList || this.personnelList.length === 0) {
return '0.00'
@@ -143,6 +190,14 @@ export default {
const total = this.personnelList.reduce((sum, item) => sum + Number(item.total_score || 0), 0)
const average = total / this.personnelList.length
return average.toFixed(2)
+ },
+ filteredAverageScore() {
+ if (!this.filteredPersonnelList || this.filteredPersonnelList.length === 0) {
+ return '0.00'
+ }
+ const total = this.filteredPersonnelList.reduce((sum, item) => sum + Number(item.total_score || 0), 0)
+ const average = total / this.filteredPersonnelList.length
+ return average.toFixed(2)
}
},
async mounted() {
@@ -187,10 +242,14 @@ export default {
this.filters = {
department: '',
personnel: '',
- grade: ''
+ grade: '',
+ scoreCondition: '',
+ scoreValue: null
}
this.fetchRecords()
},
+ applyScoreFilter() {
+ },
editPersonnel(row) {
this.$router.push({
name: 'EvaluationRecordDetail',
@@ -281,7 +340,7 @@ export default {
}
},
async handleExport() {
- if (!this.personnelList.length) {
+ if (!this.filteredPersonnelList.length) {
ElMessage.warning('暂无数据可导出')
return
}