UNPKG

@ttk/component

Version:

ttk组件库

204 lines (166 loc) 7.4 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _extends = require('../extends-63327b06.js'); var defineProperty = require('../defineProperty-ad97b418.js'); var slicedToArray = require('../slicedToArray-b256d11b.js'); var getPrototypeOf = require('../getPrototypeOf-3a7a3df9.js'); var React = require('react'); var ReactDOM = require('react-dom'); var antd = require('antd'); var Button = require('../button'); var classNames = require('classnames'); var isequal = require('lodash.isequal'); var Message = require('../message'); var zh_CN = require('../zh_CN-7310bed4.js'); require('../_commonjsHelpers-badc9712.js'); require('../unsupportedIterableToArray-94a305c4.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM); var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button); var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames); var isequal__default = /*#__PURE__*/_interopDefaultLegacy(isequal); var Message__default = /*#__PURE__*/_interopDefaultLegacy(Message); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf._getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf._getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return getPrototypeOf._possibleConstructorReturn(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var PaginationComponent = /*#__PURE__*/function (_Component) { getPrototypeOf._inherits(PaginationComponent, _Component); var _super = _createSuper(PaginationComponent); function PaginationComponent(_props) { var _this; getPrototypeOf._classCallCheck(this, PaginationComponent); _this = _super.call(this); _this.assitShouldComponent = function (target) { var obj = {}; for (var _i = 0, _Object$entries = Object.entries(target); _i < _Object$entries.length; _i++) { var _Object$entries$_i = slicedToArray._slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1]; if (typeof value != 'function' && key != 'store') { obj[key] = value; } } return obj; }; _this.handleClick = function () { var props = _this.props; if (!props.total) { return; } _this.setState({ isJumper: true }); var thisDom = ReactDOM__default["default"].findDOMNode(getPrototypeOf._assertThisInitialized(_this)); var jumperContaienr = thisDom.getElementsByClassName('ant-pagination-options-quick-jumper')[0]; if (!jumperContaienr) return; var dom = jumperContaienr.getElementsByTagName('input')[0]; if (!dom) return; var num = parseInt(dom.value); var total = props.total, pageSize = props.pageSize; var size = Math.ceil(total / pageSize); if (!isNaN(num) && num > 0 && num <= size) { props.onChange && props.onChange(num, null); } else { Message__default["default"].warn('输入的页面不存在'); } }; _this.isCalJumper = function () { var _this$props = _this.props, showQuickJumper = _this$props.showQuickJumper, total = _this$props.total, pageSize = _this$props.pageSize; if (showQuickJumper != false && total > pageSize) { _this.calJumperInputValue(); } }; _this.calJumperInputValue = function () { try { var props = _this.props; var me = ReactDOM__default["default"].findDOMNode(getPrototypeOf._assertThisInitialized(_this)); if (!me) { setTimeout(function () { return _this.calJumperInputValue(); }, 10); return; } var jumperContaienr = me.getElementsByClassName('ant-pagination-options-quick-jumper')[0]; if (!jumperContaienr) return setTimeout(function () { return _this.calJumperInputValue(); }, 10); var dom = jumperContaienr.getElementsByTagName('input')[0]; if (!dom) return setTimeout(function () { return _this.calJumperInputValue(); }, 10); if (parseInt(dom.value) == parseInt(props.current)) { return; } if (props.current || props.current == 0) { // setTimeout(() => { dom.value = props.current; // }, 16) } } catch (err) { console.log(err); } }; _this.showTotal = function (total) { return "\u5171 ".concat(total, " \u6761"); }; _this.state = { isJumper: false }; return _this; } getPrototypeOf._createClass(PaginationComponent, [{ key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { // console.log((isequal(this.props, nextProps) && isequal(this.state, nextState))) var isJumper = this.state.isJumper; if (isJumper) { return true; } else { return !(isequal__default["default"](this.assitShouldComponent(this.props), this.assitShouldComponent(nextProps)) && isequal__default["default"](this.state, nextState)); } } }, { key: "componentDidMount", value: function componentDidMount() { this.isCalJumper(); } }, { key: "componentDidUpdate", value: function componentDidUpdate() { this.isCalJumper(); } }, { key: "render", value: function render() { var _this2 = this; var props = this.props; var className = classNames__default["default"](defineProperty._defineProperty({ 'mk-pagination': true }, props.className, !!props.className)); // rc-pagination在'pageSize' in props 且pageSize为undefined时报错,默认给pageSize赋值 var overwrite = {}; if (!props.pageSize) { overwrite.pageSize = props.defaultPageSize || 50; } return /*#__PURE__*/React__default["default"].createElement("div", { className: className }, /*#__PURE__*/React__default["default"].createElement(antd.Pagination, _extends._extends({ showTotal: this.showTotal, pageSizeOptions: ['50', '100', '150', '200'], locale: zh_CN.zhCN, showQuickJumper: true, showSizeChanger: true }, props, overwrite)), props.showQuickJumper != false && props.total > props.pageSize ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], { onClick: function onClick() { return _this2.handleClick(); }, disabled: this.props.total ? false : true, className: "mk-pagination-goto-btn" }, "\u8DF3\u8F6C") : null); } }]); return PaginationComponent; }(React.Component); exports["default"] = PaginationComponent;