fx-form-widget
Version:
107 lines (106 loc) • 3.94 kB
JavaScript
import _Row from "antd/es/row";
import _Col from "antd/es/col";
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
import _Descriptions from "antd/es/descriptions";
var _excluded = ["column"];
import React, { useContext } from "react";
import { DetailRenderContext } from "..";
import Separator from "../separator";
import { blockComponent, renderWidget } from "./shard";
import Table from '../Table';
import Group from "../Group";
var Item = _Descriptions.Item;
var RowContainerGroup = function RowContainerGroup(props) {
var _useContext = useContext(DetailRenderContext),
_useContext$column = _useContext.column,
column = _useContext$column === void 0 ? 3 : _useContext$column,
restProps = _objectWithoutPropertiesLoose(_useContext, _excluded);
var values = props.values;
// 渲染多行表单
var renderRowContainers = function renderRowContainers(values) {
if (!Array.isArray(values)) return;
return values.map(function (props) {
var _ref = props || {},
label = _ref.label,
widgetType = _ref.widgetType,
value = _ref.value,
labelStyle = _ref.labelStyle,
lineStyle = _ref.lineStyle,
contentStyle = _ref.contentStyle,
children = _ref.children,
_ref$options = _ref.options,
options = _ref$options === void 0 ? {} : _ref$options,
wid = _ref.wid;
var showSerialNumberButton = options.showSerialNumberButton,
articlePageNumber = options.articlePageNumber,
exportDataButton = options.exportDataButton,
title = options.title;
var content = renderWidget(widgetType, value);
var descriptionsItemProps = {
label: label,
labelStyle: _extends({}, labelStyle, {
color: '#787878'
}),
contentStyle: _extends({}, contentStyle, {
color: '#262626',
display: '-webkit-box',
WebkitBoxOrient: 'vertical',
overflow: 'hidden',
paddingRight: 24,
WebkitLineClamp: 2
}),
key: wid
};
if (widgetType === 'subform') {
return /*#__PURE__*/React.createElement(_Col, {
span: 24
}, /*#__PURE__*/React.createElement(Table, {
dataSource: value,
title: title,
showExportBtn: exportDataButton,
showIndex: showSerialNumberButton,
schemas: children,
pageSize: articlePageNumber
}));
}
if (children) {
return /*#__PURE__*/React.createElement(_Col, {
span: 24
}, /*#__PURE__*/React.createElement(Group, {
values: children,
column: column,
label: label,
lineStyle: lineStyle,
wid: wid
}));
}
if (widgetType === 'separator') {
return /*#__PURE__*/React.createElement(_Col, {
span: 24
}, /*#__PURE__*/React.createElement(Separator, {
lineStyle: lineStyle,
title: label
}));
}
if (blockComponent.includes(widgetType)) {
/*#__PURE__*/React.createElement(_Col, {
span: 24
}, /*#__PURE__*/React.createElement(_Descriptions, _extends({
column: column
}, restProps), /*#__PURE__*/React.createElement(Item, _extends({
span: column
}, descriptionsItemProps), content)));
}
return /*#__PURE__*/React.createElement(_Col, {
span: 24 / column
}, /*#__PURE__*/React.createElement(_Descriptions, _extends({
column: column
}, restProps), /*#__PURE__*/React.createElement(Item, _extends({
span: column
}, descriptionsItemProps), content)));
});
};
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Row, null, renderRowContainers(values)));
};
export default RowContainerGroup;