1
0
mirror of https://github.com/zclzone/vue-naive-admin.git synced 2025-12-28 20:10:22 +08:00

32 Commits
v1.1.0 ... 1.x

Author SHA1 Message Date
zclzone
00f3d51c1d fix: 修复VueDevTools不生效问题 2024-04-24 21:24:14 +08:00
zclzone
c9425d8803 build: update settings.json 2024-04-24 21:22:29 +08:00
zclzone
204a7b3a9b docs: update readme 2023-12-20 21:21:34 +08:00
大脸怪
417f85b8ed Merge pull request #58 from seemrcola/main
chore: 使用vue-devtool
2023-12-10 11:34:48 +08:00
seemrcola
b47f3d35ca chore: 使用vue-devtool 2023-12-09 18:54:26 +08:00
大脸怪
91dd2059f8 Merge pull request #57 from mizhexiaoxiao/main
Update README: 新增使用该项目的开源项目
2023-12-08 15:46:37 +08:00
mizhexiaoxiao
c71a717b8d Update README.EN.md 2023-12-08 14:33:15 +08:00
mizhexiaoxiao
89c3923874 Update README.md 2023-12-08 14:30:45 +08:00
zclzone
f4be4bfb36 mod: 修改通知 2023-12-07 22:37:30 +08:00
大脸怪
33da6652a6 Update README.md 2023-12-07 22:31:07 +08:00
大脸怪
4be6e4a3ca Update README.md 2023-12-07 22:29:13 +08:00
大脸怪
08b30bc864 Update README.md 2023-12-07 22:27:03 +08:00
大脸怪
84d8377816 Update README.md 2023-12-07 22:25:38 +08:00
大脸怪
d25941befe Update README.md 2023-12-07 22:25:11 +08:00
大脸怪
0490e4ded6 Update README.md 2023-11-18 17:38:08 +08:00
zclzone
3ca70e11e1 fix: <a> tag's target 2023-11-10 15:46:00 +08:00
zclzone
e149dc90b4 feat: 添加通知 2023-11-10 15:39:50 +08:00
zclzone
2a61038fe3 docs: update README 2023-11-10 10:29:29 +08:00
zclzone
7a9b1b2d34 docs: update README 2023-11-07 21:38:38 +08:00
大脸怪
9e3c434630 docs: Update README.EN.md 2023-11-07 15:40:56 +08:00
大脸怪
63cc4a8b7b docs: Update README.md 2023-11-07 15:40:14 +08:00
zclzone
d1ed8bb933 fix(other): 处理注册路由前获取用户信息和权限信息异常导致白屏的情况
ISSUES CLOSED: #54
2023-11-05 16:02:32 +08:00
zclzone
be1884bd05 chore: 调整别名优先级 2023-11-05 15:42:21 +08:00
大脸怪
60942e82f3 docs: Update README.md 2023-10-29 22:58:23 +08:00
zclzone
db56ee536b mod: 切换域名 2023-10-28 20:27:00 +08:00
zclzone
53de707509 chore: update eslint config 2023-10-16 21:15:21 +08:00
zclzone
60d0162ced mod: 修改备案号 2023-10-16 21:15:10 +08:00
大脸怪
4fff446dca Update FUNDING.yml 2023-10-13 14:44:04 +08:00
zclzone
a4dd39c5db feat: 补充gitee地址 2023-10-13 11:06:32 +08:00
zclzone
f76a3c02c2 Merge branch 'main' of https://github.com/zclzone/vue-naive-admin 2023-10-12 15:49:22 +08:00
zclzone
07d5ab4837 Merge branch 'main' of https://gitee.com/zclzone/vue-naive-admin 2023-10-12 15:48:44 +08:00
zclzone
08a11b3058 mod: create FUNDING.yml 2023-10-12 15:48:30 +08:00
17 changed files with 927 additions and 51 deletions

View File

@@ -1,5 +1,5 @@
# 自定义域名CNAME
# VITE_CNAME = 'template.qszone.com'
# VITE_CNAME = 'template.isme.top'
# 资源公共路径,需要以 /开头和结尾
VITE_PUBLIC_PATH = '/vue-naive-admin/'

View File

@@ -8,7 +8,7 @@ VITE_USE_MOCK = true
VITE_BASE_API = '/api'
# 是否启用压缩
VITE_USE_COMPRESS = true
VITE_USE_COMPRESS = false
# 压缩类型
VITE_COMPRESS_TYPE = gzip

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
custom: ['https://afdian.net/a/isme-admin']

View File

@@ -21,7 +21,7 @@
},
"eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
"source.fixAll.eslint": "explicit"
},
"files.associations": {
"*.env.*": "dotenv",

View File

@@ -31,7 +31,7 @@
### Preview
[https://template.qszone.com](https://template.qszone.com)
[https://template.isme.top](https://template.isme.top)
[https://base.isme.top](https://base.isme.top)
@@ -188,17 +188,18 @@ Vue Naive Admin
#### preview
- [https://admin.qszone.com](https://admin.qszone.com)
- [https://admin.isme.top](https://admin.isme.top)
- [https://zclzone.github.io/qs-admin](https://zclzone.github.io/qs-admin)
### Open source projects that use this project:
- [gin-vue-blog](https://github.com/szluyu99/gin-vue-blog): A full-stack blog project in Golang, the frontend of the blog backend is based on vue-naive-admin and integrates with a real backend service, implementing features such as backend-controlled routing.
- [vue-fastapi-admin](https://github.com/mizhexiaoxiao/vue-fastapi-admin): A Python backend management project that integrates RBAC permission management, dynamic routing, and JWT authentication, helping small and medium-sized applications to quickly establish a foundation.
### Communication group & About the author
<a href="https://blog.qszone.com/about/">
<img src="https://assets.qszone.com/images/about.png" style="max-width: 400px" />
<a href="https://blog.isme.top/about/">
<img src="https://static.isme.top/images/about.png?t=123" style="max-width: 400px" />
</a>

View File

@@ -12,6 +12,12 @@
<a href="https://github.com/zclzone/vue-naive-admin/blob/main/README.EN.md">English</a>
</p>
> 🎉🎉🎉 2.0 已开源,全新重构,全面简化,后端使用 nestjs + mysql + typeOrm[👉点击前往2.0版本 | 分支 2.x](https://github.com/zclzone/vue-naive-admin/tree/2.x),
- 体验地址: [admin.isme.top](https://admin.isme.top)
- 后端服务: [isme-nest-serve](https://github.com/zclzone/isme-nest-serve)
- 文档: [vue-naive-admin-docs](https://docs.isme.top/web/#/624306705)
### 简介
[Vue Naive Admin](https://github.com/zclzone/vue-naive-admin) 是一个 **开源免费且允许商用** 的后台管理模板,基于 `Vue3、Vite4、Pinia、Unocss 和 Naive UI` 等前端最新技术栈。相较于其他比较流行的后台管理模板,此项目更加简洁、轻量,风格清新,上手成本非常低,非常适合中小型项目或者个人项目。
@@ -29,9 +35,9 @@
- 🤹 集成 `iconify` 图标,支持自定义 svg 图标, 优雅使用icon
- 🍇 集成 `unocss`antfu 开源的原子 css 解决方案,非常轻量
### 预览
> ✨✨ 双十一香港特惠服务器推荐,~~**2C4G 100M** `71/年` `142/两年`~~[👉点击前往](https://blog.isme.top/vps-recommend/)
[https://template.qszone.com](https://template.qszone.com)
### 预览
[https://template.isme.top](https://template.isme.top)
@@ -200,24 +206,24 @@ Vue Naive Admin
#### 预览
- [https://admin.qszone.com](https://admin.qszone.com)
- [https://admin.isme.top](https://admin.isme.top)
- [https://zclzone.github.io/qs-admin](https://zclzone.github.io/qs-admin)
### 使用该项目的开源项目
- [gin-vue-blog](https://github.com/szluyu99/gin-vue-blog): Golang 全栈博客项目, 博客后台的前端基于 vue-naive-admin对接真实后端服务实现了后端控制路由等特性。
- [vue-fastapi-admin](https://github.com/mizhexiaoxiao/vue-fastapi-admin): Python 后台管理项目, 融合了 RBAC 权限管理、动态路由JWT 鉴权,助力中小型应用快速搭建。
### 入群交流 & 关于作者
<a href="https://blog.qszone.com/about/">
<img src="https://assets.qszone.com/images/about.png" style="max-width: 400px" />
<a href="https://blog.isme.top/about/">
<img src="https://static.isme.top/images/about.png?t=123" style="max-width: 400px" />
</a>
### ☕ 赞助我
> 开源不易,请作者喝杯咖啡吧
<p>
<img src="https://assets.qszone.com/images/zhifu_weixin.jpg" style="width: 220px" />
<img src="https://assets.qszone.com/images/zhifu_zhifubao.jpg" style="width: 220px" />
<img src="https://static.isme.top/images/zhifu_weixin.jpg" style="width: 220px" />
<img src="https://static.isme.top/images/zhifu_zhifubao.jpg" style="width: 220px" />
</p>

View File

@@ -10,13 +10,15 @@ import Unocss from 'unocss/vite'
import visualizer from 'rollup-plugin-visualizer'
// 压缩
import viteCompression from 'vite-plugin-compression'
// vite-vuedevtool
import VueDevTools from 'vite-plugin-vue-devtools'
import { configHtmlPlugin } from './html'
import { configMockPlugin } from './mock'
import unplugin from './unplugin'
export function createVitePlugins(viteEnv, isBuild) {
const plugins = [vue(), ...unplugin, configHtmlPlugin(viteEnv, isBuild), Unocss()]
const plugins = [VueDevTools(), vue(), ...unplugin, configHtmlPlugin(viteEnv, isBuild), Unocss()]
if (viteEnv?.VITE_USE_MOCK) {
plugins.push(configMockPlugin(isBuild))

View File

@@ -4,8 +4,8 @@
"baseUrl": "./",
"moduleResolution": "node",
"paths": {
"~/*": ["./*"],
"@/*": ["src/*"]
"@/*": ["src/*"],
"~/*": ["./*"]
},
"jsx": "preserve",
"allowJs": true

View File

@@ -4,21 +4,21 @@ const users = {
admin: {
id: 1,
name: '大脸怪(admin)',
avatar: 'https://assets.qszone.com/images/avatar.jpg',
avatar: 'https://static.isme.top/images/avatar.jpg',
email: 'Ronnie@123.com',
role: ['admin'],
},
editor: {
id: 2,
name: '大脸怪(editor)',
avatar: 'https://assets.qszone.com/images/avatar.jpg',
avatar: 'https://static.isme.top/images/avatar.jpg',
email: 'Ronnie@123.com',
role: ['editor'],
},
guest: {
id: 3,
name: '访客(guest)',
avatar: 'https://assets.qszone.com/images/avatar.jpg',
avatar: 'https://static.isme.top/images/avatar.jpg',
role: [],
},
}

View File

@@ -56,7 +56,7 @@
"@unocss/preset-rem-to-px": "^0.55.7",
"@vitejs/plugin-vue": "^4.4.0",
"@vue/compiler-sfc": "^3.3.4",
"@zclzone/eslint-config": "^0.0.4",
"@zclzone/eslint-config": "^0.0.5",
"chalk": "^5.3.0",
"commitizen": "^4.3.0",
"cz-conventional-changelog": "^3.3.0",
@@ -76,6 +76,7 @@
"vite-plugin-compression": "^0.5.1",
"vite-plugin-html": "^3.2.0",
"vite-plugin-mock": "2.9.6",
"vite-plugin-svg-icons": "^2.0.1"
"vite-plugin-svg-icons": "^2.0.1",
"vite-plugin-vue-devtools": "1.0.0-rc.7"
}
}

869
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -16,7 +16,7 @@
target="__blank"
hover="decoration-underline color-primary"
>
赣ICP备2020015008号-1
赣ICP备2020015008号-2
</a>
</p>
</footer>

View File

@@ -0,0 +1,11 @@
<template>
<n-icon mr-20 size="18" style="cursor: pointer" @click="handleLinkClick">
<icon-simple-icons:gitee />
</n-icon>
</template>
<script setup>
function handleLinkClick() {
window.open('https://gitee.com/isme-admin/vue-naive-admin')
}
</script>

View File

@@ -6,6 +6,7 @@
<div ml-auto flex items-center>
<MessageNotification />
<ThemeMode />
<GiteeSite />
<GithubSite />
<FullScreen />
<UserAvatar />
@@ -18,6 +19,7 @@ import MenuCollapse from './components/MenuCollapse.vue'
import FullScreen from './components/FullScreen.vue'
import UserAvatar from './components/UserAvatar.vue'
import GithubSite from './components/GithubSite.vue'
import GiteeSite from './components/GiteeSite.vue'
import ThemeMode from './components/ThemeMode.vue'
import MessageNotification from './components/MessageNotification.vue'
</script>

View File

@@ -12,13 +12,10 @@ import { setupNaiveDiscreteApi } from './utils'
async function setupApp() {
const app = createApp(App)
setupStore(app)
setupNaiveDiscreteApi()
await setupRouter(app)
app.mount('#app')
setupNaiveDiscreteApi()
}
setupApp()

View File

@@ -28,6 +28,7 @@ export async function resetRouter() {
}
export async function addDynamicRoutes() {
// return Promise.reject('123')
const token = getToken()
// 没有token情况
@@ -37,8 +38,8 @@ export async function addDynamicRoutes() {
}
// 有token的情况
try {
const userStore = useUserStore()
try {
const permissionStore = usePermissionStore()
!userStore.userId && (await userStore.getUserInfo())
const accessRoutes = permissionStore.generateRoutes(userStore.role)
@@ -47,8 +48,25 @@ export async function addDynamicRoutes() {
})
router.hasRoute(EMPTY_ROUTE.name) && router.removeRoute(EMPTY_ROUTE.name)
router.addRoute(NOT_FOUND_ROUTE)
window.$notification?.success({
title: '🎉🎉🎉 2.0 全栈版本开源了!',
content: () =>
h(
'span',
{},
'2.0为全栈版本,提供前端+后端,全新重构,全面简化,',
h(
'a',
{ href: 'https://admin.isme.top', target: '__blank' },
'👉体验 https://admin.isme.top'
)
),
})
} catch (error) {
console.error(error)
$message.error('初始化用户信息失败: ' + error)
userStore.logout()
}
}

View File

@@ -50,10 +50,10 @@ defineOptions({ name: 'Upload' })
const { copy, copied } = useClipboard()
const imgList = reactive([
{ url: 'https://cdn.qszone.com/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
{ url: 'https://cdn.qszone.com/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
{ url: 'https://cdn.qszone.com/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
{ url: 'https://cdn.qszone.com/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
{ url: 'https://cdn.isme.top/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
{ url: 'https://cdn.isme.top/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
{ url: 'https://cdn.isme.top/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
{ url: 'https://cdn.isme.top/images/5c23d52f880511ebb6edd017c2d2eca2.jpg' },
])
watch(copied, (val) => {