topfans/frontend
zerosaturation 27313f414a feat(profile): render level progress bar in LV box
profile.vue only rendered fan level digit, hiding the fact that
fans level up via accumulated exhibition hours (6h/level, cap 20),
not login/task experience. Users saw "LV X" without "X more
hours to next level", so upgrades felt invisible.

- backend: surface exhibition_hours / next_level_hours on
  CurrentIdentityDTO via a new loadLevelProgress helper in
  user_controller (read-only, no proto regen, no service
  surface change). Full-level responses set next_level_hours =
  exhibition_hours so the client can derive progress=1.
- frontend: split level-box into base track + gold fill + text
  overlay; width bound to progressRatio with 0.4s transition.
  Adds "距 LV X+1 还差 N 小时" hint and MAX indicator for
  full-level users.
2026-07-27 18:02:59 +08:00
..
components feat:修改铸造消耗弹窗样式 2026-07-27 13:38:23 +08:00
composables refactor(frontend): consolidate user storage read via getStoredUser helper 2026-07-27 17:16:49 +08:00
config
hybrid/html
pages feat(profile): render level progress bar in LV box 2026-07-27 18:02:59 +08:00
static feat:修改图片尺寸和uni配置 2026-07-27 12:48:02 +08:00
store fix(frontend): clear all daily_login_completed_* keys on logout 2026-07-27 16:36:58 +08:00
uni_modules fix:修改一键登录页到首页的bug 2026-07-21 15:00:49 +08:00
uniCloud-alipay
utils refactor(frontend): consolidate user storage read via getStoredUser helper 2026-07-27 17:16:49 +08:00
.env.development
.env.production
.gitignore
App.vue feat:修改图片尺寸和uni配置 2026-07-27 12:48:02 +08:00
index.html
main.js
manifest.json feat:修改图片尺寸和uni配置 2026-07-27 12:48:02 +08:00
oss-upload-test(1).html
package.json
pages.json
RANKING_API_SPECIFICATION.md
uni.promisify.adaptor.js
uni.scss