# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## 项目概述

**数字支行辅助管理系统** - 基于 RuoYi-Vue 框架的银行客户网格化管理平台。

这是一个全栈项目：
- **前端**: `ruoyi-ui/` - Vue 2.6 + Element UI
- **后端**: `../ibs/` - Java Spring Boot (若依框架)

## 常用命令

### 开发
```bash
# 安装依赖（建议使用国内镜像）
npm install --registry=https://registry.npmmirror.com

# 启动开发服务器 (默认端口80)
npm run dev

# Node.js 版本兼容性问题的启动方式
npm run dev_t
```

### 构建
```bash
# 构建生产环境
npm run build:prod

# 构建测试环境
npm run build:stage

# 构建预发布环境
npm run build:pre
```

### 代码质量
```bash
# ESLint 检查
npm run lint
```

### Mock 服务
```bash
# 启动 Mock 服务器
npm run mock
```

## 项目架构

### 目录结构

```
ruoyi-ui/
├── src/
│   ├── api/           # API 接口层，按业务模块分组
│   ├── assets/        # 静态资源（图片、样式、图标SVG）
│   ├── components/    # 全局通用组件
│   ├── directive/     # Vue 自定义指令
│   ├── layout/        # 布局组件（侧边栏、头部等）
│   ├── map/           # 地图相关工具/配置
│   ├── plugins/       # 插件配置
│   ├── router/        # 路由配置
│   ├── store/         # Vuex 状态管理
│   ├── utils/         # 工具函数
│   ├── views/         # 页面组件
│   ├── App.vue        # 根组件
│   ├── main.js        # 入口文件
│   └── permission.js  # 路由权限控制
├── public/
│   ├── baidu/         # 百度地图静态资源
│   └── index.html
├── mock/              # Mock 数据
├── .env.development   # 开发环境配置
├── .env.production    # 生产环境配置
└── .env.staging       # 测试环境配置
```

### 核心业务模块

| 目录 | 功能 |
|------|------|
| `views/grid/` | 网格管理（创建、列表、地图、走访、绩效） |
| `views/customer/` | 客户管理（360视图、建档、客群、标签） |
| `views/system/` | 系统管理（用户、角色、菜单、字典） |
| `views/monitor/` | 系统监控（日志、在线用户、服务监控） |
| `views/configure/` | 配置管理（级别配置、参数设置、模板） |
| `views/approveCenter/` | 审批中心 |
| `views/gridSearch/` | 网格搜索（管户、绩效、公海池） |

### API 层组织

API 请求按业务模块组织在 `src/api/` 目录：
- 每个模块导出具体的请求函数
- 使用 `src/utils/request.js` 中的 axios 实例
- 默认添加 Bearer Token 认证
- 统一错误处理（401/500/601等状态码）

### 状态管理 (Vuex)

Store 模块位于 `src/store/modules/`：
- `app` - 应用状态（侧边栏、设备类型）
- `user` - 用户信息
- `permission` - 权限路由
- `settings` - 系统设置
- `dict` - 字典数据
- `tagsView` - 标签页视图
- `featuredAreas` - 特色区域
- `rate` - 汇率相关

使用 `vuex-persistedstate` 将 settings 持久化到 localStorage。

### 路由系统

- 路由分为 `constantRoutes`（静态路由）和 `dynamicRoutes`（动态路由）
- 动态路由基于用户权限（permissions）动态加载
- 使用 `src/permission.js` 进行路由守卫和权限控制
- 支持嵌套路由和路由元信息配置

### 百度地图集成

项目深度集成百度地图 API：
- 静态资源位于 `public/baidu/`
- 地图相关 API 在 `src/api/grid/` 下
- 支持 WebGL 渲染、绘制管理器、热力图等

## 环境变量配置

| 变量 | 说明 |
|------|------|
| `VUE_APP_BASE_API` | 后端 API 基础路径 |
| `VUE_APP_MOCK_API` | Mock API 路径 |
| `VUE_APP_MOCK` | 是否启用 Mock |
| `VUE_APP_STAGE_URL` | 测试环境地址 |
| `VUE_APP_BAIDU_URL` | 百度地图服务地址 |
| `VUE_APP_SHARP_URL` | SHARP 服务地址 |

## 代码规范

- ESLint 配置基于 `plugin:vue/recommended`
- 使用单引号、2空格缩进
- 组件名使用 PascalCase
- pre-commit 钩子自动执行 lint-staged

## 全局组件

以下组件已全局注册，可直接使用：
- `Pagination` - 分页组件
- `RightToolbar` - 表格工具栏
- `Editor` - 富文本编辑器
- `FileUpload` - 文件上传
- `ImageUpload` - 图片上传
- `ImagePreview` - 图片预览
- `DictTag` - 字典标签
- `treeselect` - 树形选择器
- `DownloadBtn` - 下载按钮

## 全局方法

通过 `Vue.prototype` 挂载的全局方法：
- `getDicts()` - 获取字典数据
- `getConfigKey()` - 获取配置项
- `parseTime()` - 时间格式化
- `resetForm()` - 重置表单
- `download()` - 文件下载
- `handleTree()` - 处理树形数据
