@@ -14,17 +14,17 @@ const emit = defineEmits<{ change: [isPortal: boolean] }>()
1414
1515/** 依据 api 是否含工作空间独有方法区分工作空间/系统资源管理场景,用于选择对应权限。 */
1616const isSystem = computed (() => ! (' putMoveApplication' in props .api ))
17- const id = computed (() => props . application . id )
17+
1818
1919/** 上下架权限:未授权时隐藏对应入口。 */
20- const canPortalUp = computed (() => (isSystem .value ? perm .application .system .portalUp () : perm .application .workspace .portalUp (id . value )))
21- const canPortalDown = computed (() => (isSystem .value ? perm .application .system .portalDown () : perm .application .workspace .portalDown (id . value )))
20+ const canPortalUp = computed (() => (isSystem .value ? perm .application .system .portalUp () : perm .application .workspace .portalUp (props . application . id )))
21+ const canPortalDown = computed (() => (isSystem .value ? perm .application .system .portalDown () : perm .application .workspace .portalDown (props . application . id )))
2222
2323/** 上架到门户:仅已发布可上架。 */
2424const canUp = computed (() => canPortalUp .value && Boolean (props .application .is_publish ))
2525
2626function handlePortalUp() {
27- if (loading .value ) return
27+ if (loading .value || props . application . is_portal || ! canUp . value ) return
2828 loading .value = true
2929 return props .api
3030 .putApplicationPortalUp (props .application .id )
@@ -39,7 +39,7 @@ function handlePortalUp() {
3939}
4040
4141function handlePortalDown() {
42- if (loading .value ) return
42+ if (loading .value || ! props . application . is_portal || ! canPortalDown . value ) return
4343 loading .value = true
4444 return props .api
4545 .putApplicationPortalDown (props .application .id )
@@ -55,13 +55,8 @@ function handlePortalDown() {
5555 </script >
5656
5757<template >
58- <!-- 上架到门户:仅已发布且有权限时可用 -->
59- <MkDropdownItem
60- v-if =" ! application .is_portal && canPortalUp "
61- :disabled =" loading || ! canUp "
62- :title =" ! canUp ? ' 请先发布后再上架' : ' ' "
63- @click =" handlePortalUp "
64- >
58+ <!-- 上架到门户:仅已发布、未上架且有权限时展示 -->
59+ <MkDropdownItem v-if =" ! application .is_portal && canUp " :disabled =" loading " @click =" handlePortalUp " >
6560 <template #icon >
6661 <MkIcon name="icon_launch_outlined1" />
6762 </template >
0 commit comments