From 609fdd5379216429e8ca75477f4356e9f2819a67 Mon Sep 17 00:00:00 2001 From: yexb <553699424@qq.com> Date: Sat, 16 May 2026 07:07:50 +0800 Subject: [PATCH] feat: add event waveform export selection --- ...5-event-list-export-implementation-plan.md | 473 ++++++++++++++++++ frontend/src/api/event/eventList/index.ts | 4 + .../api/event/eventList/interface/index.ts | 4 + .../event/eventList/check-export-contract.mjs | 46 ++ .../check-search-layout-contract.mjs | 14 +- .../eventList/check-visible-contract.mjs | 13 +- frontend/src/views/event/eventList/index.vue | 138 ++++- 7 files changed, 675 insertions(+), 17 deletions(-) create mode 100644 docs/superpowers/plans/2026-05-15-event-list-export-implementation-plan.md create mode 100644 frontend/src/views/event/eventList/check-export-contract.mjs diff --git a/docs/superpowers/plans/2026-05-15-event-list-export-implementation-plan.md b/docs/superpowers/plans/2026-05-15-event-list-export-implementation-plan.md new file mode 100644 index 0000000..f7736f2 --- /dev/null +++ b/docs/superpowers/plans/2026-05-15-event-list-export-implementation-plan.md @@ -0,0 +1,473 @@ +# Event List Export Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Rename the existing event list export action to “事件导出”, add independent waveform export selection and download behavior, and show the visible event columns in the requested order with “暂降/暂升幅值(%)” before “持续时间(s)”. + +**Architecture:** Keep all UI orchestration in `frontend/src/views/event/eventList/index.vue`, because the change is narrow and the page already owns table columns, export handlers, and row actions. Add one event-list API method and one request type for waveform export. Extend the existing eventList contract scripts so selection semantics and export payloads are checked without introducing a new test framework. + +**Tech Stack:** Vue 3 `