fc1d8df60f
Node.js Build / build (push) Has been skipped
- 基于 grill-me Q1-Q61 决策 - Vitest 测试与 CI workflow - middleware: parseFilters 核心实现 - component: Vue3 TransForm 基础组件 + Storybook Co-authored-by: Cursor <cursoragent@cursor.com>
33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
# trans-form-component — Design (Q1–Q61)
|
||
|
||
Status: **implementation scaffold** (v0.1.0)
|
||
|
||
Companion package: `@windychen/trans-form-middleware`.
|
||
|
||
## Role
|
||
|
||
Schema-driven Vue 3 query form → flat filter array with optional `logic`, state flags, and `empty` markers.
|
||
|
||
## Key decisions (selected)
|
||
|
||
| # | Decision |
|
||
|---|----------|
|
||
| 4–5 | No UI framework; headless native controls for string `value-component` |
|
||
| 7 | Flat array + `logic` between adjacent conditions |
|
||
| 11 | `@change` + `getFilters()` ref API |
|
||
| 15 | 12-column grid via `row` |
|
||
| 17–18 | Query dropdown; optional `query-component` (defaults to value renderer) |
|
||
| 19 | Global singleton `setConfig` / `componentMap` |
|
||
| 20 | ESM only (Vite library build) |
|
||
| 30, 35 | Inline layout 3:2:7 (name/query/value), globally configurable |
|
||
| 47 | Storybook included |
|
||
| 48 | `app.use(TransFormPlugin)` |
|
||
| 51 | Built-in reset only (`showReset`, `reset()`) |
|
||
| 54 | First filter item has no `logic` |
|
||
| 55–59 | Reactive schema; preserve matching fields; AND/OR editable; v1 types include tags |
|
||
| 60 | Output includes state flags for middleware |
|
||
|
||
## CI
|
||
|
||
Same as windychen-utils: commit must contain `chore` + `版本` + `更新`.
|