diff --git a/react-ui/.storybook/preview.tsx b/react-ui/.storybook/preview.tsx index 8dc3c3fe..af81cc5c 100644 --- a/react-ui/.storybook/preview.tsx +++ b/react-ui/.storybook/preview.tsx @@ -22,6 +22,11 @@ const preview: Preview = { date: /Date$/i, }, }, + options: { + storySort: { + method: 'alphabetical', + }, + }, }, decorators: [ (Story) => ( diff --git a/react-ui/src/components/ConfigInfo/index.tsx b/react-ui/src/components/ConfigInfo/index.tsx new file mode 100644 index 00000000..0f81d46f --- /dev/null +++ b/react-ui/src/components/ConfigInfo/index.tsx @@ -0,0 +1,41 @@ +import BasicInfo, { type BasicInfoData, type BasicInfoProps } from '@/components/BasicInfo'; +import InfoGroup from '@/components/InfoGroup'; +import classNames from 'classnames'; +export type { BasicInfoData }; + +interface ConfigInfoProps extends BasicInfoProps { + /** 标题 */ + title: string; + /** 子元素 */ + children?: React.ReactNode; +} + +/** 详情基本信息块,目前主要用于主动机器学习、超参数寻优、自主学习详情中 */ +function ConfigInfo({ + title, + datas, + labelWidth, + labelAlign = 'start', + labelEllipsis = true, + threeColumns = true, + className, + style, + children, +}: ConfigInfoProps) { + return ( + +
+ + {children} +
+
+ ); +} + +export default ConfigInfo; diff --git a/react-ui/src/pages/AutoML/components/AutoMLBasic/index.tsx b/react-ui/src/pages/AutoML/components/AutoMLBasic/index.tsx index 6a4ceaa7..5f207b7d 100644 --- a/react-ui/src/pages/AutoML/components/AutoMLBasic/index.tsx +++ b/react-ui/src/pages/AutoML/components/AutoMLBasic/index.tsx @@ -1,3 +1,4 @@ +import ConfigInfo, { type BasicInfoData } from '@/components/ConfigInfo'; import { AutoMLTaskType, autoMLEnsembleClassOptions, autoMLTaskTypeOptions } from '@/enums'; import { AutoMLData } from '@/pages/AutoML/types'; import { experimentStatusInfo } from '@/pages/Experiment/status'; @@ -8,7 +9,6 @@ import { formatBoolean, formatDataset, formatDate, formatEnum } from '@/utils/fo import { Flex } from 'antd'; import classNames from 'classnames'; import { useMemo } from 'react'; -import ConfigInfo, { type BasicInfoData } from '../ConfigInfo'; import styles from './index.less'; // 格式化优化方向 @@ -236,7 +236,7 @@ function AutoMLBasic({ info, className, runStatus, isInstance = false }: AutoMLB {isInstance && runStatus && ( @@ -244,18 +244,18 @@ function AutoMLBasic({ info, className, runStatus, isInstance = false }: AutoMLB {!isInstance && ( )} - + ); } diff --git a/react-ui/src/pages/AutoML/components/ConfigInfo/index.less b/react-ui/src/pages/AutoML/components/ConfigInfo/index.less deleted file mode 100644 index 33fb3314..00000000 --- a/react-ui/src/pages/AutoML/components/ConfigInfo/index.less +++ /dev/null @@ -1,20 +0,0 @@ -.config-info { - :global { - .kf-basic-info { - width: 100%; - - &__item { - width: calc((100% - 80px) / 3); - &__label { - font-size: @font-size; - text-align: left; - text-align-last: left; - } - &__value { - min-width: 0; - font-size: @font-size; - } - } - } - } -} diff --git a/react-ui/src/pages/AutoML/components/ConfigInfo/index.tsx b/react-ui/src/pages/AutoML/components/ConfigInfo/index.tsx deleted file mode 100644 index 72596581..00000000 --- a/react-ui/src/pages/AutoML/components/ConfigInfo/index.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import BasicInfo, { type BasicInfoData } from '@/components/BasicInfo'; -import InfoGroup from '@/components/InfoGroup'; -import classNames from 'classnames'; -import styles from './index.less'; -export type { BasicInfoData }; - -type ConfigInfoProps = { - title: string; - data: BasicInfoData[]; - labelWidth: number; - className?: string; - style?: React.CSSProperties; - children?: React.ReactNode; -}; - -function ConfigInfo({ title, data, labelWidth, className, style, children }: ConfigInfoProps) { - return ( - -
- - {children} -
-
- ); -} - -export default ConfigInfo; diff --git a/react-ui/src/pages/HyperParameter/components/HyperParameterBasic/index.tsx b/react-ui/src/pages/HyperParameter/components/HyperParameterBasic/index.tsx index dc767ee8..eb00288b 100644 --- a/react-ui/src/pages/HyperParameter/components/HyperParameterBasic/index.tsx +++ b/react-ui/src/pages/HyperParameter/components/HyperParameterBasic/index.tsx @@ -1,6 +1,6 @@ +import ConfigInfo, { type BasicInfoData } from '@/components/ConfigInfo'; import { hyperParameterOptimizedMode } from '@/enums'; import { useComputingResource } from '@/hooks/resource'; -import ConfigInfo, { type BasicInfoData } from '@/pages/AutoML/components/ConfigInfo'; import { experimentStatusInfo } from '@/pages/Experiment/status'; import { schedulerAlgorithms, @@ -198,7 +198,7 @@ function HyperParameterBasic({ {isInstance && runStatus && ( @@ -206,14 +206,14 @@ function HyperParameterBasic({ {!isInstance && ( )} diff --git a/react-ui/src/stories/Config.stories.tsx b/react-ui/src/stories/Config.stories.tsx new file mode 100644 index 00000000..0287d718 --- /dev/null +++ b/react-ui/src/stories/Config.stories.tsx @@ -0,0 +1,37 @@ +import ConfigInfo from '@/components/ConfigInfo'; +import type { Meta, StoryObj } from '@storybook/react'; +import * as BasicInfoStories from './BasicInfo.stories'; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: 'Components/ConfigInfo', + component: ConfigInfo, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + // layout: 'centered', + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ['autodocs'], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + // backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + // args: { onClick: fn() }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args +export const Primary: Story = { + args: { + title: '基本信息', + datas: BasicInfoStories.Primary.args.datas, + labelAlign: 'start', + labelEllipsis: true, + threeColumns: true, + labelWidth: 80, + children:
I am a child element
, + }, +}; diff --git a/react-ui/src/stories/docs/Less.mdx b/react-ui/src/stories/docs/Less.mdx index 21543267..1b3a6632 100644 --- a/react-ui/src/stories/docs/Less.mdx +++ b/react-ui/src/stories/docs/Less.mdx @@ -176,7 +176,7 @@ function Component() { function Component1() { return (
-
+
)