05做一个选择按钮的表格
ref="multipleTable"
添加到 <el-table ></el-table> 中
暂时不知道有啥子用
02==》如果要在表格中添加 选择框按钮
就会必须在 <el-table ></el-table>中添加一个点击事件
@selection-change="handleSelectionChange"
<el-table ref="multipleTable"
:data="tableData"
stripe
style=" 100%"
@selection-change="handleSelectionChange"
class="base-table">
03==》子传父的时候
父组件里面的方法不要添加括号
@on-handleSelection="getSelectValue()" x
@on-handleSelection="getSelectValue" v
04==》是否显示 多选框 通过v-if="ifShowSelect"
<el-table-column
v-if="ifShowSelect"
type="selection"
width="55">
</el-table-column>
props: {
ifShowSelect:Boolean,
},
<template> <el-table ref="multipleTable" :data="tableData" stripe style=" 100%" @selection-change="handleSelectionChangevalue" class="base-table"> <el-table-column v-if="ifShowSelect" type="selection" width="55"> </el-table-column> <el-table-column v-for="item in tabColumn" :key="item.prop" :prop="item.prop" :label="item.label" :align="item.align" empty-text="暂无数据" ></el-table-column> <!-- 操作下面的数据 --> <el-table-column align="center" width="60" label="操作"> <template slot-scope="scope"> <div class="tableColumn-control"> <i v-if="!scope.row.showBtn" @mouseenter="handleMouseEnter(scope.row)" class="iconfont icon-more"></i> <div :class="{single:single}" v-else @mouseleave="handleMouseLeave(scope.row)"> <span v-if="!single" @click="handleStop(scope.row)"> <a v-if="scope.row.status == 0">停用</a> <a v-else>启用</a> </span> <span @click="handleEdit(scope)">编辑</span> </div> </div> </template> </el-table-column> </el-table> </template> <script> export default { data() { return { // 多选数据 multipleSelection: [] }; }, props: { // 传递过来的值 tableData: { type: Array, //数组类型 required: true //必须值 }, // 字段样式 tabColumn: { type: Array, required: true }, single:Boolean, ifShowSelect:Boolean, }, methods:{ /* 鼠标移入移除 */ handleMouseEnter(row){ row.showBtn = true }, handleMouseLeave(row){ row.showBtn = false }, // handleStop(row){ this.$emit("on-stop",row) }, // 编辑 handleEdit(row){ this.$emit("on-edit",row) }, // 选择框中的 handleSelectionChangevalue(val) { // this.multipleSelection = val; //val是获取的值 this.$emit("on-handleSelection",val) } } }; </script> <style lang="scss" scoped> .base-table { .tableColumn-control { height: 50px; line-height: 50px; i { color: #487ff6; cursor: pointer; } span { display: inline-block; cursor: pointer; &:last-child { color: #487ff6; margin-left: 10px; } } div { text-align: center; background: #D0E9FF; position: absolute; z-index: 999; left: -40px; top: 0; 100px; &.single { 60px; left: 0; span { margin-left: 0px; } } } } } </style> <style> .base-table.el-table td { padding: 0; } </style>
<template>
<div>
<mytab
:ifShowSelect="ifShowSelect"
:tableData="tableData"
:tabColumn="tabColumn"
@on-stop="sonGiveChange"
@on-edit="sonGiveStop"
@on-handleSelection="getSelectValue">
</mytab>
</div>
</template>
<script>
import mytab from "../../../components/my-tab";
export default {
data() {
return {
// 表格数据
tableData: [
{
date: "2016-05-02",
name: "王小虎",
address: "上海市 1518 弄",
tel: "18383838",
showBtn: false
},
{
date: "2016-05-04",
name: "小玩法",
address: "上海市普陀1517 弄",
tel: "18383838",
showBtn: false
},
{
date: "2016-05-01",
name: "王小",
address: "上海市普陀1519 弄",
tel: "18383838",
showBtn: false
},
{
date: "2016-05-03",
name: "王虎",
address: "上海市普陀区1516 弄",
tel: "18383838",
showBtn: false
}
],
// 字段数组
tabColumn: [
{
prop: "date",
label: "日期",
align: "left",
showBtn: "false"
},
{
prop: "name",
label: "姓名",
align: "center",
showBtn: "false"
},
{
prop: "address",
label: "地址",
align: "center",
showBtn: "false"
},
{
prop: "tel",
label: "电话",
align: "center",
showBtn: "true"
}
],
ifShowSelect:true, //是否显示多选框 true==》显示
};
},
components: {
mytab
},
methods: {
sonGiveChange(vale) {
console.log("儿子传递给我的方法",vale);
},
sonGiveStop(value){
console.log("儿子传递给我的编辑方法",value);
},
getSelectValue(value){
console.log("儿子传递给我的多选框数据",value)
}
}
};
</script>
<style scoped>
/* http://localhost:8080/#/basic/Layout/my-ys-table */
</style>
