Initial commit - full huishou project

This commit is contained in:
jiapengyu
2026-07-27 14:07:26 +08:00
commit 60790ad1b3
39127 changed files with 5989265 additions and 0 deletions
@@ -0,0 +1 @@
"use strict";const e=require("../../common/vendor.js"),n=require("../../stores/bluetooth.js"),t=e.defineComponent({__name:"bluetooth",setup(t){const i=n.useBluetoothStore(),c=()=>{i.isDiscovering?i.stopScan():i.startScan()},o=async()=>{await i.disconnect(),e.index.showToast({title:"已断开连接",icon:"none"})};return(n,t)=>{var s;return e.e({a:e.t(e.unref(i).isDiscovering?"⏹️":"🔍"),b:e.t(e.unref(i).isDiscovering?"停止搜索":"搜索设备"),c:e.unref(i).isDiscovering?1:"",d:e.o(c),e:e.unref(i).isConnected},e.unref(i).isConnected?{f:e.t(null==(s=e.unref(i).connectedDevice)?void 0:s.name),g:e.o(o)}:{},{h:e.unref(i).deviceList.length>0},e.unref(i).deviceList.length>0?{i:e.f(e.unref(i).deviceList,(n,t,c)=>{return{a:e.t(n.name),b:e.t(n.deviceId),c:e.t((o=n.RSSI,o>=-50?"📶":o>=-70?"📡":"📴")),d:n.deviceId,e:e.o(t=>(async n=>{i.isConnected&&await i.disconnect(),await i.connect(n),i.isConnected&&(e.index.showToast({title:"连接成功",icon:"success"}),setTimeout(()=>{e.index.navigateBack()},1500))})(n.deviceId),n.deviceId)};var o})}:{})}}}),i=e._export_sfc(t,[["__scopeId","data-v-7381148d"]]);wx.createPage(i);
@@ -0,0 +1,6 @@
{
"navigationBarTitleText": "蓝牙连接",
"navigationBarBackgroundColor": "#3366ff",
"navigationBarTextStyle": "white",
"usingComponents": {}
}
@@ -0,0 +1 @@
<view class="container data-v-7381148d"><view class="scan-header data-v-7381148d"><view class="{{['scan-btn', 'data-v-7381148d', c && 'scanning']}}" bindtap="{{d}}"><text class="scan-icon data-v-7381148d">{{a}}</text><text class="data-v-7381148d">{{b}}</text></view></view><view class="status-section data-v-7381148d"><view wx:if="{{e}}" class="status-item connected data-v-7381148d"><text class="status-dot data-v-7381148d"></text><text class="status-text data-v-7381148d">已连接接 {{f}}</text><view class="disconnect-btn data-v-7381148d" bindtap="{{g}}">断开</view></view><view wx:else class="status-item disconnected data-v-7381148d"><text class="status-dot data-v-7381148d"></text><text class="status-text data-v-7381148d">未连接接设备</text></view></view><view wx:if="{{h}}" class="device-list data-v-7381148d"><view class="list-title data-v-7381148d"><text class="list-icon data-v-7381148d">📱</text><text class="data-v-7381148d">可用设备</text></view><view wx:for="{{i}}" wx:for-item="device" wx:key="d" class="device-item data-v-7381148d" bindtap="{{device.e}}"><view class="device-info data-v-7381148d"><text class="device-icon data-v-7381148d">📦</text><view class="device-detail data-v-7381148d"><text class="device-name data-v-7381148d">{{device.a}}</text><text class="device-id data-v-7381148d">{{device.b}}</text></view></view><view class="device-signal data-v-7381148d"><text class="data-v-7381148d">{{device.c}}</text></view></view></view><view wx:else class="empty-state data-v-7381148d"><text class="empty-icon data-v-7381148d">📡</text><text class="empty-text data-v-7381148d">暂无可用设备</text><text class="empty-hint data-v-7381148d">请确保电子秤已开启蓝牙</text></view><view class="tips-card data-v-7381148d"><text class="tips-icon data-v-7381148d">💡</text><text class="tips-text data-v-7381148d">搜索范围10米,设备名称通常包含"Scale"</text></view></view>
@@ -0,0 +1 @@
.container.data-v-7381148d{min-height:100vh;background:#f5f5f5;padding:32rpx}.scan-header.data-v-7381148d{margin-bottom:24rpx}.scan-btn.data-v-7381148d{background:#fff;border-radius:40rpx;padding:24rpx;display:flex;align-items:center;justify-content:center;font-size:32rpx;font-weight:600;color:#36f;box-shadow:0 4rpx 12rpx rgba(0,0,0,.06)}.scan-btn.scanning.data-v-7381148d{background:#fee2e2;color:#ef4444}.scan-icon.data-v-7381148d{margin-right:12rpx}.status-section.data-v-7381148d{margin-bottom:32rpx}.status-item.data-v-7381148d{display:flex;align-items:center;padding:20rpx 24rpx;border-radius:12rpx}.status-item.connected.data-v-7381148d{background:#dcfce7}.status-item.disconnected.data-v-7381148d{background:#fef2f2}.status-dot.data-v-7381148d{width:16rpx;height:16rpx;border-radius:50%;margin-right:12rpx}.connected .status-dot.data-v-7381148d{background:#22c55e}.disconnected .status-dot.data-v-7381148d{background:#ef4444}.status-text.data-v-7381148d{flex:1;font-size:28rpx}.connected .status-text.data-v-7381148d{color:#166534}.disconnected .status-text.data-v-7381148d{color:#991b1b}.disconnect-btn.data-v-7381148d{font-size:26rpx;color:#ef4444;padding:8rpx 20rpx;background:rgba(239,68,68,.1);border-radius:8rpx}.device-list.data-v-7381148d{background:#fff;border-radius:16rpx;overflow:hidden;margin-bottom:24rpx}.list-title.data-v-7381148d{display:flex;align-items:center;padding:24rpx;font-size:30rpx;font-weight:600;color:#333;border-bottom:1rpx solid #f0f0f0}.list-icon.data-v-7381148d{margin-right:12rpx}.device-item.data-v-7381148d{display:flex;justify-content:space-between;align-items:center;padding:24rpx;border-bottom:1rpx solid #f0f0f0}.device-item.data-v-7381148d:last-child{border-bottom:none}.device-item.data-v-7381148d:active{background:#f9fafb}.device-info.data-v-7381148d{display:flex;align-items:center;flex:1}.device-icon.data-v-7381148d{font-size:40rpx;margin-right:16rpx}.device-detail.data-v-7381148d{display:flex;flex-direction:column}.device-name.data-v-7381148d{font-size:30rpx;font-weight:600;color:#333;margin-bottom:4rpx}.device-id.data-v-7381148d{font-size:22rpx;color:#999}.device-signal.data-v-7381148d{font-size:26rpx;color:#666;padding:6rpx 16rpx;background:#f3f4f6;border-radius:20rpx}.empty-state.data-v-7381148d{display:flex;flex-direction:column;align-items:center;padding:80rpx 40rpx;background:#fff;border-radius:16rpx;margin-bottom:24rpx}.empty-icon.data-v-7381148d{font-size:80rpx;margin-bottom:20rpx}.empty-text.data-v-7381148d{font-size:32rpx;font-weight:600;color:#333;margin-bottom:8rpx}.empty-hint.data-v-7381148d{font-size:26rpx;color:#999}.tips-card.data-v-7381148d{background:#eff6ff;border:1rpx solid #dbeafe;border-radius:12rpx;padding:20rpx 24rpx;display:flex;align-items:center}.tips-icon.data-v-7381148d{font-size:32rpx;margin-right:12rpx}.tips-text.data-v-7381148d{font-size:26rpx;color:#1e40af}