当前位置: 首页 > news >正文

vue3 两份json数据对比不同的页面给于颜色标识

在这里插入图片描述
两份数据对比,新的跟旧的数据不一样页面就给于颜色标识

1. 给每个表单控件添加动态样式标识 :class=“hasChanged(字段名称)”

 <div class="container"><el-row><el-col :span="12"><el-form :model="form" label-width="auto" style="max-width: 600px"><el-form-item label="Activity name"><el-input v-model="form.name" :class="hasChanged('name')"/></el-form-item><el-form-item label="Activity zone"><el-select v-model="form.region" placeholder="please select your zone" :class="hasChanged('region')"><el-option label="Zone one" value="shanghai" /><el-option label="Zone two" value="beijing" /></el-select></el-form-item><el-form-item label="Activity"><el-input v-model="form.activity" :class="hasChanged('activity')"/></el-form-item><el-form-item label="Instant delivery"><el-switch v-model="form.delivery" :class="hasChanged('delivery')"/></el-form-item><el-form-item label="Resources"><el-radio-group v-model="form.resource" :class="hasChanged('resource')"><el-radio value="Sponsor">Sponsor</el-radio><el-radio value="Venue">Venue</el-radio></el-radio-group></el-form-item><el-form-item label="Activity form"><el-input v-model="form.desc" type="textarea" :class="hasChanged('desc')" /></el-form-item></el-form></el-col><!-- 第二个 --><el-col :span="12"><el-form :model="form2" label-width="auto" style="max-width: 600px"><el-form-item label="Activity name"><el-input v-model="form2.name"/></el-form-item><el-form-item label="Activity zone"><el-select v-model="form2.region" placeholder="please select your zone"><el-option label="Zone one" value="shanghai" /><el-option label="Zone two" value="beijing" /></el-select></el-form-item><el-form-item label="Activity"><el-input v-model="form2.activity"/></el-form-item><el-form-item label="Instant delivery"><el-switch v-model="form2.delivery" /></el-form-item><el-form-item label="Resources"><el-radio-group v-model="form2.resource"><el-radio value="Sponsor">Sponsor</el-radio><el-radio value="Venue">Venue</el-radio></el-radio-group></el-form-item><el-form-item label="Activity form"><el-input v-model="form2.desc" type="textarea" /></el-form-item></el-form></el-col></el-row></div>

2. 两份数据进行对比 如果想同的话 以字段名为key 添加 markData[字段名] = { status: ‘hasChanged’ } 不相同的话 添加 markData[字段名] = { status: ‘noChanged’ }

// 新的
const form = ref({name: '',region: '',activity: '',delivery: false,resource: '',desc: '',
})
// 老的
const form2 = ref({name: '',region: '',activity: '',delivery: false,resource: '',desc: '',
})
// 新的数据const newData = {name: 'test',region: 'test',activity: 'testst',delivery: false,resource: 'Sponsor',desc: 'asddasdasd',}
// 老的数据const oldData = {name: 'test1',region: 'test',activity: 'testst',delivery: true,resource: 'Sponsor',desc: 'asddasdasd11',}

3. 对比方法

// 对比后生成新的数据
const compareData = ref({})
// 对比方法
const compareFun = (newData, oldData) => {const dataA = { ...newData }const dataB = { ...oldData }const markData = {}Object.keys(dataA).forEach((key) => {markData[key] = {}if (dataA[key] !== dataB[key]) {markData[key] = { status: 'hasChanged'}} else {markData[key] = { status: 'noChanged'}}})compareData.value = markData
}

4. 使用计算属性给每个表单控件添加对应的class

const hasChanged = computed(() => (key) => {if (!compareData.value[key]) return ''return compareData.value[key].status
})

5. 对比差异的数据给于颜色标识样式

.hasChanged {:deep(.el-input__wrapper) {background-color: #f2ac51;}:deep(.el-input__inner) {color: #d9001b;}:deep(.el-select__wrapper) {background-color: #f2ac51;}:deep(.el-select__placeholder) {color: #d9001b;}:deep(.el-textarea__inner) {background-color: #f2ac51;color: #d9001b;}:deep(.el-switch__core) {background-color: #f2ac51;}:deep(.el-radio) {background-color: #f2ac51;}
}
http://www.dtcms.com/a/453002.html

相关文章:

  • XSLFO 流:从XML到PDF的转换之道
  • 2025-10-7学习笔记
  • 基于websocket的多用户网页五子棋(七)
  • 做网站pyton电子商务网站建设收获
  • 合肥佰瑞网站竞价网站做招商加盟可以不备案吗
  • Java “并发容器框架(Fork/Join)”面试清单(含超通俗生活案例与深度理解)
  • 网站建设基础实训报告网站做关键词排名每天要做什么
  • 阿里云服务器安装MySQL服务器
  • 苏州展示型网站建设uc网站模板
  • 智能体框架大PK!谷歌ADK VS 微软Semantic Kernel
  • Ubuntu 24.04 SSH 多端口监听与 ssh.socket 配置详解
  • 中秋特别篇:使用QtOpenGL和着色器绘制星空与满月——进阶优化与交互式场景构建
  • 着色器的概念
  • 中秋特别篇:使用QtOpenGL和着色器绘制星空与满月——从基础框架到光影渲染
  • 做社情网站犯法怎么办中国机械加工设备展会
  • 《黑马商城》Elasticsearch基础-详细介绍【简单易懂注释版】
  • 机器学习之 预测价格走势(先保存再看,避免丢失)
  • 服务型网站建设的主题企业网站建设规范
  • HarmonyOS应用开发 - strip编译配置优先级
  • JetLinks安装 运行
  • 适合学生做网站的图片外贸网站建设如何做呢
  • 浏览器不再拦请求:FastAPI 跨域(CORS)配置全解析
  • Liunx:基本指令(二)
  • BitTorrent 技术简介
  • 二、二选一多路器的设计流程
  • 建设一个电商网站的流程个人网站的前途
  • 老题新解|病人排队
  • 个人养老保险怎么买合适wordpress自带数据库优化
  • 水墨风鼠标效果实现
  • AI时代:IT从业者会被取代吗?