UNPKG

@uiw-admin/components

Version:
121 lines (120 loc) 4.88 kB
"use strict"; 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;