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 @@