循环scoreForm中设置的prop,显示对应scroeFormProp输入框,
@blur=“watchInputBlur”(v-on:简写成@)监听失去焦点事件
失去焦点事件应用场景
1、表单验证:当用户离开输入框时,我们可以对用户输入的内容进行验证,例如检查手机号格式是否正确;
2、实时搜索:当用户离开输入框时,我们可以立即对输入框的内容进行搜索并返回结果;
3、更新数据:当用户修改输入框的内容后离开输入框时,我们可以立即更新对应的数据。
此处用于监听输入框中输入数值的变化,在验证输入值的有效性的同时更新计算所有输入框中的总数值
<el-col :span='4' :offset='1' v-for='(citem,cindex) in scoreForm.scoreFormColProp'>
<el-form-item :label= 'searchBar.scoreName[citem]' :prop='citem' :rules='searchBar.scoreRules[citem]'>
<el-input v-if="[3, 4].includes(cindex)" v-model='item[citem]' placeholder="请输入备注说明" clearable></el-input>
<el-input v-if="[0, 1, 2].includes(cindex)" v-model.number='item[citem]' @blur="watchInputBlur('scoreForm',index)" placeholder="请输入评分" clearable></el-input>
</el-form-item>
</el-col>
watchInputBlur(refData, componetIndex) {
this.computeTotalScore(refData, componetIndex);
},
computeTotalScore(refData, componetIndex) {
this.$refs[refData][componetIndex].validate((valid) => {
if(valid) {
this.scoreForm.scoreDetailData.some((item, index) => {
if(index == componetIndex) {
item.total_score = item.competent_score + item.server_score + item.depart_score + item.blm_att_score + item.lm_att_score + item.dis_score;
return true;
}
});
}
});
},