UNPKG

oadp-material

Version:
322 lines (321 loc) 13.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = exports.OadpSelect = void 0; var _select = _interopRequireDefault(require("@alifd/next/lib/select")); var _divider = _interopRequireDefault(require("@alifd/next/lib/divider")); var _box = _interopRequireDefault(require("@alifd/next/lib/box")); var _search = _interopRequireDefault(require("@alifd/next/lib/search")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var React = _interopRequireWildcard(require("react")); require("./index.scss"); var _oadpCommon = require("oadp-common"); var _excluded = ["name", "attribute", "value", "defaultValue", "field", "label", "placeholder", "size", "mode", "hasBorder", "hasArrow", "hasClear", "required", "readOnly", "disabled"]; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } var OadpSelect = exports.OadpSelect = /*#__PURE__*/function (_React$Component) { function OadpSelect(props) { var _this; _this = _React$Component.call(this, props) || this; _this.initDataSoure = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var _this$props, attribute, value, attributeWithRefer, response, dataSourceArray; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _this$props = _this.props, attribute = _this$props.attribute, value = _this$props.value; console.log('initDataSoure this.props', _this.props); _context.prev = 2; if (_this.state.needInitDataSource) { _context.next = 5; break; } return _context.abrupt("return"); case 5: if (attribute) { _context.next = 8; break; } console.error('attribute is required'); return _context.abrupt("return"); case 8: _context.next = 10; return _oadpCommon.entityMetadataUtil.asyncSelectAttributeWithReferById(attribute); case 10: attributeWithRefer = _context.sent; if (attributeWithRefer) { _context.next = 14; break; } console.error('attributeWithRefer is required'); return _context.abrupt("return"); case 14: _this.setState({ attributeWithRefer: attributeWithRefer, needInitDataSource: false }); if (value) { _context.next = 18; break; } console.warn('value is required'); return _context.abrupt("return"); case 18: _context.next = 20; return _oadpCommon.entityDataUtil.asyncSelectOneByPrimaryKey(attributeWithRefer.referEntity.logicalName, attributeWithRefer.referAttribute.logicalName, value); case 20: response = _context.sent; if (response.data) { _context.next = 24; break; } console.error('response.data is required', response); return _context.abrupt("return"); case 24: dataSourceArray = []; dataSourceArray.push({ label: response.data.name, value: response.data[attributeWithRefer.referAttribute.logicalName] }); _this.setState({ dataSource: dataSourceArray }); _context.next = 32; break; case 29: _context.prev = 29; _context.t0 = _context["catch"](2); console.error("加载初始数据时发生错误:", _context.t0); case 32: case "end": return _context.stop(); } }, _callee, null, [[2, 29]]); })); // 递归函数来处理 filterRule _this.handleFilterRuleToCondition = function (filterCondition, field) { console.log('handleFilterRuleToCondition begin with filterCondition', filterCondition, field); if (!filterCondition) return; var newFilterCondition = (0, _extends2["default"])({}, filterCondition); if (filterCondition.operator === 'or' || filterCondition.operator === 'and') { newFilterCondition.value = filterCondition.value.map(function (item) { return _this.handleFilterRuleToCondition(item, field); }); } else { if (filterCondition.valueType === 'ATTRIBUTE') { var attributeValueLogicalName = filterCondition.value; newFilterCondition.value = field.getValue(attributeValueLogicalName); } } console.log('handleFilterRuleToCondition end with newFilterCondition', newFilterCondition); return newFilterCondition; }; _this.handleFocus = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { var _this$props2, attribute, filterRule, field, attributeWithRefer, condition, query, response, dataSourceArray; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: _this.setState({ searchValue: '' }); _this$props2 = _this.props, attribute = _this$props2.attribute, filterRule = _this$props2.filterRule, field = _this$props2.field; console.log('handleFocus begin with ', attribute, filterRule, field); attributeWithRefer = _this.state.attributeWithRefer; condition = null; if (filterRule) { condition = _this.handleFilterRuleToCondition(filterRule, field); } console.log('handleFocus condition', condition); query = { "model": attributeWithRefer.referEntity.logicalName, condition: condition, "orderBy": [{ "attribute": "updateAt", "operator": "desc" }], "pageNum": 1, "pageSize": 1000 }; _context2.next = 10; return _oadpCommon.entityDataUtil.asyncSelectPageListByCondition(attributeWithRefer.referEntity.logicalName, query); case 10: response = _context2.sent; console.log('response', response); dataSourceArray = []; response.data.list.forEach(function (item) { dataSourceArray.push({ label: item.name, value: item[attributeWithRefer.referAttribute.logicalName] }); }); _this.setState({ dataSource: dataSourceArray }); console.log("dataSourceArray return", dataSourceArray); case 16: case "end": return _context2.stop(); } }, _callee2); })); _this.handleSearch = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(value) { var searchValue, attributeWithRefer, condition, response, dataSourceArray; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: // const{ searchValue } = this.state; searchValue = value; if (!(searchValue === '')) { _context3.next = 3; break; } return _context3.abrupt("return"); case 3: attributeWithRefer = _this.state.attributeWithRefer; console.log('Select onFocus begin ', attributeWithRefer.referEntity.logicalName, searchValue); condition = { "model": attributeWithRefer.referEntity.logicalName, "condition": { "attribute": "name", "operator": "like", "value": searchValue }, "orderBy": [{ "attribute": "updateAt", "operator": "desc" }], "pageNum": 1, "pageSize": 1000 }; _context3.next = 8; return _oadpCommon.entityDataUtil.asyncSelectPageListByCondition(attributeWithRefer.referEntity.logicalName, condition); case 8: response = _context3.sent; console.log('response', response); dataSourceArray = []; response.data.list.forEach(function (item) { dataSourceArray.push({ label: item.name, value: item[attributeWithRefer.referAttribute.logicalName] }); }); _this.setState({ dataSource: dataSourceArray }); console.log("dataSourceArray return", dataSourceArray); case 14: case "end": return _context3.stop(); } }, _callee3); })); return function (_x) { return _ref3.apply(this, arguments); }; }(); _this.state = { dataSource: [], needInitDataSource: true, searchValue: '', attributeWithRefer: null }; return _this; } (0, _inheritsLoose2["default"])(OadpSelect, _React$Component); var _proto = OadpSelect.prototype; _proto.componentDidMount = function componentDidMount() { // this.initDataSoure(); }; _proto.render = function render() { var _this2 = this; var _this$props3 = this.props, name = _this$props3.name, attribute = _this$props3.attribute, value = _this$props3.value, defaultValue = _this$props3.defaultValue, field = _this$props3.field, label = _this$props3.label, placeholder = _this$props3.placeholder, size = _this$props3.size, mode = _this$props3.mode, hasBorder = _this$props3.hasBorder, hasArrow = _this$props3.hasArrow, hasClear = _this$props3.hasClear, required = _this$props3.required, readOnly = _this$props3.readOnly, disabled = _this$props3.disabled, otherProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props3, _excluded); var menuProps = { focusable: false, header: /*#__PURE__*/React.createElement(_box["default"], { style: { padding: '0 4px', textAlign: 'center' } }, /*#__PURE__*/React.createElement(_box["default"], { style: { paddingBottom: 4 } }, /*#__PURE__*/React.createElement(_search["default"], { shape: "simple", onSearch: this.handleSearch, style: { width: '100%' }, placeholder: "\u8F93\u5165\u5173\u952E\u5B57\u67E5\u8BE2", hasClear: true })), /*#__PURE__*/React.createElement(_divider["default"], { style: { marginTop: 0, marginBottom: 4 } })), footer: /*#__PURE__*/React.createElement(_box["default"], { style: { padding: '0 4px', textAlign: 'center' } }, /*#__PURE__*/React.createElement(_divider["default"], { style: { marginBottom: 0, marginTop: 4 } })) }; this.initDataSoure(); return /*#__PURE__*/React.createElement(_select["default"], (0, _extends2["default"])({ name: name, value: value, dataSource: this.state.dataSource, onFocus: this.handleFocus, onBlur: function onBlur() { return _this2.setState({ searchValue: '' }); }, showSearch: true, onSearch: this.handleSearch, filterLocal: false, popupAutoFocus: true, menuProps: menuProps, defaultValue: defaultValue, label: label, placeholder: placeholder, size: size, mode: mode, hasBorder: hasBorder, hasArrow: hasArrow, hasClear: hasClear, required: required, readOnly: readOnly, disabled: disabled }, otherProps)); }; return OadpSelect; }(React.Component); ; var _default = exports["default"] = OadpSelect;