bash
<template>
<el-table :data="data" :height="height" border @row-click="rowTab">
<el-table-column v-if="noIndex" type="index" align='center' width="120" label="序号"></el-table-column>
<template v-for="item in column">
<el-table-column
v-if="item.slot"
:key="item.prop"
:prop="item.prop"
:label="item.label"
:width="item.width"
:align="item.align">
<template v-slot:default="scope">
<slot
:scope="scope"
:name="item.prop">
</slot>
</template>
</el-table-column>
<el-table-column
v-else
:key="item.prop"
:prop="item.prop"
:label="item.label"
:width="item.width"
:type="item.type"
:align="item.align">
</el-table-column>
</template>
</el-table>
</template>
<script>
export default {
name: '',
props: {
data:{
type: Array,
required: true,
default() {
return []
}
},
column: {
type: Array,
required: true,
default() {
return []
}
},
height:{
type:Number
},
noIndex:{
type:Boolean,
default() {
return true
}
}
},
methods:{
rowTab(row){
this.$emit("rowClick", row);
}
}
}
</script>
使用
bash
<zTable :data="tabledata" :column="column" :height="tableHeight" style="width: 100%">
<template v-slot:status="{scope}">
<p v-if="scope.row.status==1" ><span></span>有效</p>
</template>
<template v-slot:index="{scope}">
<el-button type="primary" icon="el-icon-view" circle @click="See(scope.$index,scope.row)"></el-button>
</template>
</zTable>
参数
bash
this.column = [
{prop: 'name', label: '名称',align:"center"},
{prop: 'status', label: '状态',align:"center",slot:true,width:150},
]