UNPKG

maycur-business

Version:

maycur business react components of web

394 lines (309 loc) • 16.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; require("maycur-antd/lib/modal/style/css"); var _modal = _interopRequireDefault(require("maycur-antd/lib/modal")); require("maycur-antd/lib/breadcrumb/style/css"); var _breadcrumb = _interopRequireDefault(require("maycur-antd/lib/breadcrumb")); require("maycur-antd/lib/popover/style/css"); var _popover = _interopRequireDefault(require("maycur-antd/lib/popover")); var _react = _interopRequireWildcard(require("react")); var _lodash = _interopRequireDefault(require("lodash")); var _ConfirmModal = _interopRequireDefault(require("../../ConfirmModal")); var _Panel = require("./Panel"); var _mkTranslate = _interopRequireDefault(require("../../utils/mkTranslate")); var _utils = _interopRequireDefault(require("../../utils/utils")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } var prefix = _utils["default"].prefixCls; var FilterSettingModal = /*#__PURE__*/ function (_Component) { _inherits(FilterSettingModal, _Component); function FilterSettingModal(props) { var _this; _classCallCheck(this, FilterSettingModal); _this = _possibleConstructorReturn(this, _getPrototypeOf(FilterSettingModal).call(this, props)); _this.localeProcess = function () { _mkTranslate["default"].getNameSpace('MkTable').then(function (t) { _this.setState({ t: t }); }); }; _this.addItem = function () { _this.setState({ panel: 'setting', data: { filterName: '', customFilterItemList: [{ code: new Date().valueOf() }] } }, function () { _this.filterColumns(); }); }; _this.editItem = function (item) { _this.setState({ panel: 'setting', data: _lodash["default"].cloneDeep(item) }, function () { _this.filterColumns(); }); }; _this.deleteItem = function (item) { var _this$props = _this.props, deleteFn = _this$props.filterConfig.deleteFn, ModalManager = _this$props.ModalManager; var t = _this.state.t; ModalManager.open({ component: _ConfirmModal["default"], componentProps: { title: t('MkGlobal:tips'), subTitle: t('filterSettingModal.subTitle'), iconType: 'question-circle', size: 'sm', afterSubmit: function afterSubmit(promise) { deleteFn && deleteFn(item.code).then(function (resp) { if (resp && resp.code === 'ACK') { promise.resolve(); _this.updateFilter(item, 'delete'); } })["catch"](function () {}); } } }).then()["catch"](); }; _this.handleFormChange = function (changedFields) { _this.setState(function (_ref) { var data = _ref.data, fields = _ref.fields; var customFilterItemList = data.customFilterItemList, filterName = data.filterName; var customFilterItemListField = fields.customFilterItemList || [], filterNameField = fields.filterName || {}; if ('customFilterItemList' in changedFields) { _lodash["default"].each(changedFields.customFilterItemList, function (item, index) { for (var key in item) { customFilterItemList[index][key] = item[key].value; customFilterItemListField[index] = customFilterItemListField[index] || {}; customFilterItemListField[index][key] = _objectSpread({}, customFilterItemListField[index][key], {}, item[key]); } }); } else if ('filterName' in changedFields) { filterName = changedFields.filterName.value; filterNameField = _objectSpread({}, filterNameField, {}, changedFields.filterName); } return { data: _objectSpread({}, data, { customFilterItemList: customFilterItemList, filterName: filterName }), fields: _objectSpread({}, fields, { customFilterItemList: customFilterItemListField, filterName: filterNameField }) }; }, function () { _this.filterColumns(); }); }; _this.addFilterCondition = function () { _this.setState(function (_ref2) { var data = _ref2.data, fields = _ref2.fields; var customFilterItemList = [].concat(_toConsumableArray(data.customFilterItemList), [{ code: new Date().valueOf() }]); var newData = _objectSpread({}, data, { customFilterItemList: customFilterItemList }); return { data: newData }; }); }; _this.deleteFilterCondition = function (index) { _this.setState(function (_ref3) { var data = _ref3.data, fields = _ref3.fields; var customFilterItemList = _toConsumableArray(data.customFilterItemList); customFilterItemList.splice(index, 1); var customFilterItemListField = _toConsumableArray(fields.customFilterItemList); customFilterItemListField.splice(index, 1); var newData = _objectSpread({}, data, { customFilterItemList: customFilterItemList }); var newFields = _objectSpread({}, fields, { customFilterItemList: customFilterItemListField }); return { data: newData, fields: newFields }; }, function () { _this.filterColumns(); }); }; _this.handleOk = function () { var panel = _this.state.panel; var promise = _this.props.promise; if (panel === 'setting') { _this.save(); } else { promise.resolve(); } }; _this.save = function () { var saveFn = _this.props.filterConfig.saveFn; var data = _this.state.data; var form = _this.formRef.props.form; form.validateFields(function (err, values) { if (!err) { var _data = _objectSpread({}, data, {}, values); saveFn && saveFn(_data).then(function (resp) { if (resp && resp.code === 'ACK') { _this.updateFilter(_objectSpread({}, _data, { code: resp.data }), 'edit'); _this.goBack(); } })["catch"](function () {}); } }); }; _this.updateFilter = function (item, opt) { var updateFilterFn = _this.props.filterConfig.updateFilterFn; var currentFilter = _toConsumableArray(_this.state.list); var index = _lodash["default"].findIndex(currentFilter, { code: item.code }); if (opt === 'delete' && index > -1) { currentFilter.splice(index, 1); } else if (opt === 'edit') { index > -1 ? currentFilter.splice(index, 1, item) : currentFilter.push(item); } updateFilterFn(currentFilter); _this.setState({ list: currentFilter }); }; _this.goBack = function (e) { _this.setState({ panel: 'list', data: null, fields: {} }); }; _this.filterColumns = function () { var _this$state = _this.state, customFilterItemList = _this$state.data.customFilterItemList, filterColumns = _this$state.filterColumns; var unSelectColumns = _lodash["default"].filter(filterColumns, function (column) { if (_lodash["default"].find(customFilterItemList, function (item) { return item.key && (item.key === column.key || item.key === column.filterKey); })) { return false; } return true; }); _this.setState({ unSelectColumns: unSelectColumns }); }; _this.state = { panel: 'list', list: props.filterConfig && _toConsumableArray(props.filterConfig.customFilters), data: null, fields: {}, filterColumns: _lodash["default"].filter(props.columns, function (column) { return column.filterOption; }), t: _mkTranslate["default"].noop() }; _this.localeProcess(); return _this; } _createClass(FilterSettingModal, [{ key: "render", value: function render() { var _this2 = this; var _this$state2 = this.state, panel = _this$state2.panel, list = _this$state2.list, data = _this$state2.data, fields = _this$state2.fields, filterColumns = _this$state2.filterColumns, unSelectColumns = _this$state2.unSelectColumns, t = _this$state2.t; var _this$props2 = this.props, emptyImg = _this$props2.filterConfig.emptyImg, ModalManager = _this$props2.ModalManager, restProps = _objectWithoutProperties(_this$props2, ["filterConfig", "ModalManager"]); var title = _react["default"].createElement(_breadcrumb["default"], { separator: _react["default"].createElement("span", { className: "fm fm-angle-right" }) }, _react["default"].createElement(_breadcrumb["default"].Item, null, _react["default"].createElement("span", { onClick: this.goBack }, t('filterSettingModal.manage')), _react["default"].createElement(_popover["default"], { overlayClassName: "title-desc-popover", content: t('filterSettingModal.popover') }, _react["default"].createElement("span", { className: "fm fm-question" }))), panel === 'setting' && _react["default"].createElement(_breadcrumb["default"].Item, null, data.code ? t('filterSettingModal.edit') : t('filterSettingModal.add'))); return _react["default"].createElement(_modal["default"], _extends({}, restProps, { title: title, maskClosable: false, centered: true, visible: true, wrapClassName: "".concat(prefix, "-filter-setting-modal"), onOk: this.handleOk }), panel === 'list' ? _react["default"].createElement(_Panel.FilterListPanel, { addItem: this.addItem, editItem: this.editItem, deleteItem: this.deleteItem, list: list, emptyImg: emptyImg }) : _react["default"].createElement(_Panel.FilterSettingPanel, { data: data, fields: fields, columns: filterColumns, filterColumns: unSelectColumns, onChange: this.handleFormChange, addFilterCondition: this.addFilterCondition, deleteFilterCondition: this.deleteFilterCondition, wrappedComponentRef: function wrappedComponentRef(ref) { return _this2.formRef = ref; }, ModalManager: ModalManager })); } }]); return FilterSettingModal; }(_react.Component); var _default = FilterSettingModal; exports["default"] = _default;