用<el-table-column渲染后端传过来的对象
时间: 2023-10-28 20:08:08 浏览: 150
可以通过在`<el-table>`中使用`<el-table-column>`来渲染后端传过来的对象。
例如,假设后端返回的数据包含`id`、`name`和`age`字段。使用以下代码可以将这些字段渲染到表格中:
```html
<el-table :data="tableData">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="name" label="Name"></el-table-column>
<el-table-column prop="age" label="Age"></el-table-column>
</el-table>
```
其中,`:data`指定表格的数据源,`prop`指定要渲染的字段名,`label`指定表头的文本。
如果后端返回的数据是一个对象数组,则可以直接将其赋值给`tableData`,例如:
```javascript
data() {
return {
tableData: [
{ id: 1, name: 'Alice', age: 20 },
{ id: 2, name: 'Bob', age: 25 },
{ id: 3, name: 'Charlie', age: 30 },
]
}
}
```
这样就可以将表格渲染出来了。
相关问题
<el-table ref="singleTable" :data="configs" border class="wraper-table" element-loading-text="Loading" fit highlight-current-row size="mini" style="margin: 0px 0 20px 0"> <el-table-column :label="$t('table.select')" width="50" align="center"> <template slot-scope="scope"> <el-radio v-model="radio" :label="scope.row.id" @change="chooseOne(scope.row)">{{ '' }}</el-radio> </template> </el-table-column> <el-table-column :label="$t('table.id')" align="center" width="50"> <template v-slot="scope"> {{ initTableIndex('page', scope.$index) }} </template> </el-table-column> <el-table-column :label="$t('i18nView.pdCode')" align="center" prop="pdCode"></el-table-column> <el-table-column :label="$t('i18nView.pdName')" align="center" prop="pdName"></el-table-column> <el-table-column :label="$t('customComponents.pdEdition')" align="center" prop="pdEdition"></el-table-column> <el-table-column :label="$t('pdtempPdInfoView.pdApplDate')" align="center" prop="pdApplDate" sortable></el-table-column> <el-table-column :label="$t('pdtempPdInfoView.updateTime')" align="center" prop="changeDate" sortable> <template v-slot="scope"><span v-if="scope.row.defType!=1">{{ scope.row.changeDate }}</span></template> </el-table-column> <el-table-column :label="$t('pdtempPdInfoView.definitionType')" align="center" prop="defType"> <template v-slot="scope">{{ scope.row.defType | filterDefType }}</template> </el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList1" :label="$t('pdtempPdInfoView.attributeDefinitionState')" align="center" prop="attrDefState"></el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList2" :label="$t('pdtempPdInfoView.structureDefinitionState')" align="center" prop="structDefState"></el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList3" :label="$t('pdtempPdInfoView.currentPriceDefinitionState')" align="center" prop="priceDefState"></el-table-column> <el-table-column :filter-method="filterHandler" :filters="filterHandlerList4" :label="$t('pdtempPdInfoView.superviseDefinitionState')" align="center" prop="superviseDefState"></el-table-column> </el-table> <!-- 分页 --> <cus-pagination ref="page" v-model="configs" :pageSize="10" :params="params" url="/pdtemp-pd-info/list"/>以上代码如何实现数据渲染
根据提供的代码,可以看出上述代码是使用Element UI库中的`<el-table>`和`<el-table-column>`组件来渲染表格数据。
首先,你需要在Vue组件中定义`configs`属性,并将其绑定到`<el-table>`的`:data`属性上,以提供表格的数据源。
接下来,你需要在`<el-table-column>`中通过设置`prop`属性来指定该列要渲染的数据属性。例如,`prop="pdCode"`表示这一列将渲染`configs`数组中每个对象的`pdCode`属性值。
此外,你还可以使用其他属性和插槽来自定义表格列的渲染方式。例如,可以使用`:label`属性来设置表头列标签,使用`align`属性来设置列内容的对齐方式。
在上述代码中,还使用了一些过滤器(`filter-method`和`filters`)来实现列数据的过滤功能。
最后,根据提供的代码,表格还包含了一个自定义的分页组件`<cus-pagination>`,该组件通过绑定`:params`属性和`:pageSize`属性来实现分页功能,并通过设置`:url`属性来指定获取数据的接口地址。
请确保在Vue组件中正确地定义了相关的属性和方法,并将它们与模板中的对应部分正确地绑定,以实现数据的渲染和相关功能的正常运行。
<el-table :data="tableData" stripe> <el-table-column prop="id" label="ID" width="80" sortable></el-table-column> <el-table-column prop="content" label="地址"></el-table-column> <el-table-column prop="phone" label="电话"></el-table-column> <el-table-column label="操作" width="180" align="center"> <template slot-scope="scope"> <el-button type="success" @click="handleEdit(scope.row)">编辑 <i class="el-icon-edit"></i></el-button> <el-popconfirm class="ml-5" confirm-button-text='确定' cancel-button-text='我再想想' icon="el-icon-info" icon-color="red" title="您确定删除吗?" @confirm="del(scope.row.id)" > <el-button type="danger" slot="reference">删除 <i class="el-icon-remove-outline"></i></el-button> </el-popconfirm> </template> </el-table-column> </el-table> 添加注释
这段代码是使用 Element UI 的 el-table 组件渲染一个数据表格,其中 tableData 是传入的数据数组。每个 el-table-column 组件代表表格的一列,prop 属性指定列取值的属性名,label 属性指定列的标题,width 属性指定列的宽度,sortable 属性指定该列是否可排序。操作列包括编辑和删除两个按钮,用 el-button 组件实现,编辑按钮点击会触发 handleEdit 方法,删除按钮点击会触发一个带有确认弹窗的 del 方法。整个表格带有斑马纹效果,使用 stripe 属性实现。
阅读全文