commit
183ab50e0c
6 changed files with 39 additions and 14 deletions
|
@ -13,7 +13,7 @@
|
|||
</button>
|
||||
<ul :class="dotsClasses">
|
||||
<template v-for="n in slides.length">
|
||||
<li :class="{ [`${prefixCls}-active`]: n === currentIndex }"
|
||||
<li :class="[n === currentIndex ? prefixCls+'-active':'' ]"
|
||||
@click="dotsEvent('click', n)"
|
||||
@mouseover="dotsEvent('hover', n)">
|
||||
<button></button>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div :class="classes">
|
||||
<template v-if="renderType === 'index'">{{naturalIndex + 1}}</template>
|
||||
<template v-if="renderType === 'selection'">
|
||||
<Checkbox :checked="checked" @on-change="toggleSelect"></Checkbox>
|
||||
<Checkbox :checked="checked" @on-change="toggleSelect" :disabled="disabled"></Checkbox>
|
||||
</template>
|
||||
<template v-if="renderType === 'normal'">{{{ row[column.key] }}}</template>
|
||||
</div>
|
||||
|
@ -19,6 +19,7 @@
|
|||
naturalIndex: Number, // index of rebuildData
|
||||
index: Number, // _index of data
|
||||
checked: Boolean,
|
||||
disabled: Boolean,
|
||||
fixed: {
|
||||
type: [Boolean, String],
|
||||
default: false
|
||||
|
|
|
@ -19,7 +19,9 @@
|
|||
:column="column"
|
||||
:natural-index="index"
|
||||
:index="row._index"
|
||||
:checked="rowChecked(row._index)"></Cell>
|
||||
:checked="rowChecked(row._index)"
|
||||
:disabled="rowDisabled(row._index)"
|
||||
></Cell>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -58,6 +60,9 @@
|
|||
rowChecked (_index) {
|
||||
return this.objData[_index] && this.objData[_index]._isChecked;
|
||||
},
|
||||
rowDisabled(_index){
|
||||
return this.objData[_index] && this.objData[_index]._isDisabled;
|
||||
},
|
||||
rowClsName (_index) {
|
||||
return this.$parent.rowClassName(this.objData[_index], _index);
|
||||
},
|
||||
|
|
|
@ -85,9 +85,8 @@
|
|||
isSelectAll () {
|
||||
let isSelectAll = true;
|
||||
if (!this.data.length) isSelectAll = false;
|
||||
|
||||
for (let i = 0; i < this.data.length; i++) {
|
||||
if (!this.objData[this.data[i]._index]._isChecked) {
|
||||
if (!this.objData[this.data[i]._index]._isChecked && !this.objData[this.data[i]._index]._isDisabled) {
|
||||
isSelectAll = false;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -391,10 +391,21 @@
|
|||
this.$emit('on-selection-change', selection);
|
||||
},
|
||||
selectAll (status) {
|
||||
this.rebuildData.forEach((data) => {
|
||||
this.objData[data._index]._isChecked = status;
|
||||
});
|
||||
// this.rebuildData.forEach((data) => {
|
||||
// if(this.objData[data._index]._isDisabled){
|
||||
// this.objData[data._index]._isChecked = false;
|
||||
// }else{
|
||||
// this.objData[data._index]._isChecked = status;
|
||||
// }
|
||||
|
||||
// });
|
||||
for(const data of this.rebuildData){
|
||||
if(this.objData[data._index]._isDisabled){
|
||||
continue;
|
||||
}else{
|
||||
this.objData[data._index]._isChecked = status;
|
||||
}
|
||||
}
|
||||
const selection = this.getSelection();
|
||||
if (status) {
|
||||
this.$emit('on-select-all', selection);
|
||||
|
@ -548,6 +559,11 @@
|
|||
this.data.forEach((row, index) => {
|
||||
const newRow = deepCopy(row);// todo 直接替换
|
||||
newRow._isHover = false;
|
||||
if(newRow._disabled){
|
||||
newRow._isDisabled = newRow._disabled;
|
||||
}else{
|
||||
newRow._isDisabled = false;
|
||||
}
|
||||
if (newRow._checked) {
|
||||
newRow._isChecked = newRow._checked;
|
||||
} else {
|
||||
|
|
|
@ -54,25 +54,29 @@
|
|||
age: 18,
|
||||
address: '北京市朝阳区芍药居',
|
||||
_highlight: true,
|
||||
_checked: true
|
||||
_checked: true,
|
||||
_disabled: false
|
||||
},
|
||||
{
|
||||
name: '张小刚',
|
||||
age: 25,
|
||||
address: '北京市海淀区西二旗',
|
||||
_checked: true
|
||||
_checked: false,
|
||||
_disabled: true
|
||||
},
|
||||
{
|
||||
name: '李小红',
|
||||
age: 30,
|
||||
address: '上海市浦东新区世纪大道',
|
||||
_checked: true
|
||||
_checked: true,
|
||||
_disabled: true
|
||||
},
|
||||
{
|
||||
name: '周小伟',
|
||||
age: 26,
|
||||
address: '深圳市南山区深南大道',
|
||||
_checked: true
|
||||
_checked: false,
|
||||
_disabled: false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue