文章目录
最终效果:
实现表格中,查看详情、修改弹出框的异常数据标红
实现思路:
整体的思路就是,表中有一个,异常信息字段,里面包含了异常的字段属性名称(后端根据逻辑判断哪些属性是异常的并返回),前端根据这个异常信息字段里包含的属性,动态标注。
一、表格数据标红
先判断异常字段包不包含异常值,如果包含就使用v-if来红字显示,否则就正常显示。
注意:这里你需要在哪一列进行异常判断就需要在哪一列加这个判断的代码。
html
<el-table-column label="年级" align="center" prop="classGrade">
<template slot-scope="scope">
<!-- {{ scope.row.classGrade || '-' }}-->
<span v-if="scope.row.remark.includes('异常值')" style="color: #ff4949">
{{ scope.row.classGrade || '-' }}
</span>
<span v-else>
{{ scope.row.classGrade || '-' }}
</span>
</template>
</el-table-column>
二、弹出框中数据标红
这里直接使用三目运算符,如果判断为异常就使用red-text样式将文字变为红色。
这里有两个问题,
一是,直接用style样式,他是不起作用的,需要使用v-deep样式穿透。
二是,这个remark异常字段你在打开弹出框瞬间他不一定是有值的,所以还需要加这个判断条件:form.remark &&
。
html
<el-form-item label="班级名称" prop="className">
<!-- <el-input v-model="form.className" :readonly="!this.isEditMode" placeholder="请输入班级名称" />-->
<div :class="form.remark && form.remark.includes('异常值') ? 'red-text':''">
<el-input v-model="form.className" placeholder="请输入班级名称"
:disabled="!this.isEditMode" />
</div>
</el-form-item>
样式穿透:
将input输入框,不管是否禁用都将文字颜色变为红色
.el-input.is-disabled .el-input__inner
这里的元素具体要怎么选择,通过f12,选择元素工具,选择输入框,然后就能看到了,如果同样用的element ui的输入框,这里不用修改就能直接用了。
css
<style scoped lang="scss">
.red-text ::v-deep{
.el-input.is-disabled .el-input__inner{
color: red;
}
.el-input--medium .el-input__inner{
color: red;
}
}
</style>