# 项目与补贴 — 补贴 — 前端技术方案

> 依据：`项目与补贴-补贴技术方案.md`；作为 `policy/projectSubsidy/index.vue` 中 **补贴列表** Tab 实现。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **组件文件** | `ruoyi-ui/src/views/policy/projectSubsidy/MatterTab.vue` |
| **父页面** | `policy/projectSubsidy/index`（`el-tabs` 第二个 Tab） |
| **权限前缀** | `industryPolicy:subsidyMatter:` |

---

## 2. API

| 文件 | Base Path |
| --- | --- |
| `ruoyi-ui/src/api/policy/subsidyMatter.js` | `/industryPolicy/subsidyMatter` |

方法：`listSubsidyMatter`、`getSubsidyMatter`、`addSubsidyMatter`、`updateSubsidyMatter`、`delSubsidyMatter`、`publishSubsidyMatter`、`offlineSubsidyMatter`。

---

## 3. 列表与查询

- **筛选**：`keyword`（补贴名称/简介 OR）、`grantStatus`（1/2）、`publishStatus`（0/1）。
- **表格**：补贴名称、简介、发放状态、发布状态、明细附件、封面、发布时间、创建时间。
- **操作**：未发布 → 查看/编辑/删除/发布；已发布 → 查看/下架。
- **批量删除 / 导出**：`industryPolicy/subsidyMatter/export`。

---

## 4. 表单与校验

| 字段 | 规则 |
| --- | --- |
| `subsidyName` | 必填，1～20 字 |
| `introduction` | 选填，≤50 字 |
| `grantStatus` | 必填；新建默认 `1`（申请中） |
| `detailFileUrl` / `detailFilePath` / `detailFileName` | **必填**；pdf/md/doc/xls/ppt 等 ≤30MB |
| `coverFileUrl` / `coverFilePath` | 选填，jpg/jpeg/png ≤10MB |
| `remark` | 选填，≤500 字 |

上传走 `POST /common/upload`，提交时带 url、path、originalFilename。

---

## 5. 国际化

`policy.js` 中 `subsidyMatter` 节点；`pubNs: 'subsidyMatter'` + `policyPublicityLocaleMixin`。

---

## 6. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：嵌入项目与补贴 Tab；明细附件必填 + 封面选填 |
| 1.1 | 草稿 §6：发布/下架；与发放状态独立 |
