UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

382 lines (307 loc) 12.9 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); var _tslib = require("tslib"); var _react = _interopRequireWildcard(require("react")); var _mobxReact = require("mobx-react"); var _mobx = require("mobx"); var _isFunction = _interopRequireDefault(require("lodash/isFunction")); var _omit = _interopRequireDefault(require("lodash/omit")); var _noop = _interopRequireDefault(require("lodash/noop")); var _utils = require("../../../../lib/configure/utils"); var _icon = _interopRequireDefault(require("../../../../lib/icon")); var _button = _interopRequireDefault(require("../../button")); var _TableContext = _interopRequireDefault(require("../TableContext")); var _enum = require("../../button/enum"); var _form = _interopRequireDefault(require("../../form")); var _localeContext = require("../../locale-context"); var _autobind = _interopRequireDefault(require("../../_util/autobind")); var _enum2 = require("../../form/enum"); var _isEmpty = _interopRequireDefault(require("../../_util/isEmpty")); var _enum3 = require("../../table/enum"); var TableProfessionalBar = /*#__PURE__*/function (_Component) { (0, _inherits2["default"])(TableProfessionalBar, _Component); var _super = (0, _createSuper2["default"])(TableProfessionalBar); function TableProfessionalBar() { var _this; (0, _classCallCheck2["default"])(this, TableProfessionalBar); _this = _super.apply(this, arguments); _this.openMore = function (fields) { if (_this.moreFields && _this.moreFields.length) { _this.moreFields = []; } else { _this.moreFields = fields; } return _this.moreFields; }; return _this; } (0, _createClass2["default"])(TableProfessionalBar, [{ key: "componentDidMount", value: function componentDidMount() { var _this2 = this; var _this$props = this.props, queryFieldsLimit = _this$props.queryFieldsLimit, queryFields = _this$props.queryFields, queryDataSet = _this$props.queryDataSet, defaultExpanded = _this$props.defaultExpanded; if (queryDataSet && queryFields.length && defaultExpanded) { (0, _mobx.runInAction)(function () { _this2.moreFields = _this2.createFields(queryFields.slice(queryFieldsLimit)); }); } this.processDataSetListener(true); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.processDataSetListener(false); } }, { key: "processDataSetListener", value: function processDataSetListener(flag) { var queryDataSet = this.props.queryDataSet; if (queryDataSet) { var handler = flag ? queryDataSet.addEventListener : queryDataSet.removeEventListener; handler.call(queryDataSet, 'validate', this.handleDataSetValidate); } } /** * queryDataSet 查询前校验事件 触发展开动态字段 * @param dataSet 查询DS * @param result */ }, { key: "handleDataSetValidate", value: function () { var _handleDataSetValidate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) { var _this3 = this; var result, _this$props2, queryFieldsLimit, queryFields, moreFields; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: result = _ref.result; _this$props2 = this.props, queryFieldsLimit = _this$props2.queryFieldsLimit, queryFields = _this$props2.queryFields; moreFields = this.createFields(queryFields.slice(queryFieldsLimit)); _context.next = 5; return result; case 5: if (_context.sent) { _context.next = 7; break; } (0, _mobx.runInAction)(function () { _this3.moreFields = moreFields; }); case 7: case "end": return _context.stop(); } } }, _callee, this); })); function handleDataSetValidate(_x) { return _handleDataSetValidate.apply(this, arguments); } return handleDataSetValidate; }() }, { key: "handleFieldEnter", value: function handleFieldEnter() { this.handleQuery(); } }, { key: "handleQuery", value: function () { var _handleQuery = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(collapse) { var _this$props3, dataSet, queryDataSet, _this$props3$onQuery, onQuery, current, queryData, data; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _this$props3 = this.props, dataSet = _this$props3.dataSet, queryDataSet = _this$props3.queryDataSet, _this$props3$onQuery = _this$props3.onQuery, onQuery = _this$props3$onQuery === void 0 ? _noop["default"] : _this$props3$onQuery; _context2.t0 = queryDataSet; if (!_context2.t0) { _context2.next = 6; break; } _context2.next = 5; return queryDataSet.validate(); case 5: _context2.t0 = _context2.sent; case 6: if (!_context2.t0) { _context2.next = 15; break; } _context2.next = 9; return dataSet.query(); case 9: if (collapse) { _context2.next = 15; break; } current = queryDataSet.current; queryData = current ? (0, _omit["default"])(current.toData(true), ['__dirty']) : undefined; data = queryData ? Object.keys(queryData).reduce(function (p, key) { var value = queryData[key]; if (!(0, _isEmpty["default"])(value)) { p[key] = value; } return p; }, {}) : {}; _context2.next = 15; return onQuery({ dataSet: dataSet, queryDataSet: queryDataSet, data: data }); case 15: case "end": return _context2.stop(); } } }, _callee2, this); })); function handleQuery(_x2) { return _handleQuery.apply(this, arguments); } return handleQuery; }() }, { key: "getResetButton", value: function getResetButton() { var prefixCls = this.props.prefixCls; return /*#__PURE__*/_react["default"].createElement(_button["default"], { key: 'lov_reset_btn', className: "".concat(prefixCls, "-professional-reset-btn"), funcType: _enum.FuncType.raised, onClick: this.handleQueryReset }, (0, _localeContext.$l)('Table', 'reset_button')); } }, { key: "getMoreFieldsButton", value: function getMoreFieldsButton(fields) { var _this4 = this; var prefixCls = this.props.prefixCls; if (fields.length) { return /*#__PURE__*/_react["default"].createElement(_button["default"], { className: "".concat(prefixCls, "-professional-query-more"), funcType: _enum.FuncType.raised, onClick: function onClick() { return _this4.openMore(fields); } }, (0, _localeContext.$l)('Table', 'more'), this.moreFields && this.moreFields.length ? /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: 'expand_less' }) : /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: 'expand_more' })); } } /** * 注入 onEnterDown 事件 * @param elements */ }, { key: "createFields", value: function createFields(elements) { var _this5 = this; return elements.map(function (element) { var onEnterDown = element.props.onEnterDown; if (onEnterDown && (0, _isFunction["default"])(onEnterDown)) { return element; } var props = { onEnterDown: _this5.handleFieldEnter }; return /*#__PURE__*/(0, _react.cloneElement)(element, props); }); } }, { key: "getQueryBar", value: function getQueryBar() { var _this6 = this; var _this$props4 = this.props, prefixCls = _this$props4.prefixCls, queryFieldsLimit = _this$props4.queryFieldsLimit, queryFields = _this$props4.queryFields, queryDataSet = _this$props4.queryDataSet, queryFormProps = _this$props4.queryFormProps; if (queryDataSet && queryFields.length) { var currentFields = /*#__PURE__*/_react["default"].createElement(_form["default"], (0, _extends2["default"])({ dataSet: queryDataSet, columns: queryFieldsLimit, labelLayout: _enum2.LabelLayout.horizontal }, queryFormProps), this.createFields(queryFields.slice(0, queryFieldsLimit)), this.moreFields); var moreFields = this.createFields(queryFields.slice(queryFieldsLimit)); var moreFieldsButton = this.getMoreFieldsButton(moreFields); return /*#__PURE__*/_react["default"].createElement("div", { key: "query_bar", className: "".concat(prefixCls, "-professional-query-bar") }, currentFields, /*#__PURE__*/_react["default"].createElement("span", { className: "".concat(prefixCls, "-professional-query-bar-button") }, moreFieldsButton, this.getResetButton(), /*#__PURE__*/_react["default"].createElement(_button["default"], { color: _enum.ButtonColor.primary, wait: 500, onClick: function onClick() { return _this6.handleQuery(); } }, (0, _localeContext.$l)('Table', 'query_button')))); } } }, { key: "handleQueryReset", value: function handleQueryReset() { var _this$props5 = this.props, queryDataSet = _this$props5.queryDataSet, _this$props5$onReset = _this$props5.onReset, onReset = _this$props5$onReset === void 0 ? _noop["default"] : _this$props5$onReset; if (queryDataSet) { var current = queryDataSet.current; if (current) { current.reset(); onReset(); } this.handleQuery(true); } } }, { key: "render", value: function render() { return this.getQueryBar(); } }], [{ key: "contextType", get: function get() { return _TableContext["default"]; } }]); return TableProfessionalBar; }(_react.Component); TableProfessionalBar.defaultProps = { prefixCls: (0, _utils.getProPrefixCls)('performance-table'), queryFieldsLimit: 3 }; TableProfessionalBar.__TableQueryBarType = _enum3.TableQueryBarType.professionalBar; (0, _tslib.__decorate)([_mobx.observable], TableProfessionalBar.prototype, "moreFields", void 0); (0, _tslib.__decorate)([_autobind["default"]], TableProfessionalBar.prototype, "handleDataSetValidate", null); (0, _tslib.__decorate)([_autobind["default"]], TableProfessionalBar.prototype, "handleFieldEnter", null); (0, _tslib.__decorate)([_autobind["default"]], TableProfessionalBar.prototype, "handleQuery", null); (0, _tslib.__decorate)([_mobx.action], TableProfessionalBar.prototype, "openMore", void 0); (0, _tslib.__decorate)([_autobind["default"]], TableProfessionalBar.prototype, "handleQueryReset", null); TableProfessionalBar = (0, _tslib.__decorate)([_mobxReact.observer], TableProfessionalBar); var _default = TableProfessionalBar; exports["default"] = _default; //# sourceMappingURL=TableProfessionalBar.js.map