本文只提供整体思路
父页面
<el-scrollbar>
<el-menu
:router="false"
:default-active="activeMenu"
:unique-opened="true"
:collapse-transition="false"
>
<SubMenu :menu-list="menuList" />
</el-menu>
</el-scrollbar>
const activeMenu = computed(() => (route.meta.activeMenu ? route.meta.activeMenu : route.path));
const menuList = computed(() => authStore.showMenuListGet);//菜单数据
SubMenu.vue子组件(递归)
<template>
<template v-for="(subItem, index) in menuList" :key="subItem.path">
<el-sub-menu v-if="subItem.children?.length" :index="subItem.path">
<template #title>{{ subItem.meta.title }}</template>
<SubMenu :menu-list="subItem.children"></SubMenu>
</el-sub-menu>
<el-menu-item v-else :index="subItem.path" @click="handleClickMenu(subItem)">
<template #title>
<el-icon v-if="subItem.meta.icon">
<component :is="subItem.meta.icon"></component>
</el-icon>
<span>{{ subItem.meta.title }}</span>
</template>
</el-menu-item>
</template>
</template>
<script lang="ts" setup>
import { defineProps } from "vue";
import { useRouter } from "vue-router";
defineProps<{ menuList: Menu.MenuOptions | any }>();
const router = useRouter();
const handleClickMenu = (subItem: Menu.MenuOptions) => {
if (subItem.meta.isLink) return window.open(subItem.meta.isLink, "_blank");
router.push(subItem.path);
};
</script>
typings/global.d.ts
/* Menu */
/**
* @description 📚 路由参数配置简介
* @param path ==> 路由菜单访问路径
* @param name ==> 路由 name (对应页面组件 name, 可用作 KeepAlive 缓存标识 && 按钮权限筛选)
* @param redirect ==> 路由重定向地址
* @param component ==> 视图文件路径
* @param meta ==> 路由菜单元信息
* @param meta.icon ==> 菜单和面包屑对应的图标
* @param meta.title ==> 路由标题 (用作 document.title || 菜单的名称)
* @param meta.activeMenu ==> 当前路由为详情页时,需要高亮的菜单
* @param meta.isLink ==> 路由外链时填写的访问地址
* @param meta.isHide ==> 是否在菜单中隐藏 (通常列表详情页需要隐藏)
* @param meta.isFull ==> 菜单是否全屏 (示例:数据大屏页面)
* @param meta.isAffix ==> 菜单是否固定在标签页中 (首页通常是固定项)
* @param meta.isKeepAlive ==> 当前路由是否缓存
* */
declare namespace Menu {
interface MenuOptions {
path: string;
name: string;
component?: string | (() => Promise<unknown>);
redirect?: string;
meta: MetaProps;
children?: MenuOptions[];
}
interface MetaProps {
icon: string;
title: string;
activeMenu?: string;
isLink?: string;
isHide: boolean;
isFull: boolean;
isAffix: boolean;
isKeepAlive: boolean;
}
}
动态路由 初始化。处理Menu.MenuOptions.component(字符串路径,转成路由所需的组件)
// 引入 views 文件夹下所有 vue 文件
const modules = import.meta.glob("@/views/**/*.vue");
export const initDynamicRouter = async () => {
const userStore = useUserStore();
const authStore = useAuthStore();
try {
// 1.菜单列表 && 按钮权限列表
await authStore.getAuthMenuList();
// 2、用户是否有菜单权限
if (!authStore.authMenuListGet.length) {
ElNotification({
title: "无权限访问",
message: "当前账号无任何菜单权限,请联系系统管理员!",
type: "warning",
duration: 3000
});
userStore.setToken("");
router.replace('login');
}
// 3.添加动态路由
authStore.flatMenuListGet.forEach((item: any) => {
if (item.component && typeof item.component == "string") {
item.component = modules["/src/views" + item.component + ".vue"];
}
if (item.meta.isFull) {
router.addRoute(item);
} else {
router.addRoute("layout", item);
}
});
} catch (error) {
return Promise.reject(error);
}
};
menuList
[
{
"path": "/home/index",
"name": "home",
"component": "/home/index",
"meta": {
"icon": "HomeFilled",
"title": "首页",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": true,
"isKeepAlive": true
}
},
{
"path": "/dataScreen",
"name": "dataScreen",
"component": "/dataScreen/index",
"meta": {
"icon": "Histogram",
"title": "数据大屏",
"isLink": "",
"isHide": false,
"isFull": true,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/proTable",
"name": "proTable",
"redirect": "/proTable/useProTable",
"meta": {
"icon": "MessageBox",
"title": "超级表格",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/proTable/useProTable",
"name": "useProTable",
"component": "/proTable/useProTable/index",
"meta": {
"icon": "Menu",
"title": "使用 ProTable",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/proTable/useProTable/detail/:id",
"name": "useProTableDetail",
"component": "/proTable/useProTable/detail",
"meta": {
"icon": "Menu",
"title": "ProTable 详情",
"activeMenu": "/proTable/useProTable",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/proTable/useTreeFilter",
"name": "useTreeFilter",
"component": "/proTable/useTreeFilter/index",
"meta": {
"icon": "Menu",
"title": "使用 TreeFilter",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/proTable/useTreeFilter/detail/:id",
"name": "useTreeFilterDetail",
"component": "/proTable/useTreeFilter/detail",
"meta": {
"icon": "Menu",
"title": "TreeFilter 详情",
"activeMenu": "/proTable/useTreeFilter",
"isLink": "",
"isHide": true,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/proTable/useSelectFilter",
"name": "useSelectFilter",
"component": "/proTable/useSelectFilter/index",
"meta": {
"icon": "Menu",
"title": "使用 SelectFilter",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/proTable/treeProTable",
"name": "treeProTable",
"component": "/proTable/treeProTable/index",
"meta": {
"icon": "Menu",
"title": "树形 ProTable",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/proTable/complexProTable",
"name": "complexProTable",
"component": "/proTable/complexProTable/index",
"meta": {
"icon": "Menu",
"title": "复杂 ProTable",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/proTable/document",
"name": "proTableDocument",
"component": "/proTable/document/index",
"meta": {
"icon": "Menu",
"title": "ProTable 文档",
"isLink": "https://juejin.cn/post/7166068828202336263/#heading-14",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/auth",
"name": "auth",
"redirect": "/auth/menu",
"meta": {
"icon": "Lock",
"title": "权限管理",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/auth/menu",
"name": "authMenu",
"component": "/auth/menu/index",
"meta": {
"icon": "Menu",
"title": "菜单权限",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/auth/button",
"name": "authButton",
"component": "/auth/button/index",
"meta": {
"icon": "Menu",
"title": "按钮权限",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/assembly",
"name": "assembly",
"redirect": "/assembly/guide",
"meta": {
"icon": "Briefcase",
"title": "常用组件",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/assembly/guide",
"name": "guide",
"component": "/assembly/guide/index",
"meta": {
"icon": "Menu",
"title": "引导页",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/tabs",
"name": "tabs",
"component": "/assembly/tabs/index",
"meta": {
"icon": "Menu",
"title": "标签页操作",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/assembly/tabs/detail/:id",
"name": "tabsDetail",
"component": "/assembly/tabs/detail",
"meta": {
"icon": "Menu",
"title": "Tab 详情",
"activeMenu": "/assembly/tabs",
"isLink": "",
"isHide": true,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/assembly/selectIcon",
"name": "selectIcon",
"component": "/assembly/selectIcon/index",
"meta": {
"icon": "Menu",
"title": "图标选择器",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/selectFilter",
"name": "selectFilter",
"component": "/assembly/selectFilter/index",
"meta": {
"icon": "Menu",
"title": "分类筛选器",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/treeFilter",
"name": "treeFilter",
"component": "/assembly/treeFilter/index",
"meta": {
"icon": "Menu",
"title": "树形筛选器",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/svgIcon",
"name": "svgIcon",
"component": "/assembly/svgIcon/index",
"meta": {
"icon": "Menu",
"title": "SVG 图标",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/uploadFile",
"name": "uploadFile",
"component": "/assembly/uploadFile/index",
"meta": {
"icon": "Menu",
"title": "文件上传",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/batchImport",
"name": "batchImport",
"component": "/assembly/batchImport/index",
"meta": {
"icon": "Menu",
"title": "批量添加数据",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/wangEditor",
"name": "wangEditor",
"component": "/assembly/wangEditor/index",
"meta": {
"icon": "Menu",
"title": "富文本编辑器",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/assembly/draggable",
"name": "draggable",
"component": "/assembly/draggable/index",
"meta": {
"icon": "Menu",
"title": "拖拽组件",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/dashboard",
"name": "dashboard",
"redirect": "/dashboard/dataVisualize",
"meta": {
"icon": "Odometer",
"title": "Dashboard",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/dashboard/dataVisualize",
"name": "dataVisualize",
"component": "/dashboard/dataVisualize/index",
"meta": {
"icon": "Menu",
"title": "数据可视化",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/form",
"name": "form",
"redirect": "/form/proForm",
"meta": {
"icon": "Tickets",
"title": "表单 Form",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/form/proForm",
"name": "proForm",
"component": "/form/proForm/index",
"meta": {
"icon": "Menu",
"title": "超级 Form",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/form/basicForm",
"name": "basicForm",
"component": "/form/basicForm/index",
"meta": {
"icon": "Menu",
"title": "基础 Form",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/form/validateForm",
"name": "validateForm",
"component": "/form/validateForm/index",
"meta": {
"icon": "Menu",
"title": "校验 Form",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/form/dynamicForm",
"name": "dynamicForm",
"component": "/form/dynamicForm/index",
"meta": {
"icon": "Menu",
"title": "动态 Form",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/echarts",
"name": "echarts",
"redirect": "/echarts/waterChart",
"meta": {
"icon": "TrendCharts",
"title": "ECharts",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/echarts/waterChart",
"name": "waterChart",
"component": "/echarts/waterChart/index",
"meta": {
"icon": "Menu",
"title": "水型图",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/echarts/columnChart",
"name": "columnChart",
"component": "/echarts/columnChart/index",
"meta": {
"icon": "Menu",
"title": "柱状图",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/echarts/lineChart",
"name": "lineChart",
"component": "/echarts/lineChart/index",
"meta": {
"icon": "Menu",
"title": "折线图",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/echarts/pieChart",
"name": "pieChart",
"component": "/echarts/pieChart/index",
"meta": {
"icon": "Menu",
"title": "饼图",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/echarts/radarChart",
"name": "radarChart",
"component": "/echarts/radarChart/index",
"meta": {
"icon": "Menu",
"title": "雷达图",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/echarts/nestedChart",
"name": "nestedChart",
"component": "/echarts/nestedChart/index",
"meta": {
"icon": "Menu",
"title": "嵌套环形图",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/directives",
"name": "directives",
"redirect": "/directives/copyDirect",
"meta": {
"icon": "Stamp",
"title": "自定义指令",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/directives/copyDirect",
"name": "copyDirect",
"component": "/directives/copyDirect/index",
"meta": {
"icon": "Menu",
"title": "复制指令",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/directives/watermarkDirect",
"name": "watermarkDirect",
"component": "/directives/watermarkDirect/index",
"meta": {
"icon": "Menu",
"title": "水印指令",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/directives/dragDirect",
"name": "dragDirect",
"component": "/directives/dragDirect/index",
"meta": {
"icon": "Menu",
"title": "拖拽指令",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/directives/debounceDirect",
"name": "debounceDirect",
"component": "/directives/debounceDirect/index",
"meta": {
"icon": "Menu",
"title": "防抖指令",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/directives/throttleDirect",
"name": "throttleDirect",
"component": "/directives/throttleDirect/index",
"meta": {
"icon": "Menu",
"title": "节流指令",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/directives/longpressDirect",
"name": "longpressDirect",
"component": "/directives/longpressDirect/index",
"meta": {
"icon": "Menu",
"title": "长按指令",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/menu",
"name": "menu",
"redirect": "/menu/menu1",
"meta": {
"icon": "List",
"title": "菜单嵌套",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/menu/menu1",
"name": "menu1",
"component": "/menu/menu1/index",
"meta": {
"icon": "Menu",
"title": "菜单1",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/menu/menu2",
"name": "menu2",
"redirect": "/menu/menu2/menu21",
"meta": {
"icon": "Menu",
"title": "菜单2",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/menu/menu2/menu21",
"name": "menu21",
"component": "/menu/menu2/menu21/index",
"meta": {
"icon": "Menu",
"title": "菜单2-1",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/menu/menu2/menu22",
"name": "menu22",
"redirect": "/menu/menu2/menu22/menu221",
"meta": {
"icon": "Menu",
"title": "菜单2-2",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/menu/menu2/menu22/menu221",
"name": "menu221",
"component": "/menu/menu2/menu22/menu221/index",
"meta": {
"icon": "Menu",
"title": "菜单2-2-1",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/menu/menu2/menu22/menu222",
"name": "menu222",
"component": "/menu/menu2/menu22/menu222/index",
"meta": {
"icon": "Menu",
"title": "菜单2-2-2",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/menu/menu2/menu23",
"name": "menu23",
"component": "/menu/menu2/menu23/index",
"meta": {
"icon": "Menu",
"title": "菜单2-3",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/menu/menu3",
"name": "menu3",
"component": "/menu/menu3/index",
"meta": {
"icon": "Menu",
"title": "菜单3",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/system",
"name": "system",
"redirect": "/system/accountManage",
"meta": {
"icon": "Tools",
"title": "系统管理",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/system/accountManage",
"name": "accountManage",
"component": "/system/accountManage/index",
"meta": {
"icon": "Menu",
"title": "账号管理",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/system/roleManage",
"name": "roleManage",
"component": "/system/roleManage/index",
"meta": {
"icon": "Menu",
"title": "角色管理",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/system/menuMange",
"name": "menuMange",
"component": "/system/menuMange/index",
"meta": {
"icon": "Menu",
"title": "菜单管理",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/system/departmentManage",
"name": "departmentManage",
"component": "/system/departmentManage/index",
"meta": {
"icon": "Menu",
"title": "部门管理",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/system/dictManage",
"name": "dictManage",
"component": "/system/dictManage/index",
"meta": {
"icon": "Menu",
"title": "字典管理",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/system/timingTask",
"name": "timingTask",
"component": "/system/timingTask/index",
"meta": {
"icon": "Menu",
"title": "定时任务",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/system/systemLog",
"name": "systemLog",
"component": "/system/systemLog/index",
"meta": {
"icon": "Menu",
"title": "系统日志",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/link",
"name": "link",
"redirect": "/link/bing",
"meta": {
"icon": "Paperclip",
"title": "外部链接",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
},
"children": [
{
"path": "/link/bing",
"name": "bing",
"component": "/link/bing/index",
"meta": {
"icon": "Menu",
"title": "Bing 内嵌",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/link/gitee",
"name": "gitee",
"component": "/link/gitee/index",
"meta": {
"icon": "Menu",
"title": "Gitee 仓库",
"isLink": "https://gitee.com/HalseySpicy/Geeker-Admin",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/link/github",
"name": "github",
"component": "/link/github/index",
"meta": {
"icon": "Menu",
"title": "GitHub 仓库",
"isLink": "https://github.com/HalseySpicy/Geeker-Admin",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/link/docs",
"name": "docs",
"component": "/link/docs/index",
"meta": {
"icon": "Menu",
"title": "项目文档",
"isLink": "https://docs.spicyboy.cn",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
},
{
"path": "/link/juejin",
"name": "juejin",
"component": "/link/juejin/index",
"meta": {
"icon": "Menu",
"title": "掘金主页",
"isLink": "https://juejin.cn/user/3263814531551816/posts",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]
},
{
"path": "/about/index",
"name": "about",
"component": "/about/index",
"meta": {
"icon": "InfoFilled",
"title": "关于项目",
"isLink": "",
"isHide": false,
"isFull": false,
"isAffix": false,
"isKeepAlive": true
}
}
]