UNPKG

oadp-material

Version:
240 lines (235 loc) 10.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _box = _interopRequireDefault(require("@alifd/next/lib/box")); var _button = _interopRequireDefault(require("@alifd/next/lib/button")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireWildcard(require("react")); require("./index.scss"); var _oadpCommon = require("oadp-common"); var _oadpAttributeSettingTransfer = _interopRequireDefault(require("../common/oadp-attribute-setting-transfer")); var _conditionGroup = _interopRequireDefault(require("../oadp-entity-button-read-condition/condition-group")); var _excluded = ["children", "name", "id", "entity", "tableComponentRefId", "defaultValue", "label", "style", "type", "size", "onClick", "queryAttributeList", "disabled", "__designMode"]; 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; } // oadp-filter 组件定义 // oadp-filter 组件实例 var OadpEntityButtonReadCondition = function OadpEntityButtonReadCondition(_ref) { var children = _ref.children, name = _ref.name, id = _ref.id, entity = _ref.entity, tableComponentRefId = _ref.tableComponentRefId, defaultValue = _ref.defaultValue, label = _ref.label, style = _ref.style, type = _ref.type, size = _ref.size, onClick = _ref.onClick, queryAttributeList = _ref.queryAttributeList, disabled = _ref.disabled, __designMode = _ref.__designMode, otherProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded); // 使用 useState 管理 condition 的值 var _useState = (0, _react.useState)(defaultValue || { id: '0', operator: 'and', value: [{ id: String(Date.now() + 1), attribute: '', operator: 'equals', valueType: 'MEMBER', value: '' }] }), condition = _useState[0], setConditionValue = _useState[1]; var _React$useState = _react["default"].useState(queryAttributeList), attributeShowDataSource = _React$useState[0], setAttributeShowDataSource = _React$useState[1]; var _React$useState2 = _react["default"].useState([]), attributeDataSource = _React$useState2[0], setAttributeDataSource = _React$useState2[1]; var _React$useState3 = _react["default"].useState("and"), operator = _React$useState3[0], setOperator = _React$useState3[1]; // 初始化逻辑(类似类组件的 componentDidMount) (0, _react.useEffect)(function () { var fetchAttributeData = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var attributeData; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; console.log('OadpEntityButtonReadCondition componentDidMount props', { entity: entity, tableComponentRefId: tableComponentRefId }); if (entity) { _context.next = 5; break; } console.log('OadpEntityButtonReadCondition componentDidMount entity is undefined'); return _context.abrupt("return"); case 5: _context.next = 7; return _oadpCommon.entityMetadataUtil.asyncSelectAttributeListWithReferByEntityId(entity); case 7: attributeData = _context.sent; attributeData.list.forEach(function (item) { item.label = item.name || ''; item.value = item.id || ''; }); console.log('OadpEntityButtonReadCondition componentDidMount attributeData', attributeData.list); setAttributeDataSource(attributeData.list); _context.next = 16; break; case 13: _context.prev = 13; _context.t0 = _context["catch"](0); console.error('OadpEntityButtonReadCondition componentDidMount Failed to fetch field options:', _context.t0); case 16: case "end": return _context.stop(); } }, _callee, null, [[0, 13]]); })); return function fetchAttributeData() { return _ref2.apply(this, arguments); }; }(); fetchAttributeData(); }, [entity]); // 处理 Button 的 onClick 事件 var handleButtonClick = function handleButtonClick() { if (__designMode === 'design') { console.log('design mode OadpEntityButtonReadCondition click'); return; } if (onClick) { console.log('OadpEntityButtonReadCondition click condition', condition); onClick(condition); } }; var handleAdd = function handleAdd(parentId, isGroup) { var newItem = isGroup ? { id: String(Date.now()), operator: 'and', value: [{ id: String(Date.now() + 1), attribute: '', operator: 'equals', valueType: 'MEMBER', value: '' }, { id: String(Date.now() + 2), attribute: '', operator: 'equals', valueType: 'MEMBER' }] } : { id: String(Date.now()), attribute: '', operator: 'equals', valueType: 'MEMBER', value: '' }; console.log("handleAdd newItem", newItem); var newData = addItemToParent(condition, parentId, newItem); console.log("handleAdd newData", newData); setConditionValue(newData); }; var handleRemove = function handleRemove(id) { var newData = removeItemById(condition, id); setConditionValue(newData); }; var handleChange = function handleChange(id, updates) { console.log('handleChange with updates ', updates); var newData = updateConditionById(condition, id, updates); console.log('handleChange with newData ', newData); setConditionValue(newData); }; // 工具方法 var addItemToParent = function addItemToParent(filterCondition, parentId, newItem) { if (filterCondition.id === parentId) { return (0, _extends2["default"])({}, filterCondition, { value: [].concat(filterCondition.value || [], [newItem]) }); } if (filterCondition.value) { return (0, _extends2["default"])({}, filterCondition, { value: addItemToParent(filterCondition.value, parentId, newItem) }); } return filterCondition; }; var removeItemById = function removeItemById(filterCondition, id) { console.log('OadpEntityButtonReadCondition removeItemById ', filterCondition, id); if (!filterCondition.value) { return filterCondition; } // 确保 filterCondition.value 是一个数组 if (!Array.isArray(filterCondition.value)) { return filterCondition; } console.log('OadpEntityButtonReadCondition removeItemById filterCondition.value ', filterCondition.value); return (0, _extends2["default"])({}, filterCondition, { value: filterCondition.value.reduce(function (acc, item) { if (item.id === id) { return acc; } if (item.value && Array.isArray(item.value)) { return [].concat(acc, [(0, _extends2["default"])({}, item, { value: removeItemById(item, id).value })]); } return [].concat(acc, [item]); }, []) }); }; var updateConditionById = function updateConditionById(filterCondition, id, updates) { console.log('updateConditionById with updates ', updates, filterCondition); var newFilterCondition = (0, _extends2["default"])({}, filterCondition); if (filterCondition.id === id) { newFilterCondition = (0, _extends2["default"])({}, filterCondition, updates); } if (newFilterCondition.value && Array.isArray(newFilterCondition.value)) { newFilterCondition.value = newFilterCondition.value.map(function (item) { return updateConditionById(item, id, updates); }); } return newFilterCondition; }; var handleDialogOk = function handleDialogOk() { console.log('OadpEntityButtonReadCondition handleDialogOk'); }; return /*#__PURE__*/_react["default"].createElement(_box["default"], { direction: "row", justify: "start", align: "center" }, /*#__PURE__*/_react["default"].createElement(_conditionGroup["default"], { condition: condition, attributeDataSource: attributeDataSource, onAdd: handleAdd, onRemove: handleRemove, onChange: handleChange, handleButtonClick: handleButtonClick }), /*#__PURE__*/_react["default"].createElement(_button["default"], { type: 'primary', size: 'medium' // style={ style || { width: '60%' }} , onClick: handleButtonClick }, " \u6761\u4EF6\u67E5\u8BE2"), /*#__PURE__*/_react["default"].createElement(_oadpAttributeSettingTransfer["default"], { attributeDataSource: attributeDataSource, attributeShowDataSource: attributeShowDataSource, onConfirm: handleDialogOk, __designMode: __designMode })); }; var _default = exports["default"] = OadpEntityButtonReadCondition;