From 04723ffbfa0f50ccd6c23b3bc986ec3323252e37 Mon Sep 17 00:00:00 2001 From: zclzone Date: Fri, 15 Mar 2024 16:20:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=96=E9=93=BE=E5=8F=AF=E5=86=85?= =?UTF-8?q?=E5=B5=8C=E6=89=93=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/isme/apifox.svg | 16 ++++++++++++++++ src/assets/icons/isme/docs.svg | 15 +++++++++++++++ src/layouts/components/SideMenu.vue | 15 +++++++++++++-- src/settings.js | 26 +++++++++++++++++++++++--- src/store/modules/permission.js | 10 ++++++++++ src/views/iframe/index.vue | 9 +++++++++ 6 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 src/assets/icons/isme/apifox.svg create mode 100644 src/assets/icons/isme/docs.svg create mode 100644 src/views/iframe/index.vue 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 @@ + + +