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) })