# 隔离圈位管理 — 前端技术方案

> 依据：`隔离圈位管理功能需求.md`、`隔离圈位管理技术方案.md`；布局对齐 `tradeMarket/distributor/index.vue`（双 `el-card`）；字段 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/tradeMarket/isolationPen/index.vue` |
| **组件名** | `TradeMarketIsolationPen` |
| **菜单配置** | 组件路径：`tradeMarket/isolationPen/index`（「交易市场平台」目录下，手工配置） |
| **权限前缀** | `tradeMarket:isolationPen:list\|query\|add\|edit\|remove\|config` |

---

## 2. API 模块

| 项 | 说明 |
| --- | --- |
| **文件** | `ruoyi-ui/src/api/tradeMarket/isolationPen.js` |
| **圈位 Base** | `/tradeMarket/isolationPen` |

| 方法 | HTTP | URI |
| --- | --- | --- |
| `listIsolationPen` | GET | `/list` |
| `getIsolationPen` | GET | `/{id}` |
| `addIsolationPen` | POST | `/` |
| `updateIsolationPen` | PUT | `/` |
| `delIsolationPen` | DELETE | `/{ids}` |
| `getIsolationSetting` | GET | `/setting` |
| `updateIsolationSetting` | PUT | `/setting` |

---

## 3. 页面结构

1. **筛选区**：圈位编号（模糊）；搜索、重置、新增、**设置隔离天数**（`config` 权限）。  
2. **列表区**：圈位编号、备注、操作（查看/编辑/删除）。  
3. **新增/编辑弹窗**：编号只读；备注 textarea（≤50 字）。  
4. **查看弹窗**：编号、备注、审计信息。  
5. **设置隔离天数弹窗**：`el-input-number`（1～3650，整数）+ 单位「天」；配置备注 ≤50 字。

---

## 4. 业务规则（前端）

| 规则 | 实现 |
| --- | --- |
| 圈位编号 | 新增不传；编辑/查看只读 `penCode` |
| 圈位备注 | 选填；`validatePenRemark` 最长 50；提交 trim 后空串为 `null` |
| 列表筛选 | `queryParams.penCode` 原样提交，后端模糊 |
| 默认隔离天数 | `defaultDays` 必填；`MIN=1`、`MAX=3650`；`el-input-number` `:precision="0"` |
| 配置备注 | 选填 ≤50；`validateSettingRemark` |
| 配置回显 | 打开设置弹窗时 `getIsolationSetting`；无数据则空表单 |
| 配置保存 | `updateIsolationSetting`；成功提示 `msgSettingOk`，不刷新圈位列表 |

---

## 5. 国际化

| 项 | 说明 |
| --- | --- |
| **语言包** | `tradeMarket.isolationPen`（`lang/zh/tradeMarket.js`、`lang/bo/tradeMarket.js`） |
| **Mixin** | `tradeMarketLocaleMixin`，`tmNs = 'isolationPen'` |
| **公共文案** | `tradeMarket.common.*` |

---

## 6. 联调说明

1. 部署 `BizIsolationPenController` 及 `biz_isolation_pen`、`biz_isolation_setting` 表。  
2. 菜单 `tradeMarket/isolationPen/index`，含 `config` 按钮权限。  
3. 验证：圈位 CRUD、编号模糊、设置天数首次保存与覆盖、权限按钮显隐。

---

## 7. 文件清单

| 类型 | 路径 |
| --- | --- |
| 页面 | `ruoyi-ui/src/views/tradeMarket/isolationPen/index.vue` |
| API | `ruoyi-ui/src/api/tradeMarket/isolationPen.js` |
| i18n | `ruoyi-ui/src/lang/zh/tradeMarket.js`、`lang/bo/tradeMarket.js`（`isolationPen` 节点） |

---

## 8. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：双卡片；圈位 CRUD + 设置隔离天数弹窗；复用 tradeMarket mixin |
