# Table 表格
基础用法
<template>
<plv-table :data="data">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
}
};
</script>
显示代码
对齐方式
列的对齐方式优先于表格的对齐方式,若不设置则按照表格的对齐方式排列。
<template>
<plv-table :data="data" align="left">
<plv-table-column width="100px" title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column align="right" header-align="left" title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
}
};
</script>
显示代码
自定义行 & 列样式
传入 `Function` 时会根据返回值进行样式更改。
<template>
<plv-table :data="data" :row-style="rowStyle" :cell-style="cellStyle">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}],
rowStyle: ({ rowData, rowIndex }) => {
if (rowIndex === 1) {
return {
fontWeight: 'bold'
};
}
},
cellStyle: ({ rowData, rowIndex, columnIndex }) => {
if (rowIndex === 2 && columnIndex === 1) {
return 'background: #2196f3';
}
}
};
}
};
</script>
显示代码
自定义单元格内容
<template>
<plv-table :data="data">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column width="120px" title="封面">
<template slot-scope="scope">
<img :src="scope.rowData.img" class="cover-img" />
</template>
</plv-table-column>
<plv-table-column width="200px" title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
<plv-table-column title="操作">
<span class="delete-btn" @click="handleClick">删除</span>
</plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
orderSn: '0000004',
img: 'http://liveimages.videocc.net/uploaded/images/2020/04/fmuo8m1l29.jpg',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
img: 'http://liveimages.videocc.net/uploaded/images/2020/04/fmuo8m1l29.jpg',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
img: 'http://liveimages.videocc.net/uploaded/images/2020/04/fmuo8m1l29.jpg',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
img: 'http://liveimages.videocc.net/uploaded/images/2020/04/fmuo8m1l29.jpg',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
},
methods: {
handleClick() {
console.log('点击了删除');
}
}
};
</script>
显示代码
单选列
<template>
<plv-table :data="data" :row-key="rowData => rowData.orderSn">
<plv-table-column width="80px" title="选择" type="single" :single-value.sync="orderSn" :single-disabled="singleDisabled"></plv-table-column>
<plv-table-column width="100px" title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
orderSn: '',
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}],
singleDisabled: ({ rowData }) => {
return rowData.orderSn === '0000002';
}
};
}
};
</script>
显示代码
多选列
<template>
<plv-table :data="data" :row-key="rowData => rowData.orderSn">
<plv-table-column width="80px" title="选择" type="multiple" :multiple-value.sync="orderSn"></plv-table-column>
<plv-table-column width="100px" title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
orderSn: [],
data: [{
orderSn: '0000007',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000006',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000005',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
}
};
</script>
显示代码
排序
<template>
<plv-table :data="data" :sort-prop.sync="sortProp" :sort-order.sync="sortOrder" @sort-change="handleSort">
<plv-table-column title="订单号" prop="orderSn" sortable></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount" sortable></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money" sortable></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
sortProp: '',
sortOrder: '',
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
},
methods: {
handleSort({ columnIndex, sortProp, sortOrder }) {
console.log('columnIndex', columnIndex);
console.log('sortProp', sortProp);
console.log('sortOrder', sortOrder);
}
}
};
</script>
显示代码
固定主体高度
<template>
<plv-table :data="data" :height="200">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
const data = [];
for (let i = 0; i < 10; i++) {
data.push({
orderSn: `000000${i + 1}`,
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
});
}
return {
data
};
}
};
</script>
显示代码
固定列
<template>
<plv-table :data="data" :height="350">
<plv-table-column width="200px" fixed="left" title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column width="300px" title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column width="300px" title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column width="200px" title="视频时长" prop="videoTime"></plv-table-column>
<plv-table-column width="100px" title="金额" prop="money"></plv-table-column>
<plv-table-column width="200px" fixed="right" title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
const data = [];
for (let i = 0; i < 10; i++) {
data.push({
orderSn: `000000${i + 1}`,
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
videoTime: '00:20',
createTime: '2019-07-03 14:51'
});
}
return {
data
};
}
};
</script>
显示代码
序号列
<template>
<div>
<plv-table :data="data">
<plv-table-column title="序号" type="index" width="80px" :page-number="pageNumber" :page-size="pageSize"></plv-table-column>
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
<plv-pagination
style="margin-top: 30px"
:total="100"
:page-size.sync="pageSize"
v-model="pageNumber" />
</div>
</template>
<script>
export default {
data() {
const data = [];
const dataItem = {
orderSn: '123123123',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
};
for (let i = 0; i < 10; i++) {
data.push(dataItem);
}
return {
data,
pageNumber: 1,
pageSize: 10,
};
}
};
</script>
显示代码
自定义头部
<template>
<plv-table :data="data">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount">
<template v-slot:header>
<span>我是一个自定义的表格头</span>
</template>
</plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
}
};
</script>
显示代码
使用表单元素
<template>
<div>
<plv-button @click="visible = true">分类管理</plv-button>
<plv-dialog
refresh-on-show
width="720px"
v-model="visible"
title="分类管理">
<plv-table
:data="data"
:height="288">
<plv-table-column title="分类名称" align="left" prop="type">
<div class="type-name-header" slot="header" style="padding-left: 30px;">
分类名称
</div>
<div class="type-name-box" slot-scope="scope">
<template v-if="!scope.rowData.isEdit">
<span v-html="scope.rowData.type"></span>
</template>
<template v-else>
<plv-input
size="small"
v-model="data[scope.rowIndex].newType"
placeholder="请输入分类" />
</template>
</div>
</plv-table-column>
<plv-table-column title="操作" width="120px">
<div class="c-doc-table-btns" slot-scope="scope" v-if="scope.rowIndex !== 0">
<template v-if="!scope.rowData.isEdit">
<span
class="plv-color-link"
@click="openEdit(scope)">修改</span>
<span
class="plv-color-cancel"
@click="handleDelete(scope)">删除</span>
</template>
<template v-else>
<span
class="plv-color-link"
@click="saveEdit(scope)">保存</span>
<span
class="plv-color-cancel"
@click="handleCancel(scope)">取消</span>
</template>
</div>
</plv-table-column>
</plv-table>
</plv-dialog>
</div>
</template>
<script>
export default {
data() {
return {
visible: false,
data: [{
type: '默认分类'
}, {
type: '语文',
newType: '语文',
isEdit: false
}, {
type: '数学',
newType: '数学',
isEdit: false
}, {
type: '英语',
newType: '英语',
isEdit: false
}, {
type: '物理',
newType: '物理',
isEdit: false
}, {
type: '化学',
newType: '化学',
isEdit: false
}, {
type: '生物',
newType: '生物',
isEdit: false
}, {
type: '政治',
newType: '政治',
isEdit: false
}, {
type: '地理',
newType: '地理',
isEdit: false
}, {
type: '历史',
newType: '历史',
isEdit: false
}],
};
},
methods: {
cellStyle({ columnIndex }) {
if (columnIndex === 0) {
return 'padding: 0';
}
},
openEdit({ rowData, rowIndex }) {
this.$set(this.data, rowIndex, {
...rowData,
newType: rowData.type,
isEdit: true
});
},
saveEdit({ rowData, rowIndex }) {
this.$set(this.data, rowIndex, {
...rowData,
type: rowData.newType,
isEdit: false
});
},
handleCancel({ rowData, rowIndex }) {
this.$set(this.data, rowIndex, { ...rowData, isEdit: false });
},
async handleDelete({ rowData, rowIndex }) {
await this.$confirm(`确定要删除分类 - ${rowData.type}吗?`);
this.data.splice(rowIndex, 1);
}
}
};
</script>
<style lang="scss" scoped>
.c-doc-table-btns {
[class^=plv-color] {
margin-left: 8px;
margin-right: 8px;
cursor: pointer;
}
}
.type-name-box {
padding-left: 30px;
position: relative;
.plv-input {
width: 320px;
position: absolute;
top: 50%;
transform: translateY(-50%);
}
}
</style>
显示代码
分页器
<template>
<plv-table :dataSource.sync="dataSource" @pageDataChange="pageDataChange">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
const data = [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}];
export default {
data() {
return {
dataSource: {
contents: data,
pageNumber: 3,
pageSize: 10,
totalItems: 100,
}
};
},
methods: {
pageDataChange(data) {
console.log(data);
}
}
};
</script>
显示代码
空状态
<template>
<plv-table empty-type="video" empty-text="暂无回放视频">
<plv-table-column title="视频名称" />
<plv-table-column title="视频状态" />
<plv-table-column title="时长" />
<plv-table-column title="创建时间" />
</plv-table>
</template>
显示代码
表格头部提示
<template>
<plv-table :data="data">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount" header-tips="这是一个提示"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money" header-tips="这又是一个提示"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
}
};
</script>
显示代码
单元格提示
<template>
<plv-table :data="data">
<plv-table-column title="订单号" prop="orderSn" :cellTips="cellTips"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
cellTips: {
'0000003': '0000003提示',
'0000004': '0000004提示',
},
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
}
};
</script>
显示代码
最小宽度
<template>
<plv-table :data="data">
<plv-table-column title="订单号" prop="orderSn" min-width="120px"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount" min-width="240px"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType" min-width="180px"></plv-table-column>
<plv-table-column title="金额" prop="money" min-width="100px"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime" min-width="180px"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
orderSn: '0000004',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000003',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000002',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}, {
orderSn: '0000001',
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
}]
};
}
};
</script>
显示代码
文本截断提示
<template>
<plv-table :data="data">
<plv-table-column title="文本" width="150px" ellipsis prop="text" />
<plv-table-column title="另一列" prop="other" />
</plv-table>
</template>
<script>
export default {
data() {
return {
data: [{
text: '这是一段超长的文字这是一段超长的文字',
other: '凑合着看'
}, {
text: '这是一段短的文字',
other: '这也是凑合着看'
}]
};
}
};
</script>
显示代码
小型表格
<template>
<plv-table :data="data" size="small">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
const data = [];
for (let i = 0; i < 5; i++) {
data.push({
orderSn: `000000${i + 1}`,
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
});
}
return {
data
};
}
};
</script>
显示代码
简洁模式
<template>
<plv-table :data="data" :height="200" concise size="small">
<plv-table-column title="订单号" prop="orderSn"></plv-table-column>
<plv-table-column title="支付流水账" prop="currentAccount"></plv-table-column>
<plv-table-column title="服务类型" prop="serviceType"></plv-table-column>
<plv-table-column title="金额" prop="money"></plv-table-column>
<plv-table-column title="创建时间" prop="createTime"></plv-table-column>
</plv-table>
</template>
<script>
export default {
data() {
const data = [];
for (let i = 0; i < 5; i++) {
data.push({
orderSn: `000000${i + 1}`,
currentAccount: 'T200P51431286457717338',
serviceType: '导播台 1.2 元/分钟',
money: '¥20.00',
createTime: '2019-07-03 14:51'
});
}
return {
data
};
}
};
</script>
显示代码
Table Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
data | 显示的数据,优先级高于 dataSource 的 contents | Array | - | - |
height | 主体高度 | Number | - | - |
max-height | 主体最大高度 | Number | - | - |
show-header | 是否显示表头 | Boolean | - | - |
row-key | 当前行key值的获取,传入方法时附带(rowData)参数 | String Function | - | - |
row-style | 行的样式,传入方法时附带({ rowData, rowIndex })参数 | Object Function String | - | - |
row-class-name | 行的className,传入方法时附带({ rowData, rowIndex })参数 | String Function Array | - | - |
cell-style | 单元格的样式,传入方法时附带({ rowData, rowIndex, columnIndex })参数 | Object Function String | - | - |
cell-class-name | 单元格的className,传入方法时附带({ rowData, rowIndex, columnIndex })参数 | String Function Array | - | - |
formatter | 格式化单元格内容,传入方法附带参数({ rowData, rowIndex, columnIndex, prop, cellValue }) | Function | - | - |
collapse-color | 是否显示隔行背景颜色 | Boolean | - | true |
align | 表格的对齐方式 | String | center left right | center |
sort-prop | 表格排序字段,需要绑定.sync | String | - | - |
sort-order | 表格排序方式,需要绑定.sync | String | desc asc | - |
empty-text | 空状态的占位文本 | String | - | 暂无数据 |
empty-type | 空状态类型 | String | 同 empty 组件 | normal |
empty-options | 空状态额外参数 | String | - | - |
data-source | 表格资源,支持.sync双向绑定 | Object | - | - |
data-source-field | 表格资源自定义字段 | Object | - | - |
pagination-options | 表格分页器参数,优先级最高 | Object | - | - |
size | 表格尺寸 | String | small | - |
concise | 简洁模式 | Boolean | - | false |
dataSourceField
默认字段名 { contents: 'contents', pageNumber: 'pageNumber', pageSize: 'pageSize', totalItems: 'totalItems' }
Table Methods
方法名 | 说明 | 参数 |
---|---|---|
clearSelection | 多选表格下清空所有选择 | - |
toggleRowSelection | 多选表格下设置某一行的选中状态 | rowIndex: Number, selected: Boolean = true |
toggleAllSelection | 多选表格下设置所有行为选中状态 | - |
toggleRowRadio | 单选表格下切换到某一行为选中状态 | rowIndex: Number |
Table Events
事件名称 | 说明 | 回调参数 |
---|---|---|
cellClick | 单元格点击时触发 | { rowData, rowIndex, columnIndex, prop, event } |
rowClick | 行被点击时触发 | { rowData, rowIndex, event } |
headerClick | 某一列的表头被点击时触发 | { columnIndex, prop, event } |
sortChange | 表格排序条件发生改变时触发 | { columnIndex, sortProp, sortOrder } |
currentPageChange | 表格分页器当前页数被改变 | 当前页 |
pageSizeChange | 表格分页器每页数量被改变 | 每页数量 |
pageDataChange | 表格分页数据被改变,即当前页或每页数量被改变 | { currentPage, pageNumber, pageSize } |
body-scroll | 表格主体滚动事件 | target |
Table Slot
name | 说明 |
---|---|
emptyPicture | 空状态图片位置插槽 |
emptyDescription | 空状态描述文案插槽 |
Table-column Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 列的类型, multiple: 复选列, single: 单选列, index: 序号列 | String | multiple single index | - |
title | 列的标题 | String | - | - |
prop | 对应列内容的字段名 | String | - | - |
width | 列宽 | String | - | - |
sortable | 该列是否可以排序 | String | - | false |
fixed | 固定列 | String | left right | - |
ellipsis | 过长时是否隐藏 | Boolean | - | false |
align | 该列的对齐方式,不设置则默认为表格对齐方式 | String | center left right | - |
header-align | 表头对齐方式,不设置则默认为列的对齐方式 | String | center left right | - |
multiple-value | 多选时选中的值,需要绑定.sync | Array | - | - |
multiple-disabled | 列为复选列时控制该行是否禁用复选框,类型为Function,传入参数({ rowData, rowIndex }),返回布尔值 | Function | - | - |
multiple-header-visible | 该列标题栏是否显示全选选择框 | Boolean | - | true |
single-value | 单选时选中的值,需要绑定.sync | String Number | - | - |
single-disabled | 列为单选列时控制该行是否禁用单选框,类型为Function,传入参数({ rowData, rowIndex }),返回布尔值 | Function | - | - |
page-number | 序号列时的当前页 | Number | - | 1 |
page-size | 序号列时的每页数量 | Number | - | 10 |
header-tips | 表格头部提示 | String | - | - |
header-tips-options | 表格头部提示tooltip额外参数 | Object | - | - |
header-tips-icon | 表格头部提示图标 | String | - | info-circle |
cell-tips | 单元格提示 | String Object Function({ rowData, rowIndex, column, columnIndex, prop }) | - | - |
cell-tips-options | 单元格提示tooltip额外参数 | Object | - | - |
min-width | 最小宽度,会将剩余宽度均分给没设置宽度的列,若均分后列的宽度小于 min-width 时会将该值设置为该列的宽度 | String Number | - | 0 |
ellipsis-tips | 文本过长时,鼠标移入是否显示气泡提示 | Boolean | - | true |
ellipsis-tips-options | 文本过长截断时的气泡提示参数 | Object | - | - |
Table-column Events
事件名称 | 说明 | 回调参数 |
---|---|---|
multipleChange | 多选下用户点击行的checkbox或全选时触发 | { multipleValue, rowData, rowIndex, checked } |
singleChange | 单选下用户点击行的radio时触发 | { singleValue, rowData, rowIndex } |
Table-column Slot
name | 说明 |
---|---|
- | 自定义该列单元格内容,参数:{ rowData, rowIndex, columnIndex } |
header | 自定义该列的表头内容,参数:{ columnIndex } |