同一个vue页面或同一张表可以配置为多个菜单(页面多开)

1.页面多开效果

(需要2026.01月之后的版本,之前的需要更新下前端index文件夹)

2.文件结构

1.示例适用于所有类型页面,操作方式,手动添加的页面引用想要多开的页面(生成的页面)2.这里以生成vue页面为例:Sys_FormWorkFlow.vue是生成的文件,formWorkflow.vue是手动添加的文件用来控制多开






开始配置

配置流程:添加vue文件->复制配置代码->设置查询条件->配置路由->配置菜单

1.添加一个vue文件(名字自定义,我这里定义的名字为:formWorkflow.vue)

2.formWorkflow.vue中的代码

<template>
    <div class="vol-dashboard">
        <div v-for="id in ids" :key="id" v-show="id == currentId"><vol-flow :id="id*1"></vol-flow> </div>
    </div>
</template>
<script setup>
import { ref, getCurrentInstance, watch } from 'vue';
//引用想要多开的页面,这个页面可以是生成的页面或者新建页面edit.vue
import volFlow from './Sys_FormWorkFlowApply.vue'
import { useRouter, useRoute } from 'vue-router';
const route = useRoute();
const ids = ref([])
const currentId = ref();
if (route.query.v+'') {
    ids.value.push(route.query.v)
    currentId.value = ids.value[0];
}
watch( () => route.query.v, // 监听的目标:路由参数 id
    (newId, oldId) => {
        currentId.value = newId;
        if (ids.value.includes(newId)) { return;}
        ids.value.push(newId)
    }
)
</script>

3.给formWorkflow.vue文件添加路由(在route->viewGrid.js中添加)

//添加路由配置,path与name、vue文件名要相同(改为实际自己定义的vue文件名)
{
    path: '/formWorkflow', //表单流程多页面显示
    name: 'formWorkflow',
    //改为formWorkflow.vue的地址
    component: () => import('@/views/sys/formflow/formWorkflow.vue'),
    meta: {
      multiPage: true,//这个是必须的
    },
  }
</script>

4.配置过滤条件(在生成的vue文件或者设置查询条件)

4.1代码配置

//上面标出来的位置添加下面的代码
const props = defineProps({
    id: {
        type: Object,
        default: null,
    },
});

const searchBefore = async (param) => {
    //界面查询前设置查询条件
    param.value = props.id;//后台的查询方法取出来
    //或者设置wheres条件
    param.wheres.push({
        name:"字段",
        value:props.id//传进来的值(也就是浏览器上的参数)
    })
    return true;
    //或者设置wheres条件
    //完整查询条件参数http://doc.volcore.xyz/docs/view-grid/methods/searchBefore.html
}

5.菜单配置

添加一个新的页面菜单

Last Updated 2026/1/24 16:21:56