解决el-table嵌套Select组件禁用状态提前触发的问题
在el-table
中嵌套Select
组件时,如果希望在选择“是”(is_finished
为2)后禁用Select
和提交按钮,同时避免过早禁用,可以使用以下方法:
你的当前方案直接根据后端返回的is_finished
字段来控制Select
的禁用状态(:disabled="row.is_finished == 2"
),这会导致在页面加载时就根据初始数据禁用部分Select
,即使用户尚未进行任何选择。
为了避免这个问题,建议在后端返回的数据中添加一个新的布尔型字段,例如rowDisabled
,初始值为false
。只有当用户选择“是”(is_finished
变为2)并提交数据后,才将该行的rowDisabled
设置为true
。 前端代码根据rowDisabled
来控制Select
和提交按钮的禁用状态。
这样,Select
组件只有在数据保存后才会被禁用,避免了提前禁用和不必要的限制。 修改后的代码逻辑将更加清晰,并且不会因为Select
选项值的改变而影响禁用状态。 这确保了用户体验的流畅性和准确性。