mirror of https://github.com/ElemeFE/element
Transfer: add left-check-change and right-check-change (#10156)
parent
1238dbf997
commit
8eaf600044
|
@ -288,3 +288,5 @@ By default, Transfer looks for `key`, `label` and `disabled` in a data item. If
|
||||||
| Event Name | Description | Parameters |
|
| Event Name | Description | Parameters |
|
||||||
|---------- |-------- |---------- |
|
|---------- |-------- |---------- |
|
||||||
| change | triggers when data items change in the right list | key array of current data items in the right list, transfer direction (left or right), moved item keys |
|
| change | triggers when data items change in the right list | key array of current data items in the right list, transfer direction (left or right), moved item keys |
|
||||||
|
| left-check-change | triggers when end user changes the checked state of any data item in the left list | key array of currently checked items, key array of items whose checked state have changed |
|
||||||
|
| right-check-change | triggers when end user changes the checked state of any data item in the right list | key array of currently checked items, key array of items whose checked state have changed |
|
||||||
|
|
|
@ -289,4 +289,5 @@ Por defecto Transfer busca los atributos `key`, `label`, y `disabled` en cada el
|
||||||
| Nombre | Descripcion | Parametros |
|
| Nombre | Descripcion | Parametros |
|
||||||
| ------ | ---------------------------------------- | ---------------------------------------- |
|
| ------ | ---------------------------------------- | ---------------------------------------- |
|
||||||
| change | se lanzá cuando los elementos cambian en la lista de la derecha | array con las claves de los elementos de la lista de la derecha |
|
| change | se lanzá cuando los elementos cambian en la lista de la derecha | array con las claves de los elementos de la lista de la derecha |
|
||||||
|
| left-check-change | triggers when end user changes the checked state of any data item in the left list | key array of currently checked items, key array of items whose checked state have changed |
|
||||||
|
| right-check-change | triggers when end user changes the checked state of any data item in the right list | key array of currently checked items, key array of items whose checked state have changed |
|
||||||
|
|
|
@ -285,3 +285,5 @@
|
||||||
| 事件名称 | 说明 | 回调参数 |
|
| 事件名称 | 说明 | 回调参数 |
|
||||||
|---------- |-------- |---------- |
|
|---------- |-------- |---------- |
|
||||||
| change | 右侧列表元素变化时触发 | 当前值、数据移动的方向('left' / 'right')、发生移动的数据 key 数组 |
|
| change | 右侧列表元素变化时触发 | 当前值、数据移动的方向('left' / 'right')、发生移动的数据 key 数组 |
|
||||||
|
| left-check-change | 左侧列表元素被用户选中 / 取消选中时触发 | 当前被选中的元素的 key 数组、选中状态发生变化的元素的 key 数组 |
|
||||||
|
| right-check-change | 右侧列表元素被用户选中 / 取消选中时触发 | 当前被选中的元素的 key 数组、选中状态发生变化的元素的 key 数组 |
|
||||||
|
|
|
@ -167,12 +167,16 @@
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
onSourceCheckedChange(val) {
|
onSourceCheckedChange(val, movedKeys) {
|
||||||
this.leftChecked = val;
|
this.leftChecked = val;
|
||||||
|
if (movedKeys === undefined) return;
|
||||||
|
this.$emit('left-check-change', val, movedKeys);
|
||||||
},
|
},
|
||||||
|
|
||||||
onTargetCheckedChange(val) {
|
onTargetCheckedChange(val, movedKeys) {
|
||||||
this.rightChecked = val;
|
this.rightChecked = val;
|
||||||
|
if (movedKeys === undefined) return;
|
||||||
|
this.$emit('right-check-change', val, movedKeys);
|
||||||
},
|
},
|
||||||
|
|
||||||
addToLeft() {
|
addToLeft() {
|
||||||
|
|
|
@ -112,14 +112,22 @@
|
||||||
checked: [],
|
checked: [],
|
||||||
allChecked: false,
|
allChecked: false,
|
||||||
query: '',
|
query: '',
|
||||||
inputHover: false
|
inputHover: false,
|
||||||
|
checkChangeByUser: true
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
checked(val) {
|
checked(val, oldVal) {
|
||||||
this.updateAllChecked();
|
this.updateAllChecked();
|
||||||
this.$emit('checked-change', val);
|
if (this.checkChangeByUser) {
|
||||||
|
const movedKeys = val.concat(oldVal)
|
||||||
|
.filter(v => val.indexOf(v) === -1 || oldVal.indexOf(v) === -1);
|
||||||
|
this.$emit('checked-change', val, movedKeys);
|
||||||
|
} else {
|
||||||
|
this.$emit('checked-change', val);
|
||||||
|
this.checkChangeByUser = true;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
@ -130,6 +138,7 @@
|
||||||
checked.push(item);
|
checked.push(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this.checkChangeByUser = false;
|
||||||
this.checked = checked;
|
this.checked = checked;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -149,6 +158,7 @@
|
||||||
checked.push(item);
|
checked.push(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
this.checkChangeByUser = false;
|
||||||
this.checked = checked;
|
this.checked = checked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue