35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
## 目标
|
||
|
||
* 添加抬头时将 `公司名称`、`公司税号`、`电子邮箱`设为必填,其他字段可为空。
|
||
|
||
* 现状确认(代码引用)
|
||
|
||
- 后端必填:`app/schemas/invoice.py:6–12` 中 `InvoiceHeaderCreate` 已要求 `company_name`、`tax_number` 为必填,`email: EmailStr` 为必填。
|
||
|
||
- API 入口:`app/api/v1/app_invoices/app_invoices.py:55–58` 新增抬头接口使用 `InvoiceHeaderCreate`,后端将严格校验三项必填。
|
||
|
||
## 修改方案
|
||
|
||
1. 统一前端校验文案
|
||
|
||
* 统一三项必填的错误提示为简洁中文,如:“请输入公司名称 / 公司税号 / 电子邮箱”。
|
||
|
||
* 邮箱格式提示统一为:“请输入有效的电子邮箱”。
|
||
|
||
2. 后端校验与返回确认
|
||
|
||
* 保持 `InvoiceHeaderCreate` 的必填与格式限制不变(`app/schemas/invoice.py:6–12`)。
|
||
|
||
* 确认更新接口 `InvoiceHeaderUpdate`(`app/schemas/invoice.py:32–39`)允许局部更新、但不影响创建必填逻辑。
|
||
|
||
3. 验证与测试
|
||
|
||
* 后端接口验证:对 `POST /app-invoices/headers`(`app/api/v1/app_invoices/app_invoices.py:55–58`)进行用例:缺失任一必填字段应返回 422;全部正确应 200/201。
|
||
|
||
* 可补充最小化单元测试:Pydantic 校验用例覆盖必填与格式。
|
||
|
||
## 交付内容。
|
||
|
||
* 完成基本交互与接口验证,确保行为符合预期。
|
||
|