2.7 KiB
2.7 KiB
Profile.vue
路径:src/views/Profile.vue
路由:/profile,name: profile
功能用途
个人中心页面,按照 Pencil 设计稿(design/pencil-new.pen 的 UNTdC 节点)还原移动端 Profile Screen,并接入用户态与国际化:
- 从
useUserStore读取昵称、UID、头像、余额、钱包地址等数据 - 页面加载后自动触发
fetchUserInfo()与fetchUsdcBalance(),刷新展示数据 - 支持语言切换、复制钱包地址、登出等交互逻辑
- 全量文案改为
vue-i18n(profile.*与common.logout等)
使用方式
- 访问路由
/profile - 页面会读取
userStore.user作为展示数据源(昵称、UID、头像、VIP 标签、钱包地址) - 点击设置项中的
钱包管理会弹出钱包地址框,显示当前钱包地址(无地址时显示 i18n 兜底文案) - 点击设置项中的
API KEY 管理会跳转到/api-key - 点击设置项中的
语言会弹出语言选择框,点选后即时切换并关闭弹窗,右侧显示当前语言名称 - 点击钱包卡片的
钱包详情会跳转到/wallet - 页面展示的用户名与编辑初始值统一取
userName(调用PUT /user/setSelfUsername后刷新);输入会提示允许格式与校验错误(至少 2 位,且仅允许a-z / 0-9 / _) - 点击
复制地址会写入剪贴板,并通过 toast 提示成功/失败 - 点击底部
退出登录会执行异步登出(带 loading 防重复)并跳转到/login
主要结构:
- Profile 卡片:头像、昵称、UID、VIP 标签、编辑按钮
- Wallet 卡片:总览标题、余额、明细文案、充币/提币按钮
- 设置卡片:钱包管理、API KEY 管理、语言
- 退出按钮:底部高亮按钮
扩展方式
- 更新用户名错误分层:当前错误优先展示输入校验与接口返回的
msg;后续可按错误码映射到更细粒度的 i18n 文案与字段提示。 - 余额细分字段接入:目前可用/冻结余额已支持多字段兜底,后续可统一对接后端标准字段。
- 头像兜底增强:当前无头像时展示昵称首字母,可扩展为默认头像资源或主题色方案。
- 多语言持续补齐:新增字段时同步更新
src/locales/*.json下profile命名空间。 - 长昵称适配:
.name-text已启用ellipsis截断,避免与右侧编辑按钮发生重叠。 - 底部留白优化:通过调整
.profile-page的 flex 对齐方式,避免容器被拉伸导致底部空白过多。 - 高度收缩优化:移除了
.profile-screen过高的min-height(由固定值改为可收缩),减少页面因内容过少而产生滚动。