diff --git a/src/api/componentMarket.ts b/src/api/componentMarket.ts index fa1f988..883c6b7 100644 --- a/src/api/componentMarket.ts +++ b/src/api/componentMarket.ts @@ -1,5 +1,5 @@ import axios from 'axios'; -import { ComponentMarketParams, ReviewGroup } from '@/api/interface'; +import { ComponentMarketParams, PublishComponentParams, ReviewGroup } from '@/api/interface'; // 公共路径 const urlPrefix = '/api/v1/bpms-workbench'; @@ -17,4 +17,18 @@ export function copyDesign(params) { // 组件市场 export function getComponentMarket(params: ComponentMarketParams) { return axios.get(`${urlPrefix}/componentMarket/list`, { params }); +} + +// 组件发布 +export function publishComponent(params: PublishComponentParams) { + return axios.post(`${urlPrefix}/componentMarket/componentSubmitNew`, params); +} + +// 多文件上传 +export function uploadComponentFile(formData: FormData) { + return axios.post(`${urlPrefix}/componentMarket/multiFileUpload`, formData, { + headers: { + 'Content-Type': 'multipart/form-data' + } + }); } \ No newline at end of file diff --git a/src/api/interface/index.ts b/src/api/interface/index.ts index 723cafa..c9f2a8a 100644 --- a/src/api/interface/index.ts +++ b/src/api/interface/index.ts @@ -1,5 +1,5 @@ // application -import { getReviewGroupByNew } from '@/api/componentMarket'; +import { getReviewGroupByNew, publishComponent, uploadComponentFile } from '@/api/componentMarket'; export interface CronModel { appId: string; @@ -271,4 +271,11 @@ export interface ComponentMarketParams { keyword: string; current?: string | number; size?: string | number; +} + +export interface PublishComponentParams { + id: string; + recommend: string; + files?: string; + filesName?: string; } \ No newline at end of file diff --git a/src/pages/componentDevelopment/componentList/addComponentModal.tsx b/src/pages/componentDevelopment/componentList/addComponentModal.tsx index eb869b5..b7db7d9 100644 --- a/src/pages/componentDevelopment/componentList/addComponentModal.tsx +++ b/src/pages/componentDevelopment/componentList/addComponentModal.tsx @@ -529,7 +529,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh, mode = 'c visible={visible} autoFocus={false} focusLock={true} - style={{ width: '60%' }} + style={{ width: '75%' }} footer={modalFooter} onCancel={() => setVisible(false)} afterClose={() => { @@ -561,7 +561,7 @@ const AddComponentModal = ({ visible, baseInfo, setVisible, onReFresh, mode = 'c
- + - + - + - + = ({ return ( <> - {/* 发布组件/更新版本*/} - {row.publicStatus !== publicStatus.REVIEW && isEligible([componentStatusConstant.CODING, componentStatusConstant.DEPLOYED, componentStatusConstant.PUBLISHED], row.componentStatus) && ( + {/* 发布组件*/} + {row.publicStatus !== publicStatus.PUBLISHED && isEligible([componentStatusConstant.CODING, componentStatusConstant.DEPLOYED, componentStatusConstant.PUBLISHED], row.componentStatus) && ( )} diff --git a/src/pages/componentDevelopment/componentList/index.tsx b/src/pages/componentDevelopment/componentList/index.tsx index 3013f69..86188ec 100644 --- a/src/pages/componentDevelopment/componentList/index.tsx +++ b/src/pages/componentDevelopment/componentList/index.tsx @@ -7,6 +7,7 @@ import { getReviewGroupByNew } from '@/api/componentMarket'; import { componentRelease, componentRevoke } from '@/api/componentRelease'; import { ComponentItem } from '@/api/interface'; import AddComponentModal from '@/pages/componentDevelopment/componentList/addComponentModal'; +import PublishComponentModal from '@/pages/componentDevelopment/componentList/publishComponentModal'; import HandleButtonGroup from '@/pages/componentDevelopment/componentList/handleButtonGroup'; import { componentStatusConstant, @@ -32,6 +33,8 @@ const GlobalVarContainer = () => { }); const [loading, setLoading] = useState(false); const [visible, setVisible] = useState(false); + const [publishModalVisible, setPublishModalVisible] = useState(false); + const [selectedPublishComponent, setSelectedPublishComponent] = useState(null); const [mode, setMode] = useState<'create' | 'edit' | 'copy'>('create'); // 添加模式状态 const [searchValue, setSearchValue] = useState(''); // 添加搜索状态 const [componentStatus, setComponentStatus] = useState(''); // 添加组件状态筛选 @@ -135,8 +138,8 @@ const GlobalVarContainer = () => { row={record} index={index} onHandlePublishComponent={(row) => { - // TODO: 实现发布组件逻辑 - console.log('Handle publish component', row); + setSelectedPublishComponent(row); + setPublishModalVisible(true); }} onGoToReview={(row) => { // TODO: 实现查看审核逻辑 @@ -465,6 +468,19 @@ const GlobalVarContainer = () => { onReFresh={fetchComponentData} mode={mode} // 传递模式 /> + + {/*发布组件弹窗*/} + { + setPublishModalVisible(false); + setSelectedPublishComponent(null); + }} + onSuccess={() => { + fetchComponentData(); + }} + /> ); }; diff --git a/src/pages/componentDevelopment/componentList/style/addComponentModal.module.less b/src/pages/componentDevelopment/componentList/style/addComponentModal.module.less index a884c5c..12dda2a 100644 --- a/src/pages/componentDevelopment/componentList/style/addComponentModal.module.less +++ b/src/pages/componentDevelopment/componentList/style/addComponentModal.module.less @@ -40,7 +40,7 @@ } .markdown-editor { - padding-left: 50px; + padding-left: 25px; padding-right: 40px; } } diff --git a/src/pages/componentDevelopment/componentList/style/compReview.module.less b/src/pages/componentDevelopment/componentList/style/compReview.module.less index 3a95b2f..91449f6 100644 --- a/src/pages/componentDevelopment/componentList/style/compReview.module.less +++ b/src/pages/componentDevelopment/componentList/style/compReview.module.less @@ -1,5 +1,5 @@ .comp-review-container { - width: 300px; + width: 100%; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); overflow: hidden;