From 5c09b7fd631ce853eceb54b8af34cd8d238a0aff Mon Sep 17 00:00:00 2001 From: lld <15027638633@163.com> Date: Thu, 22 Jan 2026 01:31:45 +0800 Subject: [PATCH] =?UTF-8?q?dtu=E5=A2=9E=E5=8A=A0=E5=A4=87=E6=B3=A8?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/control/index.vue | 78 ++++++++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 25 deletions(-) diff --git a/pages/control/index.vue b/pages/control/index.vue index 9211f5a..5ddb86b 100644 --- a/pages/control/index.vue +++ b/pages/control/index.vue @@ -37,6 +37,7 @@ class="text uni-flex_control_two uni-view" v-for="item in sensorCards.humi" :key="item.key" + @click="openDataModal(item)" > {{ liveData[item.key] }} @@ -98,7 +99,7 @@ - + @@ -637,41 +638,68 @@ export default { this.$refs.inputNamelog.open() }, confirmModifyName() { + // 1. 解构赋值优化:直接拆分sensorCard的key/label,减少冗余 let { - selectedText, dtu_remark, imei, sensorCard, remark + selectedText, + dtu_remark, + imei, + sensorCard: { key: sensorKey, label: sensorLabel }, + remark } = this; - const isRemarkModified = (remark !== (dtu_remark[sensorCard.key] || sensorCard.label)); // 别名是否修改 + + remark = remark || sensorLabel; + // 2. 语义化判定:别名是否修改 + const isRemarkModified = remark !== (dtu_remark[sensorKey] || sensorLabel); if (!isRemarkModified) { - // 关闭弹窗(无论确认/取消都关闭) - this.closeModalDataName(); + // 统一关闭弹窗方式 + this.$refs?.inputNamelog?.close(); return; } - // 6. 确认弹窗(async/await处理异步请求) + // 3. 确认弹窗(async/await处理异步请求) uni.showModal({ title: '温馨提示:', - content: `确定将${selectedText}-${sensorCard.label}别名设置为:${remark}`, + content: `确定将${selectedText}-${sensorLabel}别名设置为:${remark}?`, // 修复文案冗余冒号,补全remark变量 cancelText: '取消', confirmText: '确定', - success: (res) => { + success: async (res) => { // 关闭弹窗(无论确认/取消都关闭) - this.closeModalDataName(); + this.$refs?.inputNamelog?.close(); - if (!res.confirm) return; // 取消操作则直接返回 - this.$set(dtu_remark, `${sensorCard.key}`, remark); - // 补全imei字段 - if (!dtu_remark.imei) { - this.$set(dtu_remark, 'imei', imei); + if (!res.confirm) return; // 取消操作直接返回 + + try { + // 4. 设置loading(可选,防止重复点击) + // uni.showLoading({ title: '处理中...' }); + + // 5. 更新响应式数据 + this.$set(dtu_remark, sensorKey, remark); // sensorKey本身是字符串,无需拼接 + // 补全imei字段(确保非空) + if (!dtu_remark.imei) { + this.$set(dtu_remark, 'imei', imei); + } + + // 6. 异步请求:await等待结果(核心修复) + const remarkRes = dtu_remark.id ? await updateRemark(dtu_remark) : await addRemark(dtu_remark); + + // 7. 根据接口响应提示 + const isSuccess = remarkRes.code === 200; + this.$modal[isSuccess ? 'msgSuccess' : 'msgError']( + isSuccess ? '修改成功' : '修改失败' + ); + + // 8. 仅成功时刷新数据(失败时不刷新,避免覆盖现有数据) + if (isSuccess) { + this.getRemarkByImei(); + } + } catch (error) { + // 捕获网络异常/接口报错 + console.error('别名修改失败:', error); + this.$modal.msgError('修改失败,请重试'); + } finally { + // 无论成功/失败,关闭loading + // uni.hideLoading(); } - // 发起请求并等待结果 - const remarkRes = dtu_remark.id - ? updateRemark(dtu_remark) - : addRemark(dtu_remark); - this.$modal[remarkRes.code===200 ? 'msgSuccess' : 'msgError']( - remarkRes.code===200 ? '修改成功' : '修改失败' - ); - // 新增后刷新数据 - this.getRemarkByImei(); } }); }, @@ -698,6 +726,7 @@ export default { // 3. 定义核心判定变量(语义化命名) const isLimitTimeModified = newLimitTime !== currentCardTime; // 运行时间是否修改 + remark = remark || currentCard.name; const isRemarkModified = (remark !== (dtu_remark[currentCard.type] || currentCard.name)); // 别名是否修改 // 4. 无修改则直接返回,避免无效弹窗 @@ -712,7 +741,6 @@ export default { const tips = []; if (isLimitTimeModified) tips.push(`运行时间为:${newLimitTime} 秒`); if (isRemarkModified) { - remark = remark || currentCard.name tips.push(`别名设置为:${remark}`) } confirmContent += `\n${tips.map((tip, idx) => `${idx + 1}. ${tip}?`).join('\n')}`; @@ -752,7 +780,7 @@ export default { // 8. 处理别名修改 if (isRemarkModified) { - this.$set(dtu_remark, `${currentCard.type}`, remark); + this.$set(dtu_remark, currentCard.type, remark); // 补全imei字段 if (!dtu_remark.imei) { this.$set(dtu_remark, 'imei', imei);