待办列表跨租户审批功能开发:
后端返回tenant信息跟当前用户登录的tenant进行比较,如果不一致,则弹出确认框提示用户切换租户,点击确认后完成租户切换,弹出切换租户成功的通知,然后进入审批详情页面。
This commit is contained in:
@ -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("");
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
|
||||
Reference in New Issue
Block a user