diff --git a/src/steps/header/index.less b/src/steps/header/index.less
new file mode 100644
index 0000000000000000000000000000000000000000..4771eed046d8e331176b4d0ba9718631b2386a05
--- /dev/null
+++ b/src/steps/header/index.less
@@ -0,0 +1,12 @@
+.ccms-antd-header {
+ padding: 0 !important;
+ margin-bottom: 24px !important;
+}
+
+.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
new file mode 100644
index 0000000000000000000000000000000000000000..240ac683d5ea1089e6b55a1ae377e54c762c2e71
--- /dev/null
+++ b/src/steps/header/index.tsx
@@ -0,0 +1,96 @@
+import React from 'react'
+import { Breadcrumb, BreadcrumbItemProps, Statistic, PageHeader, PageHeaderProps } from 'antd'
+import { HeaderStep } from 'ccms'
+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'
+import DetailStep from '../detail'
+
+export default class HeaderStepComponent extends HeaderStep {
+ interfaceHelper = new InterfaceHelper()
+ OperationHelper = OperationHelper
+ DetailStep = DetailStep
+
+ /**
+ * 用于展示面包屑元素
+ * @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
+ * @returns
+ */
+ renderBreadcurmbComponent = (props: IBreadcurmbProps) => {
+ return (
+
+ {props.items}
+
+ )
+ }
+
+ /**
+ * 用于展示统计内容
+ * @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 16e4e41aae9157ccfe675afcc28f22ba4c4bef2e..0ca2a067e5384a9b9b1daaf8ddaa2fb99605e166 100644
--- a/src/steps/index.tsx
+++ b/src/steps/index.tsx
@@ -3,6 +3,7 @@ import FormStep from './form'
import SkipStep from './skip'
import TableStep from './table'
import FilterStep from './filter'
+import HeaderStep from './header'
import DetailStep from './detail'
export default {
@@ -11,5 +12,6 @@ export default {
skip: SkipStep,
table: TableStep,
filter: FilterStep,
+ header: HeaderStep,
detail: DetailStep
}
diff --git a/src/util/operation.tsx b/src/util/operation.tsx
new file mode 100644
index 0000000000000000000000000000000000000000..3ab890b98d5a795cce1434f43e7d8ccd7a3b4e1f
--- /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