feat(componentList): 增加上传组件和下载组件按钮,功能与发布组件和导出组件一致

fixbug
钟良源 3 weeks ago
parent a09da139f2
commit 785eb8239f

@ -12,7 +12,7 @@ interface HandleButtonGroupProps {
index: number; index: number;
permission?: string; // 协作权限admin, write, read permission?: string; // 协作权限admin, write, read
isCollaborator?: boolean; // 是否为协作组件 isCollaborator?: boolean; // 是否为协作组件
onHandlePublishComponent: (row: ComponentItem) => void; onHandlePublishComponent: (row: ComponentItem, type: 'publish' | 'upload') => void;
onGoToReview: (row: ComponentItem) => void; onGoToReview: (row: ComponentItem) => void;
onPublishOrRevokeComponent: (action: 'publish' | 'revoke', identifier: string, version: string) => void; onPublishOrRevokeComponent: (action: 'publish' | 'revoke', identifier: string, version: string) => void;
onSourceCodeView: (row: ComponentItem) => void; onSourceCodeView: (row: ComponentItem) => void;
@ -72,6 +72,25 @@ const HandleButtonGroup: React.FC<HandleButtonGroupProps> = ({
} }
// 以下操作只在"我的组件"tab显示 // 以下操作只在"我的组件"tab显示
if (!isCollaborator) { if (!isCollaborator) {
// 上传组件
//
if (row.publicStatus !== publicStatus.REVIEW && isEligible([componentStatusConstant.CODING, componentStatusConstant.DEPLOYED, componentStatusConstant.PUBLISHED], row.componentStatus)) {
items.push(
<Menu.Item key="upload">
<Button type="text" onClick={() => onHandlePublishComponent(row, 'upload')}></Button>
</Menu.Item>
);
}
// 下载组件
items.push(
<Menu.Item key="export">
<Button type="text" onClick={() => onExportComponent(row)}></Button>
</Menu.Item>
);
// 组件复制 - 所有权限都可以复制 // 组件复制 - 所有权限都可以复制
if (!isEligible([componentStatusConstant.DEFAULT, componentStatusConstant.DESIGN], row.componentStatus)) { if (!isEligible([componentStatusConstant.DEFAULT, componentStatusConstant.DESIGN], row.componentStatus)) {
items.push( items.push(
@ -128,7 +147,7 @@ const HandleButtonGroup: React.FC<HandleButtonGroupProps> = ({
{row.publicStatus !== publicStatus.REVIEW && isEligible([componentStatusConstant.CODING, componentStatusConstant.DEPLOYED, componentStatusConstant.PUBLISHED], row.componentStatus) && ( {row.publicStatus !== publicStatus.REVIEW && isEligible([componentStatusConstant.CODING, componentStatusConstant.DEPLOYED, componentStatusConstant.PUBLISHED], row.componentStatus) && (
<Button <Button
type="text" type="text"
onClick={() => onHandlePublishComponent(row)} onClick={() => onHandlePublishComponent(row, 'publish')}
> >
{row.publicStatus === publicStatus.PUBLISHED ? '更新版本' : '发布组件'} {row.publicStatus === publicStatus.PUBLISHED ? '更新版本' : '发布组件'}
</Button> </Button>

@ -61,6 +61,7 @@ const GlobalVarContainer = () => {
const [visible, setVisible] = useState(false); const [visible, setVisible] = useState(false);
const [publishModalVisible, setPublishModalVisible] = useState(false); const [publishModalVisible, setPublishModalVisible] = useState(false);
const [selectedPublishComponent, setSelectedPublishComponent] = useState(null); const [selectedPublishComponent, setSelectedPublishComponent] = useState(null);
const [selectedPublishComponentType, setSelectedPublishComponentType] = useState<'publish' | 'upload'>('publish');
const [mode, setMode] = useState<'create' | 'edit' | 'copy'>('create'); // 添加模式状态 const [mode, setMode] = useState<'create' | 'edit' | 'copy'>('create'); // 添加模式状态
const [searchValue, setSearchValue] = useState(''); // 添加搜索状态 const [searchValue, setSearchValue] = useState(''); // 添加搜索状态
const [componentStatus, setComponentStatus] = useState(''); // 添加组件状态筛选 const [componentStatus, setComponentStatus] = useState(''); // 添加组件状态筛选
@ -220,8 +221,9 @@ const GlobalVarContainer = () => {
index={index} index={index}
permission={selectedItem === '协同组件' ? record.permission : undefined} permission={selectedItem === '协同组件' ? record.permission : undefined}
isCollaborator={selectedItem === '协同组件'} isCollaborator={selectedItem === '协同组件'}
onHandlePublishComponent={(row) => { onHandlePublishComponent={(row, type) => {
setSelectedPublishComponent(row); setSelectedPublishComponent(row);
setSelectedPublishComponentType(type);
setPublishModalVisible(true); setPublishModalVisible(true);
}} }}
onGoToReview={(row) => { onGoToReview={(row) => {
@ -872,6 +874,7 @@ const GlobalVarContainer = () => {
<PublishComponentModal <PublishComponentModal
visible={publishModalVisible} visible={publishModalVisible}
componentInfo={selectedPublishComponent} componentInfo={selectedPublishComponent}
type={selectedPublishComponentType}
onCancel={() => { onCancel={() => {
setPublishModalVisible(false); setPublishModalVisible(false);
setSelectedPublishComponent(null); setSelectedPublishComponent(null);

@ -10,6 +10,7 @@ const FormItem = Form.Item;
interface PublishComponentModalProps { interface PublishComponentModalProps {
visible: boolean; visible: boolean;
componentInfo: any; componentInfo: any;
type: 'publish' | 'upload';
onCancel: () => void; onCancel: () => void;
onSuccess: () => void; onSuccess: () => void;
} }
@ -17,6 +18,7 @@ interface PublishComponentModalProps {
const PublishComponentModal: React.FC<PublishComponentModalProps> = ({ const PublishComponentModal: React.FC<PublishComponentModalProps> = ({
visible, visible,
componentInfo, componentInfo,
type,
onCancel, onCancel,
onSuccess onSuccess
}) => { }) => {
@ -127,7 +129,7 @@ const PublishComponentModal: React.FC<PublishComponentModalProps> = ({
return ( return (
<Modal <Modal
title="组件发布" title={type === 'upload' ? '上传组件' : '组件发布'}
visible={visible} visible={visible}
onCancel={handleCancel} onCancel={handleCancel}
footer={ footer={

Loading…
Cancel
Save