This commit is contained in:
梁灏 2017-09-18 10:33:58 +08:00
parent 71ef48658c
commit 3aca3d56ef
2 changed files with 31 additions and 17 deletions

View file

@ -1,13 +1,16 @@
<template>
<Table border :columns="columns4" :data="data1"></Table>
<div>
<Table highlight-row :columns="columns3" :data="data1" ref="table" @on-current-change="handleChange"></Table>
<Button @click="handleClear">clear</Button>
</div>
</template>
<script>
export default {
data () {
return {
columns4: [
columns3: [
{
type: 'selection',
type: 'index',
width: 60,
align: 'center'
},
@ -28,30 +31,33 @@
{
name: '王小明',
age: 18,
address: '北京市朝阳区芍药居',
_disabled: false,
_checked: true
address: '北京市朝阳区芍药居'
},
{
name: '张小刚',
age: 25,
address: '北京市海淀区西二旗',
_disabled: true
address: '北京市海淀区西二旗'
},
{
name: '李小红',
age: 30,
address: '上海市浦东新区世纪大道',
_disabled: true
address: '上海市浦东新区世纪大道'
},
{
name: '周小伟',
age: 26,
address: '深圳市南山区深南大道',
_disabled: true
address: '深圳市南山区深南大道'
}
]
}
},
methods: {
handleClear () {
this.$refs.table.clearCurrentRow();
},
handleChange (newData, oldData) {
console.log(newData, oldData)
}
}
}
</script>

View file

@ -374,9 +374,8 @@
if (this.disabledHover) return;
this.objData[_index]._isHover = false;
},
highlightCurrentRow (_index) {
if (!this.highlightRow || this.objData[_index]._isHighlight) return;
// highlightCurrentRow clearCurrentRow
handleCurrentRow (type, _index) {
let oldIndex = -1;
for (let i in this.objData) {
if (this.objData[i]._isHighlight) {
@ -384,9 +383,18 @@
this.objData[i]._isHighlight = false;
}
}
this.objData[_index]._isHighlight = true;
if (type === 'highlight') this.objData[_index]._isHighlight = true;
const oldData = oldIndex < 0 ? null : JSON.parse(JSON.stringify(this.cloneData[oldIndex]));
this.$emit('on-current-change', JSON.parse(JSON.stringify(this.cloneData[_index])), oldData);
const newData = type === 'highlight' ? JSON.parse(JSON.stringify(this.cloneData[_index])) : null;
this.$emit('on-current-change', newData, oldData);
},
highlightCurrentRow (_index) {
if (!this.highlightRow || this.objData[_index]._isHighlight) return;
this.handleCurrentRow('highlight', _index);
},
clearCurrentRow () {
if (!this.highlightRow) return;
this.handleCurrentRow('clear');
},
clickCurrentRow (_index) {
this.highlightCurrentRow (_index);