diff --git a/src/views/workflow/task/components/processTasks/ToDoTasksV2.vue b/src/views/workflow/task/components/processTasks/ToDoTasksV2.vue index fa51d09..f54ab21 100644 --- a/src/views/workflow/task/components/processTasks/ToDoTasksV2.vue +++ b/src/views/workflow/task/components/processTasks/ToDoTasksV2.vue @@ -30,11 +30,33 @@ import { getSchemaTask } from '/@/api/workflow/process'; import { TaskTypeUrl } from '/@/enums/workflowEnum'; import { useI18n } from '/@/hooks/web/useI18n'; - import { unref, watch, onMounted, onUnmounted } from 'vue'; + import { unref, watch, onMounted, onUnmounted ,h} from 'vue'; import { useRouter } from 'vue-router'; import useEventBus from '/@/hooks/event/useEventBus'; + import { getAppEnvConfig } from '/@/utils/env'; + import { storeToRefs } from 'pinia'; + import { useUserStore } from '/@/store/modules/user'; + import {useMessage} from "/@/hooks/web/useMessage"; + import { changeTenant } from '/@/api/system/tenant'; + import {useAppStore} from "/@/store/modules/app"; + import {setupRouterGuard} from "/@/router/guard"; + import {usePermissionStore} from "/@/store/modules/permission"; + import {useTabs} from "/@/hooks/web/useTabs"; + import {useMenuSetting} from "/@/hooks/setting/useMenuSetting"; + import {useAppInject} from "/@/hooks/web/useAppInject"; + const router = useRouter(); + const { currentRoute } = router; const { t } = useI18n(); + const appStore = useAppStore(); + const userStore = useUserStore(); + const { userInfo } = storeToRefs(userStore); + const { closeAll } = useTabs(router); + const permissionStore = usePermissionStore(); + const { getShowTopMenu } = useMenuSetting(); + const { getIsMobile } = useAppInject(); + + const configColumns: BasicColumn[] = [ { title: t('流水号'), @@ -112,9 +134,6 @@ setting: false } }); - const router = useRouter(); - const { currentRoute } = router; - onMounted(() => { bus.on(FLOW_PROCESSED, onFlowProcessed); @@ -131,18 +150,76 @@ { deep: true } ); const onRowDblClick = (record, index) => { - const { processId, taskId, schemaId } = record; + const {tenantId,tenantCode,tenantName} = record; + let tenantEnabled=getAppEnvConfig().VITE_TENANT_ENABLED; + if(tenantEnabled =='true'&&tenantId){ + let currentTenantId=userInfo.value.tenantId; + if(tenantId!=currentTenantId){ + const { createConfirm} = useMessage(); + createConfirm({ + iconType: 'warning', + title: () => h('span', t('温馨提醒')), + content: () => h('div', [ + h('span', t(`当前流程的发起租户是"${tenantName}",需要切换到该租户才能对该流程进行审批`)), + h('br'), + h('span', t('是否确认切换租户?未保存的数据可能会丢失!')) + ]), + width:'600px', + onOk: async () => { + toggleLocale(tenantCode).then(()=>{ + openDetailPage(record,true); + }) + + }, + okText: () => t('确认'), + cancelText: () => t('取消'), + }); + + }else{ + openDetailPage(record); + }; + }else{ + openDetailPage(record); + } + }; + + function openDetailPage(record,isTenantSwitch){ + const { processId, taskId, schemaId} = record; router.push({ path: `/flow/${schemaId}/${processId}/approveFlow`, query: { taskId } + }).then(()=> { + if (isTenantSwitch) { + const {notification} = useMessage(); + const {tenantName} = record; + notification.success({ + message: 'Tip', + description: t('已切换到租户“' + tenantName + '"'), + }); + } }); - }; + } function onFlowProcessed() { reload(); } + + async function toggleLocale(tenantCode: string) { + appStore.setPageLoadingAction(true); + await changeTenant(tenantCode); + await userStore.afterLoginAction(true); + closeAll(); + await setupRouterGuard(router); + await permissionStore.changeSubsystem(getShowTopMenu.value, getIsMobile.value); + if(permissionStore.getSubSysList.length>0){ + permissionStore.setSubSystem(permissionStore.getSubSysList[0].id); + }else{ + permissionStore.setSubSystem(""); + } + } +