Miniprogram: - Add back buttons to all custom-nav pages - Add debug/mock buttons (BLE connect, wear check, treatment) controlled by __DEV__ flag (hidden in prod) Admin console: - Fix log page using nonexistent fields (operator_type, target_type) now correctly reads admin_id/user_id/action/detail from API - Fix subscription date fields (started_at→start_time, expired_at→expire_time) - Wire up subscription detail/extend/renew action buttons - Wire up device detail "查看完整日志" button - Add "创建订阅" button to subscription toolbar - Fix subscription status mapping (2=expired, 3=cancelled) Docs: - Add detailed architecture docs for server, miniprogram, admin console
38 行
1.6 KiB
Plaintext
38 行
1.6 KiB
Plaintext
<view class="page">
|
||
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
|
||
<view class="nav-back" bindtap="onBack">‹ 返回</view>
|
||
<view class="page-header-title">蓝牙连接</view>
|
||
<view class="page-header-subtitle">{{state === 'scanning' ? '正在搜索设备...' : state === 'connecting' ? '正在连接设备...' : state === 'binding' ? '正在绑定...' : '连接失败'}}</view>
|
||
</view>
|
||
|
||
<view class="page-content">
|
||
<view class="info-tip">
|
||
<text>📡</text>
|
||
<text>请确保手机蓝牙已开启</text>
|
||
</view>
|
||
|
||
<view class="search-card" wx:if="{{state === 'scanning' || state === 'connecting'}}">
|
||
<view class="search-icon pulsing">⏳</view>
|
||
<view class="search-text">搜索中...</view>
|
||
</view>
|
||
|
||
<view class="found-card" wx:if="{{state === 'binding'}}">
|
||
<view class="found-icon">💆</view>
|
||
<view class="found-name">光子美容仪-{{deviceId}}</view>
|
||
<text class="status-badge status-badge-green">点击连接</text>
|
||
</view>
|
||
|
||
<view class="found-card" wx:if="{{state === 'error'}}">
|
||
<view class="search-icon">⚠️</view>
|
||
<view class="found-name">{{error || '连接失败'}}</view>
|
||
<button class="retry-btn" bindtap="onRetry">重试</button>
|
||
</view>
|
||
|
||
<view class="debug-actions" wx:if="{{devMode}}">
|
||
<view class="debug-label">🔧 调试工具</view>
|
||
<button class="btn-secondary btn-sm" bindtap="onMockConnect">模拟连接成功</button>
|
||
<button class="btn-secondary btn-sm" bindtap="onMockBindSuccess">模拟绑定成功</button>
|
||
</view>
|
||
</view>
|
||
</view>
|