From 2ba043e8019a8f51e5e53c682cf4b36bfd712e00 Mon Sep 17 00:00:00 2001 From: zhangzhanwei Date: Wed, 9 Jul 2025 16:11:37 +0800 Subject: [PATCH] fix: different setting pages of simple_work_flow application --- ui/src/views/application-workflow/index.vue | 33 ++++++++++++++-- .../component/CopyApplicationDialog.vue | 5 +++ ui/src/views/application/index.vue | 38 ++++++++++++++++++- 3 files changed, 71 insertions(+), 5 deletions(-) diff --git a/ui/src/views/application-workflow/index.vue b/ui/src/views/application-workflow/index.vue index 6533edadb..29fc155ed 100644 --- a/ui/src/views/application-workflow/index.vue +++ b/ui/src/views/application-workflow/index.vue @@ -150,6 +150,8 @@ import useStore from '@/stores' import { WorkFlowInstance } from '@/workflow/common/validate' import { hasPermission } from '@/utils/permission' import { t } from '@/locales' +import { ComplexPermission } from '@/utils/permission/type' +import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data' const { theme, application } = useStore() const router = useRouter() @@ -199,10 +201,10 @@ function back() { saveApplication(true, true) }) .catch((action: Action) => { - action === 'cancel' && router.push({ path: `/application/${id}/WORK_FLOW/overview` }) + action === 'cancel' && go() }) } else { - router.push({ path: `/application/${id}/WORK_FLOW/overview` }) + go() } } function clickoutsideHistory() { @@ -405,7 +407,7 @@ function saveApplication(bool?: boolean, back?: boolean) { cloneWorkFlow.value = getGraphData() MsgSuccess(t('common.saveSuccess')) if (back) { - router.push({ path: `/application/${id}/WORK_FLOW/overview` }) + go() } } }) @@ -413,6 +415,31 @@ function saveApplication(bool?: boolean, back?: boolean) { loading.value = false }) } +const go=()=>{ + return router.push({ path: get_route() }) +} + +const get_route=()=>{ + if( hasPermission( [new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(id)],[],'AND'), + RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, + PermissionConst.APPLICATION_OVERVIEW_READ.getWorkspacePermissionWorkspaceManageRole, + PermissionConst.APPLICATION_OVERVIEW_READ.getApplicationWorkspaceResourcePermission(id)],'OR')){ + return `/application/${id}/WORK_FLOW/overview` + } else if (hasPermission([new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(id)],[EditionConst.IS_EE, EditionConst.IS_PE],'AND'), + new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,],[PermissionConst.APPLICATION_ACCESS_READ.getWorkspacePermissionWorkspaceManageRole],[EditionConst.IS_EE, EditionConst.IS_PE],'OR'), + new ComplexPermission([],[PermissionConst.APPLICATION_ACCESS_READ.getApplicationWorkspaceResourcePermission(id)],[EditionConst.IS_EE, EditionConst.IS_PE],'OR'),],'OR')) { + return `/application/${id}/WORK_FLOW/access` + } else if (hasPermission([new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(id)],[EditionConst.IS_EE, EditionConst.IS_PE],'AND'), + new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],[PermissionConst.APPLICATION_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole],[EditionConst.IS_EE, EditionConst.IS_PE],'OR'), + new ComplexPermission([],[PermissionConst.APPLICATION_CHAT_USER_READ.getApplicationWorkspaceResourcePermission(id)],[EditionConst.IS_EE, EditionConst.IS_PE],'OR'),],'OR')) { + return `/application/${id}/WORK_FLOW/chat-user` + } else if (hasPermission([new ComplexPermission([RoleConst.USER],[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(id)],[],'AND'), + PermissionConst.APPLICATION_CHAT_LOG_READ.getWorkspacePermissionWorkspaceManageRole, + PermissionConst.APPLICATION_CHAT_LOG_READ.getApplicationWorkspaceResourcePermission(id)],'OR')) { + return `/application/${id}/WORK_FLOW/chat-log` + } else return `/application` +} + /** * 定时保存 diff --git a/ui/src/views/application/component/CopyApplicationDialog.vue b/ui/src/views/application/component/CopyApplicationDialog.vue index 4a75e79ad..184bfe117 100644 --- a/ui/src/views/application/component/CopyApplicationDialog.vue +++ b/ui/src/views/application/component/CopyApplicationDialog.vue @@ -165,6 +165,11 @@ const submitHandle = async (formEl: FormInstance | undefined) => { if (valid) { applicationApi .postApplication({ ...applicationForm.value, folder_id: currentFolder.value }, loading) + .then((res) => { + return user.profile().then(() => { + return res + }) + }) .then((res) => { MsgSuccess(t('common.createSuccess')) if (isWorkFlow(applicationForm.value.type)) { diff --git a/ui/src/views/application/index.vue b/ui/src/views/application/index.vue index c24db17bd..0a7fe5612 100644 --- a/ui/src/views/application/index.vue +++ b/ui/src/views/application/index.vue @@ -173,7 +173,7 @@ :title="item.name" :description="item.desc" class="cursor" - @click="router.push({ path: `/application/${item.id}/${item.type}/overview` })" + @click="goApp(item)" >