fix: resolve quality audit issues

- utils.js: force UTC+8 output to match MySQL timezone on SCF
- admin subscriptions: return stats (plan counts + revenue) in response
- admin devices: implement keyword search filter
- device-detail: fix binding history field names (bind_time/unbind_time/bind_status)
- user-detail: fix treatment time field (start_time not started_at)
- dashboard: show actual mode per treatment, use sub_stats from dashboard API
这个提交包含在:
Guoguo
2026-04-29 05:37:36 -07:00
父节点 8d1cde8636
当前提交 9f0e629c82
修改 5 个文件,包含 28 行新增15 行删除
@@ -67,7 +67,7 @@
</view>
<view class="t-body">
<view class="t-row" v-for="(t, idx) in user.recent_treatments" :key="idx">
<text class="t-td flex2">{{ formatDate(t.started_at) }}</text>
<text class="t-td flex2">{{ formatDate(t.start_time) }}</text>
<text class="t-td flex1">{{ Math.floor((t.total_duration_ms || 0) / 60000) }}分钟</text>
<text class="t-td flex2">{{ t.device_id || '-' }}</text>
</view>