vue2动态切换组件(demo)

embedded/2024/12/22 13:14:01/

demo背景:页面上新增字段(接口返回),根据新增字段的类型来匹配相应的输入框,比如int匹配数字输入框,String匹配字符类型输入框,data匹配时间输入框...

新增字段

javascript">                <el-form-item label="字段名" label-width="80px"><el-selectv-model="condition.fieldName"placeholder="请选择"@change="updateFieldType(condition.fieldName, index)"> <!-- 传递 index --><el-option v-if="reportFields.length > 0" v-for="item in reportFields":key="item.id":label="item.name":value="item.fieldName"></el-option></el-select></el-form-item>

输入框采取v-if匹配

javascript">                   <el-form-item label="输入数值" label-width="100px"><el-input-numberv-if="condition.field_type === 'int'"v-model="condition.value"/><el-inputv-else-if="condition.field_type === 'string'"v-model="condition.value"/><el-date-pickerv-else-if="condition.field_type === 'date'"v-model="condition.value"/><el-time-pickerv-else-if="condition.field_type === 'time'"v-model="condition.value"/><el-inputv-elsev-model="condition.value"placeholder="请输入值"/></el-form-item>

选择字段后会触发更新字段类型的方法

javascript"> // 更新选中字段的类型updateFieldType(fieldName, index) {console.log('更新选中的字段类型:', fieldName)const selectedField = this.reportFields.find(item => item.fieldName === fieldName)if (selectedField) {
// 更新对应条件的 fieldTypethis.conditions[index].field_type = selectedField.field_type }console.log('更新完后的字段类型:', this.conditions[index].field_type)}

-------------------------------------------------优化-------------------------------------------------------------------------

组件使用 :is 属性

javascript"><component   :is="getComponent(condition.field_type)"  v-model="condition.value"  
/>  

获取组件的方法如下

javascript">// todo 根据fieldType选择条件输入数值的组件getComponent(field_type) {console.log('现在的字段类型' + field_type)switch (field_type) {case 'int':return 'el-input-number'case 'string':return 'el-input'case 'date':return 'el-date-picker'case 'time':return 'el-time-picker'default:return 'el-input'}


http://www.ppmy.cn/embedded/93408.html

相关文章

SQL Server 事务

1. 什么是事务 SQL Server 事务是数据库操作的一个基本特性&#xff0c;它允许你将一系列数据库操作组合成一个原子单元&#xff0c;这个单元中的所有操作要么全部成功&#xff0c;要么全部失败。事务具有以下四个重要的属性&#xff0c;通常被称为ACID属性。 2、事务的特性 原…

nodejs爬虫示例<爬取官网首页>

背景 大家都知道&#xff0c;Python爬虫是最牛掰的&#xff0c;那么前端人员能玩爬虫吗&#xff1f; 会Python&#xff1a;那么爬虫会很舒服&#xff0c;Python有很多成熟的库&#xff0c;我们可以直接拿来用不会Python&#xff1a;爬虫也没那么难&#xff0c;就是需要摸索一…

自动化测试工具:Selenium

Selenium作为一种广泛使用的自动化测试工具&#xff0c;尤其在Web自动化测试领域发挥着重要作用。为了提升测试效率、增强测试的可维护性和可读性&#xff0c;Selenium经常与各种流行框架集成&#xff0c;其中pytest和Allure报告是两个非常受欢迎的选项。本文将详细探讨Seleniu…

HTTPS

重要:面试关于HTTPS的工作流程 关于HTTPS的基本概念 HTTPS HTTP SSL 加密 既然要保证数据安全, 就需要进⾏ "加密". ⽹络传输中不再直接传输明⽂了, ⽽是加密之后的 "密⽂". 加密的⽅式有很多, 但是整体可以分成两⼤类: 对称加密 和 ⾮对称加密 明文…

Adobe Substance 3D Sampler v4.2.2.3719 解锁版下载安装教程(3D材质管理软件)

前言 Substance 3D Sampler简称“Sa”是一款由Adobe新推出的3D真实材质贴图制作软件。允许用户通过调整和混合现有材料&#xff0c;或通过扫描&#xff08;单个或多个图像&#xff09;中提取新材料来创建和迭代材料集合&#xff0c;从而轻松将真实的图片转换为具有真实感的表面…

WordPress原创插件:Category-id-list分类ID显示查看

WordPress原创插件&#xff1a;Category-id-list分类ID显示查看 插件设置位置在工具栏

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 蓝凌OA java开发快速入门

蓝凌EKP二次开发资料大全 完整蓝凌二次开发资料 蓝凌 EKP开发实战教程 蓝凌OA二次开发资料大全 记得两年前花了非常贵的费用去现场学习的资料&#xff0c;把这些开发技术文档分享出来&#xff0c;希望通过这个资料&#xff0c; 为大家学习开发大大减少时间。期待大家能快速上…

修改pom.xml为阿里云仓库并且让他生效

一、项目pom.xml添加 <repositories><repository><id>aliyun-central</id><name>Aliyun Maven Central</name><url>https://maven.aliyun.com/repository/central</url></repository><repository><id>aliyu…