oadp-material
Version:
oadp-material
240 lines (235 loc) • 10.3 kB
JavaScript
;
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;