Complete main UI #37
@@ -74,10 +74,15 @@ export const DATABASE_EXECUTE_ERROR = 30050
|
|||||||
export const DATABASE_DUPLICATE_KEY = 30051
|
export const DATABASE_DUPLICATE_KEY = 30051
|
||||||
export const DATABASE_NO_RECORD_FOUND = 30052
|
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_ILLEGAL_VERSION = 40050
|
||||||
export const TOOL_UNDER_REVIEW = 40051
|
export const TOOL_UNDER_REVIEW = 40051
|
||||||
export const TOOL_HAS_UNPUBLISHED_VERSION = 40052
|
export const TOOL_NOT_UNDER_REVIEW = 40052
|
||||||
export const TOOL_HAS_BEEN_PUBLISHED = 40053
|
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_SUCCESS = 50100
|
||||||
export const API_AVATAR_ERROR = 50150
|
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_DELETE_SUCCESS,
|
||||||
DATABASE_SELECT_SUCCESS,
|
DATABASE_SELECT_SUCCESS,
|
||||||
DATABASE_UPDATE_SUCCESS,
|
DATABASE_UPDATE_SUCCESS,
|
||||||
|
TOOL_CANCEL_SUCCESS,
|
||||||
|
TOOL_HAS_BEEN_PUBLISHED,
|
||||||
TOOL_HAS_UNPUBLISHED_VERSION,
|
TOOL_HAS_UNPUBLISHED_VERSION,
|
||||||
TOOL_ILLEGAL_VERSION,
|
TOOL_ILLEGAL_VERSION,
|
||||||
|
TOOL_NOT_UNDER_REVIEW,
|
||||||
|
TOOL_SUBMIT_SUCCESS,
|
||||||
TOOL_UNDER_REVIEW
|
TOOL_UNDER_REVIEW
|
||||||
} from '@/constants/common.constants'
|
} from '@/constants/common.constants'
|
||||||
import { getLoginStatus } from '@/util/auth'
|
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 FitFullscreen from '@/components/common/FitFullscreen'
|
||||||
import HideScrollbar from '@/components/common/HideScrollbar'
|
import HideScrollbar from '@/components/common/HideScrollbar'
|
||||||
import FlexBox from '@/components/common/FlexBox'
|
import FlexBox from '@/components/common/FlexBox'
|
||||||
@@ -113,9 +123,11 @@ interface ToolCardProps {
|
|||||||
tools: ToolVo[]
|
tools: ToolVo[]
|
||||||
onDelete?: (tool: ToolVo) => void
|
onDelete?: (tool: ToolVo) => void
|
||||||
onUpgrade?: (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 navigate = useNavigate()
|
||||||
const [selectedTool, setSelectedTool] = useState(tools[0])
|
const [selectedTool, setSelectedTool] = useState(tools[0])
|
||||||
|
|
||||||
@@ -137,13 +149,17 @@ const ToolCard = ({ tools, onDelete, onUpgrade }: ToolCardProps) => {
|
|||||||
|
|
||||||
const handleOnPublishTool = () => {
|
const handleOnPublishTool = () => {
|
||||||
if (selectedTool.publish === '0' && ['NONE', 'REJECT'].includes(selectedTool.review)) {
|
if (selectedTool.publish === '0' && ['NONE', 'REJECT'].includes(selectedTool.review)) {
|
||||||
return () => {}
|
return () => {
|
||||||
|
onSubmit?.(selectedTool)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleOnCancelReview = () => {
|
const handleOnCancelReview = () => {
|
||||||
if (selectedTool.publish === '0' && selectedTool.review === 'PROCESSING') {
|
if (selectedTool.publish === '0' && selectedTool.review === 'PROCESSING') {
|
||||||
return () => {}
|
return () => {
|
||||||
|
onCancel?.(selectedTool)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -199,7 +215,7 @@ const Tools = () => {
|
|||||||
const handleOnDeleteTool = (tool: ToolVo) => {
|
const handleOnDeleteTool = (tool: ToolVo) => {
|
||||||
modal
|
modal
|
||||||
.confirm({
|
.confirm({
|
||||||
title: '确定删除',
|
title: '删除',
|
||||||
content: `确定删除工具 ${tool.name}:${tool.ver} 吗?`
|
content: `确定删除工具 ${tool.name}:${tool.ver} 吗?`
|
||||||
})
|
})
|
||||||
.then(
|
.then(
|
||||||
@@ -228,7 +244,7 @@ const Tools = () => {
|
|||||||
|
|
||||||
const handleOnUpgradeTool = (tool: ToolVo) => {
|
const handleOnUpgradeTool = (tool: ToolVo) => {
|
||||||
void modal.confirm({
|
void modal.confirm({
|
||||||
title: '更新应用',
|
title: '更新工具',
|
||||||
content: (
|
content: (
|
||||||
<>
|
<>
|
||||||
<AntdForm form={upgradeForm}>
|
<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 = () => {
|
const getTool = () => {
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return
|
return
|
||||||
@@ -356,6 +448,8 @@ const Tools = () => {
|
|||||||
tools={value}
|
tools={value}
|
||||||
onDelete={handleOnDeleteTool}
|
onDelete={handleOnDeleteTool}
|
||||||
onUpgrade={handleOnUpgradeTool}
|
onUpgrade={handleOnUpgradeTool}
|
||||||
|
onSubmit={handleOnSubmitTool}
|
||||||
|
onCancel={handleOnCancelTool}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</FlexBox>
|
</FlexBox>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export const tools: RouteJsonObject[] = [
|
|||||||
path: 'store',
|
path: 'store',
|
||||||
absolutePath: '/store',
|
absolutePath: '/store',
|
||||||
id: 'tools-store',
|
id: 'tools-store',
|
||||||
component: lazy(() => import('@/pages/Tools')),
|
component: lazy(() => import('@/pages/Tools/Store')),
|
||||||
name: '工具商店',
|
name: '工具商店',
|
||||||
titlePostfix: ' - 商店',
|
titlePostfix: ' - 商店',
|
||||||
icon: lazy(() => import('~icons/oxygen/store')),
|
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_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}`)
|
export const r_tool_delete = (id: string) => request.delete(`${URL_TOOL}/${id}`)
|
||||||
|
|||||||
Reference in New Issue
Block a user