From 41b081148a0e77911c2e66d61af806602f3cb6dc Mon Sep 17 00:00:00 2001 From: niuxiaoguang Date: Tue, 16 Nov 2021 10:47:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E9=A1=B5?= =?UTF-8?q?=E5=A4=B4=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/steps/header/index.less | 8 ++++ src/steps/header/index.tsx | 81 +++++++++++++++++++++++++++++++++++++ src/steps/index.tsx | 4 +- 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 src/steps/header/index.less create mode 100644 src/steps/header/index.tsx diff --git a/src/steps/header/index.less b/src/steps/header/index.less new file mode 100644 index 0000000..7092e4d --- /dev/null +++ b/src/steps/header/index.less @@ -0,0 +1,8 @@ +.ccms-antd-header { + padding: 0 !important; + margin-bottom: 24px !important; +} + +.breadcrumb-item-bold { + font-weight: bold; +} \ No newline at end of file diff --git a/src/steps/header/index.tsx b/src/steps/header/index.tsx new file mode 100644 index 0000000..c4bb0b3 --- /dev/null +++ b/src/steps/header/index.tsx @@ -0,0 +1,81 @@ +import React from 'react' +import { Breadcrumb, BreadcrumbItemProps, Statistic, PageHeader, PageHeaderProps } from 'antd' +import { HeaderStep } from 'ccms' +import { IBreadcurmbProps, IHeaderProps, IStatisticProps } from 'ccms/dist/src/steps/header' +import styles from './index.less' + +export default class HeaderStepComponent extends HeaderStep { + /** + * 用于展示面包屑 + * @param props + * @returns + */ + renderBreadcurmbComponent = (props: IBreadcurmbProps) => { + return ( + + {props.items.map((item) => { + const breadcrumbItemProps: BreadcrumbItemProps = {} + if (item.type === 'bold') { + breadcrumbItemProps.className = styles['breadcrumb-item-bold'] + } + if (item.onClick) { + breadcrumbItemProps.onClick = item.onClick + } + return {item.label} + })} + + ) + } + + /** + * 用于展示统计内容 + * @param props + * @returns + */ + renderStatisticComponent = (props: IStatisticProps) => { + return ( + + ) + } + + renderContent = (mainContent?: React.ReactNode, extraContent?: React.ReactNode) => { + if (mainContent || extraContent) { + if (mainContent && extraContent) { + return ( +
+
{mainContent}
+
{extraContent}
+
+ ) + } else if (mainContent) { + return mainContent + } else if (extraContent) { + return extraContent + } + } else { + return null + } + } + + renderComponent = (props: IHeaderProps) => { + const pageHeaderProps: PageHeaderProps = { + className: styles['ccms-antd-header'] + } + if (props.breadcrumb) { + pageHeaderProps.breadcrumbRender = () => props.breadcrumb + } + if (props.title) { + pageHeaderProps.title = props.title + } + if (props.subTitle) { + pageHeaderProps.subTitle = props.subTitle + } + if (props.onBack) { + pageHeaderProps.onBack = props.onBack + } + + return ( + {this.renderContent(props.mainContent, props.extraContent)} + ) + } +} \ No newline at end of file diff --git a/src/steps/index.tsx b/src/steps/index.tsx index 9cae75d..9355ead 100644 --- a/src/steps/index.tsx +++ b/src/steps/index.tsx @@ -3,11 +3,13 @@ import FormStep from './form' import SkipStep from './skip' import TableStep from './table' import FilterStep from './filter' +import HeaderStep from './header' export default { fetch: FetchStep, form: FormStep, skip: SkipStep, table: TableStep, - filter: FilterStep + filter: FilterStep, + header: HeaderStep } -- Gitee From cd62599b5b8ce9b88305936187bcdd14ccae3e65 Mon Sep 17 00:00:00 2001 From: niuxiaoguang Date: Fri, 19 Nov 2021 16:48:08 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E5=85=AC=E5=85=B1=E6=A8=A1=E5=9D=97=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/steps/header/index.less | 4 ++++ src/steps/header/index.tsx | 35 ++++++++++++++++++++++++----------- src/util/operation.tsx | 27 +++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 src/util/operation.tsx diff --git a/src/steps/header/index.less b/src/steps/header/index.less index 7092e4d..4771eed 100644 --- a/src/steps/header/index.less +++ b/src/steps/header/index.less @@ -5,4 +5,8 @@ .breadcrumb-item-bold { font-weight: bold; +} + +.breadcrumb-item-pointer { + cursor: pointer; } \ No newline at end of file diff --git a/src/steps/header/index.tsx b/src/steps/header/index.tsx index c4bb0b3..7868d5a 100644 --- a/src/steps/header/index.tsx +++ b/src/steps/header/index.tsx @@ -1,10 +1,32 @@ import React from 'react' import { Breadcrumb, BreadcrumbItemProps, Statistic, PageHeader, PageHeaderProps } from 'antd' import { HeaderStep } from 'ccms' -import { IBreadcurmbProps, IHeaderProps, IStatisticProps } from 'ccms/dist/src/steps/header' +import { IBreadcurmbItemProps, IBreadcurmbProps, IHeaderProps, IStatisticProps } from 'ccms/dist/src/steps/header' import styles from './index.less' +import InterfaceHelper from '../../util/interface' +import OperationHelper from '../../util/operation' export default class HeaderStepComponent extends HeaderStep { + interfaceHelper = new InterfaceHelper() + OperationHelper = OperationHelper + + /** + * 用于展示面包屑元素 + * @param props + * @returns + */ + renderBreadcurmbItemComponent = (props: IBreadcurmbItemProps) => { + const breadcrumbItemProps: BreadcrumbItemProps = {} + if (props.type === 'bold') { + breadcrumbItemProps.className = styles['breadcrumb-item-bold'] + } + if (props.onClick) { + breadcrumbItemProps.className = breadcrumbItemProps.className ? (breadcrumbItemProps.className + ' ' + styles['breadcrumb-item-pointer']) : styles['breadcrumb-item-pointer'] + breadcrumbItemProps.onClick = props.onClick + } + return {props.label} + } + /** * 用于展示面包屑 * @param props @@ -13,16 +35,7 @@ export default class HeaderStepComponent extends HeaderStep { renderBreadcurmbComponent = (props: IBreadcurmbProps) => { return ( - {props.items.map((item) => { - const breadcrumbItemProps: BreadcrumbItemProps = {} - if (item.type === 'bold') { - breadcrumbItemProps.className = styles['breadcrumb-item-bold'] - } - if (item.onClick) { - breadcrumbItemProps.onClick = item.onClick - } - return {item.label} - })} + {props.items} ) } diff --git a/src/util/operation.tsx b/src/util/operation.tsx new file mode 100644 index 0000000..3ab890b --- /dev/null +++ b/src/util/operation.tsx @@ -0,0 +1,27 @@ +import React from "react" +import { OperationHelper as _OperationHelper } from "ccms" +import { Modal } from "antd" +import CCMS from "../main" +import { CCMSProps } from "ccms/dist/src/main" +import { IOperationModal } from "ccms/dist/src/util/operation" + +export default class OperationHelper extends _OperationHelper { + protected renderModal (props: IOperationModal) { + return ( + document.getElementById('ccms-antd') || document.body} + onCancel={() => props.onClose()} + > + {props.content} + + ) + } + + protected renderCCMS (props: CCMSProps) { + return + } +} \ No newline at end of file -- Gitee From 82a42a3837de0cde5ebac62caeff73d626195836 Mon Sep 17 00:00:00 2001 From: niuxiaoguang Date: Wed, 24 Nov 2021 17:31:15 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E5=9C=A8=E9=A1=B5=E5=A4=B4?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4=E4=B8=AD=E5=BC=95=E7=94=A8=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4=E5=86=85=E5=AE=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/steps/header/index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/steps/header/index.tsx b/src/steps/header/index.tsx index 7868d5a..240ac68 100644 --- a/src/steps/header/index.tsx +++ b/src/steps/header/index.tsx @@ -5,10 +5,12 @@ import { IBreadcurmbItemProps, IBreadcurmbProps, IHeaderProps, IStatisticProps } import styles from './index.less' import InterfaceHelper from '../../util/interface' import OperationHelper from '../../util/operation' +import DetailStep from '../detail' export default class HeaderStepComponent extends HeaderStep { interfaceHelper = new InterfaceHelper() OperationHelper = OperationHelper + DetailStep = DetailStep /** * 用于展示面包屑元素 -- Gitee