辅导员管理-添加业绩考核个人填报详情和加分项、就业指导工作API
- 新增kpiFillingDetail函数用于获取业绩考核个人填报详情 - 新增加分项相关API:kpiFillingBonusPointsAdd、kpiFillingBonusPointsUpdate、 kpiFillingBonusPointsDetail - 新增就业指导工作相关API:kpiFillingGraduationGuidanceAdd、 kpiFillingGraduationGuidanceUpdate、kpiFillingGraduationGuidanceDetail - 添加TODO注释标记待后端API完成的功能 fix(pages): 解决部门名称存储问题 - 启用被注释掉的部门名称存储功能 - 确保deptName正确存入本地缓存 feat(performance): 支持毕业班和非毕业班不同考核标准 - 为考勤管理组件添加classType参数支持 - 为负面清单组件添加classType参数支持 - 为专业工作组件重构标签显示逻辑,支持根据classType动态显示 - 为奖励绩效加班组件添加classType参数支持 - 为学生突发事件组件添加classType参数支持 - 为学生管理组件添加毕业班/非毕业班差异化显示逻辑 refactor(performance): 优化业绩评估页面结构 - 添加班级类型选择按钮(毕业班/非毕业班) - 在填报时间弹窗中集成班级类型选择功能 - 更新数据加载逻辑以支持classType参数 - 修正各种评分计算中的数值类型转换问题 ```
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
<template>
|
||||
<view class="form-container">
|
||||
<view class="form-item">
|
||||
<label>加分项(三选一,不选则不加分)</label>
|
||||
<view class="options">
|
||||
<radio-group @change="onOptionChange">
|
||||
<label class="option-item" v-for="(item, index) in options" :key="index">
|
||||
<radio :value="item.value" :checked="formData.bonusType === item.value" />
|
||||
<text>{{ item.label }} (+{{ item.score }}分)</text>
|
||||
</label>
|
||||
</radio-group>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
kpiFillingBonusPointsDetail
|
||||
} from "@/api/instructor/superintendent.js"
|
||||
export default {
|
||||
props: ["queryDetailParams", "commitStatus", "classType"],
|
||||
data() {
|
||||
return {
|
||||
options: [
|
||||
{ label: "1.获得上级部门或学校表扬,妥善处置学生事件并形成典型案例,积极建言献策且建议被采纳,发挥模范带头作用。", value: "option1", score: 10 },
|
||||
{ label: "2.在学校、学院阶段性重要任务推进过程中,主动担当作为,切实发挥作用。", value: "option2", score: 10 },
|
||||
{ label: "3.协助学校开展辅导员培训、会议和学生活动,在活动中担任工作人员。", value: "option3", score: 10 }
|
||||
],
|
||||
formData: {
|
||||
bonusType: "",
|
||||
bonusScoring: "",
|
||||
id: ""
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const params = {
|
||||
...this.queryDetailParams,
|
||||
classType: this.classType
|
||||
};
|
||||
kpiFillingBonusPointsDetail(params).then(res => {
|
||||
console.log(res);
|
||||
if (res && res.rows && res.rows.length > 0) {
|
||||
const {
|
||||
bonusType,
|
||||
bonusScoring,
|
||||
id
|
||||
} = res.rows[0];
|
||||
this.formData = {
|
||||
...this.formData,
|
||||
bonusType,
|
||||
bonusScoring,
|
||||
id
|
||||
};
|
||||
} else {
|
||||
console.log("第一次");
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log("API调用失败", err);
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
onOptionChange(e) {
|
||||
const value = e.detail.value;
|
||||
this.formData.bonusType = value;
|
||||
const selected = this.options.find(item => item.value === value);
|
||||
this.formData.bonusScoring = selected ? selected.score : 0;
|
||||
},
|
||||
getFormData() {
|
||||
return this.formData;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.form-container {
|
||||
.form-item {
|
||||
padding: 22rpx 40rpx 40rpx 40rpx;
|
||||
background-color: white;
|
||||
margin-bottom: 40rpx;
|
||||
border-radius: 16rpx;
|
||||
|
||||
label {
|
||||
margin-bottom: 20rpx;
|
||||
display: inline-block;
|
||||
font-size: 26rpx;
|
||||
}
|
||||
|
||||
.options {
|
||||
radio-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.option-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 20rpx 0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
radio {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
text {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user