From 87fbaf85a1986b0256e264657f447bebb60bfeaf Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Fri, 16 Oct 2026 12:19:53 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=92=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../smHotelDownstreamPushLog/index.vue | 84 ++++++++++++++++++- 1 file changed, 80 insertions(+), 4 deletions(-) diff --git a/src/views/supermarket/smHotelDownstreamPushLog/index.vue b/src/views/supermarket/smHotelDownstreamPushLog/index.vue index d898581a..c0809352 100644 --- a/src/views/supermarket/smHotelDownstreamPushLog/index.vue +++ b/src/views/supermarket/smHotelDownstreamPushLog/index.vue @@ -44,7 +44,34 @@ -
+
+ + 删除过去1天 + + + 删除过去3天 + + + 删除过去7天 + - 按时间删除 + 自定义时间删除
@@ -143,14 +170,19 @@
- + +
+ 填入过去1天 + 填入过去3天 + 填入过去7天 +
({}) const retryingId = ref(null) const rangeVisible = ref(false) const rangeDeleting = ref(false) +/** 快捷删除中的天数,用于按钮 loading */ +const quickDeleting = ref(null) const rangeBegin = ref("") const rangeEnd = ref("") +const pad2 = (n: number) => String(n).padStart(2, "0") +const formatDateTime = (d: Date) => { + return `${d.getFullYear()}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())} ${pad2(d.getHours())}:${pad2(d.getMinutes())}:${pad2(d.getSeconds())}` +} + +/** 过去 N 天:从现在往前推 N 天 00:00:00 ~ 当前时刻 */ +const recentDaysRange = (days: number) => { + const end = new Date() + const begin = new Date(end.getTime() - days * 24 * 60 * 60 * 1000) + return { + createTimeBegin: formatDateTime(begin), + createTimeEnd: formatDateTime(end), + } +} + +const applyRecentDaysToRange = (days: number) => { + const r = recentDaysRange(days) + rangeBegin.value = r.createTimeBegin + rangeEnd.value = r.createTimeEnd +} + +const handleDeleteRecentDays = async (days: number) => { + const r = recentDaysRange(days) + try { + await useMessageBox().confirm( + `确认删除过去 ${days} 天内的推送流水?\n时间范围:${r.createTimeBegin} ~ ${r.createTimeEnd}`, + ) + } catch { + return + } + quickDeleting.value = days + try { + const res: any = await delByRange(r) + useMessage().success(res?.msg || `已删除 ${res?.data ?? 0} 条`) + getDataList(false) + } catch (e: any) { + useMessage().error(e?.msg || e?.message || "删除失败") + } finally { + quickDeleting.value = null + } +} + const state: BasicTableProps = reactive({ queryForm: { success: "0" }, pageList: fetchList,