# 三资具体问题上报 — 前端技术方案

> 依据：同目录功能需求、技术方案；普通 CRUD；**无**导入导出；字段 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/dataModel/threeAssetsProblemReport/index.vue` |
| **组件名** | `ThreeAssetsProblemReport` |
| **菜单配置** | 组件路径：`dataModel/threeAssetsProblemReport/index` |
| **权限前缀** | `dataModel:threeAssetsProblemReport:list\|query\|add\|edit\|remove` |

---

## 2. API 模块

| 项 | 说明 |
| --- | --- |
| **文件** | `ruoyi-ui/src/api/dataModel/threeAssetsProblemReport.js` |
| **Base** | `/dataModel/threeAssetsProblemReport` |

| 方法 | 路径 | 说明 |
| --- | --- | --- |
| `listThreeAssetsProblemReport` | GET `/list` | 分页；筛选上报时间区间、乡镇、村 |
| `getThreeAssetsProblemReport` | GET `/{id}` | 详情 |
| `addThreeAssetsProblemReport` | POST `/` | 新增 |
| `updateThreeAssetsProblemReport` | PUT `/` | 修改 |
| `delThreeAssetsProblemReport` | DELETE `/{ids}` | 删除 |
| `listThreeAssetsProblemReportTownOptions` | GET `/townOptions` | 乡镇下拉 |
| `listThreeAssetsProblemReportVillageTree` | GET `/villageTree` | 县→乡镇→村树 |

本期 **无** 导入 / 导出。

---

## 3. 页面结构

1. **筛选**：上报时间（日期区间）、乡镇、村（可搜索）。  
2. **列表**：上报时间、乡镇、村、问题等级、问题详细描述、操作。  
3. **新增/编辑**：上报时间、所属村、问题等级、问题详细描述、处理结果（选填）；乡镇由后端按村反推，表单不选。  
4. **详情**：含乡镇；处理结果一并展示。

### 表单 / 查看分区

| 分区 | 内容 |
| --- | --- |
| 基本信息 | 上报时间、村（查看含乡镇）、问题等级、问题详细描述、处理结果 |

### 字段映射

| 界面 | 字段 | 说明 |
| --- | --- | --- |
| 上报时间 | `reportTime` | `yyyy-MM-dd HH:mm:ss`；新增默认当前时间 |
| 所属村 | `villageDeptId` | 提交只传村；乡镇后端反推落库 |
| 所属乡镇 | `townName` / `townDeptId` | 列表/详情展示；筛选可传 `townDeptId` |
| 问题等级 | `problemLevel` | `general` / `key` / `major` |
| 问题详细描述 | `problemDetail` | 必填，≤2000 |
| 处理结果 | `handleResult` | 选填，≤2000；不进列表列 |

列表查询时间区间：`beginReportTime` / `endReportTime`（`yyyy-MM-dd`）。

---

## 4. 业务规则

| 规则 | 实现 |
| --- | --- |
| CRUD | 列表 / 查看 / 新增 / 编辑 / 删除；无导入导出入口 |
| 上报时间默认 | 新增打开表单时前端填当前时间；后端空则补 `now` |
| 乡镇 | 提交只传 `villageDeptId`；乡镇由后端 `TownDeptSupport` 反推 |
| 必填 | 上报时间、村、问题等级、问题详细描述 |
| 长度 | 描述 / 处理结果 ≤2000 |
| 无唯一约束 | 同一村可多次上报 |
| 数据权限 | 乡镇/村下拉与列表沿用后端填报部门数据范围 |

---

## 5. 国际化

`dataModel.threeAssetsProblemReport`（`lang/zh|bo/dataModel.js`）；页面 `dmNs = 'threeAssetsProblemReport'`，复用 `dataModelLocaleMixin`。查看表单使用 `dm-view-form`。

枚举文案键：`problemLevel_general|key|major`。

---

## 6. 联调说明

1. 执行 `sql/biz_three_assets_problem_report.sql`（若尚未执行）；已有库执行 `sql/biz_three_assets_problem_report_drop_problem_type.sql`。  
2. 菜单组件 `dataModel/threeAssetsProblemReport/index`，权限见 §1 / 后端技术方案菜单示例。  
3. 验证：新增默认上报时间、按村反推乡镇、问题等级枚举、描述长度、时间区间筛选、无导入导出入口。

---

## 7. 文件清单

| 类型 | 路径 |
| --- | --- |
| 页面 | `ruoyi-ui/src/views/dataModel/threeAssetsProblemReport/index.vue` |
| API | `ruoyi-ui/src/api/dataModel/threeAssetsProblemReport.js` |
| i18n | `lang/zh/dataModel.js`、`lang/bo/dataModel.js` → `threeAssetsProblemReport` |
| 前端技术方案 | 本文档 |

---

## 8. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.1 | 删除「问题类型」字段及相关筛选/枚举 |
| 1.0 | 初版：普通 CRUD；上报时间默认；村反推乡镇；无导入导出 |
