pagination.js 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000
  1. module.exports =
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = {};
  5. /******/
  6. /******/ // The require function
  7. /******/ function __webpack_require__(moduleId) {
  8. /******/
  9. /******/ // Check if module is in cache
  10. /******/ if(installedModules[moduleId]) {
  11. /******/ return installedModules[moduleId].exports;
  12. /******/ }
  13. /******/ // Create a new module (and put it into the cache)
  14. /******/ var module = installedModules[moduleId] = {
  15. /******/ i: moduleId,
  16. /******/ l: false,
  17. /******/ exports: {}
  18. /******/ };
  19. /******/
  20. /******/ // Execute the module function
  21. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  22. /******/
  23. /******/ // Flag the module as loaded
  24. /******/ module.l = true;
  25. /******/
  26. /******/ // Return the exports of the module
  27. /******/ return module.exports;
  28. /******/ }
  29. /******/
  30. /******/
  31. /******/ // expose the modules object (__webpack_modules__)
  32. /******/ __webpack_require__.m = modules;
  33. /******/
  34. /******/ // expose the module cache
  35. /******/ __webpack_require__.c = installedModules;
  36. /******/
  37. /******/ // define getter function for harmony exports
  38. /******/ __webpack_require__.d = function(exports, name, getter) {
  39. /******/ if(!__webpack_require__.o(exports, name)) {
  40. /******/ Object.defineProperty(exports, name, {
  41. /******/ configurable: false,
  42. /******/ enumerable: true,
  43. /******/ get: getter
  44. /******/ });
  45. /******/ }
  46. /******/ };
  47. /******/
  48. /******/ // getDefaultExport function for compatibility with non-harmony modules
  49. /******/ __webpack_require__.n = function(module) {
  50. /******/ var getter = module && module.__esModule ?
  51. /******/ function getDefault() { return module['default']; } :
  52. /******/ function getModuleExports() { return module; };
  53. /******/ __webpack_require__.d(getter, 'a', getter);
  54. /******/ return getter;
  55. /******/ };
  56. /******/
  57. /******/ // Object.prototype.hasOwnProperty.call
  58. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  59. /******/
  60. /******/ // __webpack_public_path__
  61. /******/ __webpack_require__.p = "/dist/";
  62. /******/
  63. /******/ // Load entry module and return exports
  64. /******/ return __webpack_require__(__webpack_require__.s = 54);
  65. /******/ })
  66. /************************************************************************/
  67. /******/ ({
  68. /***/ 0:
  69. /***/ (function(module, exports) {
  70. /* globals __VUE_SSR_CONTEXT__ */
  71. // IMPORTANT: Do NOT use ES2015 features in this file.
  72. // This module is a runtime utility for cleaner component module output and will
  73. // be included in the final webpack user bundle.
  74. module.exports = function normalizeComponent (
  75. rawScriptExports,
  76. compiledTemplate,
  77. functionalTemplate,
  78. injectStyles,
  79. scopeId,
  80. moduleIdentifier /* server only */
  81. ) {
  82. var esModule
  83. var scriptExports = rawScriptExports = rawScriptExports || {}
  84. // ES6 modules interop
  85. var type = typeof rawScriptExports.default
  86. if (type === 'object' || type === 'function') {
  87. esModule = rawScriptExports
  88. scriptExports = rawScriptExports.default
  89. }
  90. // Vue.extend constructor export interop
  91. var options = typeof scriptExports === 'function'
  92. ? scriptExports.options
  93. : scriptExports
  94. // render functions
  95. if (compiledTemplate) {
  96. options.render = compiledTemplate.render
  97. options.staticRenderFns = compiledTemplate.staticRenderFns
  98. options._compiled = true
  99. }
  100. // functional template
  101. if (functionalTemplate) {
  102. options.functional = true
  103. }
  104. // scopedId
  105. if (scopeId) {
  106. options._scopeId = scopeId
  107. }
  108. var hook
  109. if (moduleIdentifier) { // server build
  110. hook = function (context) {
  111. // 2.3 injection
  112. context =
  113. context || // cached call
  114. (this.$vnode && this.$vnode.ssrContext) || // stateful
  115. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  116. // 2.2 with runInNewContext: true
  117. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  118. context = __VUE_SSR_CONTEXT__
  119. }
  120. // inject component styles
  121. if (injectStyles) {
  122. injectStyles.call(this, context)
  123. }
  124. // register component module identifier for async chunk inferrence
  125. if (context && context._registeredComponents) {
  126. context._registeredComponents.add(moduleIdentifier)
  127. }
  128. }
  129. // used by ssr in case component is cached and beforeCreate
  130. // never gets called
  131. options._ssrRegister = hook
  132. } else if (injectStyles) {
  133. hook = injectStyles
  134. }
  135. if (hook) {
  136. var functional = options.functional
  137. var existing = functional
  138. ? options.render
  139. : options.beforeCreate
  140. if (!functional) {
  141. // inject component registration as beforeCreate hook
  142. options.beforeCreate = existing
  143. ? [].concat(existing, hook)
  144. : [hook]
  145. } else {
  146. // for template-only hot-reload because in that case the render fn doesn't
  147. // go through the normalizer
  148. options._injectStyles = hook
  149. // register for functioal component in vue file
  150. options.render = function renderWithStyleInjection (h, context) {
  151. hook.call(context)
  152. return existing(h, context)
  153. }
  154. }
  155. }
  156. return {
  157. esModule: esModule,
  158. exports: scriptExports,
  159. options: options
  160. }
  161. }
  162. /***/ }),
  163. /***/ 2:
  164. /***/ (function(module, exports) {
  165. module.exports = require("element-ui/lib/utils/util");
  166. /***/ }),
  167. /***/ 5:
  168. /***/ (function(module, exports) {
  169. module.exports = require("element-ui/lib/mixins/locale");
  170. /***/ }),
  171. /***/ 54:
  172. /***/ (function(module, exports, __webpack_require__) {
  173. "use strict";
  174. exports.__esModule = true;
  175. var _pagination = __webpack_require__(55);
  176. var _pagination2 = _interopRequireDefault(_pagination);
  177. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  178. /* istanbul ignore next */
  179. _pagination2.default.install = function (Vue) {
  180. Vue.component(_pagination2.default.name, _pagination2.default);
  181. };
  182. exports.default = _pagination2.default;
  183. /***/ }),
  184. /***/ 55:
  185. /***/ (function(module, exports, __webpack_require__) {
  186. "use strict";
  187. exports.__esModule = true;
  188. var _pager = __webpack_require__(56);
  189. var _pager2 = _interopRequireDefault(_pager);
  190. var _select = __webpack_require__(59);
  191. var _select2 = _interopRequireDefault(_select);
  192. var _option = __webpack_require__(60);
  193. var _option2 = _interopRequireDefault(_option);
  194. var _input = __webpack_require__(6);
  195. var _input2 = _interopRequireDefault(_input);
  196. var _locale = __webpack_require__(5);
  197. var _locale2 = _interopRequireDefault(_locale);
  198. var _util = __webpack_require__(2);
  199. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  200. exports.default = {
  201. name: 'ElPagination',
  202. props: {
  203. pageSize: {
  204. type: Number,
  205. default: 10
  206. },
  207. small: Boolean,
  208. total: Number,
  209. pageCount: Number,
  210. pagerCount: {
  211. type: Number,
  212. validator: function validator(value) {
  213. return (value | 0) === value && value > 4 && value < 22 && value % 2 === 1;
  214. },
  215. default: 7
  216. },
  217. currentPage: {
  218. type: Number,
  219. default: 1
  220. },
  221. layout: {
  222. default: 'prev, pager, next, jumper, ->, total'
  223. },
  224. pageSizes: {
  225. type: Array,
  226. default: function _default() {
  227. return [10, 20, 30, 40, 50, 100];
  228. }
  229. },
  230. popperClass: String,
  231. prevText: String,
  232. nextText: String,
  233. background: Boolean,
  234. disabled: Boolean
  235. },
  236. data: function data() {
  237. return {
  238. internalCurrentPage: 1,
  239. internalPageSize: 0,
  240. lastEmittedPage: -1,
  241. userChangePageSize: false
  242. };
  243. },
  244. render: function render(h) {
  245. var template = h(
  246. 'div',
  247. { 'class': ['el-pagination', {
  248. 'is-background': this.background,
  249. 'el-pagination--small': this.small
  250. }] },
  251. []
  252. );
  253. var layout = this.layout || '';
  254. if (!layout) return;
  255. var TEMPLATE_MAP = {
  256. prev: h(
  257. 'prev',
  258. null,
  259. []
  260. ),
  261. jumper: h(
  262. 'jumper',
  263. null,
  264. []
  265. ),
  266. pager: h(
  267. 'pager',
  268. {
  269. attrs: { currentPage: this.internalCurrentPage, pageCount: this.internalPageCount, pagerCount: this.pagerCount, disabled: this.disabled },
  270. on: {
  271. 'change': this.handleCurrentChange
  272. }
  273. },
  274. []
  275. ),
  276. next: h(
  277. 'next',
  278. null,
  279. []
  280. ),
  281. sizes: h(
  282. 'sizes',
  283. {
  284. attrs: { pageSizes: this.pageSizes }
  285. },
  286. []
  287. ),
  288. slot: h(
  289. 'my-slot',
  290. null,
  291. []
  292. ),
  293. total: h(
  294. 'total',
  295. null,
  296. []
  297. )
  298. };
  299. var components = layout.split(',').map(function (item) {
  300. return item.trim();
  301. });
  302. var rightWrapper = h(
  303. 'div',
  304. { 'class': 'el-pagination__rightwrapper' },
  305. []
  306. );
  307. var haveRightWrapper = false;
  308. template.children = template.children || [];
  309. rightWrapper.children = rightWrapper.children || [];
  310. components.forEach(function (compo) {
  311. if (compo === '->') {
  312. haveRightWrapper = true;
  313. return;
  314. }
  315. if (!haveRightWrapper) {
  316. template.children.push(TEMPLATE_MAP[compo]);
  317. } else {
  318. rightWrapper.children.push(TEMPLATE_MAP[compo]);
  319. }
  320. });
  321. if (haveRightWrapper) {
  322. template.children.unshift(rightWrapper);
  323. }
  324. return template;
  325. },
  326. components: {
  327. MySlot: {
  328. render: function render(h) {
  329. return this.$parent.$slots.default ? this.$parent.$slots.default[0] : '';
  330. }
  331. },
  332. Prev: {
  333. render: function render(h) {
  334. return h(
  335. 'button',
  336. {
  337. attrs: {
  338. type: 'button',
  339. disabled: this.$parent.disabled || this.$parent.internalCurrentPage <= 1
  340. },
  341. 'class': 'btn-prev', on: {
  342. 'click': this.$parent.prev
  343. }
  344. },
  345. [this.$parent.prevText ? h(
  346. 'span',
  347. null,
  348. [this.$parent.prevText]
  349. ) : h(
  350. 'i',
  351. { 'class': 'el-icon el-icon-arrow-left' },
  352. []
  353. )]
  354. );
  355. }
  356. },
  357. Next: {
  358. render: function render(h) {
  359. return h(
  360. 'button',
  361. {
  362. attrs: {
  363. type: 'button',
  364. disabled: this.$parent.disabled || this.$parent.internalCurrentPage === this.$parent.internalPageCount || this.$parent.internalPageCount === 0
  365. },
  366. 'class': 'btn-next', on: {
  367. 'click': this.$parent.next
  368. }
  369. },
  370. [this.$parent.nextText ? h(
  371. 'span',
  372. null,
  373. [this.$parent.nextText]
  374. ) : h(
  375. 'i',
  376. { 'class': 'el-icon el-icon-arrow-right' },
  377. []
  378. )]
  379. );
  380. }
  381. },
  382. Sizes: {
  383. mixins: [_locale2.default],
  384. props: {
  385. pageSizes: Array
  386. },
  387. watch: {
  388. pageSizes: {
  389. immediate: true,
  390. handler: function handler(newVal, oldVal) {
  391. if ((0, _util.valueEquals)(newVal, oldVal)) return;
  392. if (Array.isArray(newVal)) {
  393. this.$parent.internalPageSize = newVal.indexOf(this.$parent.pageSize) > -1 ? this.$parent.pageSize : this.pageSizes[0];
  394. }
  395. }
  396. }
  397. },
  398. render: function render(h) {
  399. var _this = this;
  400. return h(
  401. 'span',
  402. { 'class': 'el-pagination__sizes' },
  403. [h(
  404. 'el-select',
  405. {
  406. attrs: {
  407. value: this.$parent.internalPageSize,
  408. popperClass: this.$parent.popperClass || '',
  409. size: 'mini',
  410. disabled: this.$parent.disabled },
  411. on: {
  412. 'input': this.handleChange
  413. }
  414. },
  415. [this.pageSizes.map(function (item) {
  416. return h(
  417. 'el-option',
  418. {
  419. attrs: {
  420. value: item,
  421. label: item + _this.t('el.pagination.pagesize') }
  422. },
  423. []
  424. );
  425. })]
  426. )]
  427. );
  428. },
  429. components: {
  430. ElSelect: _select2.default,
  431. ElOption: _option2.default
  432. },
  433. methods: {
  434. handleChange: function handleChange(val) {
  435. if (val !== this.$parent.internalPageSize) {
  436. this.$parent.internalPageSize = val = parseInt(val, 10);
  437. this.$parent.userChangePageSize = true;
  438. this.$parent.$emit('update:pageSize', val);
  439. this.$parent.$emit('size-change', val);
  440. }
  441. }
  442. }
  443. },
  444. Jumper: {
  445. mixins: [_locale2.default],
  446. data: function data() {
  447. return {
  448. oldValue: null
  449. };
  450. },
  451. components: { ElInput: _input2.default },
  452. watch: {
  453. '$parent.internalPageSize': function $parentInternalPageSize() {
  454. var _this2 = this;
  455. this.$nextTick(function () {
  456. _this2.$refs.input.$el.querySelector('input').value = _this2.$parent.internalCurrentPage;
  457. });
  458. }
  459. },
  460. methods: {
  461. handleFocus: function handleFocus(event) {
  462. this.oldValue = event.target.value;
  463. },
  464. handleBlur: function handleBlur(_ref) {
  465. var target = _ref.target;
  466. this.resetValueIfNeed(target.value);
  467. this.reassignMaxValue(target.value);
  468. },
  469. handleKeyup: function handleKeyup(_ref2) {
  470. var keyCode = _ref2.keyCode,
  471. target = _ref2.target;
  472. if (keyCode === 13 && this.oldValue && target.value !== this.oldValue) {
  473. this.handleChange(target.value);
  474. }
  475. },
  476. handleChange: function handleChange(value) {
  477. this.$parent.internalCurrentPage = this.$parent.getValidCurrentPage(value);
  478. this.$parent.emitChange();
  479. this.oldValue = null;
  480. this.resetValueIfNeed(value);
  481. },
  482. resetValueIfNeed: function resetValueIfNeed(value) {
  483. var num = parseInt(value, 10);
  484. if (!isNaN(num)) {
  485. if (num < 1) {
  486. this.$refs.input.setCurrentValue(1);
  487. } else {
  488. this.reassignMaxValue(value);
  489. }
  490. }
  491. },
  492. reassignMaxValue: function reassignMaxValue(value) {
  493. var internalPageCount = this.$parent.internalPageCount;
  494. if (+value > internalPageCount) {
  495. this.$refs.input.setCurrentValue(internalPageCount || 1);
  496. }
  497. }
  498. },
  499. render: function render(h) {
  500. return h(
  501. 'span',
  502. { 'class': 'el-pagination__jump' },
  503. [this.t('el.pagination.goto'), h(
  504. 'el-input',
  505. {
  506. 'class': 'el-pagination__editor is-in-pagination',
  507. attrs: { min: 1,
  508. max: this.$parent.internalPageCount,
  509. value: this.$parent.internalCurrentPage,
  510. type: 'number',
  511. disabled: this.$parent.disabled
  512. },
  513. domProps: {
  514. 'value': this.$parent.internalCurrentPage
  515. },
  516. ref: 'input', nativeOn: {
  517. 'keyup': this.handleKeyup
  518. },
  519. on: {
  520. 'change': this.handleChange,
  521. 'focus': this.handleFocus,
  522. 'blur': this.handleBlur
  523. }
  524. },
  525. []
  526. ), this.t('el.pagination.pageClassifier')]
  527. );
  528. }
  529. },
  530. Total: {
  531. mixins: [_locale2.default],
  532. render: function render(h) {
  533. return typeof this.$parent.total === 'number' ? h(
  534. 'span',
  535. { 'class': 'el-pagination__total' },
  536. [this.t('el.pagination.total', { total: this.$parent.total })]
  537. ) : '';
  538. }
  539. },
  540. Pager: _pager2.default
  541. },
  542. methods: {
  543. handleCurrentChange: function handleCurrentChange(val) {
  544. this.internalCurrentPage = this.getValidCurrentPage(val);
  545. this.userChangePageSize = true;
  546. this.emitChange();
  547. },
  548. prev: function prev() {
  549. if (this.disabled) return;
  550. var newVal = this.internalCurrentPage - 1;
  551. this.internalCurrentPage = this.getValidCurrentPage(newVal);
  552. this.$emit('prev-click', this.internalCurrentPage);
  553. this.emitChange();
  554. },
  555. next: function next() {
  556. if (this.disabled) return;
  557. var newVal = this.internalCurrentPage + 1;
  558. this.internalCurrentPage = this.getValidCurrentPage(newVal);
  559. this.$emit('next-click', this.internalCurrentPage);
  560. this.emitChange();
  561. },
  562. getValidCurrentPage: function getValidCurrentPage(value) {
  563. value = parseInt(value, 10);
  564. var havePageCount = typeof this.internalPageCount === 'number';
  565. var resetValue = void 0;
  566. if (!havePageCount) {
  567. if (isNaN(value) || value < 1) resetValue = 1;
  568. } else {
  569. if (value < 1) {
  570. resetValue = 1;
  571. } else if (value > this.internalPageCount) {
  572. resetValue = this.internalPageCount;
  573. }
  574. }
  575. if (resetValue === undefined && isNaN(value)) {
  576. resetValue = 1;
  577. } else if (resetValue === 0) {
  578. resetValue = 1;
  579. }
  580. return resetValue === undefined ? value : resetValue;
  581. },
  582. emitChange: function emitChange() {
  583. var _this3 = this;
  584. this.$nextTick(function () {
  585. if (_this3.internalCurrentPage !== _this3.lastEmittedPage || _this3.userChangePageSize) {
  586. _this3.$emit('current-change', _this3.internalCurrentPage);
  587. _this3.lastEmittedPage = _this3.internalCurrentPage;
  588. _this3.userChangePageSize = false;
  589. }
  590. });
  591. }
  592. },
  593. computed: {
  594. internalPageCount: function internalPageCount() {
  595. if (typeof this.total === 'number') {
  596. return Math.ceil(this.total / this.internalPageSize);
  597. } else if (typeof this.pageCount === 'number') {
  598. return this.pageCount;
  599. }
  600. return null;
  601. }
  602. },
  603. watch: {
  604. currentPage: {
  605. immediate: true,
  606. handler: function handler(val) {
  607. this.internalCurrentPage = val;
  608. }
  609. },
  610. pageSize: {
  611. immediate: true,
  612. handler: function handler(val) {
  613. this.internalPageSize = isNaN(val) ? 10 : val;
  614. }
  615. },
  616. internalCurrentPage: {
  617. immediate: true,
  618. handler: function handler(newVal, oldVal) {
  619. newVal = parseInt(newVal, 10);
  620. /* istanbul ignore if */
  621. if (isNaN(newVal)) {
  622. newVal = oldVal || 1;
  623. } else {
  624. newVal = this.getValidCurrentPage(newVal);
  625. }
  626. if (newVal !== undefined) {
  627. this.internalCurrentPage = newVal;
  628. if (oldVal !== newVal) {
  629. this.$emit('update:currentPage', newVal);
  630. }
  631. } else {
  632. this.$emit('update:currentPage', newVal);
  633. }
  634. this.lastEmittedPage = -1;
  635. }
  636. },
  637. internalPageCount: function internalPageCount(newVal) {
  638. /* istanbul ignore if */
  639. var oldPage = this.internalCurrentPage;
  640. if (newVal > 0 && oldPage === 0) {
  641. this.internalCurrentPage = 1;
  642. } else if (oldPage > newVal) {
  643. this.internalCurrentPage = newVal === 0 ? 1 : newVal;
  644. this.userChangePageSize && this.emitChange();
  645. }
  646. this.userChangePageSize = false;
  647. }
  648. }
  649. };
  650. /***/ }),
  651. /***/ 56:
  652. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  653. "use strict";
  654. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  655. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue__ = __webpack_require__(57);
  656. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue__);
  657. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_046e52c4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_pager_vue__ = __webpack_require__(58);
  658. var normalizeComponent = __webpack_require__(0)
  659. /* script */
  660. /* template */
  661. /* template functional */
  662. var __vue_template_functional__ = false
  663. /* styles */
  664. var __vue_styles__ = null
  665. /* scopeId */
  666. var __vue_scopeId__ = null
  667. /* moduleIdentifier (server only) */
  668. var __vue_module_identifier__ = null
  669. var Component = normalizeComponent(
  670. __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue___default.a,
  671. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_046e52c4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_pager_vue__["a" /* default */],
  672. __vue_template_functional__,
  673. __vue_styles__,
  674. __vue_scopeId__,
  675. __vue_module_identifier__
  676. )
  677. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  678. /***/ }),
  679. /***/ 57:
  680. /***/ (function(module, exports, __webpack_require__) {
  681. "use strict";
  682. exports.__esModule = true;
  683. //
  684. //
  685. //
  686. //
  687. //
  688. //
  689. //
  690. //
  691. //
  692. //
  693. //
  694. //
  695. //
  696. //
  697. //
  698. //
  699. //
  700. //
  701. //
  702. //
  703. //
  704. //
  705. //
  706. //
  707. //
  708. //
  709. //
  710. //
  711. //
  712. //
  713. //
  714. //
  715. exports.default = {
  716. name: 'ElPager',
  717. props: {
  718. currentPage: Number,
  719. pageCount: Number,
  720. pagerCount: Number,
  721. disabled: Boolean
  722. },
  723. watch: {
  724. showPrevMore: function showPrevMore(val) {
  725. if (!val) this.quickprevIconClass = 'el-icon-more';
  726. },
  727. showNextMore: function showNextMore(val) {
  728. if (!val) this.quicknextIconClass = 'el-icon-more';
  729. }
  730. },
  731. methods: {
  732. onPagerClick: function onPagerClick(event) {
  733. var target = event.target;
  734. if (target.tagName === 'UL' || this.disabled) {
  735. return;
  736. }
  737. var newPage = Number(event.target.textContent);
  738. var pageCount = this.pageCount;
  739. var currentPage = this.currentPage;
  740. var pagerCountOffset = this.pagerCount - 2;
  741. if (target.className.indexOf('more') !== -1) {
  742. if (target.className.indexOf('quickprev') !== -1) {
  743. newPage = currentPage - pagerCountOffset;
  744. } else if (target.className.indexOf('quicknext') !== -1) {
  745. newPage = currentPage + pagerCountOffset;
  746. }
  747. }
  748. /* istanbul ignore if */
  749. if (!isNaN(newPage)) {
  750. if (newPage < 1) {
  751. newPage = 1;
  752. }
  753. if (newPage > pageCount) {
  754. newPage = pageCount;
  755. }
  756. }
  757. if (newPage !== currentPage) {
  758. this.$emit('change', newPage);
  759. }
  760. },
  761. onMouseenter: function onMouseenter(direction) {
  762. if (this.disabled) return;
  763. if (direction === 'left') {
  764. this.quickprevIconClass = 'el-icon-d-arrow-left';
  765. } else {
  766. this.quicknextIconClass = 'el-icon-d-arrow-right';
  767. }
  768. }
  769. },
  770. computed: {
  771. pagers: function pagers() {
  772. var pagerCount = this.pagerCount;
  773. var halfPagerCount = (pagerCount - 1) / 2;
  774. var currentPage = Number(this.currentPage);
  775. var pageCount = Number(this.pageCount);
  776. var showPrevMore = false;
  777. var showNextMore = false;
  778. if (pageCount > pagerCount) {
  779. if (currentPage > pagerCount - halfPagerCount) {
  780. showPrevMore = true;
  781. }
  782. if (currentPage < pageCount - halfPagerCount) {
  783. showNextMore = true;
  784. }
  785. }
  786. var array = [];
  787. if (showPrevMore && !showNextMore) {
  788. var startPage = pageCount - (pagerCount - 2);
  789. for (var i = startPage; i < pageCount; i++) {
  790. array.push(i);
  791. }
  792. } else if (!showPrevMore && showNextMore) {
  793. for (var _i = 2; _i < pagerCount; _i++) {
  794. array.push(_i);
  795. }
  796. } else if (showPrevMore && showNextMore) {
  797. var offset = Math.floor(pagerCount / 2) - 1;
  798. for (var _i2 = currentPage - offset; _i2 <= currentPage + offset; _i2++) {
  799. array.push(_i2);
  800. }
  801. } else {
  802. for (var _i3 = 2; _i3 < pageCount; _i3++) {
  803. array.push(_i3);
  804. }
  805. }
  806. this.showPrevMore = showPrevMore;
  807. this.showNextMore = showNextMore;
  808. return array;
  809. }
  810. },
  811. data: function data() {
  812. return {
  813. current: null,
  814. showPrevMore: false,
  815. showNextMore: false,
  816. quicknextIconClass: 'el-icon-more',
  817. quickprevIconClass: 'el-icon-more'
  818. };
  819. }
  820. };
  821. /***/ }),
  822. /***/ 58:
  823. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  824. "use strict";
  825. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:"el-pager",on:{"click":_vm.onPagerClick}},[(_vm.pageCount > 0)?_c('li',{staticClass:"number",class:{ active: _vm.currentPage === 1, disabled: _vm.disabled }},[_vm._v("1")]):_vm._e(),(_vm.showPrevMore)?_c('li',{staticClass:"el-icon more btn-quickprev",class:[_vm.quickprevIconClass, { disabled: _vm.disabled }],on:{"mouseenter":function($event){_vm.onMouseenter('left')},"mouseleave":function($event){_vm.quickprevIconClass = 'el-icon-more'}}}):_vm._e(),_vm._l((_vm.pagers),function(pager){return _c('li',{key:pager,staticClass:"number",class:{ active: _vm.currentPage === pager, disabled: _vm.disabled }},[_vm._v(_vm._s(pager))])}),(_vm.showNextMore)?_c('li',{staticClass:"el-icon more btn-quicknext",class:[_vm.quicknextIconClass, { disabled: _vm.disabled }],on:{"mouseenter":function($event){_vm.onMouseenter('right')},"mouseleave":function($event){_vm.quicknextIconClass = 'el-icon-more'}}}):_vm._e(),(_vm.pageCount > 1)?_c('li',{staticClass:"number",class:{ active: _vm.currentPage === _vm.pageCount, disabled: _vm.disabled }},[_vm._v(_vm._s(_vm.pageCount))]):_vm._e()],2)}
  826. var staticRenderFns = []
  827. var esExports = { render: render, staticRenderFns: staticRenderFns }
  828. /* harmony default export */ __webpack_exports__["a"] = (esExports);
  829. /***/ }),
  830. /***/ 59:
  831. /***/ (function(module, exports) {
  832. module.exports = require("element-ui/lib/select");
  833. /***/ }),
  834. /***/ 6:
  835. /***/ (function(module, exports) {
  836. module.exports = require("element-ui/lib/input");
  837. /***/ }),
  838. /***/ 60:
  839. /***/ (function(module, exports) {
  840. module.exports = require("element-ui/lib/option");
  841. /***/ })
  842. /******/ });