Browse Source

feat: 支持iframe 内嵌路由

luoyali 11 months ago
parent
commit
074faf6376

+ 1 - 1
src/layout/components/Menu/SubMenu.vue

@@ -47,7 +47,7 @@ const handleClickMenu = (subItem: RouteMenu.Item) => {
 	} else {
 		if (!isExternal(subItem.props.url)) return ElMessage.error(`当前Url不是外链地址,请检查重定向配置~`)
 		if (type === 'link') {
-			return window.open(subItem.redirect, '_blank')
+			return window.open(subItem.props.url, '_blank')
 		} else {
 			router.push({ path: `${subItem.path}` })
 		}

+ 2 - 2
src/store/modules/permission.ts

@@ -63,8 +63,8 @@ export const filterAsyncRoutes = (routes: AppRouteRecordRaw[], roles: string[],
 			}
 		}
 
-		// 处理判断iframe和路由
-		if (tmp.meta.type === 'iframe') {
+		// 处理判断iframe 外链和路由
+		if (['iframe', 'link'].includes(tmp.meta.type)) {
 			tmp.props = { url: tmp.redirect }
 			Reflect.deleteProperty(tmp, 'redirect')
 		}

+ 1 - 1
src/views/setting/menu/save.vue

@@ -64,7 +64,7 @@
 					</el-form-item>
 					<el-form-item label="重定向" prop="redirect">
 						<el-input v-model="form.redirect" clearable placeholder=""></el-input>
-						<div class="el-form-item-msg">若为Iframe的外部链接,请填写Url地址,eg: 「https://xxxx.com」格式</div>
+						<div class="el-form-item-msg" style="color: var(--el-color-danger)">若为Iframe的外部链接,请填写URL地址,eg: 「https://xxxx.com」格式</div>
 					</el-form-item>
 					<!--					<el-form-item label="菜单高亮" prop="active">
 						<el-input v-model="form.active" clearable placeholder=""></el-input>