2.1 KiB
2.1 KiB
总分值占比实时更新问题专项修复
日期: 2025-08-01
问题: 绩效指标分值占比输入后,页面上的"总分值占比"不能实时更新显示
🔍 问题根本原因
Vue的响应式系统没有正确追踪到深层嵌套对象属性的变化:
this.outputIndicators.quantity[0].weightPercentage的变化this.effectIndicators.economic[0].weightPercentage的变化- 等等...
🔧 已实施的修复方案
方案1: 专门的分值占比变化处理方法
- 添加了
handleWeightPercentageChange(item, value)方法 - 使用直接赋值 +
$forceUpdate()+$nextTick() - 已应用到第一个分值占比输入框
方案2: 增强handleInputChange方法
- 添加了
$forceUpdate()强制触发视图更新 - 使用
$nextTick()确保DOM更新时序
🧪 立即验证步骤
基础测试
- 刷新前端页面(重要!)
- 进入绩效指标步骤
- 测试第一个输入框:
- 点击数量指标的分值占比输入框
- 输入25
- 观察页面上"总分值占比:25%"是否立即显示
如果第一个输入框工作正常
说明 handleWeightPercentageChange 方法有效,需要将其他7个分值占比输入框也改为使用这个方法
如果第一个输入框仍然不更新
说明需要更深层的Vue响应式修复
📋 下一步计划
如果测试成功
- 批量修改其他7个分值占比输入框
- 将
@change="handleInputChange"改为@change="handleWeightPercentageChange(item, $event)"
如果测试失败
需要更激进的修复方案:
- 在totalWeight计算属性中添加强制依赖追踪
- 使用watch监听器监控所有相关数据变化
- 考虑使用ref()和reactive()重构数据结构
🎯 预期结果
修复成功后应该能看到:
- ✅ 输入分值占比后立即看到总分值占比更新
- ✅ 总分值达到100%时显示绿色"分值占比正确"
- ✅ 总分值非100%时显示黄色警告
请立即测试第一个分值占比输入框,并反馈结果!