oadp-material
Version:
oadp-material
374 lines (373 loc) • 13.6 kB
JavaScript
"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;