Files
EmailBill/openspec/changes/unified-popup-component/proposal.md

34 lines
1.5 KiB
Markdown
Raw Normal View History

2026-02-15 10:10:28 +08:00
## Why
当前前端项目中虽然已经封装了统一的弹窗组件 `PopupContainer.vue`,但很多页面仍然直接使用 `van-dialog``van-popup` 或自行封装的弹窗组件(如 `AddClassifyDialog.vue``CategoryBillPopup.vue`),导致弹窗风格不统一,影响用户体验的一致性和代码可维护性。
## What Changes
- 将所有直接使用 `van-dialog` 的简单确认/输入弹窗替换为统一的弹窗组件
- 将所有使用 `van-popup` 的底部弹窗替换为 `PopupContainer` 组件
- 重构或删除自行封装的弹窗组件(`AddClassifyDialog.vue``CategoryBillPopup.vue`),改用统一的 `PopupContainer`
- 扩展 `PopupContainer` 组件功能以覆盖更多使用场景(如表单验证、确认对话框)
- 更新相关样式,确保统一的设计语言
## Capabilities
### New Capabilities
- `unified-popup-system`: 统一的弹窗系统,提供一致的用户体验和 API包括对话框、底部弹窗、确认弹窗等常见场景
### Modified Capabilities
## Impact
**影响范围**:
- `Web/src/views/` 目录下的多个 Vue 视图文件(至少 10+ 个文件)
- `Web/src/components/` 目录下的弹窗相关组件(`AddClassifyDialog.vue``CategoryBillPopup.vue`
- `Web/src/components/PopupContainer.vue` 组件扩展
**代码变更**:
- 重构约 42+ 处弹窗使用位置(来自 grep 搜索结果)
- 可能引入 Breaking Changes如果需要修改 `PopupContainer` 的 API
**依赖影响**:
- Vant UI 组件库保持不变,仅封装层变化
- 不影响后端 API