From dbb43061d3b08840e81f56443f49867e6b1a2169 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?PiexlMax=28=E5=A5=87=E6=B7=BC?=
Date: Thu, 3 Sep 2026 01:53:25 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=BC=94=E7=A4=BA?=
=?UTF-8?q?=E7=AB=99=E5=92=8C=E5=95=86=E4=B8=9A=E9=93=BE=E6=8E=A5=E9=85=8D?=
=?UTF-8?q?=E7=BD=AE=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=BB=AA=E8=A1=A8=E7=9B=98?=
=?UTF-8?q?=E5=92=8C=E5=A4=B4=E9=83=A8=E7=BB=84=E4=BB=B6=E4=BB=A5=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E6=8E=88=E6=9D=83=E7=89=88=E6=BC=94=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README-en.md | 15 ++++---
README.md | 13 ++++--
web/src/config/external-links.js | 15 +++++++
web/src/qa-licensed-demo.js | 64 ++++++++++++++++++++++++++++
web/src/view/dashboard/index.vue | 61 ++++++++++++++++----------
web/src/view/layout/header/index.vue | 20 ++++++++-
web/src/view/layout/header/tools.vue | 2 +-
7 files changed, 156 insertions(+), 34 deletions(-)
create mode 100644 web/src/config/external-links.js
create mode 100644 web/src/qa-licensed-demo.js
diff --git a/README-en.md b/README-en.md
index 0ba961c3d..6f50c423d 100644
--- a/README-en.md
+++ b/README-en.md
@@ -23,18 +23,21 @@ English | [简体中文](./README.md)
[Development Steps](https://www.gin-vue-admin.com/guide/start-quickly/env.html) (Contributor: LLemonGreen And Fann)
+## Live Demos
+
+- **Demo Site**: [http://demo.gin-vue-admin.com](http://demo.gin-vue-admin.com)
+- **Licensed Edition Demo**: [https://vip.gin-vue-admin.com](https://vip.gin-vue-admin.com)
+- **Demo Username**: `admin`
+- **Demo Password**: `123456`
+
+Explore the [licensed edition demo](https://vip.gin-vue-admin.com) to see the complete experience. For commercial or production use, [purchase a commercial license](https://plugin.gin-vue-admin.com/license).
+
## 1. Basic Introduction
### 1.1 Project Introduction
> Gin-vue-admin is a backstage management system based on [vue](https://vuejs.org) and [gin](https://gin-gonic.com), which separates the front and rear of the full stack. It integrates jwt authentication, dynamic routing, dynamic menu, casbin authentication, form generator, code generator and other functions. It provides a variety of sample files, allowing you to focus more time on business development.
-[Online Demo](http://demo.gin-vue-admin.com): http://demo.gin-vue-admin.com
-
-username:admin
-
-password:123456
-
### 1.2 Contributing Guide
Hi! Thank you for choosing gin-vue-admin.
diff --git a/README.md b/README.md
index 7536e7181..ba68449b0 100644
--- a/README.md
+++ b/README.md
@@ -56,6 +56,15 @@
- **插件市场**: [点击进入](https://plugin.gin-vue-admin.com/)
- **软件著作权证书**: [查看证书](https://www.gin-vue-admin.com/copyright.pdf)
+## 在线演示
+
+- **演示站**: [http://demo.gin-vue-admin.com](http://demo.gin-vue-admin.com)
+- **授权版演示站**: [https://vip.gin-vue-admin.com](https://vip.gin-vue-admin.com)
+- **演示站测试用户名**: `admin`
+- **演示站测试密码**: `123456`
+
+想了解授权版提供的完整体验,可先访问[授权版演示站](https://vip.gin-vue-admin.com);用于商用或生产环境时,请[购买商业授权](https://plugin.gin-vue-admin.com/license)。
+
## 重要提示
1. 本项目从起步到开发到部署均有文档和详细视频教程。
@@ -76,10 +85,6 @@
> Gin-vue-admin是一个基于 [vue](https://vuejs.org) 和 [gin](https://gin-gonic.com) 开发的全栈前后端分离的开发基础平台,集成jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供多种示例文件,让您把更多时间专注在业务开发上。
-- **在线预览**: [http://demo.gin-vue-admin.com](http://demo.gin-vue-admin.com)
-- **测试用户名**: `admin`
-- **测试密码**: `123456`
-
### 1.2 贡献指南
Hi! 首先感谢你使用 gin-vue-admin。
diff --git a/web/src/config/external-links.js b/web/src/config/external-links.js
new file mode 100644
index 000000000..2e543d031
--- /dev/null
+++ b/web/src/config/external-links.js
@@ -0,0 +1,15 @@
+export const DEMO_SITES = {
+ public: {
+ label: '演示站',
+ url: 'http://demo.gin-vue-admin.com'
+ },
+ licensed: {
+ label: '授权版演示站',
+ url: 'https://vip.gin-vue-admin.com'
+ }
+}
+
+export const COMMERCIAL_LINKS = {
+ purchase: 'https://plugin.gin-vue-admin.com/license',
+ pluginMarket: 'https://plugin.gin-vue-admin.com'
+}
diff --git a/web/src/qa-licensed-demo.js b/web/src/qa-licensed-demo.js
new file mode 100644
index 000000000..9698bf4fa
--- /dev/null
+++ b/web/src/qa-licensed-demo.js
@@ -0,0 +1,64 @@
+import '@/style/element_visiable.scss'
+import 'element-plus/theme-chalk/dark/css-vars.css'
+import 'element-plus/dist/index.css'
+import 'uno.css'
+
+import * as ElIconModules from '@element-plus/icons-vue'
+import ElementPlus from 'element-plus'
+import { createPinia } from 'pinia'
+import { createApp, h } from 'vue'
+import { createRouter, createWebHashHistory } from 'vue-router'
+
+import LogoHeader from '@/view/layout/header/index.vue'
+import Dashboard from '@/view/dashboard/index.vue'
+import { useAppStore } from '@/pinia/modules/app'
+import { useUserStore } from '@/pinia/modules/user'
+
+const pinia = createPinia()
+const router = createRouter({
+ history: createWebHashHistory(),
+ routes: [
+ {
+ path: '/',
+ name: 'qa',
+ component: { render: () => h('div') },
+ meta: { matched: [] }
+ }
+ ]
+})
+
+const appStore = useAppStore(pinia)
+const userStore = useUserStore(pinia)
+
+const updateDevice = () => {
+ appStore.toggleDevice(window.innerWidth < 768 ? 'mobile' : 'desktop')
+}
+
+appStore.config.show_watermark = false
+userStore.ResetUserInfo({
+ nickName: '演示管理员',
+ authority: { authorityName: '超级管理员' },
+ authorities: []
+})
+updateDevice()
+window.addEventListener('resize', updateDevice)
+
+const app = createApp({
+ render: () =>
+ h('div', { class: 'h-screen bg-gray-50 text-slate-700 dark:bg-slate-800' }, [
+ h(LogoHeader),
+ h('main', { class: 'h-full pt-16' }, [h(Dashboard)])
+ ])
+})
+
+for (const iconName in ElIconModules) {
+ app.component(iconName, ElIconModules[iconName])
+}
+
+app.config.globalProperties.$GIN_VUE_ADMIN = {
+ appName: 'Gin-Vue-Admin'
+}
+
+app.use(ElementPlus).use(pinia).use(router)
+await router.isReady()
+app.mount('#app')
diff --git a/web/src/view/dashboard/index.vue b/web/src/view/dashboard/index.vue
index eadcd67be..e8f264968 100644
--- a/web/src/view/dashboard/index.vue
+++ b/web/src/view/dashboard/index.vue
@@ -15,9 +15,12 @@
{{ today }} · 已为你聚合核心业务数据、插件动态和系统公告
-
-
购买商业授权
-
插件市场
+
+
+
+ 查看授权版演示
+
+ 购买商业授权
@@ -60,23 +63,35 @@
-
-
-
商业授权
-
解锁完整商用支持与专属服务
-
- 购买授权后可获得专属支持通道、插件优惠与商用合规保障,帮助团队更稳定地推进项目交付。
-
-
-
专属技术支持
-
插件优惠权益
-
商用授权凭证
+
+
-
-
立即购买
-
查看插件市场
+
+ 先体验完整授权版,再决定是否购买
+
+
+ 在线查看授权版的完整界面与业务能力,直观了解它能为团队交付带来的提升。
+
+
+ 完整业务体验
+ 持续升级权益
+ 商业授权支持
+
+
+
+ 查看授权版演示
+
+ 购买商业授权
@@ -97,6 +112,8 @@
GvaQuickLink,
GvaCard
} from './components'
+ import { COMMERCIAL_LINKS, DEMO_SITES } from '@/config/external-links'
+ import { toDoc } from '@/utils/doc'
const today = computed(() => {
try {
@@ -111,12 +128,12 @@
}
})
- const goLicense = () => {
- window.open('https://plugin.gin-vue-admin.com/license', '_blank', 'noopener,noreferrer')
+ const goLicensedDemo = () => {
+ toDoc(DEMO_SITES.licensed.url)
}
- const goPluginMarket = () => {
- window.open('https://plugin.gin-vue-admin.com', '_blank', 'noopener,noreferrer')
+ const goLicense = () => {
+ toDoc(COMMERCIAL_LINKS.purchase)
}
defineOptions({
diff --git a/web/src/view/layout/header/index.vue b/web/src/view/layout/header/index.vue
index 041d91027..d15a7b569 100644
--- a/web/src/view/layout/header/index.vue
+++ b/web/src/view/layout/header/index.vue
@@ -45,7 +45,20 @@
/>
-
+
+
+
+
+ 授权版演示
+
+
@@ -104,6 +117,8 @@
import { fmtTitle } from '@/utils/fmtRouterTitle'
import gvaAside from '@/view/layout/aside/index.vue'
import Logo from '@/components/logo/index.vue'
+ import { DEMO_SITES } from '@/config/external-links'
+ import { toDoc } from '@/utils/doc'
const userStore = useUserStore()
const router = useRouter()
@@ -116,6 +131,9 @@
const toPerson = () => {
router.push({ name: 'person' })
}
+ const goLicensedDemo = () => {
+ toDoc(DEMO_SITES.licensed.url)
+ }
const matched = computed(() => route.meta.matched)
const changeUserAuth = async (id) => {
diff --git a/web/src/view/layout/header/tools.vue b/web/src/view/layout/header/tools.vue
index 399533871..53e04d7e1 100644
--- a/web/src/view/layout/header/tools.vue
+++ b/web/src/view/layout/header/tools.vue
@@ -1,5 +1,5 @@
-