From 3d2a70a829c83ee1a98c7abe8df38d0590422c15 Mon Sep 17 00:00:00 2001 From: Lufaneng Date: Mon, 11 May 2026 09:46:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=89=E6=8B=A9=E7=94=B5?= =?UTF-8?q?=E8=A1=A8=E5=9E=8B=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/SystemSettings/index.vue | 80 +++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/src/views/SystemSettings/index.vue b/src/views/SystemSettings/index.vue index 886bdfc..1455c7f 100644 --- a/src/views/SystemSettings/index.vue +++ b/src/views/SystemSettings/index.vue @@ -63,6 +63,36 @@ + +
+
电表型号
+
+
+
+
当前型号
+
{{ currentMeterFirm || '—' }}
+
+
+
+
+
选择型号
+ + + + +
+
+
+
+ + + + 确认修改 +
+
+
+
+
修改操作密码
@@ -184,6 +214,52 @@ const setSystemTime = async () => { } } +// ─── 电表型号 ───────────────────────────────────── +const currentMeterFirm = ref('') +const selectedMeterFirm = ref('') + +const getMeterFirm = async () => { + try { + const res = await RPC.post('/m9z/meter/getMeterFirm', {}) + currentMeterFirm.value = res?.meter_firm || '' + selectedMeterFirm.value = currentMeterFirm.value + } catch (e) { + // 错误由 rpc.js 处理 + } +} + +const setMeterFirm = async () => { + if (!selectedMeterFirm.value) { + ElMessage.warning('请选择电表型号') + return + } + if (selectedMeterFirm.value === currentMeterFirm.value) { + ElMessage.info('电表型号未变更') + return + } + try { + await ElMessageBox.confirm( + `确认要将电表型号修改为 ${selectedMeterFirm.value} 吗?`, + '提示', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + } + ) + const res = await RPC.post('/m9z/meter/setMeterFirm', { + meter_firm: selectedMeterFirm.value, + }) + if (res?.success) { + currentMeterFirm.value = res.meter_firm + ElMessage.success(`电表型号已修改为 ${res.meter_firm}`) + } + } catch (e) { + if (e === 'cancel' || e === 'close') return + // 其他错误由 rpc.js 处理 + } +} + // ─── 修改密码 ───────────────────────────────────── const pwdForm = ref({ oldPassword: '', newPassword: '', confirmPassword: '' }) @@ -264,6 +340,7 @@ const handleSessionRestored = () => { console.log('Session 已恢复,重新加载数据') getSystemTime() getPasswordStatus() + getMeterFirm() } onMounted(() => { @@ -271,7 +348,8 @@ onMounted(() => { timeInterval = setInterval(updateTime, 1000) getSystemTime() getPasswordStatus() - + getMeterFirm() + // 监听 session 恢复事件 window.addEventListener('m9z:session-restored', handleSessionRestored) })