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> <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> </template>
<script> <script>
export default { export default {
data () { data () {
return { return {
columns4: [ columns3: [
{ {
type: 'selection', type: 'index',
width: 60, width: 60,
align: 'center' align: 'center'
}, },
@ -28,30 +31,33 @@
{ {
name: '王小明', name: '王小明',
age: 18, age: 18,
address: '北京市朝阳区芍药居', address: '北京市朝阳区芍药居'
_disabled: false,
_checked: true
}, },
{ {
name: '张小刚', name: '张小刚',
age: 25, age: 25,
address: '北京市海淀区西二旗', address: '北京市海淀区西二旗'
_disabled: true
}, },
{ {
name: '李小红', name: '李小红',
age: 30, age: 30,
address: '上海市浦东新区世纪大道', address: '上海市浦东新区世纪大道'
_disabled: true
}, },
{ {
name: '周小伟', name: '周小伟',
age: 26, age: 26,
address: '深圳市南山区深南大道', address: '深圳市南山区深南大道'
_disabled: true
} }
] ]
} }
},
methods: {
handleClear () {
this.$refs.table.clearCurrentRow();
},
handleChange (newData, oldData) {
console.log(newData, oldData)
}
} }
} }
</script> </script>

View file

@ -374,9 +374,8 @@
if (this.disabledHover) return; if (this.disabledHover) return;
this.objData[_index]._isHover = false; this.objData[_index]._isHover = false;
}, },
highlightCurrentRow (_index) { // highlightCurrentRow clearCurrentRow
if (!this.highlightRow || this.objData[_index]._isHighlight) return; handleCurrentRow (type, _index) {
let oldIndex = -1; let oldIndex = -1;
for (let i in this.objData) { for (let i in this.objData) {
if (this.objData[i]._isHighlight) { if (this.objData[i]._isHighlight) {
@ -384,9 +383,18 @@
this.objData[i]._isHighlight = false; 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])); 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) { clickCurrentRow (_index) {
this.highlightCurrentRow (_index); this.highlightCurrentRow (_index);