Browse Source

chore: 路由监听参数修改

master
wangxiang 2 years ago
parent
commit
c2e67bae30
  1. 5
      src/router/guard/index.ts
  2. 5
      src/router/guard/paramMenuGuard.ts
  3. 7
      src/views/workflow/extension/form/index.vue
  4. 1
      src/views/workflow/extension/formJson/index.vue

5
src/router/guard/index.ts

@ -19,6 +19,7 @@ import { createStateGuard } from './stateGuard';
import nProgress from 'nprogress'; import nProgress from 'nprogress';
import projectSetting from '/@/settings/projectSetting'; import projectSetting from '/@/settings/projectSetting';
import { createParamMenuGuard } from './paramMenuGuard'; import { createParamMenuGuard } from './paramMenuGuard';
import { merge, omit } from 'lodash-es';
/** 不要改变创建的顺序 */ /** 不要改变创建的顺序 */
export function setupRouterGuard(router: Router) { export function setupRouterGuard(router: Router) {
@ -39,6 +40,10 @@ function createPageGuard(router: Router) {
router.beforeEach(async (to) => { router.beforeEach(async (to) => {
// 页面已经加载完毕,再次打开会更快,不需要再做加载等处理 // 页面已经加载完毕,再次打开会更快,不需要再做加载等处理
to.meta.loaded = !!loadedPageMap.get(to.path); to.meta.loaded = !!loadedPageMap.get(to.path);
// 处理路由切换动态替换vue-router自定义元数据
if (to.query?.openMetaUpdate === 'y') {
merge(to.meta, omit(to.query, 'openMetaUpdate'));
}
// 通知路由更改 // 通知路由更改
setRouteChange(to); setRouteChange(to);
return true; return true;

5
src/router/guard/paramMenuGuard.ts

@ -2,7 +2,6 @@ import type { Router } from 'vue-router';
import { configureDynamicParamsMenu } from '../helper/menuHelper'; import { configureDynamicParamsMenu } from '../helper/menuHelper';
import { Menu } from '../types'; import { Menu } from '../types';
import { usePermissionStoreWithOut } from '/@/store/modules/permission'; import { usePermissionStoreWithOut } from '/@/store/modules/permission';
import { merge, omit } from 'lodash-es';
export function createParamMenuGuard(router: Router) { export function createParamMenuGuard(router: Router) {
const permissionStore = usePermissionStoreWithOut(); const permissionStore = usePermissionStoreWithOut();
@ -19,10 +18,6 @@ export function createParamMenuGuard(router: Router) {
} }
let menus: Menu[] = permissionStore.getMenuList; let menus: Menu[] = permissionStore.getMenuList;
menus.forEach((item) => configureDynamicParamsMenu(item, to.params)); menus.forEach((item) => configureDynamicParamsMenu(item, to.params));
// 处理路由切换动态替换vue-router自定义元数据
if (to.query?.openMetaUpdate === 'y') {
merge(to.meta, omit(to.query, 'openMetaUpdate'));
}
next(); next();
}); });
} }

7
src/views/workflow/extension/form/index.vue

@ -121,6 +121,7 @@
import { listToTree } from '/@/utils/helper/treeHelper'; import { listToTree } from '/@/utils/helper/treeHelper';
import { listFormCategory, delFormCategory } from '/@/api/platform/workflow/extension/controller/formCategory'; import { listFormCategory, delFormCategory } from '/@/api/platform/workflow/extension/controller/formCategory';
import { PlusOutlined, FormOutlined, DeleteOutlined } from '@ant-design/icons-vue'; import { PlusOutlined, FormOutlined, DeleteOutlined } from '@ant-design/icons-vue';
import { useRouter } from 'vue-router';
/** 类型规范统一声明定义区域 */ /** 类型规范统一声明定义区域 */
interface TableState { interface TableState {
@ -159,7 +160,7 @@
searchInfo: {}, searchInfo: {},
treeData: [] treeData: []
}); });
const { push } = useRouter();
const { createConfirm, createMessage } = useMessage(); const { createConfirm, createMessage } = useMessage();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerFormCategoryModal, { openModal: openFormCategoryModal }] = useModal(); const [registerFormCategoryModal, { openModal: openFormCategoryModal }] = useModal();
@ -274,8 +275,8 @@
} }
/** 处理打开工作流版本管理 */ /** 处理打开工作流版本管理 */
function handleWorkFlowVersion() { function handleWorkFlowVersion(row: Recordable) {
// todo push({ path : `/workflow/formDefinitionJson/${row.id}`, query: { openMetaUpdate: 'y', title: `流程表单【${row.name}` }});
} }
function handleSelect(selectedKeys: string[]) { function handleSelect(selectedKeys: string[]) {

1
src/views/workflow/extension/formJson/index.vue

@ -100,7 +100,6 @@
width: 220, width: 220,
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
//slots: { customRender: 'action' },
fixed: false fixed: false
}, },
handleSearchInfoFn: () => clearSelectedRowKeys() handleSearchInfoFn: () => clearSelectedRowKeys()

Loading…
Cancel
Save