UNPKG

fx-form-widget

Version:
107 lines (106 loc) 3.94 kB
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;