hookehuyr

refactor(CheckinDetailPage): 使用 Object.assign 更新目标对象并优化选中列表检查

用 Object.assign 替代展开运算符来保持对象引用
优化选中列表的检查逻辑,支持 id 和 name 匹配
......@@ -391,17 +391,18 @@ const confirmAddTarget = async (formFields) => {
// 编辑模式或确认模式
const index = targetList.value.findIndex(t => t === editingTarget.value)
if (index > -1) {
// 更新对象
targetList.value[index] = { ...targetList.value[index], ...formData }
// 更新对象 (使用 Object.assign 保持引用)
Object.assign(targetList.value[index], formData)
if (isConfirmMode.value) {
targetList.value[index].has_confirmed = true // 标记为已确认
}
// 如果在选中列表中,也需要更新
const selectedIndex = selectedTargets.value.findIndex(t => t.id === editingTarget.value.id)
if (selectedIndex > -1) {
selectedTargets.value[selectedIndex] = { ...selectedTargets.value[selectedIndex], ...formData }
}
// 检查是否在选中列表中
const selectedIndex = selectedTargets.value.findIndex(t =>
(editingTarget.value.id && t.id && t.id == editingTarget.value.id) ||
(!editingTarget.value.id && t.name === editingTarget.value.name)
)
// 如果是确认模式,确认后自动加入选中列表
if (isConfirmMode.value && selectedIndex === -1) {
......