银行端口添加客户拜访功能
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Change: 添加银行端客户拜访计划功能
|
||||
|
||||
## Why
|
||||
|
||||
银行端客户经理需要记录和管理客户拜访活动,以便跟踪客户关系、记录营销产品推广情况,并保存现场拜访照片作为凭证。当前系统缺少拜访计划管理功能,无法满足客户关系管理的业务需求。
|
||||
|
||||
## What Changes
|
||||
|
||||
- 在银行端添加客户拜访计划创建页面
|
||||
- 支持设置拜访日期、选择客户、定位位置、选择营销产品、填写拜访主题和备注
|
||||
- 支持上传拜访场景照片(拍照或从相册选择)
|
||||
- 添加拜访计划保存功能
|
||||
- 添加拜访计划列表和详情查看功能
|
||||
|
||||
## Impact
|
||||
|
||||
- Affected specs: `bank-visit-plan` (新能力)
|
||||
- Affected code:
|
||||
- `src/pagesBank/` - 新增拜访计划相关页面
|
||||
- `src/pagesBank/api/` - 新增拜访计划 API 接口
|
||||
- `src/typings/bank.ts` - 新增拜访计划类型定义
|
||||
@@ -0,0 +1,72 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: 创建拜访计划
|
||||
银行端用户 SHALL 能够创建客户拜访计划,记录拜访的详细信息。
|
||||
|
||||
#### Scenario: 成功创建拜访计划
|
||||
- **WHEN** 用户填写完整的拜访计划信息(日期、客户、位置、拜访主题、照片)
|
||||
- **THEN** 系统 SHALL 保存拜访计划并返回成功提示
|
||||
|
||||
#### Scenario: 创建拜访计划时验证必填字段
|
||||
- **WHEN** 用户提交拜访计划时缺少必填字段(日期、客户、位置、拜访主题、照片)
|
||||
- **THEN** 系统 SHALL 显示相应的错误提示,阻止提交
|
||||
|
||||
#### Scenario: 选择营销产品
|
||||
- **WHEN** 用户点击营销产品选择器
|
||||
- **THEN** 系统 SHALL 显示可选产品列表,支持多选
|
||||
|
||||
#### Scenario: 上传拜访场景图
|
||||
- **WHEN** 用户点击上传按钮
|
||||
- **THEN** 系统 SHALL 提供拍照和从相册选择两种方式
|
||||
|
||||
### Requirement: 拜访计划列表
|
||||
银行端用户 SHALL 能够查看拜访计划列表,支持筛选和搜索。
|
||||
|
||||
#### Scenario: 查看拜访计划列表
|
||||
- **WHEN** 用户进入拜访计划列表页面
|
||||
- **THEN** 系统 SHALL 显示所有拜访计划,按日期倒序排列
|
||||
|
||||
#### Scenario: 按状态筛选拜访计划
|
||||
- **WHEN** 用户选择状态筛选条件(待拜访、已完成、已取消)
|
||||
- **THEN** 系统 SHALL 显示对应状态的拜访计划
|
||||
|
||||
#### Scenario: 搜索拜访计划
|
||||
- **WHEN** 用户输入关键词搜索
|
||||
- **THEN** 系统 SHALL 显示匹配的拜访计划(按客户名称或拜访主题)
|
||||
|
||||
### Requirement: 拜访计划详情
|
||||
银行端用户 SHALL 能够查看拜访计划的详细信息。
|
||||
|
||||
#### Scenario: 查看拜访计划详情
|
||||
- **WHEN** 用户点击拜访计划列表项
|
||||
- **THEN** 系统 SHALL 显示拜访计划的完整信息(日期、客户、位置、营销产品、拜访主题、备注、照片)
|
||||
|
||||
#### Scenario: 更新拜访状态
|
||||
- **WHEN** 用户在详情页更新拜访状态
|
||||
- **THEN** 系统 SHALL 保存状态变更并刷新页面
|
||||
|
||||
#### Scenario: 编辑拜访计划
|
||||
- **WHEN** 用户点击编辑按钮
|
||||
- **THEN** 系统 SHALL 进入编辑模式,允许修改拜访计划信息
|
||||
|
||||
### Requirement: 客户选择器
|
||||
系统 SHALL 提供客户选择器,支持从客户列表中选择目标客户。
|
||||
|
||||
#### Scenario: 打开客户选择器
|
||||
- **WHEN** 用户点击客户选择字段
|
||||
- **THEN** 系统 SHALL 弹出客户列表页面
|
||||
|
||||
#### Scenario: 选择客户
|
||||
- **WHEN** 用户从列表中选择一个客户
|
||||
- **THEN** 系统 SHALL 返回并显示选中的客户信息
|
||||
|
||||
### Requirement: 位置定位
|
||||
系统 SHALL 支持获取当前位置或手动输入地址。
|
||||
|
||||
#### Scenario: 自动定位
|
||||
- **WHEN** 用户点击定位按钮
|
||||
- **THEN** 系统 SHALL 获取当前位置并显示地址信息
|
||||
|
||||
#### Scenario: 手动输入地址
|
||||
- **WHEN** 用户手动输入地址
|
||||
- **THEN** 系统 SHALL 保存用户输入的地址信息
|
||||
@@ -0,0 +1,42 @@
|
||||
# Implementation Tasks
|
||||
|
||||
## 1. 类型定义和 API 接口
|
||||
- [ ] 1.1 在 `src/typings/bank.ts` 中添加拜访计划相关类型定义
|
||||
- [ ] 1.2 在 `src/pagesBank/api/index.ts` 中添加拜访计划 API 接口
|
||||
- [ ] 1.3 在 `src/pagesBank/mock/index.ts` 中添加拜访计划 Mock 数据
|
||||
|
||||
## 2. 拜访计划创建页面
|
||||
- [ ] 2.1 创建 `src/pagesBank/visit/create.vue` 拜访计划创建页面
|
||||
- [ ] 2.2 实现日期选择器组件
|
||||
- [ ] 2.3 实现客户选择器(弹出客户列表)
|
||||
- [ ] 2.4 实现位置定位功能(地图定位/文本输入)
|
||||
- [ ] 2.5 实现营销产品多选功能
|
||||
- [ ] 2.6 实现拜访主题和备注输入
|
||||
- [ ] 2.7 实现图片上传功能(拍照/相册选择)
|
||||
- [ ] 2.8 实现表单验证和提交功能
|
||||
|
||||
## 3. 拜访计划列表页面
|
||||
- [ ] 3.1 创建 `src/pagesBank/visit/list.vue` 拜访计划列表页面
|
||||
- [ ] 3.2 实现拜访计划列表展示
|
||||
- [ ] 3.3 实现状态筛选(待拜访、已完成、已取消)
|
||||
- [ ] 3.4 实现搜索功能
|
||||
|
||||
## 4. 拜访计划详情页面
|
||||
- [ ] 4.1 创建 `src/pagesBank/visit/detail.vue` 拜访计划详情页面
|
||||
- [ ] 4.2 实现拜访计划详情展示
|
||||
- [ ] 4.3 实现拜访状态更新功能
|
||||
- [ ] 4.4 实现拜访记录编辑功能
|
||||
|
||||
## 5. 路由配置
|
||||
- [ ] 5.1 在 `src/pages.json` 中添加拜访计划相关路由配置
|
||||
|
||||
## 6. 导航入口
|
||||
- [ ] 6.1 在银行端首页或客户详情页添加"创建拜访计划"入口
|
||||
- [ ] 6.2 在客户详情页添加"拜访记录"入口
|
||||
|
||||
## 7. 测试和验证
|
||||
- [ ] 7.1 测试拜访计划创建流程
|
||||
- [ ] 7.2 测试拜访计划列表展示和筛选
|
||||
- [ ] 7.3 测试拜访计划详情查看和编辑
|
||||
- [ ] 7.4 测试图片上传功能
|
||||
- [ ] 7.5 测试表单验证
|
||||
@@ -0,0 +1,29 @@
|
||||
# Change: 修改银行端客户拜访计划功能
|
||||
|
||||
## Why
|
||||
|
||||
当前拜访计划功能在创建时要求填写位置和上传拜访场景图,但在实际业务场景中,这些信息应该在拜访完成时才需要填写。创建拜访计划时只需要记录基本的拜访安排(日期、客户、主题等),而在标记拜访完成时才需要补充位置信息和上传现场照片。这样的流程更符合实际业务需求。
|
||||
|
||||
## What Changes
|
||||
|
||||
- **创建拜访计划页面** (`/pagesBank/visit/create`) 修改:
|
||||
- 移除位置输入和定位功能
|
||||
- 移除上传拜访场景图功能
|
||||
- 保留日期、客户选择、营销产品、拜访主题、备注字段
|
||||
- 更新表单验证逻辑,不再验证位置和照片
|
||||
|
||||
- **拜访计划详情页面** (`/pagesBank/visit/detail?id={}`) 修改:
|
||||
- 在标记完成时,要求填写位置信息(模拟从地图获取地址,默认使用"广东省茂名市")
|
||||
- 在标记完成时,要求上传拜访场景图
|
||||
- 添加位置和照片的必填验证
|
||||
- 更新状态更新流程,先验证位置和照片后再更新状态
|
||||
|
||||
## Impact
|
||||
|
||||
- Affected specs: `bank-visit-plan` (修改)
|
||||
- Affected code:
|
||||
- `src/pagesBank/visit/create.vue` - 移除位置和照片相关代码
|
||||
- `src/pagesBank/visit/detail.vue` - 添加完成时的位置和照片填写功能
|
||||
- `src/pagesBank/api/index.ts` - 更新 `updateVisitStatus` API 支持位置和照片参数
|
||||
- `src/typings/bank.ts` - 更新 `CreateVisitPlanParams` 类型定义
|
||||
- `openspec/specs/bank-visit-plan/spec.md` - 更新需求规格说明
|
||||
@@ -0,0 +1,91 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: 创建拜访计划
|
||||
银行端用户 SHALL 能够创建客户拜访计划,记录拜访的基本信息。
|
||||
|
||||
#### Scenario: 成功创建拜访计划
|
||||
- **WHEN** 用户填写完整的拜访计划信息(日期、客户、拜访主题)
|
||||
- **THEN** 系统 SHALL 保存拜访计划并返回成功提示
|
||||
|
||||
#### Scenario: 创建拜访计划时验证必填字段
|
||||
- **WHEN** 用户提交拜访计划时缺少必填字段(日期、客户、拜访主题)
|
||||
- **THEN** 系统 SHALL 显示相应的错误提示,阻止提交
|
||||
|
||||
#### Scenario: 选择营销产品
|
||||
- **WHEN** 用户点击营销产品选择器
|
||||
- **THEN** 系统 SHALL 显示可选产品列表,支持多选
|
||||
|
||||
### Requirement: 拜访计划列表
|
||||
银行端用户 SHALL 能够查看拜访计划列表,支持筛选和搜索。
|
||||
|
||||
#### Scenario: 查看拜访计划列表
|
||||
- **WHEN** 用户进入拜访计划列表页面
|
||||
- **THEN** 系统 SHALL 显示所有拜访计划,按日期倒序排列
|
||||
|
||||
#### Scenario: 按状态筛选拜访计划
|
||||
- **WHEN** 用户选择状态筛选条件(待拜访、已完成、已取消)
|
||||
- **THEN** 系统 SHALL 显示对应状态的拜访计划
|
||||
|
||||
#### Scenario: 搜索拜访计划
|
||||
- **WHEN** 用户输入关键词搜索
|
||||
- **THEN** 系统 SHALL 显示匹配的拜访计划(按客户名称或拜访主题)
|
||||
|
||||
### Requirement: 拜访计划详情
|
||||
银行端用户 SHALL 能够查看拜访计划的详细信息。
|
||||
|
||||
#### Scenario: 查看拜访计划详情
|
||||
- **WHEN** 用户点击拜访计划列表项
|
||||
- **THEN** 系统 SHALL 显示拜访计划的完整信息(日期、客户、营销产品、拜访主题、备注)
|
||||
|
||||
#### Scenario: 标记拜访完成
|
||||
- **WHEN** 用户点击"标记完成"按钮
|
||||
- **THEN** 系统 SHALL 弹出填写位置和上传照片的表单
|
||||
- **AND** 用户填写位置信息(支持自动定位或手动输入,默认地址为"广东省茂名市")
|
||||
- **AND** 用户上传至少一张拜访场景图
|
||||
- **AND** 系统 SHALL 验证位置和照片必填
|
||||
- **AND** 验证通过后更新拜访状态为"已完成"
|
||||
|
||||
#### Scenario: 标记完成时验证必填字段
|
||||
- **WHEN** 用户提交完成标记时缺少位置信息或照片
|
||||
- **THEN** 系统 SHALL 显示相应的错误提示,阻止状态更新
|
||||
|
||||
#### Scenario: 编辑拜访计划
|
||||
- **WHEN** 用户点击编辑按钮
|
||||
- **THEN** 系统 SHALL 进入编辑模式,允许修改拜访计划信息(日期、主题、备注)
|
||||
|
||||
### Requirement: 客户选择器
|
||||
系统 SHALL 提供客户选择器,支持从客户列表中选择目标客户。
|
||||
|
||||
#### Scenario: 打开客户选择器
|
||||
- **WHEN** 用户点击客户选择字段
|
||||
- **THEN** 系统 SHALL 弹出客户列表页面
|
||||
|
||||
#### Scenario: 选择客户
|
||||
- **WHEN** 用户从列表中选择一个客户
|
||||
- **THEN** 系统 SHALL 返回并显示选中的客户信息
|
||||
|
||||
### Requirement: 位置定位
|
||||
系统 SHALL 支持获取当前位置或手动输入地址。
|
||||
|
||||
#### Scenario: 自动定位
|
||||
- **WHEN** 用户点击定位按钮
|
||||
- **THEN** 系统 SHALL 获取当前位置并显示地址信息
|
||||
|
||||
#### Scenario: 手动输入地址
|
||||
- **WHEN** 用户手动输入地址
|
||||
- **THEN** 系统 SHALL 保存用户输入的地址信息
|
||||
|
||||
#### Scenario: 使用默认地址
|
||||
- **WHEN** 用户未填写位置信息
|
||||
- **THEN** 系统 SHALL 使用默认地址"广东省茂名市"
|
||||
|
||||
### Requirement: 上传拜访场景图
|
||||
系统 SHALL 支持上传拜访场景照片。
|
||||
|
||||
#### Scenario: 上传拜访场景图
|
||||
- **WHEN** 用户点击上传按钮
|
||||
- **THEN** 系统 SHALL 提供拍照和从相册选择两种方式
|
||||
|
||||
#### Scenario: 验证照片数量
|
||||
- **WHEN** 用户标记拜访完成时
|
||||
- **THEN** 系统 SHALL 要求至少上传一张拜访场景图
|
||||
@@ -0,0 +1,67 @@
|
||||
# Tasks: 修改银行端客户拜访计划功能
|
||||
|
||||
## 任务列表
|
||||
|
||||
### 1. 修改类型定义
|
||||
- [x] 更新 `src/typings/bank.ts` 中的 `CreateVisitPlanParams` 接口
|
||||
- 移除 `location`、`latitude`、`longitude`、`photos` 字段
|
||||
- 这些字段将在标记完成时通过 `updateVisitStatus` API 提供
|
||||
- 新增 `CompleteVisitPlanParams` 接口用于标记完成时的参数
|
||||
|
||||
### 2. 修改创建拜访计划页面
|
||||
- [x] 修改 `src/pagesBank/visit/create.vue`
|
||||
- 移除位置输入和定位功能
|
||||
- 移除上传拜访场景图功能
|
||||
- 更新表单验证逻辑
|
||||
- 移除位置验证
|
||||
- 移除照片验证
|
||||
- 更新提交表单逻辑
|
||||
- 移除位置和照片参数
|
||||
|
||||
### 3. 修改拜访计划详情页面
|
||||
- [x] 修改 `src/pagesBank/visit/detail.vue`
|
||||
- 添加标记完成时的表单状态管理
|
||||
- 添加位置输入和定位功能
|
||||
- 添加上传拜访场景图功能
|
||||
- 修改 `handleUpdateStatus` 函数
|
||||
- 点击"标记完成"时弹出填写位置和上传照片的表单
|
||||
- 验证位置和照片必填
|
||||
- 验证通过后调用更新状态 API
|
||||
- 更新模板部分,添加位置和照片填写表单
|
||||
|
||||
### 4. 修改 API 接口
|
||||
- [x] 修改 `src/pagesBank/api/index.ts`
|
||||
- 更新 `createVisitPlan` 函数
|
||||
- 移除位置和照片参数处理
|
||||
- 创建时位置和照片为空
|
||||
- 更新 `updateVisitStatus` 函数
|
||||
- 添加 `location`、`latitude`、`longitude`、`photos` 参数
|
||||
- 更新拜访计划时保存位置和照片信息
|
||||
- 更新 `updateVisitPlan` 函数
|
||||
- 移除位置和照片相关字段的处理
|
||||
|
||||
### 5. 更新 Mock 数据
|
||||
- [x] 修改 `src/pagesBank/mock/index.ts`
|
||||
- 更新 `mockVisitPlans` 数据结构
|
||||
- 确保待拜访的拜访计划位置和照片为空
|
||||
- 已完成的拜访计划包含位置和照片信息
|
||||
|
||||
### 6. 更新规格说明文档
|
||||
- [x] 更新 `openspec/specs/bank-visit-plan/spec.md`
|
||||
- 应用修改提案中的规格变更
|
||||
- 更新创建拜访计划的需求
|
||||
- 更新拜访计划详情的需求
|
||||
- 添加标记完成时的场景
|
||||
|
||||
### 7. 测试验证
|
||||
- [x] 测试创建拜访计划功能
|
||||
- 验证不填写位置和照片可以成功创建
|
||||
- 验证必填字段验证正常工作
|
||||
- [x] 测试标记拜访完成功能
|
||||
- 验证必须填写位置和上传照片才能标记完成
|
||||
- 验证自动定位功能正常
|
||||
- 验证默认地址"广东省茂名市"正常使用
|
||||
- 验证照片上传功能正常
|
||||
- [x] 测试拜访计划详情页面
|
||||
- 验证位置和照片信息正确显示
|
||||
- 验证编辑功能正常工作
|
||||
95
openspec/specs/bank-visit-plan/spec.md
Normal file
95
openspec/specs/bank-visit-plan/spec.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# bank-visit-plan Specification
|
||||
|
||||
## Purpose
|
||||
TBD - created by archiving change add-bank-visit-plan. Update Purpose after archive.
|
||||
## Requirements
|
||||
### Requirement: 创建拜访计划
|
||||
银行端用户 SHALL 能够创建客户拜访计划,记录拜访的基本信息。
|
||||
|
||||
#### Scenario: 成功创建拜访计划
|
||||
- **WHEN** 用户填写完整的拜访计划信息(日期、客户、拜访主题)
|
||||
- **THEN** 系统 SHALL 保存拜访计划并返回成功提示
|
||||
|
||||
#### Scenario: 创建拜访计划时验证必填字段
|
||||
- **WHEN** 用户提交拜访计划时缺少必填字段(日期、客户、拜访主题)
|
||||
- **THEN** 系统 SHALL 显示相应的错误提示,阻止提交
|
||||
|
||||
#### Scenario: 选择营销产品
|
||||
- **WHEN** 用户点击营销产品选择器
|
||||
- **THEN** 系统 SHALL 显示可选产品列表,支持多选
|
||||
|
||||
### Requirement: 拜访计划列表
|
||||
银行端用户 SHALL 能够查看拜访计划列表,支持筛选和搜索。
|
||||
|
||||
#### Scenario: 查看拜访计划列表
|
||||
- **WHEN** 用户进入拜访计划列表页面
|
||||
- **THEN** 系统 SHALL 显示所有拜访计划,按日期倒序排列
|
||||
|
||||
#### Scenario: 按状态筛选拜访计划
|
||||
- **WHEN** 用户选择状态筛选条件(待拜访、已完成、已取消)
|
||||
- **THEN** 系统 SHALL 显示对应状态的拜访计划
|
||||
|
||||
#### Scenario: 搜索拜访计划
|
||||
- **WHEN** 用户输入关键词搜索
|
||||
- **THEN** 系统 SHALL 显示匹配的拜访计划(按客户名称或拜访主题)
|
||||
|
||||
### Requirement: 拜访计划详情
|
||||
银行端用户 SHALL 能够查看拜访计划的详细信息。
|
||||
|
||||
#### Scenario: 查看拜访计划详情
|
||||
- **WHEN** 用户点击拜访计划列表项
|
||||
- **THEN** 系统 SHALL 显示拜访计划的完整信息(日期、客户、营销产品、拜访主题、备注)
|
||||
|
||||
#### Scenario: 标记拜访完成
|
||||
- **WHEN** 用户点击"标记完成"按钮
|
||||
- **THEN** 系统 SHALL 弹出填写位置和上传照片的表单
|
||||
- **AND** 用户填写位置信息(支持自动定位或手动输入,默认地址为"广东省茂名市")
|
||||
- **AND** 用户上传至少一张拜访场景图
|
||||
- **AND** 系统 SHALL 验证位置和照片必填
|
||||
- **AND** 验证通过后更新拜访状态为"已完成"
|
||||
|
||||
#### Scenario: 标记完成时验证必填字段
|
||||
- **WHEN** 用户提交完成标记时缺少位置信息或照片
|
||||
- **THEN** 系统 SHALL 显示相应的错误提示,阻止状态更新
|
||||
|
||||
#### Scenario: 编辑拜访计划
|
||||
- **WHEN** 用户点击编辑按钮
|
||||
- **THEN** 系统 SHALL 进入编辑模式,允许修改拜访计划信息(日期、主题、备注)
|
||||
|
||||
### Requirement: 客户选择器
|
||||
系统 SHALL 提供客户选择器,支持从客户列表中选择目标客户。
|
||||
|
||||
#### Scenario: 打开客户选择器
|
||||
- **WHEN** 用户点击客户选择字段
|
||||
- **THEN** 系统 SHALL 弹出客户列表页面
|
||||
|
||||
#### Scenario: 选择客户
|
||||
- **WHEN** 用户从列表中选择一个客户
|
||||
- **THEN** 系统 SHALL 返回并显示选中的客户信息
|
||||
|
||||
### Requirement: 位置定位
|
||||
系统 SHALL 支持获取当前位置或手动输入地址。
|
||||
|
||||
#### Scenario: 自动定位
|
||||
- **WHEN** 用户点击定位按钮
|
||||
- **THEN** 系统 SHALL 获取当前位置并显示地址信息
|
||||
|
||||
#### Scenario: 手动输入地址
|
||||
- **WHEN** 用户手动输入地址
|
||||
- **THEN** 系统 SHALL 保存用户输入的地址信息
|
||||
|
||||
#### Scenario: 使用默认地址
|
||||
- **WHEN** 用户未填写位置信息
|
||||
- **THEN** 系统 SHALL 使用默认地址"广东省茂名市"
|
||||
|
||||
### Requirement: 上传拜访场景图
|
||||
系统 SHALL 支持上传拜访场景照片。
|
||||
|
||||
#### Scenario: 上传拜访场景图
|
||||
- **WHEN** 用户点击上传按钮
|
||||
- **THEN** 系统 SHALL 提供拍照和从相册选择两种方式
|
||||
|
||||
#### Scenario: 验证照片数量
|
||||
- **WHEN** 用户标记拜访完成时
|
||||
- **THEN** 系统 SHALL 要求至少上传一张拜访场景图
|
||||
|
||||
Reference in New Issue
Block a user