---
name: add-field
description: 全栈字段添加技能 — 从实体到前端 i18n 一站式添加新字段
---

# 全栈字段添加技能

给定字段名称、类型和所属实体，按以下清单依次更新所有层级。

## 输入参数

用户需提供：
- **字段名**: 如 `tableNo`
- **类型**: 如 `String`、`Integer`
- **所属实体**: 如 `PosOrder`
- **业务说明**: 如 "餐桌号"

## 执行步骤

### 第1步：Java 实体类
- 找到实体类文件，添加字段声明 + getter/setter
- 验证：字段在类中存在

### 第2步：MyBatis XML Mapper
- 更新 `resultMap` 添加新字段映射
- 更新所有相关的 `select`、`insert`、`update` SQL 语句
- 验证：grep 确认所有引用该表的 mapper 语句已更新

### 第3步：DTO 类（如适用）
- 检查是否有对应的 DTO/VO 类需要同步添加字段
- 验证：DTO 中字段与实体一致

### 第4步：Service 层
- 检查业务逻辑是否需要处理新字段（默认值、计算逻辑、校验等）
- 验证：相关 Service 方法已处理新字段

### 第5步：Controller 层
- 检查 API 接口是否需要返回或接收新字段
- 验证：相关接口的请求/响应包含新字段

### 第6步：前端 Vue 组件
- 在相关页面中添加字段展示/编辑
- **注意：** 前端文件使用 CRLF 换行符，Edit 工具可能失败，优先使用 Python 脚本编辑
- 验证：Vue 组件中字段可见

### 第7步：i18n 多语言
- 在所有4个语言文件中添加对应的翻译 key：
  - `vi.js`（越南语）
  - `zh.js`（简体中文）
  - `tw.js`（繁体中文）
  - `en.js`（英语）
- **注意：** key 必须添加到正确的嵌套对象内部，使用有意义的英文驼峰命名
- 验证：grep 确认4个文件中都存在该 key

### 第8步：SQL 迁移脚本
- 生成 ALTER TABLE 语句添加新列
- 验证：SQL 语法正确

## 完成检查

最后执行一次全局检查：
- grep 字段名，确认没有遗漏的引用
- 确认 i18n key 在4个语言文件中都存在且 key 名一致
- 确认 mapper XML 中 resultMap 和所有 SQL 语句都已更新
