# 产业政策宣传 — 前端技术方案

> 依据：`doc/产业政策/产业政策宣传/产业政策宣传功能管理技术方案.md`；页面布局对齐 `ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue`；请求与表单字段统一 **小驼峰**。

---

## 1. 页面与路由

| 项 | 说明 |
| --- | --- |
| **Vue 路径** | `ruoyi-ui/src/views/policy/publicity/index.vue` |
| **组件名** | `PolicyPublicity` |
| **菜单配置** | 若依「菜单管理」组件路径：`policy/publicity/index` |
| **权限前缀** | `industryPolicy:publicity:` |

---

## 2. API 模块

| 项 | 说明 |
| --- | --- |
| **文件** | `ruoyi-ui/src/api/policy/publicity.js` |
| **Base Path** | `/industryPolicy/publicity` |

封装方法：`listPolicyPublicity`、`getPolicyPublicity`、`addPolicyPublicity`、`updatePolicyPublicity`、`delPolicyPublicity`、`publishPolicyPublicity`、`offlinePolicyPublicity`。

---

## 3. 列表与查询

- **分页**：`pageNum`、`pageSize`（默认 20）。
- **筛选**：`keyword`（政策名称或简介模糊 OR）；`policyLevel`（1～4 精确，可空）；`publishStatus`（0 未发布 / 1 已发布，可空）。
- **表格列**：政策名称、政策层级、简介、出台日期、政策文件链接、封面缩略图、发布状态、发布日期、创建时间、操作列。

---

## 4. 表单与上传

- **新增/编辑**：政策名称（1～20）、政策层级、简介（≤50，选填）、出台日期（不得晚于今天）、政策描述（≤50，必填）、政策文件（选填）、封面（选填）。
- **上传**：`POST /common/upload`；政策文件映射 `policyFileUrl` / `policyFilePath` / `policyFileName`；封面映射 `coverFileUrl` / `coverFilePath`。
- **前端校验**：政策文件扩展名与 ≤30MB；封面 jpg/jpeg/png 与 ≤10MB；文件名不含英文逗号。
- **编辑态**：仅 `publishStatus === 0` 时可保存与替换附件。

---

## 5. 操作按钮与状态机

本模块**无知识库**，仅一维 `publishStatus`。

| 按钮 | 显示条件 | 权限标识 |
| --- | --- | --- |
| 查看 | 有 query 权限 | `industryPolicy:publicity:query` |
| 编辑 | 未发布 | `industryPolicy:publicity:edit` |
| 删除 | 未发布 | `industryPolicy:publicity:remove` |
| 发布 | 未发布 | `industryPolicy:publicity:publish` |
| 下架 | 已发布 | `industryPolicy:publicity:offline` |

下架后可再次编辑、发布，**无须新建**记录。

---

## 6. 国际化

| 项 | 说明 |
| --- | --- |
| **语言包** | `src/lang/zh/policy.js`、`src/lang/bo/policy.js` |
| **注册** | `zh-CN.js`、`bo.js` 中 `import policy` |
| **Mixin** | `src/mixins/policyPublicityLocaleMixin.js`（`pubT`、`publishStatusText`） |
| **组件** | `data.pubNs = 'publicity'`，文案键 `policy.publicity.*` |

---

## 7. 联调说明

1. 确认后端 `IndustryPolicyPublicityController` 已部署，`VUE_APP_BASE_API` 代理正确。
2. 菜单与按钮权限与技术方案 §4 一致。
3. 列表默认排序、发布/下架状态与库表 `publish_status` 一致。

---

## 8. 修订记录

| 版本 | 说明 |
| --- | --- |
| 1.0 | 初版：对齐 breedingManage 双卡片布局；无知识库按钮；政策文件选填 |
