已解决
element-ui 封装 表格
来自网友在路上 176876提问 提问时间:2023-11-12 19:28:40阅读次数: 76
最佳答案 问答题库768位专家为你答疑解惑
一、封装表格组件
<template><el-table :data="list" :default-sort="{ prop: 'date' }" style="width: 100%"><template v-for="item in tableColumn"><el-table-columnv-if="item.filters":prop="item.prop":label="item.label":sortable="item.sortable":filters="item.filters":filter-method="filterHandler(item.filterMethod)"/><el-table-columnv-if="!item.filters":prop="item.prop":label="item.label":sortable="item.sortable"/></template></el-table>
</template><script scoped>
export default {data() {return {list: [],tableColumn: [],};},props: {data: {type: Array,default: [],},column: {type: Array,default: [],},},watch: {data: {immediate: true,deep: true,handler(val) {if (val.length) {this.list = JSON.parse(JSON.stringify(val));}},},column: {immediate: true,deep: true,handler(val) {if (val.length) {this.tableColumn = JSON.parse(JSON.stringify(val));}},},},methods: {// 如果没传,那么默认等值判断filterHandler(filterMethod) {if (filterMethod) {return item.filterMethod;} else {return (value, row, column) => {const property = column["property"];return row[property] === value;};}},},
};
</script>
二、使用方法
<template><div id="app"><Tabel :data="data" :column="column" /></div>
</template><script>
import Tabel from "@/components/Tabel.vue";
export default {components: { Tabel },data() {return {column: [{label: "日期",prop: "date",sortable: true,},{label: "姓名",prop: "name",filters: [{ text: "王小龙", value: "王小龙" }],},{label: "地址",prop: "address",},],data: [{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>
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"element-ui 封装 表格":http://eshow365.cn/6-38353-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!