- 连接中关闭蓝牙立即结束 loading,不再卡到超时 - onShow 已连接时同步标记,重新搜索不误标已连接设备 - 连接中防重入,搜索中切后台重置状态 - 配网成功立即退出配网模式,密码必填且 8-16 位 - 配网失败重试定时器可清理 - 同名设备改用 deviceId 唯一标识并展示 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
137 lines
4.5 KiB
Plaintext
137 lines
4.5 KiB
Plaintext
<view class="connectedWifi">
|
|
<block wx:if="{{status === 'password'}}">
|
|
<view class="setWifi">
|
|
<view class="setWifi-title">输入Wi-Fi密码</view>
|
|
<view class="setWifi-form">
|
|
<view>
|
|
<view>
|
|
<image src="/images/connectedWifi/wifiPwd.png"/>
|
|
</view>
|
|
<view>{{selectedSsid}}</view>
|
|
</view>
|
|
<view>
|
|
<view>密码</view>
|
|
<view>
|
|
<block wx:if="{{type}}">
|
|
<input
|
|
password="{{true}}"
|
|
value="{{selectWifiPWD}}"
|
|
maxlength="16"
|
|
bind:input="passwordInput"
|
|
placeholder="输入您的wi-fi密码"
|
|
placeholder-class="placeholderClass"/>
|
|
</block>
|
|
<block wx:else>
|
|
<input
|
|
password="{{false}}"
|
|
value="{{selectWifiPWD}}"
|
|
maxlength="16"
|
|
bind:input="passwordInput"
|
|
placeholder="输入您的wi-fi密码"
|
|
placeholder-class="placeholderClass"/>
|
|
</block>
|
|
</view>
|
|
<view bind:tap="inputTypeChange">
|
|
<image src="/images/connectedWifi/{{type ? 'open' : 'close'}}.png"/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="setWifi-btn">
|
|
<view bind:tap="onCancelPwd">取消</view>
|
|
<view bind:tap="onConfirmPwd">连接</view>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
|
|
<block wx:else>
|
|
<!-- 顶部已连接设备卡 -->
|
|
<view class="deviceCard">
|
|
<view class="card-icon">
|
|
<image src="/images/device/{{deviceName}}.png" mode="aspectFit" style="width:100%;height:100%;"></image>
|
|
</view>
|
|
<view>
|
|
<view>{{deviceName}}</view>
|
|
<view>
|
|
<block wx:if="{{bleStatus === 'connected'}}">
|
|
<view class="status-dot status-dot--green"></view>
|
|
<text class="status-text status-text--green">已连接</text>
|
|
</block>
|
|
<block wx:elif="{{bleStatus === 'failed'}}">
|
|
<view class="status-dot status-dot--red"></view>
|
|
<text class="status-text status-text--red">连接断开</text>
|
|
</block>
|
|
<block wx:else>
|
|
<view class="status-dot status-dot--gray"></view>
|
|
<text class="status-text status-text--gray">连接中...</text>
|
|
</block>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<block wx:if="{{status === 'idle'}}">
|
|
<view class="wifiIdle">
|
|
查找周边WiFi
|
|
</view>
|
|
</block>
|
|
|
|
<block wx:if="{{status === 'searching'}}">
|
|
<view class="wifiSearching">
|
|
搜索中...
|
|
</view>
|
|
</block>
|
|
|
|
<block wx:if="{{status === 'list'}}">
|
|
<view class="wifiHeader">
|
|
<view>
|
|
<view>附近WiFi</view>
|
|
</view>
|
|
<view>网络列表(请选择一个网络进行连接)</view>
|
|
</view>
|
|
<scroll-view class="wifiList" scroll-y>
|
|
<block wx:for="{{wifiList}}" wx:key="ssid">
|
|
<block wx:if="{{item.connected}}">
|
|
<view class="wifiItem wifiItem-connected" data-ssid="{{item.ssid}}" bind:tap="onTapWifi">
|
|
<view>
|
|
<image src="/images/connectedWifi/wifi.png" mode="aspectFit"/>
|
|
</view>
|
|
<text>{{item.ssid}}</text>
|
|
<view>
|
|
<text>已连接</text>
|
|
<view class="arrow"></view>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
<block wx:else>
|
|
<view class="wifiItem" data-ssid="{{item.ssid}}" bind:tap="onTapWifi">
|
|
<view>
|
|
<image src="/images/connectedWifi/wifi.png" mode="aspectFit"/>
|
|
</view>
|
|
<text>{{item.ssid}}</text>
|
|
<view class="arrow"></view>
|
|
</view>
|
|
</block>
|
|
</block>
|
|
</scroll-view>
|
|
<view class="wifiBtn">
|
|
<view class="{{hasConnected ? '' : 'wifiBtn-disabled'}}" bind:tap="onConfirm">确认</view>
|
|
</view>
|
|
</block>
|
|
|
|
<block wx:if="{{status === 'empty'}}">
|
|
<view class="wifiHeader">
|
|
<view>
|
|
<view>附近WiFi</view>
|
|
<view bind:tap="onRefresh">刷新</view>
|
|
</view>
|
|
<view>网络列表(请选择一个网络进行连接)</view>
|
|
</view>
|
|
<view class="wifiEmpty">
|
|
<view>
|
|
<image src="/images/connectedWifi/noData.png" mode="aspectFit"/>
|
|
</view>
|
|
<text>未查找到可用wifi,请重试</text>
|
|
</view>
|
|
</block>
|
|
</block>
|
|
</view>
|