---
name: pancli-implement
description: 根据 pancli 设计图(.pen 文件)进行前后端完整实施的专业技能,确保高度还原设计,数据表支持,交互确认
license: MIT
compatibility: Requires .pen design files, Entity layer, WebApi controllers, Vue 3 frontend
metadata:
author: EmailBill Development Team
version: "1.0.0"
generatedBy: opencode
lastUpdated: "2026-02-03"
source: "基于 .pans/v2.pen 设计实施流程"
---
# pancli-implement - 设计图实施技能
> 根据 pancli 设计图(.pen 文件)进行前后端完整实施,确保高度还原设计稿,包括数据表确认、API 开发、前端组件实现和交互验证。
## 何时使用此技能
**总是使用此技能当:**
- 需要根据 .pen 设计文件实施前后端功能
- 将设计图转换为可运行的代码
- 需要确认数据表结构是否支持设计需求
- 实施过程中需要询问用户确认交互细节
- 高度还原设计稿的视觉效果和交互体验
**触发条件:**
- 用户提到 "实施设计图"、"根据设计实现"、"按照 pancli"
- 任务涉及从 .pen 文件到代码的转换
- 需要同时开发前端和后端
## 核心实施原则
### 0. **模块化架构:复杂页面拆分**
**重要:** 对于复杂页面(如日历、统计概览、仪表板),必须采用**模块化架构**:
**目录结构规范:**
```
views/
calendarV2/ # 页面目录
Index.vue # 主页面(编排器)
modules/ # 模块目录
Calendar.vue # 日历模块
Stats.vue # 统计模块
TransactionList.vue # 交易列表模块
```
**模块化原则:**
1. **高内聚模块**
- 每个模块是独立的功能单元
- 模块内部管理自己的数据和状态
- 模块自己调用 API 获取数据
- 模块自己处理内部事件
2. **Index.vue 作为编排器**
- **只负责布局和事件编排**
- **不调用 API,不管理业务数据**
- 接收用户交互(如日期选择)
- 通过 props 传递必要参数给模块
- 通过事件监听模块的输出
- 协调模块间的通信
3. **模块间通信**
- 父 → 子:通过 props 传递(只传必要参数,如 `selectedDate`)
- 子 → 父:通过 emit 发送事件(如 `@transaction-click`)
- 兄弟模块:通过父组件中转事件
4. **不使用 TypeScript**
- 项目使用纯 JavaScript + Vue 3 Composition API
- **不要**在 `
```
```vue
{{ selectedDateFormatted }}
交易记录
{{ transactions.length }} Items