@wufengteam/inputs
Version:
平台提供的右侧属性编辑器,需要在主工程中注册
134 lines • 5.02 kB
JavaScript
// @ts-ignore
import React, { useEffect } from 'react';
import { Form, Checkbox as AntdCheckbox, Row, InputNumber, Space, Typography } from 'antd';
var Group = AntdCheckbox.Group;
var Text = Typography.Text;
var InnerCheck = function InnerCheck(_ref) {
var value = _ref.value,
onChange = _ref.onChange,
options = _ref.options,
showInputKey = _ref.showInputKey,
showFileNumKey = _ref.showFileNumKey,
showFileSizeKey = _ref.showFileSizeKey,
minMinValue = _ref.minMinValue,
minDefaultValue = _ref.minDefaultValue,
maxDefaultValue = _ref.maxDefaultValue;
var innerOnChange = function innerOnChange(changeValue) {
if (onChange) {
var newValue = Object.assign(Object.assign({}, value), changeValue);
var checkedValue = newValue.checkedValue || [];
if (showFileNumKey && checkedValue.indexOf(showFileNumKey) === -1) {
delete newValue[showFileNumKey];
}
if (showFileSizeKey && checkedValue.indexOf(showFileSizeKey) === -1) {
delete newValue[showFileSizeKey];
}
if (showInputKey && checkedValue.indexOf(showInputKey) === -1) {
delete newValue.minNum;
delete newValue.maxNum;
}
onChange(newValue);
}
};
useEffect(function () {
if (!value && (minDefaultValue || maxDefaultValue)) {
innerOnChange({
minNum: minDefaultValue,
maxNum: maxDefaultValue
});
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [minDefaultValue, maxDefaultValue]);
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Group, {
value: value === null || value === void 0 ? void 0 : value.checkedValue,
onChange: function onChange(checkValue) {
innerOnChange({
checkedValue: checkValue
});
}
}, options.map(function (item) {
var optionLabel = item.label,
optionValue = item.value;
return /*#__PURE__*/React.createElement(Row, {
key: optionLabel
}, /*#__PURE__*/React.createElement(AntdCheckbox, {
value: optionValue
}, optionLabel), optionValue === showInputKey && ((value === null || value === void 0 ? void 0 : value.checkedValue) || []).indexOf("".concat(showInputKey)) !== -1 && ( /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(InputNumber, {
value: value === null || value === void 0 ? void 0 : value.minNum,
min: minMinValue,
onChange: function onChange(num) {
innerOnChange({
minNum: num
});
},
placeholder: "\u6700\u5C0F",
style: {
width: '35%',
marginRight: 5
}
}), "~", /*#__PURE__*/React.createElement(InputNumber, {
value: value === null || value === void 0 ? void 0 : value.maxNum,
onChange: function onChange(num) {
innerOnChange({
maxNum: num
});
},
placeholder: "\u6700\u5927",
style: {
width: '35%',
marginLeft: 5
}
}))), optionValue === showFileNumKey && ((value === null || value === void 0 ? void 0 : value.checkedValue) || []).indexOf("".concat(showFileNumKey)) !== -1 && ( /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(InputNumber, {
value: value === null || value === void 0 ? void 0 : value.limitFileNum,
onChange: function onChange(fileNum) {
innerOnChange({
limitFileNum: fileNum
});
},
precision: 0,
style: {
width: '50%'
},
min: 0
}))), optionValue === showFileSizeKey && ((value === null || value === void 0 ? void 0 : value.checkedValue) || []).indexOf("".concat(showFileSizeKey)) !== -1 && ( /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Space, {
align: "center",
style: {
width: '50%'
}
}, /*#__PURE__*/React.createElement(InputNumber, {
min: 0,
value: value === null || value === void 0 ? void 0 : value.limitFileSize,
onChange: function onChange(e) {
innerOnChange({
limitFileSize: e
});
}
}), /*#__PURE__*/React.createElement(Text, null, "MB")))));
})));
};
var VerifyNumberValue = function VerifyNumberValue(_ref2) {
var name = _ref2.name,
label = _ref2.label,
rules = _ref2.rules,
options = _ref2.options,
showInputKey = _ref2.showInputKey,
showFileNumKey = _ref2.showFileNumKey,
showFileSizeKey = _ref2.showFileSizeKey,
minMinValue = _ref2.minMinValue,
minDefaultValue = _ref2.minDefaultValue,
maxDefaultValue = _ref2.maxDefaultValue;
return /*#__PURE__*/React.createElement(Form.Item, {
name: name,
label: label,
rules: rules
}, /*#__PURE__*/React.createElement(InnerCheck, {
options: options,
showInputKey: showInputKey,
showFileNumKey: showFileNumKey,
showFileSizeKey: showFileSizeKey,
minDefaultValue: minDefaultValue,
minMinValue: minMinValue,
maxDefaultValue: maxDefaultValue
}));
};
export default VerifyNumberValue;