UNPKG

oadp-material

Version:
374 lines (373 loc) 13.6 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 _icon = _interopRequireDefault(require("@alifd/next/lib/icon")); var _select = _interopRequireDefault(require("@alifd/next/lib/select")); var _input = _interopRequireDefault(require("@alifd/next/lib/input")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = _interopRequireDefault(require("react")); var _oadpCommon = require("oadp-common"); var ConditionItem = function ConditionItem(_ref) { var condition = _ref.condition, attributeDataSource = _ref.attributeDataSource, onRemove = _ref.onRemove, _onChange = _ref.onChange; console.log('ConditionItem render condition', condition); var _React$useState = _react["default"].useState([]), referValueDataSource = _React$useState[0], setReferValueDataSource = _React$useState[1]; var _React$useState2 = _react["default"].useState([]), _React$useState2$ = _React$useState2[0], needInitReferValueDataSource = _React$useState2$ === void 0 ? true : _React$useState2$, setNeedInitReferValueDataSource = _React$useState2[1]; var valueTypeDataSource = [{ value: 'MEMBER', label: '成员值' }, { value: 'ATTRIBUTE', label: '属性值' }, { value: 'FORMULA', label: '公式值' }]; // 获取操作符选项 var getOperators = function getOperators(attribute) { console.log('OadpEntityButtonReadRule getOperators begin with attribute:', attribute, attributeDataSource); var defaultOperators = [{ value: 'equals', label: '等于' }, { value: 'contains', label: '包含' }, { value: 'startsWith', label: '开头是' }, { value: 'endsWith', label: '结尾是' }]; try { console.log('OadpEntityButtonReadRule getOperators begin with at!Array.isArray(attributeDataSource) :', !Array.isArray(attributeDataSource)); if (!attribute || !Array.isArray(attributeDataSource)) { return defaultOperators; } var attributeWithRefer = attributeDataSource.find(function (item) { return item.logicalName === attribute; }); if (!attributeWithRefer) { return defaultOperators; } var attributeType = attributeWithRefer === null || attributeWithRefer === void 0 ? void 0 : attributeWithRefer.attributeType; console.log('getOperators begin with attributeType:', attributeType); switch (attributeType.code) { case 'TEXT': case 'MULTI_TEXT': case 'NUMBER': case 'DECIMAL': case 'UUID': case 'AUTO_CODE': return [{ value: 'equals', label: '等于' }, { value: 'contains', label: '包含' }, { value: 'startsWith', label: '开头是' }, { value: 'endsWith', label: '结尾是' }]; case 'BOOLEAN': case 'ENUM': case 'MULTI_ENUM': case 'REFER': case 'NULTI_REFER': return [{ value: 'equals', label: '等于' }, { value: 'in', label: '属于' }, { value: 'notIn', label: '不属于' }]; default: return [{ value: 'equals', label: '等于' }, { value: 'contains', label: '包含' }, { value: 'startsWith', label: '开头是' }, { value: 'endsWith', label: '结尾是' }]; } } catch (error) { console.error('Error in getOperators:', error); return defaultOperators; } }; var handleValueFocus = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(attribute) { var attributeWithRefer, valueType, _attributeWithRefer$r, _attributeWithRefer$r2, conditionData, response, dataSourceArray, _dataSourceArray; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (attribute) { _context.next = 2; break; } return _context.abrupt("return"); case 2: attributeWithRefer = attributeDataSource.find(function (item) { return item.logicalName === attribute; }); valueType = condition.valueType; if (!(valueType === 'MEMBER')) { _context.next = 16; break; } conditionData = { "model": ((_attributeWithRefer$r = attributeWithRefer.referEntity) === null || _attributeWithRefer$r === void 0 ? void 0 : _attributeWithRefer$r.logicalName) || '', "orderBy": [{ "attribute": "updateAt", "operator": "desc" }], "pageNum": 1, "pageSize": 1000 }; _context.next = 8; return _oadpCommon.entityDataUtil.asyncSelectPageListByCondition(((_attributeWithRefer$r2 = attributeWithRefer.referEntity) === null || _attributeWithRefer$r2 === void 0 ? void 0 : _attributeWithRefer$r2.logicalName) || '', conditionData); case 8: response = _context.sent; console.log('response', response); dataSourceArray = []; response.data.list.forEach(function (item) { dataSourceArray.push({ label: item.name, value: item.id }); }); setReferValueDataSource(dataSourceArray); console.log("dataSourceArray return", dataSourceArray); _context.next = 17; break; case 16: if (valueType === 'ATTRIBUTE') { _dataSourceArray = []; attributeDataSource.forEach(function (item) { if (item.referEntity && attributeWithRefer.referEntity && item.referEntity.id === attributeWithRefer.referEntity.id) { _dataSourceArray.push({ label: item.label, value: item.value }); } }); setReferValueDataSource(_dataSourceArray); console.log("dataSourceArray return", _dataSourceArray); } case 17: case "end": return _context.stop(); } }, _callee); })); return function handleValueFocus(_x) { return _ref2.apply(this, arguments); }; }(); var renderValue = function renderValue() { var id = condition.id, attribute = condition.attribute, valueType = condition.valueType, value = condition.value; if (!attribute || !Array.isArray(attributeDataSource)) { return /*#__PURE__*/_react["default"].createElement(_input["default"], { style: { width: 100 }, hasBorder: false, value: value, onChange: function onChange(v) { return _onChange(id, { value: v }); }, placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22", hasClear: true, hoverShowClear: true }); } var attributeWithRefer = attributeDataSource.find(function (item) { return item.logicalName === attribute; }); console.log('renderValue begin with attribute', attribute, value, attributeWithRefer); var attributeType = attributeWithRefer === null || attributeWithRefer === void 0 ? void 0 : attributeWithRefer.attributeType; switch (attributeType === null || attributeType === void 0 ? void 0 : attributeType.code) { case 'TEXT': case 'MULTI_TEXT': case 'NUMBER': case 'DECIMAL': case 'UUID': case 'AUTO_CODE': return /*#__PURE__*/_react["default"].createElement(_input["default"], { style: { width: 100 }, hasBorder: false, value: value, onChange: function onChange(v) { return _onChange(id, { value: v }); }, placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22" }); case 'BOOLEAN': var booleanValueDataSource = [{ label: '是', value: 'true' }, { label: '否', value: 'false' }]; return /*#__PURE__*/_react["default"].createElement(_select["default"], { style: { width: 100 }, hasBorder: false, autoWidth: false, value: value, onChange: function onChange(v) { return _onChange(id, { value: v }); }, placeholder: "\u8BF7\u9009\u62E9", dataSource: booleanValueDataSource }); case 'ENUM': case 'MULTI_ENUM': case 'REFER': case 'NULTI_REFER': if (needInitReferValueDataSource) { if (valueType === 'MEMBER') { var _attributeWithRefer$r3, _attributeWithRefer$r4; var conditionData = { "model": ((_attributeWithRefer$r3 = attributeWithRefer.referEntity) === null || _attributeWithRefer$r3 === void 0 ? void 0 : _attributeWithRefer$r3.logicalName) || '', "orderBy": [{ "attribute": "updateAt", "operator": "desc" }], "pageNum": 1, "pageSize": 1000 }; _oadpCommon.entityDataUtil.selectPageListByCondition(((_attributeWithRefer$r4 = attributeWithRefer.referEntity) === null || _attributeWithRefer$r4 === void 0 ? void 0 : _attributeWithRefer$r4.logicalName) || '', conditionData, function (response) { console.log('response', response); var dataSourceArray = []; response.data.list.forEach(function (item) { dataSourceArray.push({ label: item.name, value: item.id }); }); setReferValueDataSource(dataSourceArray); setNeedInitReferValueDataSource(false); }); } else if (valueType === 'ATTRIBUTE') { var dataSourceArray = []; attributeDataSource.forEach(function (item) { if (item.referEntity && attributeWithRefer.referEntity && item.referEntity.id === attributeWithRefer.referEntity.id) { dataSourceArray.push({ label: item.label, value: item.value }); } }); setReferValueDataSource(dataSourceArray); setNeedInitReferValueDataSource(false); } } return /*#__PURE__*/_react["default"].createElement(_select["default"], { style: { width: 100 }, hasBorder: false, autoWidth: false, value: value, onChange: function onChange(v) { return _onChange(id, { value: v }); }, placeholder: "\u8BF7\u9009\u62E9", onFocus: function onFocus() { return handleValueFocus(attribute); }, dataSource: referValueDataSource }); default: return /*#__PURE__*/_react["default"].createElement(_input["default"], { style: { width: 100 }, hasBorder: false, value: value, onChange: function onChange(v) { return _onChange(id, { value: v }); }, placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22" }); ; } }; return /*#__PURE__*/_react["default"].createElement(_box["default"], { direction: "row", align: "center", justify: "left", style: { border: '1px solid #ccc' } }, /*#__PURE__*/_react["default"].createElement(_select["default"], { value: (condition === null || condition === void 0 ? void 0 : condition.attribute) || undefined, hasBorder: false, autoWidth: false, onChange: function onChange(v) { var _ref3, _getOperators$; console.log('v', v); var attributeValue = ((_ref3 = Array.isArray(v) ? v[0] : v) === null || _ref3 === void 0 ? void 0 : _ref3.value) || v; _onChange(condition.id, { attribute: attributeValue, operator: ((_getOperators$ = getOperators(attributeValue)[0]) === null || _getOperators$ === void 0 ? void 0 : _getOperators$.value) || '' }); }, style: { width: 60 }, dataSource: attributeDataSource, placeholder: "\u8BF7\u9009\u62E9\u5B57\u6BB5" }), renderValue(), /*#__PURE__*/_react["default"].createElement(_button["default"], { className: "action-button", text: true, onClick: function onClick() { return onRemove(condition.id); } }, /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: "close", size: "xs" }))); }; var _default = exports["default"] = ConditionItem;