import { QuestionCircleOutlined } from '@ant-design/icons' import type { IOpenItemLayoutParams } from '@schema-render/core-react' import { utils } from '@schema-render/core-react' import { Popover } from 'antd' import type { FC } from 'react' import useFormRenderContext from '../../hooks/useFormRenderContext' import type { IFormRenderProps } from '../../typings' import styles from './index.module.css' const { classNames } = utils const builtinLabelRender: IFormRenderProps['labelRender'] = ({ schema, required, prefixClassNames, labelColon, }) => { const hasColon = !!labelColon return ( <> {/* 必填标记 */} {required && ( * )} {/* 标题展示 */} {schema.title} {/* 标题描述信息 */} {!!schema.titleDescription && ( )} {/* 冒号 */} {hasColon && ( {labelColon} )} ) } const Vertical: FC = ({ body, schema, validator, required, disabled, readonly, userCtx, prefixClassNames, }) => { const { labelWidth, labelColon, labelGap, labelRender, locale } = useFormRenderContext() const innerLabelRender = labelRender ? labelRender : builtinLabelRender const labelRenderParams = { schema, required, disabled, readonly, userCtx, prefixClassNames, labelWidth, labelColon, labelGap, locale, } return (
{/* 头部内容 */}
{innerLabelRender(labelRenderParams)}
{/* 主体内容 */}
{body}
{/* 页脚内容 */}
{/* 错误消息展示 */} {validator.status === 'error' && !!validator.message && (
{validator.message}
)} {/* 警告消息展示 */} {validator.status === 'warning' && !!validator.message && (
{validator.message}
)} {/* 描述信息展示 */} {!!schema.description && (
{schema.description}
)}
) } export default Vertical