diff --git a/LICENSE b/LICENSE
index fae83dd..b13b857 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2026 timi
+Copyright (c) 2026 imyeyu.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including
diff --git a/src/pages/setting/About.vue b/src/pages/setting/About.vue
new file mode 100644
index 0000000..440ab54
--- /dev/null
+++ b/src/pages/setting/About.vue
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
diff --git a/src/pages/setting/Agreement.vue b/src/pages/setting/Agreement.vue
new file mode 100644
index 0000000..4ccc5de
--- /dev/null
+++ b/src/pages/setting/Agreement.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
diff --git a/src/pages/tabs/SettingTab.vue b/src/pages/tabs/SettingTab.vue
index df7a36d..8c86a3b 100644
--- a/src/pages/tabs/SettingTab.vue
+++ b/src/pages/tabs/SettingTab.vue
@@ -87,7 +87,7 @@ type MenuItem = {
type MenuGroup = {
items: MenuItem[];
- title: string;
+ title?: string;
};
defineOptions({
@@ -234,6 +234,16 @@ const menuGroupList = computed(() => [
path: "/management/qr-code",
title: "生成客户二维码",
visible: userStore.hasPermissions(permissionCodes.qrCode.create)
+ },
+ ]
+ },
+ {
+ items: [
+ {
+ icon: "info-circle",
+ path: "/management/about",
+ title: "关于",
+ visible: true
}
]
}
diff --git a/src/router/routes/managementRoutes.ts b/src/router/routes/managementRoutes.ts
index d60e32c..edc279d 100644
--- a/src/router/routes/managementRoutes.ts
+++ b/src/router/routes/managementRoutes.ts
@@ -1,4 +1,6 @@
import type { RouteRecordRaw } from "vue-router";
+import About from "@/pages/setting/About.vue";
+import Agreement from "@/pages/setting/Agreement.vue";
import AppSettings from "@/pages/setting/AppSettings.vue";
import NotifyList from "@/pages/notify/NotifyList.vue";
import NotifyCreate from "@/pages/notify/NotifyCreate.vue";
@@ -146,6 +148,62 @@ export const storeRoutes: RouteRecordRaw[] = [
];
export const managementSettingRoutes: RouteRecordRaw[] = [
+ {
+ path: "/management/about",
+ name: "About",
+ component: About,
+ meta: {
+ depth: 3,
+ navBarVisible: true,
+ navBarCanBack: true,
+ navBarTitle: "关于",
+ tabBarVisible: false,
+ bodyBackground: "#F5F5F8",
+ darkBodyBackground: "#10161f"
+ }
+ },
+ {
+ path: "/management/about/service-agreement/:id",
+ name: "ServiceAgreement",
+ component: Agreement,
+ meta: {
+ depth: 4,
+ navBarVisible: true,
+ navBarCanBack: true,
+ navBarTitle: "服务协议",
+ tabBarVisible: false,
+ bodyBackground: "#FFF",
+ darkBodyBackground: "#10161f"
+ }
+ },
+ {
+ path: "/management/about/privacy-agreement/:id",
+ name: "PrivacyAgreement",
+ component: Agreement,
+ meta: {
+ depth: 4,
+ navBarVisible: true,
+ navBarCanBack: true,
+ navBarTitle: "隐私协议",
+ tabBarVisible: false,
+ bodyBackground: "#FFF",
+ darkBodyBackground: "#10161f"
+ }
+ },
+ {
+ path: "/management/about/open-source-agreement/:id",
+ name: "OpenSourceAgreement",
+ component: Agreement,
+ meta: {
+ depth: 4,
+ navBarVisible: true,
+ navBarCanBack: true,
+ navBarTitle: "开源软件协议",
+ tabBarVisible: false,
+ bodyBackground: "#F5F5F8",
+ darkBodyBackground: "#10161f"
+ }
+ },
{
path: "/management/settings",
name: "AppSettings",