Vue v-for 实现一行展示 n 个元素 及 ElementUI 表单校验注意事项

举报
SHQ5785 发表于 2023/02/11 09:42:43 2023/02/11
【摘要】 一、需求背景在开发前端项目过程中,遇到结果列表操作栏位需要每2个按钮元素为一行展示需求。 二、需求分析可通过将返回值封装为二维数组,或者根据数组下标进行换行操作。 三、解决方案经过实践,发现将返回值数组封装为二维数组,然后前端通过el-row,el-col标签封装实现。实现代码如下:<el-row v-for="(btnArr, index) in oprBtn" :key="index"...

一、需求背景

在开发前端项目过程中,遇到结果列表操作栏位需要每2个按钮元素为一行展示需求。

二、需求分析

可通过将返回值封装为二维数组,或者根据数组下标进行换行操作。

三、解决方案

经过实践,发现将返回值数组封装为二维数组,然后前端通过el-row,el-col标签封装实现。实现代码如下:

<el-row v-for="(btnArr, index) in oprBtn" :key="index">
	<el-col v-for="(btn, index) in btnArr" :key=''btn.laberid">
		<el-button type="text" @click="btnClick(btn.laberid)"></el-button>
	</el-col>
</el-row>
let arrTmp = []
this.displayBtn = []
if (this.displayBtn.length === 1) {
	this.oprBtn.push(this.displayBtn)
} else {
	this.displayBtn.forEach((item, index, cols) => {
		arrTmp.push(item)
		if ((index + 1) % 2 === 0) {
			this.displayBtn.push(arrTmp)
			arrTmp = []
		}
	})
}

四、拓展阅读

一、表单检验

在这里插入图片描述
注:prop对应的不单单是rules规则里面的验证项,同时对应着form-itemv-model绑定的值。prop绑定的类要与el-form-itemv-model的值相对应。否则就算校验元素输入字符,也会提示“请输入”之类的提示语,造成校验不友好问题。
在这里插入图片描述

二、清除表单校验

// 清除表单校验的提示
if (this.$refs['XXX']) {
 // 延时执行
  this.$nextTick(function () {
    this.$refs['XXX'].clearValidate();
  })
};

三、callback()

vue自定义表单校验,不管检验是否通过一定要加 callback();

validateDatasourceNm(rule, value, callback) {
	let reg = /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/; //只允许输入正数
	if (value === '') {
		callback();  //这句话没有的话 不知名的问题产生。
	} else {
		if (!reg.test(value)) {
			callback(new Error(this.ruleNames[rule.fullField]));
		}
		callback();
	}
}

四、拓展阅读

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。