Commit 725af9d1 authored by 杨奕's avatar 杨奕 Committed by GitHub

Pagination: trigger current-change event on user input (#10247)

parent 674f8648
...@@ -388,7 +388,7 @@ ...@@ -388,7 +388,7 @@
- Steps - Steps
- 移除 `center` 属性 - 移除 `center` 属性
- 现在步骤条将默认充满父容器 - 现在步骤条将默认充满父容器
- DatePicker - DatePicker
- `change` 事件参数现在为组件的绑定值,格式由 `value-format` 控制 - `change` 事件参数现在为组件的绑定值,格式由 `value-format` 控制
- Table - Table
- 移除通过 `inline-template` 自定义列模板的功能 - 移除通过 `inline-template` 自定义列模板的功能
......
...@@ -50,7 +50,9 @@ export default { ...@@ -50,7 +50,9 @@ export default {
data() { data() {
return { return {
internalCurrentPage: 1, internalCurrentPage: 1,
internalPageSize: 0 internalPageSize: 0,
lastEmittedPage: -1,
userChangePageSize: false
}; };
}, },
...@@ -194,6 +196,7 @@ export default { ...@@ -194,6 +196,7 @@ export default {
handleChange(val) { handleChange(val) {
if (val !== this.$parent.internalPageSize) { if (val !== this.$parent.internalPageSize) {
this.$parent.internalPageSize = val = parseInt(val, 10); this.$parent.internalPageSize = val = parseInt(val, 10);
this.$parent.userChangePageSize = true;
this.$parent.$emit('size-change', val); this.$parent.$emit('size-change', val);
} }
} }
...@@ -234,6 +237,7 @@ export default { ...@@ -234,6 +237,7 @@ export default {
}, },
handleChange(value) { handleChange(value) {
this.$parent.internalCurrentPage = this.$parent.getValidCurrentPage(value); this.$parent.internalCurrentPage = this.$parent.getValidCurrentPage(value);
this.$parent.emitChange();
this.oldValue = null; this.oldValue = null;
this.resetValueIfNeed(value); this.resetValueIfNeed(value);
}, },
...@@ -295,18 +299,21 @@ export default { ...@@ -295,18 +299,21 @@ export default {
methods: { methods: {
handleCurrentChange(val) { handleCurrentChange(val) {
this.internalCurrentPage = this.getValidCurrentPage(val); this.internalCurrentPage = this.getValidCurrentPage(val);
this.emitChange();
}, },
prev() { prev() {
if (this.disabled) return; if (this.disabled) return;
const newVal = this.internalCurrentPage - 1; const newVal = this.internalCurrentPage - 1;
this.internalCurrentPage = this.getValidCurrentPage(newVal); this.internalCurrentPage = this.getValidCurrentPage(newVal);
this.emitChange();
}, },
next() { next() {
if (this.disabled) return; if (this.disabled) return;
const newVal = this.internalCurrentPage + 1; const newVal = this.internalCurrentPage + 1;
this.internalCurrentPage = this.getValidCurrentPage(newVal); this.internalCurrentPage = this.getValidCurrentPage(newVal);
this.emitChange();
}, },
getValidCurrentPage(value) { getValidCurrentPage(value) {
...@@ -332,6 +339,15 @@ export default { ...@@ -332,6 +339,15 @@ export default {
} }
return resetValue === undefined ? value : resetValue; return resetValue === undefined ? value : resetValue;
},
emitChange() {
this.$nextTick(() => {
if (this.internalCurrentPage !== this.lastEmittedPage) {
this.$emit('current-change', this.internalCurrentPage);
this.lastEmittedPage = this.internalCurrentPage;
}
});
} }
}, },
...@@ -376,12 +392,10 @@ export default { ...@@ -376,12 +392,10 @@ export default {
this.internalCurrentPage = newVal; this.internalCurrentPage = newVal;
if (oldVal !== newVal) { if (oldVal !== newVal) {
this.$emit('update:currentPage', newVal); this.$emit('update:currentPage', newVal);
this.$emit('current-change', this.internalCurrentPage);
} }
}); });
} else { } else {
this.$emit('update:currentPage', newVal); this.$emit('update:currentPage', newVal);
this.$emit('current-change', this.internalCurrentPage);
} }
}, },
...@@ -392,7 +406,9 @@ export default { ...@@ -392,7 +406,9 @@ export default {
this.internalCurrentPage = 1; this.internalCurrentPage = 1;
} else if (oldPage > newVal) { } else if (oldPage > newVal) {
this.internalCurrentPage = newVal === 0 ? 1 : newVal; this.internalCurrentPage = newVal === 0 ? 1 : newVal;
this.userChangePageSize && this.emitChange();
} }
this.userChangePageSize = false;
} }
} }
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment