Add tool submit and cancel management
This commit is contained in:
@@ -74,10 +74,15 @@ export const DATABASE_EXECUTE_ERROR = 30050
|
||||
export const DATABASE_DUPLICATE_KEY = 30051
|
||||
export const DATABASE_NO_RECORD_FOUND = 30052
|
||||
|
||||
export const TOOL_SUBMIT_SUCCESS = 40010
|
||||
export const TOOL_CANCEL_SUCCESS = 40011
|
||||
export const TOOL_ILLEGAL_VERSION = 40050
|
||||
export const TOOL_UNDER_REVIEW = 40051
|
||||
export const TOOL_HAS_UNPUBLISHED_VERSION = 40052
|
||||
export const TOOL_HAS_BEEN_PUBLISHED = 40053
|
||||
export const TOOL_NOT_UNDER_REVIEW = 40052
|
||||
export const TOOL_HAS_UNPUBLISHED_VERSION = 40053
|
||||
export const TOOL_HAS_BEEN_PUBLISHED = 40054
|
||||
export const TOOL_SUBMIT_ERROR = 40060
|
||||
export const TOOL_CANCEL_ERROR = 40061
|
||||
|
||||
export const API_AVATAR_SUCCESS = 50100
|
||||
export const API_AVATAR_ERROR = 50150
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
const All = () => {
|
||||
return <></>
|
||||
}
|
||||
|
||||
export default All
|
||||
5
src/pages/Tools/Store.tsx
Normal file
5
src/pages/Tools/Store.tsx
Normal file
@@ -0,0 +1,5 @@
|
||||
const Store = () => {
|
||||
return <></>
|
||||
}
|
||||
|
||||
export default Store
|
||||
@@ -6,12 +6,22 @@ import {
|
||||
DATABASE_DELETE_SUCCESS,
|
||||
DATABASE_SELECT_SUCCESS,
|
||||
DATABASE_UPDATE_SUCCESS,
|
||||
TOOL_CANCEL_SUCCESS,
|
||||
TOOL_HAS_BEEN_PUBLISHED,
|
||||
TOOL_HAS_UNPUBLISHED_VERSION,
|
||||
TOOL_ILLEGAL_VERSION,
|
||||
TOOL_NOT_UNDER_REVIEW,
|
||||
TOOL_SUBMIT_SUCCESS,
|
||||
TOOL_UNDER_REVIEW
|
||||
} from '@/constants/common.constants'
|
||||
import { getLoginStatus } from '@/util/auth'
|
||||
import { r_tool_delete, r_tool_get, r_tool_upgrade } from '@/services/tool'
|
||||
import {
|
||||
r_tool_cancel,
|
||||
r_tool_delete,
|
||||
r_tool_get,
|
||||
r_tool_submit,
|
||||
r_tool_upgrade
|
||||
} from '@/services/tool'
|
||||
import FitFullscreen from '@/components/common/FitFullscreen'
|
||||
import HideScrollbar from '@/components/common/HideScrollbar'
|
||||
import FlexBox from '@/components/common/FlexBox'
|
||||
@@ -113,9 +123,11 @@ interface ToolCardProps {
|
||||
tools: ToolVo[]
|
||||
onDelete?: (tool: ToolVo) => void
|
||||
onUpgrade?: (tool: ToolVo) => void
|
||||
onSubmit?: (tool: ToolVo) => void
|
||||
onCancel?: (tool: ToolVo) => void
|
||||
}
|
||||
|
||||
const ToolCard = ({ tools, onDelete, onUpgrade }: ToolCardProps) => {
|
||||
const ToolCard = ({ tools, onDelete, onUpgrade, onSubmit, onCancel }: ToolCardProps) => {
|
||||
const navigate = useNavigate()
|
||||
const [selectedTool, setSelectedTool] = useState(tools[0])
|
||||
|
||||
@@ -137,13 +149,17 @@ const ToolCard = ({ tools, onDelete, onUpgrade }: ToolCardProps) => {
|
||||
|
||||
const handleOnPublishTool = () => {
|
||||
if (selectedTool.publish === '0' && ['NONE', 'REJECT'].includes(selectedTool.review)) {
|
||||
return () => {}
|
||||
return () => {
|
||||
onSubmit?.(selectedTool)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const handleOnCancelReview = () => {
|
||||
if (selectedTool.publish === '0' && selectedTool.review === 'PROCESSING') {
|
||||
return () => {}
|
||||
return () => {
|
||||
onCancel?.(selectedTool)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +215,7 @@ const Tools = () => {
|
||||
const handleOnDeleteTool = (tool: ToolVo) => {
|
||||
modal
|
||||
.confirm({
|
||||
title: '确定删除',
|
||||
title: '删除',
|
||||
content: `确定删除工具 ${tool.name}:${tool.ver} 吗?`
|
||||
})
|
||||
.then(
|
||||
@@ -228,7 +244,7 @@ const Tools = () => {
|
||||
|
||||
const handleOnUpgradeTool = (tool: ToolVo) => {
|
||||
void modal.confirm({
|
||||
title: '更新应用',
|
||||
title: '更新工具',
|
||||
content: (
|
||||
<>
|
||||
<AntdForm form={upgradeForm}>
|
||||
@@ -301,6 +317,82 @@ const Tools = () => {
|
||||
})
|
||||
}
|
||||
|
||||
const handleOnSubmitTool = (tool: ToolVo) => {
|
||||
modal
|
||||
.confirm({
|
||||
title: '提交审核',
|
||||
content: `确定提交审核工具 ${tool.name}:${tool.ver} 吗?`
|
||||
})
|
||||
.then(
|
||||
(confirmed) => {
|
||||
if (confirmed) {
|
||||
setLoading(true)
|
||||
|
||||
void r_tool_submit(tool.id)
|
||||
.then((res) => {
|
||||
const response = res.data
|
||||
switch (response.code) {
|
||||
case TOOL_SUBMIT_SUCCESS:
|
||||
void message.success('提交审核成功')
|
||||
getTool()
|
||||
break
|
||||
case TOOL_UNDER_REVIEW:
|
||||
void message.warning('工具审核中,请勿重复提交')
|
||||
break
|
||||
case TOOL_HAS_BEEN_PUBLISHED:
|
||||
void message.warning('工具已发布,请创建新版本')
|
||||
break
|
||||
default:
|
||||
void message.error('提交审核失败,请稍后重试')
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
setLoading(false)
|
||||
})
|
||||
}
|
||||
},
|
||||
() => {}
|
||||
)
|
||||
}
|
||||
|
||||
const handleOnCancelTool = (tool: ToolVo) => {
|
||||
modal
|
||||
.confirm({
|
||||
title: '取消审核',
|
||||
content: `确定取消审核工具 ${tool.name}:${tool.ver} 吗?`
|
||||
})
|
||||
.then(
|
||||
(confirmed) => {
|
||||
if (confirmed) {
|
||||
setLoading(true)
|
||||
|
||||
void r_tool_cancel(tool.id)
|
||||
.then((res) => {
|
||||
const response = res.data
|
||||
switch (response.code) {
|
||||
case TOOL_CANCEL_SUCCESS:
|
||||
void message.success('取消审核成功')
|
||||
getTool()
|
||||
break
|
||||
case TOOL_NOT_UNDER_REVIEW:
|
||||
void message.warning('工具非审核状态')
|
||||
break
|
||||
case TOOL_HAS_BEEN_PUBLISHED:
|
||||
void message.warning('工具已发布,请创建新版本')
|
||||
break
|
||||
default:
|
||||
void message.error('取消审核失败,请稍后重试')
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
setLoading(false)
|
||||
})
|
||||
}
|
||||
},
|
||||
() => {}
|
||||
)
|
||||
}
|
||||
|
||||
const getTool = () => {
|
||||
if (loading) {
|
||||
return
|
||||
@@ -356,6 +448,8 @@ const Tools = () => {
|
||||
tools={value}
|
||||
onDelete={handleOnDeleteTool}
|
||||
onUpgrade={handleOnUpgradeTool}
|
||||
onSubmit={handleOnSubmitTool}
|
||||
onCancel={handleOnCancelTool}
|
||||
/>
|
||||
))}
|
||||
</FlexBox>
|
||||
|
||||
@@ -13,7 +13,7 @@ export const tools: RouteJsonObject[] = [
|
||||
path: 'store',
|
||||
absolutePath: '/store',
|
||||
id: 'tools-store',
|
||||
component: lazy(() => import('@/pages/Tools')),
|
||||
component: lazy(() => import('@/pages/Tools/Store')),
|
||||
name: '工具商店',
|
||||
titlePostfix: ' - 商店',
|
||||
icon: lazy(() => import('~icons/oxygen/store')),
|
||||
|
||||
@@ -24,4 +24,8 @@ export const r_tool_detail = (username: string, toolId: string, ver: string) =>
|
||||
|
||||
export const r_tool_update = (param: ToolUpdateParam) => request.put<ToolVo>(URL_TOOL, param)
|
||||
|
||||
export const r_tool_submit = (id: string) => request.post(`${URL_TOOL}/${id}`)
|
||||
|
||||
export const r_tool_cancel = (id: string) => request.put(`${URL_TOOL}/${id}`)
|
||||
|
||||
export const r_tool_delete = (id: string) => request.delete(`${URL_TOOL}/${id}`)
|
||||
|
||||
Reference in New Issue
Block a user