From 5cc1512a2808b1df5a36ff1a23925cbe476d2d5a Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Sun, 27 Sep 2026 23:41:28 +0800 Subject: [PATCH] fix(admin): advance sailing copy selection --- .../sailing-calendar/pages/SailingCalendarView.vue | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/sailing-calendar/pages/SailingCalendarView.vue b/src/modules/sailing-calendar/pages/SailingCalendarView.vue index 0adb2226..6233aea3 100644 --- a/src/modules/sailing-calendar/pages/SailingCalendarView.vue +++ b/src/modules/sailing-calendar/pages/SailingCalendarView.vue @@ -306,7 +306,16 @@ async function copySelected() { const offsetMs = new Date(record.etdAt).getTime() - new Date(record.cutoffAt).getTime() const copiedCutoff = new Date(new Date(etdAt).getTime() - offsetMs) const cutoffAt = `${formatDate(copiedCutoff)}T${String(copiedCutoff.getHours()).padStart(2, '0')}:${String(copiedCutoff.getMinutes()).padStart(2, '0')}:${String(copiedCutoff.getSeconds()).padStart(2, '0')}` - try { await copySailing(record.id, { etdAt, cutoffAt }); ElMessage.success('已复制为下一班'); await load() } catch (cause) { ElMessage.error(getApiErrorDetails(cause, '复制船期失败').message) } + try { + const result = await copySailing(record.id, { etdAt, cutoffAt }) + const copied = result.sailing + const targetMonth = copied.etdAt.slice(0, 7) + month.value = targetMonth + selectedDate.value = copied.etdAt.slice(0, 10) + selectedSailing.value = copied + if (targetMonth === data.value?.month) await load() + ElMessage.success(`已定位到下一班:${copied.etdAt.slice(0, 16).replace('T', ' ')}`) + } catch (cause) { ElMessage.error(getApiErrorDetails(cause, '复制船期失败').message) } } async function openVolumeDetail() { if (!selectedSailing.value) return