refactor: 项目正式更名为 FrpcPilot,同步更新所有相关标识

本次修改将项目名称从 Frpilot 全面更改为 FrpcPilot,涉及:
- 应用名称、窗口标题、系统托盘提示、GitHub 仓库地址
- 包标识:npm 包名、Rust crate 名称、Tauri identifier
- 本地存储键前缀、数据库文件名、系统托盘 ID
- 文档、国际化文案、配置文件、代码注释等所有关联内容
This commit is contained in:
Yuhang Wu
2026-10-16 15:36:02 +08:00
parent 57b4d7be5a
commit 140c517191
33 changed files with 268 additions and 188 deletions
+191
View File
@@ -0,0 +1,191 @@
# FrpcPilot开发提示词
## 背景
> 该项目使用Tauri2 + Vue3为主要技术栈,主要解决Frpc配置繁琐的问题,方便用户快速配置frpc版本、隧道、服务器等
>
> UI库:Antdv
## 阶段提示词
### 1. Layout布局
本项目打算做一个Frpc的可视化客户端,方便用户快速配置frpc版本、隧道、服务器等,现在帮我完成以下功能:
1. i18n国际化初始化配置
- 在locales目录中写多语言翻译json文件,初步支持中文和英文
2. TitleBar页面开发
- 开发不同操作系统类型的自定义titlebar
- Windows系统的TitleBar最左侧显示FrpcPilot标题,右侧显示语言切换、明暗切换、设置、最小化、关闭,按照顺序展示;
- Mac系统的TitleBar最左侧显示红绿灯操作,右侧显示语言切换、明暗切换、设置、最小化、关闭,按照顺序展示;
3. Layout页面布局开发
- Aside侧边栏开发,在Aside.vue文件里面编写,左侧菜单初步暂定为仪表盘、服务器、隧道列表、Frpc下载
- Aside侧边栏最底部显示CPU占用(百分比)、内存占用(百分比)、运行状态(绿色点运行正常,红色点运行异常,黄色点未启动),跟上方的菜单有间隔
- Header顶部栏,根据操作系统类型引入components里面的WindowsTitleBar.vue或MacTitleBar.vue
4. Layout布局的side、content区域全部采用圆角矩形、类似于悬浮磨砂玻璃效果
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
### 2. 设置页面外观设置
#### 2.1 窗口背景设置开发
- 我新加了一个设置页面Setting.vue和一个外观设置Appearance.vue文件,帮我在路由表里面增加设置页路由,以及外观设置子路由
- 设置页面左侧为菜单栏,先增加第一项菜单-外观设置,设置项为主题模式切换(明/暗)、背景图片切换
- 背景图片使用assets/images目录中的bg-1.png、bg-2.jpg、bg-3.png作为窗口背景图片,在设置页面里面可以选择其中一个切换页面背景,注意尽可能保持原图片的比例大小不发生拉伸
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
#### 2.2 UI修改
Layout布局content区域的磨砂玻璃卡片圆角样式我要改动一下:
- 不是在整个main区域设置成glass-panel样式
- 而是在每一个页面单独设置,现在先以服务器配置页面为例,按照我图片中红色框选部分作为区域分割
- 左侧菜单栏已经是glass-panel样式,现在需要在main区域设置成圆角卡片磨砂玻璃效果
#### 2.3 弹窗修改
现在的弹窗里面内容比较多的时候会出现弹窗高度超出窗口高度,然后整个弹窗可以滚动,我想要改成弹窗高度不能超过窗口高度的80%,然后弹窗内容较多的时候,滚动仅限于弹窗里面可以进行滚动,按照我的要求修改一下
#### 2.4 弹窗、卡片效果修改
- 服务器列表卡片、新增服务器弹窗的背景效果都改成透明磨砂玻璃效果
- 隧道列表卡片、新建隧道弹窗的背景效果都改成透明磨砂玻璃效果
- Frpc下载列表卡片的背景效果都改成透明磨砂玻璃效果
#### 2.5 外观设置新增卡片透明度和弹窗透明度修改
- 在外观设置新增两个进度条,用于拖动控制卡片磨砂玻璃效果的透明度和弹窗磨砂玻璃效果的透明度
- 拖动进度条设置透明度的时候可以实时看到效果
#### 2.6 明暗主题切换,部分字体颜色没有跟随主题变化
- 切换暗色主题之后,部分字体颜色没有随主题切换
- 仪表盘页面里面,系统信息卡片、CPU和内存占用卡片、frpc版本、实时日志这些卡片里面的字体应该没有随主题变化
- 服务器页面里面,服务器三个字没有变化颜色
- 隧道列表页面里面,隧道列表三个字没有改变颜色
- Frpc卸载页面里面,Frpc下载、所有架构Frpc、所有架构Frps这些没有改变颜色
- 侧边栏的CPU/内存占用,状态文字没有改变颜色
- 设置页面里面也有一些没有随主题改变颜色
- 整体全部检查并且修复一下
### 3. 功能开发
#### 3.1 开发服务器配置功能
- Servers.vue页面右上方一个增加和刷新按钮,点击增加,弹窗填写服务器表单信息
- 服务器信息有名称、IP地址、端口号(默认7000)、备注、排序、是否置顶、是否启用等,这些是我能想到的字段,你需要按照Frpc配置的需要,决定是否增加新的字段,表单需要做必填检验
- 页面展示已经配置的服务器列表,列表服务器以卡片形式展示,卡片有开关可以直接操作是否置顶和是否启用,是否启用选项只能启用一个,另外还需要有编辑和删除,新增和编辑使用同一个表单
- 服务器信息在Rust端使用SQLite存储,Rust已经加入相关的sqlx依赖等,后端操作返回前端务必使用ApiResponse统一返回格式,前端也需要做好对应的类型匹配
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
#### 3.2 开发隧道列表功能
- Tunnels.vue页面右上方一个增加和刷新按钮,点击增加,弹窗填写隧道表单信息
- 隧道信息有名称、代理类型、本地IP、本地端口、远程端口、是否置顶、是否启用等,这些是我之前使用Frpc的时候常用的配置字段,你需要按照Frpc配置的需要,决定是否增加新的字段,表单需要做必填检验,如果你增加的是不常用的字段或者是更高级别的设置,可以用折叠面板作为高级设置,将这些更高级的字段放入
- 页面展示已经配置的隧道列表,列表隧道以卡片形式展示,卡片有开关可以直接操作是否置顶和是否启用,隧道可同时启用多个,另外还需要有编辑和删除,新增和编辑使用同一个表单
- 隧道信息在Rust端使用SQLite存储,Rust已经加入相关的sqlx依赖等,后端操作返回前端务必使用ApiResponse统一返回格式,前端也需要做好对应的类型匹配
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
#### 3.3 仪表盘页面开发
按照我给的图片布局开发仪表盘页面
- 三个卡片分别展示服务器数量、隧道数量、CPU/内存/运行状态,每个卡片都需要圆角磨砂玻璃效果
- 三个卡片下方是快速操作,可以选择已下载的Frpc版本,右侧按钮一键启动或停止,Frpc下载功能暂未实现,先用模拟数据展示
- 快速操作下方是Frpc运行实时日志展示,也先使用模拟数据展示
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
##### 3.3.1 仪表盘页面调整
- 三个卡片当中的服务器数量和隧道数量合并到一个卡片里面,这一个卡片里面上方展示服务器数量,下方展示隧道数量
- 原本的隧道数量卡片改为展示当前运行系统主机名、系统架构、IP地址等,通过Rust端sysinfo获取
- 其余卡片保持不动
#### 3.4 Frpc下载功能开发
- frp的GitHub仓库地址是https://github.com/fatedier/frp
- 初始化一张表,用来保存已下载的Frpc版本和保存路径等信息,已下载的Frpc在获取到的列表里面展示为已下载等标记
- 考虑到国内网络环境访问GitHub不稳定,所以拉取Frpc版本和下载的时候使用GitHub 镜像加速,拉取Frpc版本和下载的时候,需要根据软件运行系统架构展示对应的Frpc版本(默认情况);
- 页面上方卡片栏里面增加一个开关选项,用于开启是否展示所有架构的Frpc;再增加一个开关选项,用于开启是否展示所有架构的Frps,可以将该软件作为frp下载器使用;再有一个刷新按钮,用于刷新信息;再加一个按钮用于导入本地已下载的Frpc
- 点击卡片上的下载按钮,卡片下方显示一个下载进度的进度条
- 展示获取到的frp数据使用卡片展示,卡片上有对应按钮可以点击进行下载,卡片展示的信息包含frp版本、大小、下载次数、发布日期。在有一个按钮,点击复制下载链接,便于去浏览器等环境下载。再加一个按钮删除已下载的版本
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
#### 3.5 完成一键启动和日志实时回显功能
- 选择已下载的Frpc版本,点击一键启动,Rust端根据SQLite中保存并启用的服务器和隧道信息生成frpc.toml文件,然后启动frpc
- 将frpc所在进程与软件主进程分离,避免frpc进程异常导致软件退出
- **绕开 plugin-shell,直接用 Rust 的 `std::process::Command`**
- 将frpc的运行日志实时显示在仪表盘页面的日志区域内,并且可以清楚等
- 仪表盘页面的停止按钮也可以停止frpc服务进程
- frpc启动避免出现frpc运行的黑色窗口
##### 3.5.1 仪表盘功能优化调整
- frpc服务启动后,还可以在下拉列表修改frpc版本,启动后就不能再修改版本,而且下拉列表里面要显示正在使用的frpc版本
- 切换菜单之后再切回仪表盘页面,实时日志内容没了,需要保持实时日志内容不会随页面切换而清空
#### 3.6 自动更新功能开发
- 设置页增加一个子页面(关于),里面内容是项目介绍、使用流程、GitHub地址、检查更新相关等内容
- 顶部栏增加一个检查更新图标操作按钮,按钮样式注意风格跟顶部栏统一
- 顶部栏再增加一个GitHub图标,点击跳转浏览器打开本项目GitHub地址
- 做一个更新弹窗,弹窗标题是最新版本号,以及一些说明性文字,例如:发现新版本啦等,语气尽量俏皮可爱,二次元语气。弹窗内容是更新日志,注意弹窗高度不能超过窗口高度的60%,如果更新日志内容过多,则在弹窗主内容区域内可以上下滚动。
- 弹窗底部是忽略该版本、取消、确认更新等操作
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
#### 3.7 系统托盘功能开发
- 这是Tauri2文档里面关于系统托盘的指示:https://tauri.app/zh-cn/learn/system-tray/
- 使用文档中前端的方式开发系统托盘+托盘图标
- 托盘菜单内容暂定四项,显示窗口、启动穿透、停止穿透、退出。
- 点击显示窗口,窗口显示
- 穿透未启动时,停止穿透禁止操作,点击启动穿透,同步仪表盘页面的一键启动操作,启动成功后,启动穿透禁止操作,停止穿透允许操作
- 穿透启动时,启动穿透禁止操作,停止穿透允许操作,点击停止穿透,同步仪表盘页面的停止操作,停止后,启动穿透允许操作,暂停穿透禁止操作
- 点击退出,整个程序退出,如果穿透正在启动运行,一并停止并退出软件
- 点击Header栏里面的关闭按钮,目前是直接退出整个程序,现在改成先出现一个对话框,对话框内有两个单选项分别是最小化到系统托盘、直接退出,如果选择最小化到系统托盘,则保持程序运行状态,隐藏到系统托盘,如果是直接退出,则停止穿透并退出软件(Mac和Windows同步)
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
#### 3.8 系统托盘图标BUG修改
- 开发阶段每次修改代码热更新之后,系统托盘图标就会新增一个
- 需要修复确保只有一个系统托盘图标
#### 3.9 新增常规设置
- 设置页增加一个子页面-常规,第一项设置内容是关闭行为设置
- 目前的关闭行为弹窗分为最小化到系统托盘和直接退出两种,需要增加一个单选组,里面是每次询问和保持以上选择(默认每次询问)
- 每次询问即每次关闭都需要弹窗供用户选择,保持以上选择则是保持用户选择的关闭方式,持久生效
- 常规设置页面需要同步关闭弹窗里面的内容,使用户可以再次修改设置
- 常规设置页面再增加一个语言切换设置,保持跟Header栏同步
开发过程中使用到的组件尽可能全部使用Antdv库里面的,另外我引入的有tailwindcss原子化组件、auto-import和components依赖可以简化引入,开发之前尽可能先阅读一下package.json,看一下有哪些依赖可以简化代码开发
#### 3.10 Frpc下载页面增加缓存
目前每次进入Frpc下载页面都会重新去获取Frpc的下载列表,在路由表增加一个meta属性用于开关页面是否缓存isCache
- 使用keep-alive缓存页面组件,避免每次进入都会去请求GitHub,避免触发限流
- 不需要做持久化缓存,只需要在应用运行时生效即可
- 应用运行时只有在第一次进入Frpc下载页面的时候采取请求GitHub,后面再切换回Frpc下载页面的时候,因为缓存了组件,所以不必再次获取GitHub,需要刷新的时候由用户手动点击刷新按钮
### 4. 修改
#### 4.1 项目名称修改
- 项目名称修改成了FrpcPilot,软件包构建相关的名称也改成这个
- 界面标题栏相关的也修改成FrpcPilot
- 其他与项目名称有关的也修改一下
先扫描一下有哪些需要修改的,列一个清单出来,经过我的确认之后再开始修改