@uiw-admin/components
Version:
121 lines (120 loc) • 4.88 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {};
exports["default"] = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _uiw = require("uiw");
var _react = _interopRequireDefault(require("react"));
var _utils = require("./utils");
var _jsxRuntime = require("react/jsx-runtime");
var _interface = require("./interface");
Object.keys(_interface).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _interface[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _interface[key];
}
});
});
function ComForm(props) {
var fieldArr = props.fields,
buttonGroup = props.buttonGroup,
buttonGroupClassName = props.buttonGroupClassName,
buttonGroupStyle = props.buttonGroupStyle,
_props$showSaveButton = props.showSaveButton,
showSaveButton = _props$showSaveButton === void 0 ? false : _props$showSaveButton,
_props$showResetButto = props.showResetButton,
showResetButton = _props$showResetButto === void 0 ? false : _props$showResetButto,
_props$saveButtonProp = props.saveButtonProps,
saveButtonProps = _props$saveButtonProp === void 0 ? {} : _props$saveButtonProp,
_props$resetButtonPro = props.resetButtonProps,
resetButtonProps = _props$resetButtonPro === void 0 ? {} : _props$resetButtonPro;
var buttonGroupArr = buttonGroup || [(0, _objectSpread2["default"])({
style: {
display: showSaveButton ? 'flex' : 'none'
},
htmlType: 'submit',
children: saveButtonProps.label || '提交'
}, saveButtonProps), (0, _objectSpread2["default"])({
style: {
display: showResetButton ? 'flex' : 'none'
},
children: resetButtonProps.label || '重置',
htmlType: 'reset'
}, resetButtonProps)];
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uiw.Form, {
onChange: function onChange(value) {
var _props$onChange;
return (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, value);
},
onSubmitError: function onSubmitError(error) {
if (props.onSubmitError) {
props.onSubmitError(error);
} else {
return error.filed ? (0, _objectSpread2["default"])({}, error.filed) : null;
}
},
fields: fieldArr,
onSubmit: function onSubmit(_ref, event) {
var initial = _ref.initial,
current = _ref.current;
if (props.onSubmit) {
props.onSubmit({
initial: initial,
current: current
}, event);
} else {
var result = (0, _utils.validator)(current, (0, _utils.getRules)(fieldArr));
if (Object.keys(result).length) {
var error = new Error();
error.filed = result;
throw error;
}
}
},
children: function children(childProps) {
var fields = childProps.fields,
canSubmit = childProps.canSubmit,
resetForm = childProps.resetForm;
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_uiw.Row, {
gutter: 10,
children: fields && Object.keys(fields).map(function (key) {
var ColProps = (0, _objectSpread2["default"])({}, props.colProps || {});
if (fieldArr) {
ColProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, ColProps), fieldArr[key].colProps || {});
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uiw.Col, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
span: 8
}, ColProps), {}, {
children: fields[key]
}), key);
})
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "w-form-item-center ".concat(buttonGroupClassName),
style: buttonGroupStyle,
children: buttonGroupArr.map(function (item, index) {
if (typeof item === 'function') {
return item(childProps);
}
var props = (0, _objectSpread2["default"])({}, item);
if (item.htmlType === 'submit') {
props.disabled = !(canSubmit !== null && canSubmit !== void 0 && canSubmit());
} else if (item.htmlType === 'reset') {
props.onClick = resetForm;
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uiw.Button, (0, _objectSpread2["default"])({}, props), index);
})
})]
});
}
});
}
var _default = ComForm;
exports["default"] = _default;