diff --git a/src/apis.js b/src/apis.js index 305a040..5ddb095 100644 --- a/src/apis.js +++ b/src/apis.js @@ -23,6 +23,7 @@ try { console.error("获取环境信息失败,使用默认正式环境", e); } +// 统一处理业务接口请求,包含登录态、业务错误和 WiFi 连接空响应兼容。 function request(method, url, data = {}) { const token = uni.getStorageSync( `${uni.getAccountInfoSync().miniProgram.envVersion}_token` @@ -37,6 +38,10 @@ function request(method, url, data = {}) { data, timeout: 10000, success: (res) => { + if (url === "/user/hardwareBox/connectWifi" && res.statusCode === 200 && res.data && Object.keys(res.data).length === 0) { + resolve({}); + return; + } if (res.data) { const {code, data, message} = res.data; if (code === 0) resolve(data); @@ -84,6 +89,10 @@ function request(method, url, data = {}) { icon: "none", }); } + if (url === "/user/hardwareBox/connectWifi") { + reject({code, message}); + return; + } uni.showToast({ title: message, icon: "none", @@ -448,6 +457,26 @@ export const getDeviceBatteryAPI = async () => { return request("GET", "/user/device/battery"); }; +// 设备连接指定 WiFi,只下发 WiFi 凭证,不触发 OTA 升级。 +export const connectDeviceWifiAPI = async (ssid, password) => { + return request("POST", "/user/hardwareBox/connectWifi", {ssid, password}); +}; + +// 获取硬件盒子版本信息,用于判断当前设备是否需要 OTA 升级。 +export const getHardwareBoxVersionAPI = async () => { + return request("GET", "/user/hardwareBox/version"); +}; + +// 发送硬件盒子 OTA 更新指令,服务端会返回后续轮询使用的任务 ID。 +export const sendHardwareBoxUpdateAPI = async (data) => { + return request("POST", "/user/hardwareBox/sendUpdate", data); +}; + +// 根据任务 ID 获取硬件盒子 OTA 更新状态。 +export const getHardwareBoxTaskStatusAPI = async (taskId) => { + return request("GET", `/user/hardwareBox/taskStatus?taskId=${taskId}`); +}; + export const addNoteAPI = async (id, remark) => { return request("POST", "/user/score/sheet/remark", {id, remark}); }; diff --git a/src/pages/index.vue b/src/pages/index.vue index 4c848bd..c814f87 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -1,5 +1,5 @@ @@ -524,6 +776,7 @@ onUnmounted(() => { /> + {{ connectStatusText }} {{ connectError }} @@ -538,7 +791,8 @@ onUnmounted(() => { - 该网络为开放网络,点击 ✓ 加入 + {{ connectStatusText }} + 该网络为开放网络,点击 ✓ 加入 {{ connectError }} @@ -588,6 +842,7 @@ onUnmounted(() => { {{ ssidWarning }} + {{ connectStatusText }} {{ connectError }} @@ -927,6 +1182,14 @@ onUnmounted(() => { text-align: center; margin-bottom: 24rpx; } +.connect-status { + color: rgba(255, 255, 255, 0.72); + font-size: 26rpx; + line-height: 40rpx; + margin-top: 16rpx; + display: block; + text-align: center; +} .connect-error { color: rgba(254, 216, 71, 1); font-size: 26rpx;