---
name: af-vue2-client-maintainer
description: Maintains and extends the af-vue2-client (Vue 2.7 + Ant Design Vue) frontend. Use when developing, fixing, refactoring, or extending af-vue2-client; when working with base-client X components (XForm, XTable, XCard, XPageView), config-driven UI, multi-environment deployment (his, gaslink, revenue, etc.), or Vue 2.7 frontend maintenance.
---

# af-vue2-client 项目维护

## 使用本技能时的工作流程

1. **确认任务类型**：区分是开发新功能、修复问题、重构、发布版本，还是查配置/排错。
2. **定位入口**：根据任务查下方「关键路径速查」或「修改与排错」，确定要改的目录与文件（如页面→`src/pages/`+`src/router/`，接口→`src/services/`，配置→`vue.config.js`/`.env*`）。
3. **按需查阅参考**：需要代码风格、目录树、技术栈或发布清单时读 [references/reference.md](references/reference.md)；需要按步骤操作（新增页面、lint、发布、API、X 组件）时读 [references/examples.md](references/examples.md)。
4. **按规范修改**：遵循本页「架构与规范要点」与 reference 中的约定；优先用配置与 X 组件，少写硬编码；新代码用 Vue 2.7 组合 API + `<script setup>`。
5. **验证与收尾**：修改后运行 `npm run lint`（或执行 `scripts/lint-check.sh`）；涉及功能时视情况 `npm run mac-serve` 或运行测试；若为发布，按「发布前检查」完成版本号、CHANGELOG、commit。

---

## 快速开始

### 常用命令

| 场景 | 命令 |
|------|------|
| 开发（macOS/Linux） | `npm run mac-serve`（端口 8020，默认 his 模式） |
| 开发（Windows） | `npm run serve`（需 SET NODE_OPTIONS=--openssl-legacy-provider） |
| 多环境 | `npm run serve:his`、`serve:gaslink`、`serve:revenue`、`serve:liuli`、`serve:scada`、`serve:iot`、`serve:runtime`、`serve:message`、`serve:apply` |
| 构建 | `npm run build`、`npm run build:preview` |
| 质量 | `npm run lint`、`npm run lint:nofix`；`npm test` / `npm run test:unit` |

### 发布前检查

1. 更新 `package.json` 版本号 → 2. 运行 `yarn lint` 或 `npm run lint` 通过 → 3. 更新 `CHANGELOG.md`（格式参考既有条目，提交人 `git config user.name`，日期当前）→ 4. `git status` 确认 → 5. 约定式 commit，可加 emoji（✨🐛⚡🔧📝♻️🎨）。详见 [references/reference.md](references/reference.md) 发布检查清单与项目内 `.cursor/commands/release.md`。

## 架构与规范要点

- **技术栈**：Vue 2.7、Vue Router 3、Vuex 3、Ant Design Vue 1.7.8、Less、Vue CLI 5、Webpack 5。
- **基础组件**：`src/base-client/` 下 XForm、XTable、XCard、XPageView 等全局注册，JSON 配置驱动；优先用配置，少写硬编码。
- **目录与命名**：目录 kebab-case；组件 PascalCase；可组合/工具 camelCase；常量 UPPER_SNAKE_CASE；注释与用户文案中文。
- **代码风格**：优先 Vue 2.7 组合 API + `<script setup>`；方法/计算属性用箭头函数；布尔用 is/has/can/should 前缀；导入顺序：Vue/第三方 → 组件 → composables → utils → 样式。完整约定见 [references/reference.md](references/reference.md)。
- **API 与数据**：统一 `src/services/apiService.js`，DataModel 转换，axios 拦截器错误处理；Webpack 别名 `@`、`@vue2-client` → `src/`。
- **环境**：开发端口 8020；Windows 需 NODE_OPTIONS=--openssl-legacy-provider；多模式代理见 `vue.config.js` 与 `.env*`。

## 关键路径速查

| 用途 | 路径 |
|------|------|
| 入口 | `src/main.js`、`src/bootstrap.js`、`src/App.vue` |
| 基础组件 | `src/base-client/components/` |
| 页面/布局/路由 | `src/pages/`、`src/layouts/`、`src/router/`（含 guards、async/router.map.js） |
| 服务/状态/配置 | `src/services/`、`src/store/modules/`、`src/config/` |
| 工具/主题/低代码 | `src/utils/`、`src/theme/`、`src/expression/`、`src/logic/` |
| 静态/测试 | `public/`、`src/assets/`；`test/`、`tests/unit/` |

## 修改与排错

- **配置/环境**：`vue.config.js`、根目录 `.env*`。
- **接口/数据流**：`src/services/apiService.js`、`api/*`、DataModel。
- **页面/路由**：`src/router/`、`src/pages/`；动态路由看 `async/router.map.js`。
- **全局/插件**：`src/bootstrap.js`、`src/base-client/plugins/`。
- **UI 组件**：优先改 JSON 配置或 X 组件用法；必须改组件再动 `base-client/components/`。
- **低代码/表达式**：`src/logic/`、`src/expression/`；前端脚本与配置见 `docs/`。

## 附加资源

- **详细参考**（代码风格、目录树、技术栈、发布清单）：需要更细约定或清单时读 [references/reference.md](references/reference.md)。
- **步骤示例**（新增页面/路由、lint、发布、API、X 组件）：需要按步骤执行时读 [references/examples.md](references/examples.md)。
- **脚本**：提交或发布前可在项目根执行 `bash .claude/skills/af-vue2-client-maintainer/scripts/lint-check.sh`，依 lint 结果退出（0=通过）。

项目内补充：根目录 CLAUDE.md、`.serena/memories/` 下代码风格/结构/技术栈、`.cursor/commands/release.md`。
