如何动态标红前端表格中的异常数据

文章目录

最终效果:

实现表格中,查看详情、修改弹出框的异常数据标红

实现思路:

整体的思路就是,表中有一个,异常信息字段,里面包含了异常的字段属性名称(后端根据逻辑判断哪些属性是异常的并返回),前端根据这个异常信息字段里包含的属性,动态标注。

一、表格数据标红

先判断异常字段包不包含异常值,如果包含就使用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>
相关推荐
夏天想9 分钟前
uni-app+vue3+pina实现全局加载中效果,自定义全局变量和函数可供所有页面使用
前端·javascript·uni-app
深情废杨杨19 分钟前
前端vue-form表单的验证
前端·javascript·vue.js
Fenderisfine19 分钟前
使用 vite 快速初始化 shadcn-vue 项目
前端·css·vue.js·前端框架·postcss
星河漫漫l21 分钟前
0基础学习CSS(六)字体
前端·css·学习·html
多多*35 分钟前
OJ在线评测系统 前端开发整合开源组件 Monaco Editor 并且开发创建题目页面
服务器·前端·javascript·数据库·算法·开源
前端拾光者40 分钟前
前端开发设计模式——单例模式
前端·javascript·单例模式·设计模式
Stanford_11061 小时前
C++入门基础知识88(实例)——实例13【求一个数的阶乘】
开发语言·前端·javascript·微信小程序·微信公众平台·twitter·微信开放平台
_.Switch1 小时前
Python Web 与物联网(IoT)集成与实时数据处理
开发语言·前端·python·物联网·架构·log4j
霍金的微笑2 小时前
MYSQL(学习笔记)
java·前端·数据库
软糖工程0012 小时前
XML简介
xml·前端·学习