在el-table表格中使用el-input检验无效果
表格渲染直接使用element中的表格,按照官网给的格式直接就渲染出来了,但是奈何后台给我返回的是一列对应一条数据,本来想着转换格式就行,途中又遇到校验无效,代码如下后台返回的数据格式:// An highlighted blockexport const tableDataTest = [{ 'name': '第一列', 'a1': 11, 'a2': 12, 'a3': 13, 'a4': 1
表格渲染直接使用element中的表格,按照官网给的格式直接就渲染出来了,但是奈何后台给我返回的是一列对应一条数据,本来想着转换格式就行,途中又遇到校验无效,代码如下
后台返回的数据格式:
// An highlighted block
export const tableDataTest = [
{ 'name': '第一列', 'a1': 11, 'a2': 12, 'a3': 13, 'a4': 14, 'a5': 15 },
{ 'name': '第二列', 'a1': 21, 'a2': 22, 'a3': 23, 'a4': 24, 'a5': 25 },
{ 'name': '第三列', 'a1': 31, 'a2': 32, 'a3': 33, 'a4': 34, 'a5': 35 },
]

如上图,后台返回的每条数据对应的是表格的每一列,我们要想用el-table就需要数据转化,处理方法如下:
// An highlighted block
transformData() {
const arr = []
for (let i = 0; i < 5; i++) { // 因为我的行数是固定的,直接写死了
arr[i] = []
}
const len = this.tableDataTest.length
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < len; j++) {
arr[i][j] = this.tableDataTest[j]['a' + (i + 1)]
}
}
this.form.tableDataCol = arr
this.colData = this.tableDataTest.map(item => item.name)
},
数据处理好后就直接在表格渲染了
// An highlighted block
<el-form ref="form" :model="form">
<el-table :data="form.tableDataCol" border style="width: 100%;margin-top: 40px">
<el-table-column type="index" width="60"></el-table-column>
<el-table-column v-for="(colTitle,index) in colData" :key="index" :label="colTitle">
<template slot-scope="{row, $index }">
<el-form-item :prop="`tableDataCol[${$index}][${index}]`" :rules="[{ required: true, message: '请输入',trigger:'blur'}]">
<el-input v-model.trim="row[index]"></el-input>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
重点来了,因为我开始是只是在data里面定义一个form:{},想着下面处理数据会给this.form.tableDataCol赋值的,结果发现校验一直不生效,找了好半天,发现如果只是定义form:{},
下面在对form.tableDataCol赋值数据不是双向绑定的,即使你页面的值和data里的值都改变的,但是你校验取到的值还是最开始你赋值的
// An highlighted block
data() {
return {
form: {
tableDataCol: [] // 切记一定要记得定义这个key
},
colData: []
}
},
补充:又遇到一个赋值校验不通过的问题。因为有一个功能是用户点击,自动把没有输入的输入框补充为0,切记要用字符串’0’,不要用数字0否则校验不通过,代码如下
handleSupplement() {
this.searchForm.taxPlanEntityList.forEach(row => {
row.replyLimitAccount = row.replyLimitAccount ? row.replyLimitAccount : '0'
row.replyOwner = row.replyOwner ? row.replyOwner : '0'
})
},
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)