UNPKG

oadp-material

Version:
213 lines (207 loc) 8.16 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _box = _interopRequireDefault(require("@alifd/next/lib/box")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireWildcard(require("react")); require("./index.scss"); var _conditionGroup = _interopRequireDefault(require("./condition-group")); var _oadpCommon = require("oadp-common"); var _excluded = ["children", "name", "id", "entity", "tableComponentRefId", "defaultValue", "label", "style", "type", "size", "onClick", "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 OadpEntityButtonReadRule = function OadpEntityButtonReadRule(_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, 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 _useState2 = (0, _react.useState)(), attributeDataSource = _useState2[0], setAttributeDataSource = _useState2[1]; // 初始化逻辑(类似类组件的 componentDidMount) (0, _react.useEffect)(function () { // 1. 数据请求 try { var _condition = { "model": "attribute", "condition": { "attribute": "entityId", "operator": "equals", "value": entity }, "orderBy": [{ "attribute": "createAt", "operator": "desc" }], "pageNum": 1, "pageSize": 10000 }; _oadpCommon.entityDataUtil.selectPageListWithReferByCondition('attribute', _condition, function (response) { console.log('response', response); response.data.list.forEach(function (item) { item.label = item.name || ''; item.value = item.logicalName || ''; }); setAttributeDataSource(response.data.list); }); } catch (error) { console.error('OadpEntityButtonReadRule Failed to fetch field options:', error); } }, []); // 空依赖数组确保只运行一次 console.log('OadpEntityButtonReadRule props:', (0, _extends2["default"])({ children: children, name: name, id: id, entity: entity, tableComponentRefId: tableComponentRefId, // value, defaultValue: defaultValue, label: label, style: style, type: type, size: size, onClick: onClick, disabled: disabled, __designMode: __designMode }, otherProps)); if (__designMode === 'design') { onClick = function onClick(e) { console.log('design mode OadpEntityButtonReadRule click'); }; } // 处理 Button 的 onClick 事件 var handleButtonClick = function handleButtonClick() { if (onClick) { console.log('OadpEntityButtonReadRule 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('OadpEntityButtonReadRule removeItemById ', filterCondition, id); if (!filterCondition.value) { return filterCondition; } // 确保 filterCondition.value 是一个数组 if (!Array.isArray(filterCondition.value)) { return filterCondition; } console.log('OadpEntityButtonReadRule 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; }; return /*#__PURE__*/_react["default"].createElement(_box["default"], { direction: "column" }, /*#__PURE__*/_react["default"].createElement(_conditionGroup["default"], { condition: condition, attributeDataSource: attributeDataSource, onAdd: handleAdd, onRemove: handleRemove, onChange: handleChange, handleButtonClick: handleButtonClick })); }; var _default = exports["default"] = OadpEntityButtonReadRule;