Files
zhxg_pc/src/views/teacher/kpiFilling/components/bonusPoints.vue

163 lines
6.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<div v-if="form.kpiFillingBonusPointsList && form.kpiFillingBonusPointsList.length > 0">
<el-table :data="form.kpiFillingBonusPointsList" border>
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="加分类型" align="center" prop="bonusType">
<template slot-scope="scope">
<span v-if="scope.row.bonusType === 'option1'">获得上级部门或学校表扬妥善处置学生事件并形成典型案例积极建言献策且建议被采纳发挥模范带头作用的</span>
<span v-else-if="scope.row.bonusType === 'option2'">在学校学院阶段性重要任务推进过程中主动担当作为切实发挥作用的</span>
<span v-else-if="scope.row.bonusType === 'option3'">协助学校开展辅导员培训会议和学生活动在活动中担任工作人员的</span>
<span v-else>{{ scope.row.bonusType }}</span>
</template>
</el-table-column>
<el-table-column label="分数" align="center" prop="bonusScoring" width="100" />
</el-table>
</div>
<div v-else>
<p>暂无加分项数据</p>
</div>
<div style="margin-top: 10px; padding: 10px; background-color: #f5f5f5; border-radius: 4px;">
<p style="font-weight: bold; margin-bottom: 10px;">考评要求</p>
<div v-if="!isEdit">
<p>1. 获得上级部门或学校表扬妥善处置学生事件并形成典型案例积极建言献策且建议被采纳发挥模范带头作用的10</p>
<p>2. 在学校学院阶段性重要任务推进过程中主动担当作为切实发挥作用的10</p>
<p>3. 协助学校开展辅导员培训会议和学生活动在活动中担任工作人员的10</p>
</div>
<div v-else>
<el-checkbox v-model="bonusForm.option1" @change="handleBonusChange('option1')">获得上级部门或学校表扬妥善处置学生事件并形成典型案例积极建言献策且建议被采纳发挥模范带头作用的10分</el-checkbox>
<el-checkbox v-model="bonusForm.option2" @change="handleBonusChange('option2')">在学校学院阶段性重要任务推进过程中主动担当作为切实发挥作用的10分</el-checkbox>
<el-checkbox v-model="bonusForm.option3" @change="handleBonusChange('option3')">协助学校开展辅导员培训会议和学生活动在活动中担任工作人员的10分</el-checkbox>
<div style="margin-top: 10px;">
<span>分数</span>
<el-input-number v-model="bonusForm.bonusScoring" :min="0" :max="10" size="mini" />
</div>
</div>
<p style="font-weight: bold; margin: 10px 0;">考评方式</p>
<p>学务办学工各项工作记录按照完成情况任务量加分每次加2-4</p>
</div>
<div v-if="form.kpiFillingBonusPointsList && form.kpiFillingBonusPointsList.length > 0 && !(form.auditStatus === 1 && form.roleAudit === 4)" style="margin-top: 10px; text-align: right;">
<el-button v-if="!isEdit && !roleGroup.includes('辅导员') && audit" type="warning" @click="startEdit"> </el-button>
<el-button v-if="isEdit" type="primary" @click="saveBonus">保存</el-button>
<el-button v-if="isEdit" @click="cancelEdit">取消</el-button>
</div>
</div>
</template>
<script>
import { addKpiFillingBonusPoints, updateKpiFillingBonusPoints, delKpiFillingBonusPoints } from '@/api/teacher/kpiFilling'
export default {
props: {
form: {
type: Object,
default: []
},
roleGroup: {
type: String,
default: ''
},
audit: {
type: Boolean,
default: true
}
},
data() {
return {
isEdit: false,
bonusForm: {
option1: false,
option2: false,
option3: false,
bonusScoring: 0
}
}
},
created() {
},
methods: {
startEdit() {
if (this.form.kpiFillingBonusPointsList && this.form.kpiFillingBonusPointsList.length > 0) {
const bonusType = this.form.kpiFillingBonusPointsList[0].bonusType
this.bonusForm = {
option1: bonusType === 'option1',
option2: bonusType === 'option2',
option3: bonusType === 'option3',
bonusScoring: this.form.kpiFillingBonusPointsList[0].bonusScoring || 0
}
}
this.isEdit = true
},
handleBonusChange(type) {
if (type === 'option1' && this.bonusForm.option1) {
this.bonusForm.option2 = false
this.bonusForm.option3 = false
this.bonusForm.bonusScoring = 10
} else if (type === 'option2' && this.bonusForm.option2) {
this.bonusForm.option1 = false
this.bonusForm.option3 = false
this.bonusForm.bonusScoring = 10
} else if (type === 'option3' && this.bonusForm.option3) {
this.bonusForm.option1 = false
this.bonusForm.option2 = false
this.bonusForm.bonusScoring = 10
}
},
saveBonus() {
let bonusType = ''
if (this.bonusForm.option1) bonusType = 'option1'
else if (this.bonusForm.option2) bonusType = 'option2'
else if (this.bonusForm.option3) bonusType = 'option3'
if (!bonusType) {
this.$message.warning('请选择加分类型')
return
}
const data = {
bonusType: bonusType,
bonusScoring: this.bonusForm.bonusScoring,
fdyName: this.form.fdyName,
fillingYear: this.form.fillingYear,
fillingMonth: this.form.fillingMonth,
classType: this.form.classType
}
if (this.form.kpiFillingBonusPointsList && this.form.kpiFillingBonusPointsList.length > 0) {
data.id = this.form.kpiFillingBonusPointsList[0].id
updateKpiFillingBonusPoints(data).then(response => {
this.$message.success('保存成功')
this.isEdit = false
this.form.kpiFillingBonusPointsList[0].bonusType = bonusType
this.form.kpiFillingBonusPointsList[0].bonusScoring = this.bonusForm.bonusScoring
})
} else {
addKpiFillingBonusPoints(data).then(response => {
this.$message.success('保存成功')
this.isEdit = false
this.form.kpiFillingBonusPointsList = [{
bonusType: bonusType,
bonusScoring: this.bonusForm.bonusScoring
}]
})
}
},
cancelEdit() {
this.isEdit = false
this.bonusForm = {
option1: false,
option2: false,
option3: false,
bonusScoring: 0
}
}
}
}
</script>
<style scoped>
p {
margin: 5px 0;
font-size: 14px;
}
</style>