@flatbiz/antd
Version:
147 lines (142 loc) • 6.55 kB
JavaScript
/*! @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