基于 Dioxus 0.7 的会话编辑与回放界面,面向聊天场景的 UI 原型与交互演示。 这个项目旨在还原《明日方舟:终末地》中 Baker 的聊天功能,当然还有一点功能没实现的……留作以后再完善。
其实这个项目在开始的时候只是我因为想要学习前端开发而写的,随着内容越来越多,我实在离不开 AI 帮我写一些功能了;另外,代码越来越繁杂,界面一层 div 套一层,快到了必须重构的地步了。
正好,借着这个时间迁移到 Tauri,能有更成熟的 GUI 库用。
计划如下:主分支继续写一些小更新,比如国际化,还有样式还原等;feature-tauri 则待我基本学完前端的知识后,开始写。
感谢你使用这个软件!
- 会话与联系人管理:选择会话、发起单聊或群聊、配置干员列表
- 消息编辑能力:发送、编辑、删除、在指定位置插入
- 消息类型支持:普通消息、状态行、图片、贴纸
- 反应与演出:消息反应、发送动画、回放打字效果
- 回放能力:从指定消息起开始回放,并在回放结束后显示“话题结束”
- 导出能力:离屏渲染当前会话并导出截图
- 个性化设置:会话头样式切换、背景模式设置、用户资料配置、教程开关
- 本地持久化存储:当前版本使用 LocalStorage + IndexedDB,并兼容旧版
baker_dx_state.json数据迁移
- 移动端有限宽度的布局支持
- 应用配置导出
- “任务”消息支持
- 会话的离屏渲染并导出
- 群组会话时控制哪些干员消息位于会话右方
- 回放结束后显示“话题结束,暂无新话题”的提示
- Rust 2024
- Dioxus 0.7.3
- 桌面端默认启用,Web 端可选
- Dioxus Router
reqwest/webbrowser/image
cargo install dioxus-cli
dx serve --platform desktop
dx serve --platform web默认特性为 desktop。如果你希望只构建 Web,可以按需调整 Cargo feature。
- 当前状态数据会序列化为 v2 存储结构
- 元数据使用 LocalStorage 保存
- 联系人、消息和图片资源使用 IndexedDB 保存
- 旧版本的本地 JSON 状态文件
baker_dx_state.json仍可作为迁移来源读取
src/main.rs:应用入口、资源注入、状态加载与保存src/components/baker/layout.rs:主页面控制层与路由入口src/components/baker/chat_area.rs:聊天区域与消息渲染src/components/baker/input_bar.rs:输入栏、图片与贴纸发送src/components/baker/modals.rs:各类弹窗src/components/baker/storage.rs:状态编码、解码与迁移逻辑server/:独立的轻量服务端子工程
如果你在使用这个软件时遇到任何 bug 或者对软件有啥建议,请在 Github 上提交 Issue,谢谢!
如果有什么功能你想实现,也欢迎提交 Pull Request,我会尽快合并。
……
我是管理员,这个项目的作者请我帮忙带个话:“请注意,作者在天师考校上课,由于天师考校复课(高中开学),因此作者在工作日可能不能及时回复问题或者查看拉取请求。”谢谢你的理解!
