oadp-material
Version:
oadp-material
213 lines (207 loc) • 8.16 kB
JavaScript
;
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;