|
|
|
@@ -1,6 +1,5 @@ |
|
|
|
import ResourceSelectorModal, { ResourceSelectorType } from '@/components/ResourceSelectorModal'; |
|
|
|
import { openAntdModal } from '@/utils/modal'; |
|
|
|
import { useArgs } from '@storybook/preview-api'; |
|
|
|
import type { Meta, StoryObj } from '@storybook/react'; |
|
|
|
import { fn } from '@storybook/test'; |
|
|
|
import { Button } from 'antd'; |
|
|
|
@@ -18,14 +17,42 @@ import { |
|
|
|
|
|
|
|
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export |
|
|
|
const meta = { |
|
|
|
title: 'Components/ResourceSelectorModal', |
|
|
|
title: 'Components/ResourceSelectorModal 资源选择对话框', |
|
|
|
component: ResourceSelectorModal, |
|
|
|
parameters: { |
|
|
|
// Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout |
|
|
|
layout: 'centered', |
|
|
|
msw: { |
|
|
|
handlers: [ |
|
|
|
http.get('/api/mmp/newdataset/queryDatasets', () => { |
|
|
|
return HttpResponse.json(datasetListData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newdataset/getVersionList', () => { |
|
|
|
return HttpResponse.json(datasetVersionData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newdataset/getDatasetDetail', () => { |
|
|
|
return HttpResponse.json(datasetDetailData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newmodel/queryModels', () => { |
|
|
|
return HttpResponse.json(modelListData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newmodel/getVersionList', () => { |
|
|
|
return HttpResponse.json(modelVersionData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newmodel/getModelDetail', () => { |
|
|
|
return HttpResponse.json(modelDetailData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/image', () => { |
|
|
|
return HttpResponse.json(mirrorListData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/imageVersion', () => { |
|
|
|
return HttpResponse.json(mirrorVerionData); |
|
|
|
}), |
|
|
|
], |
|
|
|
}, |
|
|
|
}, |
|
|
|
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs |
|
|
|
tags: ['autodocs'], |
|
|
|
tags: ['!autodocs'], |
|
|
|
// More on argTypes: https://storybook.js.org/docs/api/argtypes |
|
|
|
argTypes: { |
|
|
|
// backgroundColor: { control: 'color' }, |
|
|
|
@@ -45,158 +72,58 @@ export default meta; |
|
|
|
type Story = StoryObj<typeof meta>; |
|
|
|
|
|
|
|
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args |
|
|
|
/** 选择数据集 */ |
|
|
|
export const Dataset: Story = { |
|
|
|
args: { |
|
|
|
type: ResourceSelectorType.Dataset, |
|
|
|
open: false, |
|
|
|
}, |
|
|
|
parameters: { |
|
|
|
msw: { |
|
|
|
handlers: [ |
|
|
|
http.get('/api/mmp/newdataset/queryDatasets', () => { |
|
|
|
return HttpResponse.json(datasetListData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newdataset/getVersionList', () => { |
|
|
|
return HttpResponse.json(datasetVersionData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newdataset/getDatasetDetail', () => { |
|
|
|
return HttpResponse.json(datasetDetailData); |
|
|
|
}), |
|
|
|
], |
|
|
|
}, |
|
|
|
}, |
|
|
|
render: function Render({ onOk, onCancel, ...args }) { |
|
|
|
const [{ open }, updateArgs] = useArgs(); |
|
|
|
function onClick() { |
|
|
|
updateArgs({ open: true }); |
|
|
|
} |
|
|
|
function handleOk(res: any) { |
|
|
|
updateArgs({ open: false }); |
|
|
|
onOk?.(res); |
|
|
|
} |
|
|
|
|
|
|
|
function handleCancel() { |
|
|
|
updateArgs({ open: false }); |
|
|
|
onCancel?.(); |
|
|
|
} |
|
|
|
|
|
|
|
render: function Render(args) { |
|
|
|
const handleClick = () => { |
|
|
|
const { close } = openAntdModal(ResourceSelectorModal, { |
|
|
|
type: args.type, |
|
|
|
onOk: (res) => { |
|
|
|
const { onOk } = args; |
|
|
|
onOk?.(res); |
|
|
|
close(); |
|
|
|
}, |
|
|
|
}); |
|
|
|
}; |
|
|
|
return ( |
|
|
|
<> |
|
|
|
<Button type="primary" onClick={onClick}> |
|
|
|
选择数据集 |
|
|
|
</Button> |
|
|
|
<ResourceSelectorModal {...args} open={open} onOk={handleOk} onCancel={handleCancel} /> |
|
|
|
</> |
|
|
|
<Button type="primary" onClick={handleClick}> |
|
|
|
选择数据集 |
|
|
|
</Button> |
|
|
|
); |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
/** 选择模型 */ |
|
|
|
export const Model: Story = { |
|
|
|
args: { |
|
|
|
type: ResourceSelectorType.Model, |
|
|
|
open: false, |
|
|
|
}, |
|
|
|
parameters: { |
|
|
|
msw: { |
|
|
|
handlers: [ |
|
|
|
http.get('/api/mmp/newmodel/queryModels', () => { |
|
|
|
return HttpResponse.json(modelListData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newmodel/getVersionList', () => { |
|
|
|
return HttpResponse.json(modelVersionData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/newmodel/getModelDetail', () => { |
|
|
|
return HttpResponse.json(modelDetailData); |
|
|
|
}), |
|
|
|
], |
|
|
|
}, |
|
|
|
}, |
|
|
|
render: function Render({ onOk, onCancel, ...args }) { |
|
|
|
const [{ open }, updateArgs] = useArgs(); |
|
|
|
function onClick() { |
|
|
|
updateArgs({ open: true }); |
|
|
|
} |
|
|
|
function handleOk(res: any) { |
|
|
|
updateArgs({ open: false }); |
|
|
|
onOk?.(res); |
|
|
|
} |
|
|
|
|
|
|
|
function handleCancel() { |
|
|
|
updateArgs({ open: false }); |
|
|
|
onCancel?.(); |
|
|
|
} |
|
|
|
|
|
|
|
render: function Render(args) { |
|
|
|
const handleClick = () => { |
|
|
|
const { close } = openAntdModal(ResourceSelectorModal, { |
|
|
|
type: args.type, |
|
|
|
onOk: (res) => { |
|
|
|
const { onOk } = args; |
|
|
|
onOk?.(res); |
|
|
|
close(); |
|
|
|
}, |
|
|
|
}); |
|
|
|
}; |
|
|
|
return ( |
|
|
|
<> |
|
|
|
<Button type="primary" onClick={onClick}> |
|
|
|
选择模型 |
|
|
|
</Button> |
|
|
|
<ResourceSelectorModal {...args} open={open} onOk={handleOk} onCancel={handleCancel} /> |
|
|
|
</> |
|
|
|
<Button type="primary" onClick={handleClick}> |
|
|
|
选择模型 |
|
|
|
</Button> |
|
|
|
); |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
/** 选择镜像 */ |
|
|
|
export const Mirror: Story = { |
|
|
|
args: { |
|
|
|
type: ResourceSelectorType.Mirror, |
|
|
|
open: false, |
|
|
|
}, |
|
|
|
parameters: { |
|
|
|
msw: { |
|
|
|
handlers: [ |
|
|
|
http.get('/api/mmp/image', () => { |
|
|
|
return HttpResponse.json(mirrorListData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/imageVersion', () => { |
|
|
|
return HttpResponse.json(mirrorVerionData); |
|
|
|
}), |
|
|
|
], |
|
|
|
}, |
|
|
|
}, |
|
|
|
render: function Render({ onOk, onCancel, ...args }) { |
|
|
|
const [{ open }, updateArgs] = useArgs(); |
|
|
|
function onClick() { |
|
|
|
updateArgs({ open: true }); |
|
|
|
} |
|
|
|
function handleOk(res: any) { |
|
|
|
updateArgs({ open: false }); |
|
|
|
onOk?.(res); |
|
|
|
} |
|
|
|
|
|
|
|
function handleCancel() { |
|
|
|
updateArgs({ open: false }); |
|
|
|
onCancel?.(); |
|
|
|
} |
|
|
|
|
|
|
|
return ( |
|
|
|
<> |
|
|
|
<Button type="primary" onClick={onClick}> |
|
|
|
选择镜像 |
|
|
|
</Button> |
|
|
|
<ResourceSelectorModal {...args} open={open} onOk={handleOk} onCancel={handleCancel} /> |
|
|
|
</> |
|
|
|
); |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
/** 通过 `openAntdModal` 函数打开 */ |
|
|
|
export const OpenByFunction: Story = { |
|
|
|
name: '通过函数的方式打开', |
|
|
|
args: { |
|
|
|
type: ResourceSelectorType.Mirror, |
|
|
|
}, |
|
|
|
parameters: { |
|
|
|
msw: { |
|
|
|
handlers: [ |
|
|
|
http.get('/api/mmp/image', () => { |
|
|
|
return HttpResponse.json(mirrorListData); |
|
|
|
}), |
|
|
|
http.get('/api/mmp/imageVersion', () => { |
|
|
|
return HttpResponse.json(mirrorVerionData); |
|
|
|
}), |
|
|
|
], |
|
|
|
}, |
|
|
|
}, |
|
|
|
render: function Render(args) { |
|
|
|
const handleClick = () => { |
|
|
|
@@ -211,7 +138,7 @@ export const OpenByFunction: Story = { |
|
|
|
}; |
|
|
|
return ( |
|
|
|
<Button type="primary" onClick={handleClick}> |
|
|
|
以函数的方式打开 |
|
|
|
选择镜像 |
|
|
|
</Button> |
|
|
|
); |
|
|
|
}, |
|
|
|
|