diff --git a/src/assets/icons/ic_blank.svg b/src/assets/icons/ic_blank.svg new file mode 100644 index 00000000..d187ec29 --- /dev/null +++ b/src/assets/icons/ic_blank.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/ic_external.svg b/src/assets/icons/ic_external.svg new file mode 100644 index 00000000..d38340e5 --- /dev/null +++ b/src/assets/icons/ic_external.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/locales/lang/en_US/sys.json b/src/locales/lang/en_US/sys.json index 69c22cd6..cc55176f 100644 --- a/src/locales/lang/en_US/sys.json +++ b/src/locales/lang/en_US/sys.json @@ -97,7 +97,11 @@ "menulevel_2a": "Menu Level 2a", "menulevel_2b": "Menu Level 2b", "menulevel_3a": "Menu Level 3a", - "menulevel_3b": "Menu Level 3b" + "menulevel_3b": "Menu Level 3b", + "frame": "External", + "external_link": "External Link", + "iframe": "Iframe", + "blank": "Blank" } } } diff --git a/src/locales/lang/zh_CN/sys.json b/src/locales/lang/zh_CN/sys.json index e690ef18..7b1275a3 100644 --- a/src/locales/lang/zh_CN/sys.json +++ b/src/locales/lang/zh_CN/sys.json @@ -96,7 +96,11 @@ "menulevel_2a": "菜单 2a", "menulevel_2b": "菜单 2b", "menulevel_3a": "菜单 3a", - "menulevel_3b": "菜单 3b" + "menulevel_3b": "菜单 3b", + "frame": "外部链接", + "external_link": "外链", + "iframe": "内嵌", + "blank": "空白" } } } diff --git a/src/pages/sys/iframe/external-link.tsx b/src/pages/sys/iframe/external-link.tsx new file mode 100644 index 00000000..4b0a517e --- /dev/null +++ b/src/pages/sys/iframe/external-link.tsx @@ -0,0 +1,15 @@ +import { useLayoutEffect } from 'react'; + +import { useRouter } from '@/router/hooks'; + +type Props = { + to: string; +}; +export default function ExternalLink({ to }: Props) { + const { back } = useRouter(); + useLayoutEffect(() => { + window.open(to, '_black'); + back(); + }); + return
; +} diff --git a/src/pages/sys/iframe/index.tsx b/src/pages/sys/iframe/index.tsx new file mode 100644 index 00000000..3d464279 --- /dev/null +++ b/src/pages/sys/iframe/index.tsx @@ -0,0 +1,10 @@ +type Props = { + src: string; +}; +export default function Iframe({ src = '' }: Props) { + return ( +
+