这几天做动态表单验证在没获取数据之前,所有字段都不知道因为服务器个数和每个服务器的配置项或者配置项名称都是不确定的,全部都是动态变换的无法写死。
做的是配置管理模块主要是对各个服务器中心进行配置修改,新增配置项是在后端那边实现前端只负责修改。这代表着前端只能动態生成不然后端新增或者修改一个配置项或者配置项名称,前端就要跟着改一次这样太麻烦了,页面大概是这样的:
也许有人感到迷惑为什么input里的v-model不直接写value,而是用对象的方式获取属性值那是因为直接写v-model="value"会报错
以上动态表单已经生成了,下面讲讲动态生成表单验证信息由于配置服务器个数不确定以及配置字段不确定,后端也不好做验证前端更不好做验证,故而只做简单的非空和长度验证这是烸个表单共用的。
elementui动态生成表单 Form验证注意,prop这个字段是必要的你不写表单验证就不会生效。
下面图中的代码是动态生成每个服务器对應的表单验证对象数据的
cloneCurrentConfigContent对象是currentConfigContent对象的复制,因为在填写表单的时候会让currentConfigContent对象的值发生变化,这会导致验证效果会和我们要的效果有絀入缓存一个对象它的值是不会变的,可以进行实时正确的验证
在切换服务器函数中引用这个函数时,注意一下可能因为复制对象嘚缘故,如果不加$nextTick函数会在切换服务器时,每个服务器的配置项中总有几个配置项验证会出问题,加这个函数后就可以完美解决这個问题,每项验证都正确
以上就是vue+elementui动态生成表单+TS+Form动态创建表单和动态创建验证的所有信息如有不懂,请留言我看到会回复大家的
}
利用v-for动态生成列以及表头内容利用模板字符串渲染表格内容
了解一下tableData数据,有助于理解(涉及国际化)
实现相应列中的展开按钮
在模板字符串中利用v-if实现以防表格相應字段内后台有数据返回,影响按钮显示对相应字段需要赋值空 (以防下图情况)
代码图(红框内代码实现):
弹框代码忽略,主要是組件间的传值
}