From 7409be8ce1164cb8e5a80a2d8db1c4f51dc21580 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E5=A5=95?=
 <Leopoldthecoder@users.noreply.github.com>
Date: Fri, 4 May 2018 15:32:23 +0800
Subject: [PATCH] Pagination: emit current-change after current page is
 manually updated (#11012)

---
 packages/pagination/src/pagination.js |  1 +
 test/unit/specs/pagination.spec.js    | 32 +++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/packages/pagination/src/pagination.js b/packages/pagination/src/pagination.js
index 5b443090f..49f8ab417 100644
--- a/packages/pagination/src/pagination.js
+++ b/packages/pagination/src/pagination.js
@@ -408,6 +408,7 @@ export default {
         } else {
           this.$emit('update:currentPage', newVal);
         }
+        this.lastEmittedPage = -1;
       }
     },
 
diff --git a/test/unit/specs/pagination.spec.js b/test/unit/specs/pagination.spec.js
index d3424f60f..8858f8719 100644
--- a/test/unit/specs/pagination.spec.js
+++ b/test/unit/specs/pagination.spec.js
@@ -306,6 +306,38 @@ describe('Pagination', () => {
     }, 50);
   });
 
+  it('event:current-change after current page is manually updated', (done) => {
+    vm = createVue({
+      template: `
+        <el-pagination
+          :total="15"
+          :current-page.sync="currentPage"
+          @current-change="emitCount++" />
+      `,
+
+      data() {
+        return {
+          emitCount: 0,
+          currentPage: 1
+        };
+      }
+    });
+    const next = vm.$el.querySelector('button.btn-next');
+    next.click();
+    setTimeout(() => {
+      expect(vm.emitCount).to.equal(1);
+      vm.currentPage = 1;
+      setTimeout(() => {
+        expect(vm.emitCount).to.equal(1);
+        next.click();
+        setTimeout(() => {
+          expect(vm.emitCount).to.equal(2);
+          done();
+        }, 50);
+      }, 50);
+    }, 50);
+  });
+
   it('event:size-change', done => {
     vm = createVue({
       template: `