UNPKG

@flatbiz/antd

Version:
147 lines (142 loc) 6.55 kB
/*! @flatjs/forge MIT @flatbiz/antd */ import { c as _toConsumableArray, b as _objectSpread2, i as _defineProperty } from './_rollupPluginBabelHelpers-BspM60Sw.js'; import { classNames } from '@dimjs/utils/class-names/class-names'; import { useRef, Fragment } from 'react'; import { Form, Empty } from 'antd'; import { toArray, getUuid } from '@flatbiz/utils'; import { B as ButtonWrapper } from './button-wrapper-BGjkUPpk.js'; import { FormItemGroup } from './form-item-group/index.js'; import { T as TextSymbolWrapper } from './symbol-DcM8okBP.js'; import { jsx, jsxs } from 'react/jsx-runtime'; var FormListChildrenWrapper = function FormListChildrenWrapper(props) { if (props.wrapper) return props.wrapper({ children: props.children }); return props.children; }; var FormListTitleRender = function FormListTitleRender(props) { var _props$formListItemTi, _props$formListItemTi2; return /*#__PURE__*/jsx(FormItemGroup.HorizontalUnion, _objectSpread2(_objectSpread2({}, props.formListItemTitleHProps), {}, { style: _objectSpread2({ marginBottom: 10 }, (_props$formListItemTi = props.formListItemTitleHProps) === null || _props$formListItemTi === void 0 ? void 0 : _props$formListItemTi.style), groupConfigList: ((_props$formListItemTi2 = props.formListItemTitleList) === null || _props$formListItemTi2 === void 0 ? void 0 : _props$formListItemTi2.map(function (item) { if (item.required) { return { width: item.width, mainItem: /*#__PURE__*/jsx("div", { style: { textAlign: 'center' }, children: /*#__PURE__*/jsx(TextSymbolWrapper, { text: item.title, symbolType: "required" }) }) }; } return { width: item.width, mainItem: /*#__PURE__*/jsx("div", { style: { textAlign: 'center' }, children: item.title }) }; })) || [] })); }; /** * Form.List 包装组件,使用更简单 * ``` * Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置 * 2. 通过 itemGap 设置FormList Item 之间间隙 * ``` */ var FormListWrapper = function FormListWrapper(props) { var stageCompleteName = [].concat(_toConsumableArray(props.prevCompleteName), _toConsumableArray(toArray(props.name))); var form = Form.useFormInstance(); var formListOperationRef = useRef([]); var uidFieldName = props.uidFieldName || 'uid'; var formListValue = Form.useWatch(stageCompleteName, form); var gapHalf = props.itemGap ? props.itemGap / 2 : 8; return /*#__PURE__*/jsx("div", { className: classNames('form-list-wrapper', props.className), style: props.style, children: /*#__PURE__*/jsx(Form.List, { name: props.name, rules: props.rules, children: function children(fields, operation, _ref) { var _props$formListItemTi3; var errors = _ref.errors; formListOperationRef.current = fields; return /*#__PURE__*/jsxs("div", { style: { borderRadius: '6px', border: errors !== null && errors !== void 0 && errors.length ? '1px solid #ff4d4f' : '1px solid transparent' }, children: [(_props$formListItemTi3 = props.formListItemTitleList) !== null && _props$formListItemTi3 !== void 0 && _props$formListItemTi3.length ? /*#__PURE__*/jsx(FormListTitleRender, { formListItemTitleList: props.formListItemTitleList, formListItemTitleHProps: props.formListItemTitleHorizontalUnionProps }) : null, !props.hiddenEmptyRender && !(formListValue !== null && formListValue !== void 0 && formListValue.length) ? /*#__PURE__*/jsx(Empty, { image: Empty.PRESENTED_IMAGE_SIMPLE, style: { margin: '15px 0' } }) : null, /*#__PURE__*/jsxs(Fragment, { children: [/*#__PURE__*/jsx(FormListChildrenWrapper, { wrapper: props.formListChildrenWrapper, children: /*#__PURE__*/jsx(Fragment, { children: fields.map(function (field, index) { var formStageCompleteName = [].concat(_toConsumableArray(stageCompleteName), [field.name]); return /*#__PURE__*/jsx("div", { className: "form-list-item-content", style: { padding: "".concat(gapHalf, "px 0 ").concat(gapHalf, "px 0") }, children: props.children({ formListFieldData: field, operation: operation, formStageCompleteName: formStageCompleteName, prevCompleteName: stageCompleteName, index: index, getInsideFormItemName: function getInsideFormItemName(key) { var keys = toArray(key); return [field.name].concat(_toConsumableArray(keys)); }, getInsideFormItemData: function getInsideFormItemData() { return form.getFieldValue(formStageCompleteName); }, uidKey: uidFieldName }) }, field.key); }) }) }), props.onCustomAddRowButton ? props.onCustomAddRowButton(operation) : /*#__PURE__*/jsx(ButtonWrapper, { hidden: props.hiddenAddRowButton, type: "dashed", block: true, onClick: function onClick() { var _props$getAddRowDefau; return operation.add(_objectSpread2(_defineProperty({}, uidFieldName, getUuid()), (_props$getAddRowDefau = props.getAddRowDefaultValues) === null || _props$getAddRowDefau === void 0 ? void 0 : _props$getAddRowDefau.call(props))); }, children: "\u6DFB\u52A0" }), /*#__PURE__*/jsx(Form.ErrorList, { errors: errors !== null && errors !== void 0 && errors.length ? [/*#__PURE__*/jsx("div", { style: { color: '#ff4d4f', padding: '5px' }, children: errors }, "0")] : undefined })] })] }); } }) }); }; export { FormListWrapper as F }; //# sourceMappingURL=form-list-wrapper-CDCICfHj.js.map