This commit is contained in:
zyl
2025-12-19 12:23:22 +08:00
parent c6067f2333
commit a97c4b9bd1
3 changed files with 29 additions and 0 deletions

View File

@ -125,6 +125,7 @@ const updateEvent = () => {
TsApi.updateTsEvent(obj).then(res => {
console.log(res)
if (res.code == 200) {
eventBus.emit('update-event', obj)
ElMessage({type: "success", message: "操作成功"})
cancel()
}

View File

@ -437,6 +437,9 @@ let getEventList = () => {
})
newTS(params, events)
}
eventBus.on('update-event', (task) => {
tsOBJ.value._Store._tasks = tsOBJ.value.replaceArrayItem(tsOBJ.value._Store._tasks, task)
})
eventBus.on('delete-event', (ids) => {
tsOBJ.value._Store._tasks = tsOBJ.value._Store._tasks.filter(item => !ids.includes(item.id))

View File

@ -80,4 +80,29 @@ export class TS extends Tools {
}
}
}
/**
* 替换对象数组中指定的元素通过id匹配
* @param {Array} arr - 原始对象数组元素结构需包含id属性
* @param {Object} newItem - 要替换的新对象必须包含id属性
* @param {string} [key='id'] - 匹配的唯一标识字段默认使用id
* @returns {Array} - 返回替换后的新数组(原数组不会被修改)
*/
replaceArrayItem(arr, newItem, key = 'id') {
// 边界校验
if (!Array.isArray(arr)) {
console.error('第一个参数必须是数组');
return arr;
}
if (typeof newItem !== 'object' || newItem === null || !newItem[key]) {
console.error(`新元素必须是包含${key}属性的对象`);
return arr;
}
// 遍历数组并替换匹配的元素(返回新数组,避免修改原数组)
return arr.map(item => {
// 匹配到对应id的元素则替换否则返回原元素
return item[key] === newItem[key] ? {...item, ...newItem} : item;
});
}
}