feat: 修复清除数据、语音缓存、排行榜限制,新增项目配置文件

- 修复 cloud.clearAll 静默失败导致重启后数据恢复
- 清除数据弹窗改用自定义 ui-modal 替代 wx.showModal
- TTS 语音合成增加 fileID 持久化缓存,重启不再重新合成
- 排行榜限制前15名,maxRank 参数化到 config.js
- 新增 config.js 统一管理版本号/更新日期/开发者/排行榜限制
- progress-ring 消除 getSystemInfoSync 弃用警告
- voice.js 增加 InnerAudioContext 错误监听
- storage/util 完善用户资料、打卡日期精度、记录日志
This commit is contained in:
2026-06-11 11:30:47 +08:00
parent 1d55df72b3
commit 2e2594d154
16 changed files with 604 additions and 139 deletions
+59 -3
View File
@@ -1,4 +1,38 @@
<view class="container" style="{{themeStyle}}">
<!-- 个人资料 -->
<ui-card variant="in">
<view class="section-header">
<image class="section-icon" src="{{icons.peopleFill}}" mode="aspectFit"></image>
<text class="section-title">个人资料</text>
</view>
<view class="profile-row">
<button class="avatar-btn" open-type="chooseAvatar" bindchooseavatar="onChooseAvatar">
<image class="avatar-img" src="{{avatarUrl || icons.peopleFill}}" mode="aspectFit"></image>
<view class="avatar-overlay">
<text>点击设置</text>
</view>
</button>
<view class="profile-info">
<text class="profile-name">{{nickName || '未设置'}}</text>
<text class="profile-sub">排行榜将显示此昵称</text>
</view>
</view>
<view class="setting-row">
<view class="setting-left">
<image class="setting-icon" src="{{icons.formFill}}" mode="aspectFit"></image>
<text class="setting-label">昵称</text>
</view>
<input
type="nickname"
class="nickname-input"
placeholder="点击设置昵称"
value="{{nickName}}"
bindblur="onNicknameBlur"
maxlength="16"
/>
</view>
</ui-card>
<!-- 配色方案 -->
<ui-card variant="in">
<view class="section-header">
@@ -98,15 +132,15 @@
<view class="about-list">
<view class="about-row">
<text class="about-label">版本</text>
<text class="about-value">v1.5</text>
<text class="about-value">{{appVersion}}</text>
</view>
<view class="about-row">
<text class="about-label">更新日期</text>
<text class="about-value">2026-06-10</text>
<text class="about-value">{{appUpdatedAt}}</text>
</view>
<view class="about-row" bindtap="onCopyWechat">
<text class="about-label">开发者</text>
<text class="about-value about-link">刘承</text>
<text class="about-value about-link">{{appDeveloper}}</text>
</view>
</view>
<view class="about-footer">
@@ -207,4 +241,26 @@
<text class="editor-cancel" bindtap="onCloseEditor">取消</text>
</view>
</view>
<!-- 清除数据确认弹窗:用自定义 ui-modal 替代 wx.showModal
避免开发者工具中 wx.showModal 首次点击不关闭的问题 -->
<ui-modal
visible="{{showClearConfirm}}"
position="center"
showHandle="{{false}}"
bind:close="onCancelClear"
>
<view class="confirm-dialog" catchtap="onNoop">
<text class="confirm-title">清除数据</text>
<text class="confirm-desc">将删除所有训练记录和连续打卡数据,此操作不可恢复。确定继续吗?</text>
<view class="confirm-actions">
<view class="confirm-btn confirm-btn--cancel" bindtap="onCancelClear">
<text>取消</text>
</view>
<view class="confirm-btn confirm-btn--danger" bindtap="onConfirmClear">
<text>确定清除</text>
</view>
</view>
</view>
</ui-modal>
</view>