赞
踩
目录
用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。
基础的表格展示用法:
当el-table
元素中注入data
对象数组后,在el-table-column
中用prop
属性来对应对象中的键名即可填入数据,用label
属性来定义表格的列名。可以使用width
属性来定义列宽。
- <template>
- <el-table
- :data="tableData"
- style="width: 100%">
- <el-table-column
- prop="date"
- label="日期"
- width="180">
- </el-table-column>
- <el-table-column
- prop="name"
- label="姓名"
- width="180">
- </el-table-column>
- <el-table-column
- prop="address"
- label="地址">
- </el-table-column>
- </el-table>
- </template>
-
- <script>
- export default {
- data() {
- return {
- tableData: [{
- date: '2016-05-02',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1518 弄'
- }, {
- date: '2016-05-04',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1517 弄'
- }, {
- date: '2016-05-01',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1519 弄'
- }, {
- date: '2016-05-03',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1516 弄'
- }]
- }
- }
- }
- </script>
默认情况下,Table 组件是不具有竖直方向的边框的,如果需要,可以使用border
属性,它接受一个Boolean
,设置为true
即可启用。
- <template>
- <el-table
- :data="tableData"
- border
- style="width: 100%">
- <el-table-column
- prop="date"
- label="日期"
- width="180">
- </el-table-column>
- <el-table-column
- prop="name"
- label="姓名"
- width="180">
- </el-table-column>
- <el-table-column
- prop="address"
- label="地址">
- </el-table-column>
- </el-table>
- </template>
数据结构比较复杂的时候,可使用多级表头来展现数据的层次关系。
只需要在 el-table-column 里面嵌套 el-table-column,就可以实现多级表头。
- <template>
- <el-table
- :data="tableData"
- style="width: 100%">
- <el-table-column
- prop="date"
- label="日期"
- width="150">
- </el-table-column>
- <el-table-column label="配送信息">
- <el-table-column
- prop="name"
- label="姓名"
- width="120">
- </el-table-column>
- <el-table-column label="地址">
- <el-table-column
- prop="province"
- label="省份"
- width="120">
- </el-table-column>
- <el-table-column
- prop="city"
- label="市区"
- width="120">
- </el-table-column>
- <el-table-column
- prop="address"
- label="地址"
- width="300">
- </el-table-column>
- <el-table-column
- prop="zip"
- label="邮编"
- width="120">
- </el-table-column>
- </el-table-column>
- </el-table-column>
- </el-table>
- </template>
纵向内容过多时,可选择固定表头。
只要在el-table
元素中定义了height
属性,即可实现固定表头的表格,而不需要额外的代码。
- <template>
- <el-table
- :data="tableData"
- height="250"
- border
- style="width: 100%">
- <el-table-column
- prop="date"
- label="日期"
- width="180">
- </el-table-column>
- <el-table-column
- prop="name"
- label="姓名"
- width="180">
- </el-table-column>
- <el-table-column
- prop="address"
- label="地址">
- </el-table-column>
- </el-table>
- </template>
横向内容过多时,可选择固定列。
固定列需要使用fixed
属性,它接受 Boolean 值或者left
right
,表示左边固定还是右边固定。
- <template>
- <el-table
- :data="tableData"
- border
- style="width: 100%">
- <el-table-column
- fixed
- prop="date"
- label="日期"
- width="150">
- </el-table-column>
- <el-table-column
- prop="name"
- label="姓名"
- width="120">
- </el-table-column>
- <el-table-column
- prop="province"
- label="省份"
- width="120">
- </el-table-column>
- <el-table-column
- prop="city"
- label="市区"
- width="120">
- </el-table-column>
- <el-table-column
- prop="address"
- label="地址"
- width="300">
- </el-table-column>
- <el-table-column
- prop="zip"
- label="邮编"
- width="120">
- </el-table-column>
- <el-table-column
- fixed="right"
- label="操作"
- width="100">
- <template slot-scope="scope">
- <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
- <el-button type="text" size="small">编辑</el-button>
- </template>
- </el-table-column>
- </el-table>
- </template>
横纵内容过多时,可选择固定列和表头。固定列和表头可以同时使用,只需要将上述两个属性分别设置好即可。
选择单行数据时使用色块表示。
Table 组件提供了单选的支持,只需要配置highlight-current-row
属性即可实现单选。之后由current-change
事件来管理选中时触发的事件,它会传入currentRow
,oldCurrentRow
。如果需要显示索引,可以增加一列el-table-column
,设置type
属性为index
即可显示从 1 开始的索引号。
- <template>
- <el-table
- ref="singleTable"
- :data="tableData"
- highlight-current-row
- @current-change="handleCurrentChange"
- style="width: 100%">
- <el-table-column
- type="index"
- width="50">
- </el-table-column>
- <el-table-column
- property="date"
- label="日期"
- width="120">
- </el-table-column>
- <el-table-column
- property="name"
- label="姓名"
- width="120">
- </el-table-column>
- <el-table-column
- property="address"
- label="地址">
- </el-table-column>
- </el-table>
- <div style="margin-top: 20px">
- <el-button @click="setCurrent(tableData[1])">选中第二行</el-button>
- <el-button @click="setCurrent()">取消选择</el-button>
- </div>
- </template>
-
- <script>
- export default {
- data() {
- return {
- tableData: [{
- date: '2016-05-02',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1518 弄'
- }, {
- date: '2016-05-04',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1517 弄'
- }, {
- date: '2016-05-01',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1519 弄'
- }, {
- date: '2016-05-03',
- name: '王小虎',
- address: '上海市普陀区金沙江路 1516 弄'
- }],
- currentRow: null
- }
- },
-
- methods: {
- setCurrent(row) {
- this.$refs.singleTable.setCurrentRow(row);
- },
- handleCurrentChange(val) {
- this.currentRow = val;
- }
- }
- }
- </script>
- <el-table-column label="优先购标签" >
- <template v-slot="scope">
- {{scope.row.preemption === 1 ? '开启' : '关闭'}}
- </template>
- </el-table-column>
- <el-table-column prop="userCommissionInfo" label="交易手续费">
- <template slot-scope="scope">
- <div>一级手续费:{{ scope.row.userCommissionInfo ? scope.row.userCommissionInfo.oneProportion+'%' : ''}}</div>
- <div>二级手续费:{{ scope.row.userCommissionInfo ? scope.row.userCommissionInfo.twoProportion+'%' : ''}}</div>
- <div>转赠手续费:{{ scope.row.userCommissionInfo ? scope.row.userCommissionInfo.giveProportion+'%' : ''}}</div>
- </template>
- </el-table-column>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。