diff --git a/docs/FrpcPilot开发提示词.md b/docs/FrpcPilot开发提示词.md
index a30c905..6f6f90c 100644
--- a/docs/FrpcPilot开发提示词.md
+++ b/docs/FrpcPilot开发提示词.md
@@ -71,6 +71,150 @@ Layout布局content区域的磨砂玻璃卡片圆角样式我要改动一下:
- 设置页面里面也有一些没有随主题改变颜色
- 整体全部检查并且修复一下
+#### 2.7 侧边栏折叠和漫游式引导
+
+- 侧边导航栏在设置下面增加一个折叠/展开的图标,点击用于控制侧边导航栏的折叠和展开
+ - 侧边导航栏折叠之后,需要注意折叠之后的图标居中显示,并且鼠标放上去之后的hover效果显示的时候,图标也要在hover效果里面居中
+ - 官方参考代码如下:
+
+```html
+
+
+
+
+```
+
+- 第一次进入应用时,使用Antdv的漫游式引导组件做一个引导操作
+ - 漫游式引导的目的是帮助用户快速上手FrpcPilot的功能使用流程
+ - 配置服务器、创建隧道、下载Frp、仪表盘一键启动这是主要的四步流程,你可以按照这个来做引导
+- 打开应用时,当主界面未显示完整(还是白屏的时候),做一个启动加载动画,显示“FrpcPilot正在启动中”
+ - 加载动画可以是一圈正在转圈的圆点,圆点大小要有变化,颜色在加载的过程中也可以有变化,最好是做成svg动画的形式,或者你有更好的方案也可以采用
+
+开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
+
### 3. 功能开发
#### 3.1 开发服务器配置功能
@@ -189,3 +333,27 @@ Layout布局content区域的磨砂玻璃卡片圆角样式我要改动一下:
- 其他与项目名称有关的也修改一下
先扫描一下有哪些需要修改的,列一个清单出来,经过我的确认之后再开始修改
+
+#### 4.2 Frpc下载功能修改
+
+保持Frpc下载主要功能不变,现在需要对检索结果进行过滤方面的修改,具体如下:
+
+- 去掉当前的两个开关选项“所有架构frpc”和“所有架构frps”
+- 换成一个下拉列表,列表值为frp的所有不同架构分类,命名方式为:系统类型+下划线+架构,例如:windows_amd64、darwin_amd64、linux_amd64、linux_arm等等,默认值为当前运行环境操作系统类型和架构,最顶上有一个“全部”选项用来显示所有
+- 如果是选中“全部”,排列顺序为按照frp版本,从高到低显示同一个版本不同系统和架构的frp,再显示低版本的
+- 修改过程中保持主要的下载功能不变,包括加速方案
+- 左侧菜单栏改成Frp下载
+
+开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
+
+#### 4.3 程序运行数据目录
+
+当前软件运行的数据在我这台电脑上都在:C:\Users\OrBit-0297\AppData\Roaming\FrpcPilot这个目录里面,我想要修改为数据保存在软件安装所在目录,例如我这台电脑安装在:D:\software\FrpcPilot,按照以下要求修改数据保存的目录:
+
+- 数据库文件、下载的frp全部保存在软件安装所在目录里面,并做好分类,例如:db数据库文件放在data目录里面,下载的frp放在frp目录里面,运行frpc生成的toml文件放在run目录里面
+- 程序运行时生成的其他文件等也放在软件安装目录下面
+- 我这样做的目的是假如安装位置不在C盘,就尽量减少C盘的占用,如果本身就安装在C盘的某个位置,上面说的那些文件保存路径也是以软件安装目录为准,避免放在默认目录里面
+- 顺便准备一份迁移脚本,在下一个版本升级的时候便于老版本用户无感迁移之前的数据,注意新安装用户不需要使用这个迁移脚本
+ - 我想到的方案是脚本,如果你有更好的方案的话,那就采用你的方案,如果没有,就按照我的要求来做,同时你需要考虑到我遗漏的地方
+ - 数据迁移之后,可能还需要处理数据库中保存的frp软件目录所在位置
+ - 迁移脚本需要考虑不同操作系统之间的差别
diff --git a/index.html b/index.html
index d64dff4..e3667c2 100644
--- a/index.html
+++ b/index.html
@@ -1,13 +1,86 @@
-
+
FrpcPilot
+
+
+
+
+ FrpcPilot正在启动中
+
+
diff --git a/src/components/OnboardingTour.vue b/src/components/OnboardingTour.vue
new file mode 100644
index 0000000..b2262d9
--- /dev/null
+++ b/src/components/OnboardingTour.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 2de6ceb..625a924 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -28,6 +28,24 @@
"download": "Frp Download",
"setting": "Settings"
},
+ "sidebar": {
+ "navigation": "Main navigation",
+ "collapse": "Collapse navigation",
+ "expand": "Expand navigation"
+ },
+ "onboarding": {
+ "title": "Getting started",
+ "replay": "View guide",
+ "replayDescription": "Learn the complete setup and startup workflow in four steps",
+ "serversTitle": "1 / 4 · Configure a server",
+ "serversDescription": "Choose Add Server, enter your deployed frps address, port and authentication token, then enable the server. Only one server needs to be enabled at a time.",
+ "tunnelsTitle": "2 / 4 · Create a tunnel",
+ "tunnelsDescription": "Choose Add Tunnel, select a proxy type such as TCP or HTTP, and enter your local service IP and port, plus a remote port or domain. Save and enable the tunnel. Multiple tunnels can run together.",
+ "downloadTitle": "3 / 4 · Download Frp",
+ "downloadDescription": "Filter by your system and architecture, then download Frp from a version card below. You can also import an existing local frpc. Downloaded or imported versions appear in the dashboard selector.",
+ "dashboardTitle": "4 / 4 · Start from the dashboard",
+ "dashboardDescription": "After setup, select a downloaded Frpc version and click Start to connect. Check the live logs and running status below to verify the connection. You are ready to configure your connection. Replay this guide anytime in Settings → General."
+ },
"tray": {
"show": "Show window",
"start": "Start tunnel",
diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json
index 3c069c0..9c590e3 100644
--- a/src/i18n/locales/zh-CN.json
+++ b/src/i18n/locales/zh-CN.json
@@ -28,6 +28,24 @@
"download": "Frp下载",
"setting": "设置"
},
+ "sidebar": {
+ "navigation": "主导航",
+ "collapse": "折叠导航",
+ "expand": "展开导航"
+ },
+ "onboarding": {
+ "title": "新手引导",
+ "replay": "重新查看",
+ "replayDescription": "用四个步骤了解从配置到启动的完整流程",
+ "serversTitle": "1 / 4 · 配置服务器",
+ "serversDescription": "从「新增服务器」开始,填写已部署的 frps 地址、端口和鉴权 Token,并启用这台服务器。同一时间只需启用一台。",
+ "tunnelsTitle": "2 / 4 · 创建隧道",
+ "tunnelsDescription": "点击「新增隧道」,选择 TCP、HTTP 等代理类型,填写本地服务的 IP 和端口,以及远程端口或域名,保存并启用隧道。可以同时启用多个隧道。",
+ "downloadTitle": "3 / 4 · 下载 Frp",
+ "downloadDescription": "按当前系统和架构筛选版本,在下方版本卡片中下载 Frp;也可以通过「导入本地」使用已有的 frpc。下载或导入后,即可在仪表盘中选择该版本。",
+ "dashboardTitle": "4 / 4 · 仪表盘一键启动",
+ "dashboardDescription": "完成前面的配置后,选择已下载的 Frpc 版本,点击「一键启动」开始穿透。下方实时日志和运行状态可帮助确认连接情况。现在可以开始配置了,也可随时在「设置 → 常规」重新查看引导。"
+ },
"tray": {
"show": "显示窗口",
"start": "启动穿透",
diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue
index 7c4bc26..8da7299 100644
--- a/src/layout/Layout.vue
+++ b/src/layout/Layout.vue
@@ -23,6 +23,7 @@
+
@@ -32,9 +33,12 @@ import Aside from "./aside/Aside.vue"
import UpdateModal from "@/components/UpdateModal.vue"
import CloseConfirmModal from "@/components/CloseConfirmModal.vue"
import { useUpdateStore } from "@/stores/update"
+import { useOnboardingStore } from "@/stores/onboarding"
+import OnboardingTour from "@/components/OnboardingTour.vue"
const router = useRouter()
const updateStore = useUpdateStore()
+const onboarding = useOnboardingStore()
/**
* 需要 keep-alive 缓存的页面组件名列表(由路由 meta.isCache 决定)。
@@ -55,7 +59,12 @@ function goToSetting() {
}
// 应用启动后静默检查一次更新(已忽略的版本不会打扰用户)
-onMounted(() => {
- updateStore.checkForUpdate(true)
-})
+const stopUpdateWatch = watch(
+ () => onboarding.ready && onboarding.dismissed && !onboarding.active,
+ (canCheck) => {
+ if (!canCheck) return
+ void updateStore.checkForUpdate(true)
+ stopUpdateWatch()
+ },
+)
diff --git a/src/layout/aside/Aside.vue b/src/layout/aside/Aside.vue
index dfcf267..5102f62 100644
--- a/src/layout/aside/Aside.vue
+++ b/src/layout/aside/Aside.vue
@@ -1,14 +1,19 @@
-