diff --git a/src/assets/icons/isme/apifox.svg b/src/assets/icons/isme/apifox.svg
new file mode 100644
index 0000000..009cdf5
--- /dev/null
+++ b/src/assets/icons/isme/apifox.svg
@@ -0,0 +1,16 @@
+
diff --git a/src/assets/icons/isme/docs.svg b/src/assets/icons/isme/docs.svg
new file mode 100644
index 0000000..907ac11
--- /dev/null
+++ b/src/assets/icons/isme/docs.svg
@@ -0,0 +1,15 @@
+
diff --git a/src/layouts/components/SideMenu.vue b/src/layouts/components/SideMenu.vue
index 5ebcdc5..34c82ad 100644
--- a/src/layouts/components/SideMenu.vue
+++ b/src/layouts/components/SideMenu.vue
@@ -39,8 +39,19 @@ watch(route, async () => {
})
function handleMenuSelect(key, item) {
- if (isExternal(item.path)) {
- window.open(item.path)
+ if (isExternal(item.originPath)) {
+ $dialog.confirm({
+ type: 'info',
+ title: `请选择打开方式`,
+ positiveText: '外链打开',
+ negativeText: '在本站内嵌打开',
+ confirm() {
+ window.open(item.originPath)
+ },
+ cancel: () => {
+ router.push(item.path)
+ },
+ })
} else {
router.push(item.path)
}
diff --git a/src/settings.js b/src/settings.js
index 85e1d56..e25331c 100644
--- a/src/settings.js
+++ b/src/settings.js
@@ -40,20 +40,40 @@ export const naiveThemeOverrides = {
export const basePermissions = [
{
code: 'ExternalLink',
- name: '外链',
+ name: '外链(可内嵌打开)',
type: 'MENU',
icon: 'i-fe:external-link',
order: 98,
enable: true,
show: true,
children: [
+ {
+ code: 'ShowDocs',
+ name: '项目文档',
+ type: 'MENU',
+ path: 'https://docs.isme.top/web/#/624306705/188522224',
+ icon: 'i-me:docs',
+ order: 1,
+ enable: true,
+ show: true,
+ },
+ {
+ code: 'ApiFoxDocs',
+ name: '接口文档',
+ type: 'MENU',
+ path: 'https://apifox.com/apidoc/shared-ff4a4d32-c0d1-4caf-b0ee-6abc130f734a',
+ icon: 'i-me:apifox',
+ order: 2,
+ enable: true,
+ show: true,
+ },
{
code: 'MyBlog',
name: '博客-掘金',
type: 'MENU',
- path: 'https://juejin.cn/user/1961184475483255',
+ path: 'https://juejin.cn/user/1961184475483255/posts',
icon: 'i-simple-icons:juejin',
- order: 1,
+ order: 3,
enable: true,
show: true,
},
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index 0996192..093b5db 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -6,6 +6,8 @@
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
**********************************/
+import { isExternal } from '@/utils'
+import { hyphenate } from '@vueuse/core'
import { defineStore } from 'pinia'
export const usePermissionStore = defineStore('permission', {
@@ -31,6 +33,7 @@ export const usePermissionStore = defineStore('permission', {
label: route.meta.title,
key: route.name,
path: route.path,
+ originPath: route.meta.originPath,
icon: () => h('i', { class: `${route.meta.icon}?mask text-16` }),
order: item.order ?? 0,
}
@@ -45,12 +48,19 @@ export const usePermissionStore = defineStore('permission', {
return menuItem
},
generateRoute(item, parentKey) {
+ let originPath = undefined
+ if (isExternal(item.path)) {
+ originPath = item.path
+ item.component = '/src/views/iframe/index.vue'
+ item.path = `/iframe/${hyphenate(item.code)}`
+ }
return {
name: item.code,
path: item.path,
redirect: item.redirect,
component: item.component,
meta: {
+ originPath,
icon: item.icon,
title: item.name,
layout: item.layout,
diff --git a/src/views/iframe/index.vue b/src/views/iframe/index.vue
new file mode 100644
index 0000000..174d52c
--- /dev/null
+++ b/src/views/iframe/index.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+