All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 16s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
166 lines
4.2 KiB
Markdown
166 lines
4.2 KiB
Markdown
# PopupContainer V1 → V2 迁移清单
|
||
|
||
## 文件分析汇总
|
||
|
||
### 第一批:基础用法(无 subtitle、无按钮)
|
||
|
||
| 文件 | Props 使用 | Slots 使用 | 迁移复杂度 | 备注 |
|
||
|------|-----------|-----------|----------|------|
|
||
| MessageView.vue | v-model, title, subtitle, height | footer | ⭐⭐ | 有 subtitle (createTime),有条件 footer |
|
||
| EmailRecord.vue | v-model, title, height | header-actions | ⭐⭐⭐ | 使用 header-actions 插槽(重新分析按钮) |
|
||
| PeriodicRecord.vue | v-model, title, height | 默认插槽 | ⭐ | 基础用法,表单内容 |
|
||
| ClassificationNLP.vue | v-model, title, height | 默认插槽 | ⭐ | 基础用法 |
|
||
| BillAnalysisView.vue | v-model, title, height | 默认插槽 | ⭐ | 基础用法 |
|
||
|
||
### 第二批:带 subtitle
|
||
|
||
| 文件 | Subtitle 类型 | 迁移方案 |
|
||
|------|--------------|---------|
|
||
| MessageView.vue | 时间戳 (createTime) | 移至内容区域顶部,使用灰色小字 |
|
||
| CategoryBillPopup.vue | 待检查 | 待定 |
|
||
| BudgetChartAnalysis.vue | 待检查 | 待定 |
|
||
| TransactionDetail.vue | 待检查 | 待定 |
|
||
| ReasonGroupList.vue | 待检查 | 待定 |
|
||
|
||
### 第三批:带确认/取消按钮
|
||
|
||
| 文件 | 按钮配置 | 迁移方案 |
|
||
|------|---------|---------|
|
||
| AddClassifyDialog.vue | 待检查 | footer 插槽 + van-button |
|
||
| IconSelector.vue | 待检查 | footer 插槽 + van-button |
|
||
| ClassificationEdit.vue | 待检查 | footer 插槽 + van-button |
|
||
|
||
### 第四批:复杂布局(header-actions)
|
||
|
||
| 文件 | header-actions 内容 | 迁移方案 |
|
||
|------|-------------------|---------|
|
||
| EmailRecord.vue | "重新分析" 按钮 | 移至内容区域顶部作为操作栏 |
|
||
| BudgetCard.vue | 待检查 | 待定 |
|
||
| BudgetEditPopup.vue | 待检查 | 待定 |
|
||
| SavingsConfigPopup.vue | 待检查 | 待定 |
|
||
| SavingsBudgetContent.vue | 待检查 | 待定 |
|
||
| budgetV2/Index.vue | 待检查 | 待定 |
|
||
|
||
### 第五批:全局组件
|
||
|
||
| 文件 | 特殊逻辑 | 迁移方案 |
|
||
|------|---------|---------|
|
||
| GlobalAddBill.vue | 待检查 | 待定 |
|
||
|
||
## 迁移模式汇总
|
||
|
||
### 模式 1: 基础迁移(无特殊 props)
|
||
```vue
|
||
<!-- V1 -->
|
||
<PopupContainer
|
||
v-model="show"
|
||
title="标题"
|
||
height="75%"
|
||
>
|
||
内容
|
||
</PopupContainer>
|
||
|
||
<!-- V2 -->
|
||
<PopupContainerV2
|
||
v-model:show="show"
|
||
title="标题"
|
||
:height="'75%'"
|
||
>
|
||
<div style="padding: 16px">
|
||
内容
|
||
</div>
|
||
</PopupContainerV2>
|
||
```
|
||
|
||
### 模式 2: subtitle 迁移
|
||
```vue
|
||
<!-- V1 -->
|
||
<PopupContainer
|
||
v-model="show"
|
||
title="标题"
|
||
:subtitle="createTime"
|
||
>
|
||
内容
|
||
</PopupContainer>
|
||
|
||
<!-- V2 -->
|
||
<PopupContainerV2
|
||
v-model:show="show"
|
||
title="标题"
|
||
:height="'75%'"
|
||
>
|
||
<div style="padding: 16px">
|
||
<p style="color: #999; font-size: 14px; margin-bottom: 12px">{{ createTime }}</p>
|
||
内容
|
||
</div>
|
||
</PopupContainerV2>
|
||
```
|
||
|
||
### 模式 3: header-actions 迁移
|
||
```vue
|
||
<!-- V1 -->
|
||
<PopupContainer
|
||
v-model="show"
|
||
title="标题"
|
||
>
|
||
<template #header-actions>
|
||
<van-button size="small" @click="handleAction">操作</van-button>
|
||
</template>
|
||
内容
|
||
</PopupContainer>
|
||
|
||
<!-- V2 -->
|
||
<PopupContainerV2
|
||
v-model:show="show"
|
||
title="标题"
|
||
:height="'80%'"
|
||
>
|
||
<div style="padding: 16px">
|
||
<div style="margin-bottom: 16px; text-align: right">
|
||
<van-button size="small" @click="handleAction">操作</van-button>
|
||
</div>
|
||
内容
|
||
</div>
|
||
</PopupContainerV2>
|
||
```
|
||
|
||
### 模式 4: footer 插槽迁移
|
||
```vue
|
||
<!-- V1 -->
|
||
<PopupContainer
|
||
v-model="show"
|
||
title="标题"
|
||
>
|
||
内容
|
||
<template #footer>
|
||
<van-button type="primary">提交</van-button>
|
||
</template>
|
||
</PopupContainer>
|
||
|
||
<!-- V2 -->
|
||
<PopupContainerV2
|
||
v-model:show="show"
|
||
title="标题"
|
||
:height="'80%'"
|
||
>
|
||
<div style="padding: 16px">
|
||
内容
|
||
</div>
|
||
<template #footer>
|
||
<van-button type="primary" block>提交</van-button>
|
||
</template>
|
||
</PopupContainerV2>
|
||
```
|
||
|
||
## 进度追踪
|
||
|
||
- [ ] 完成所有文件的详细分析
|
||
- [ ] 确认每个文件的迁移模式
|
||
- [ ] 标记需要特殊处理的文件
|
||
|
||
## 风险点
|
||
|
||
1. **EmailRecord.vue**: 有 header-actions 插槽,需要重新设计操作按钮的位置
|
||
2. **MessageView.vue**: subtitle 用于显示时间,需要保持视觉层级
|
||
3. **待检查文件**: 需要逐个检查是否使用了 v-html、复杂布局等特性
|