# 科技项目与活动 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 科技项目与活动(科技项目指南) | | 目标 | 在业务后台维护科技项目申报指南,支持录入、查询、发布与下架,为申报方提供规范、可检索的项目信息 | | 关联系统 | 业务后台;面向公众或申报端的展示入口由产品统一规划,**本模块**侧重指南内容的**后台维护与发布控制** | | 修订依据 | 同目录 `科技项目与活动-草稿.md`、原型图 `科技项目与活动.png` | 本文档仅描述**功能需求与业务规则**,不涉及库表结构、接口路径、请求体字段命名、HTTP 报文及技术栈选型。 --- ## 2. 术语与枚举 ### 2.1 项目类型(资讯类别编码,单选) 项目类型持久化与接口传参均为 **资讯类别编码**(`varchar`)。可选范围由资讯类别 **`parentCode=002`**(科技项目指南)的直接下级维护: | 编码 | 名称(示例) | | --- | --- | | `002001` | 高新技术 | | `002002` | 农业科技 | | `002003` | 社会发展 | | `002004` | 基础研究 | 新增/修改时编码须在上述接口返回的有效集合内;列表筛选为 **编码精确匹配**。 ### 2.2 发布状态 每条指南独立维护**发布状态**,与业务字段内容无关: | 取值 | 含义概要 | | --- | --- | | **未发布** | 新建保存、或下架回流后的状态;仅后台可见(或按产品约定对内部角色可见);可编辑、可删除、可执行发布 | | **已发布** | 已对外生效的指南;**不可修改**、**不可删除**,须先下架后再维护 | **下架**后回到 **未发布**,可再次编辑、删除或发布,**无须新建**一条记录。 ### 2.3 申报时间 - 由 **申报开始日期**、**申报截止日期** 两个自然日组成,格式均为 **YYYY-MM-DD**。 - **业务含义:** 仅在该闭区间内(含起止日,除非产品另行约定「截止日不含当日」)受理申报;区间外指南仍可展示为「已结束申报」或隐藏申报入口,由对外展示规则单独定义。 - **校验:** 申报截止日期 **≥** 申报开始日期。 ### 2.4 记录说明 本模块管理对象为**一条科技项目指南**,包含项目基本信息、申报说明、负责人与联系方式,以及可选的附件与封面。指南通过 **§2.2 发布状态** 控制是否对外展示及后台改删权限。 --- ## 3. 功能范围 - 科技项目指南的**新增、修改、删除、分页列表查询、详情查看** - 项目类型、申报时间、文本与附件/封面等字段的录入与校验 - **发布、下架**及发布状态约束下的操作权限 - 按**项目名称**模糊、**项目类型**精确匹配的列表筛选 - 面向使用方的业务错误与校验提示(见第 **8** 章) **不在本模块范围(除非后续单独立项):** 在线申报表单、审批流、申报人数统计、消息推送、与补贴发放等业务单据的自动关联等。 --- ## 4. 业务流程概览 ```mermaid flowchart TD A[新增指南] --> B{保存方式} B -->|仅保存| C[未发布] B -->|保存并发布| D[已发布] C --> E[列表查询/筛选] D --> E E --> F[查看详情] E --> G[修改] E --> H[删除] E --> I[发布] E --> J[下架] G --> C H --> E I --> D J --> C C --> I D --> J F --> E ``` 1. **新建:** 填写指南信息 → **仅保存**则处于 **未发布**;若在表单选择 **保存并发布** 且校验通过,则直接进入 **已发布** 并记录发布日期。 2. **维护:** 仅 **未发布** 指南可修改全部可编辑字段;保存后仍为未发布(除非再次执行发布)。 3. **发布:** **未发布** 且数据完整合法 → **已发布**,记录**发布日期**(见 **§5.6**)。 4. **下架:** **已发布** → **未发布**,结束对外展示,可再编辑、再发布。 5. **查询:** 按项目名称、项目类型筛选,分页浏览。 6. **删除:** 仅 **未发布** 可删;**已发布** 须先下架。 --- ## 5. 详细功能需求 ### 5.1 新增科技项目指南 | 字段 | 规则 | | --- | --- | | 项目名称 | **必填**;长度 **1~20** 个字符(按字符计,与项目全局一致) | | 项目类型 | **必填**;单选,取值限定为 **§2.1** | | 项目简介 | **必填**;长度 **1~50** 个字符 | | 申报对象 | **必填**;说明面向的申报主体(如企业、合作社、科研院所等);长度建议 **1~200** 个字符(若产品需更长,单独评审后调整上限) | | 申报开始日期 | **必填**;格式 **YYYY-MM-DD** | | 申报截止日期 | **必填**;格式 **YYYY-MM-DD**;须 **≥ 申报开始日期**(**§2.3**) | | 项目周期 | **必填**;说明项目实施或执行周期(如「12 个月」「2026-01 至 2026-12」);长度建议 **1~50** 个字符 | | 申报条件 | **必填**;多行文本;**无字数上限**(界面宜提示过长内容的影响) | | 申报流程 | **必填**;多行文本;**无字数上限** | | 负责人 | **必填**;长度 **1~10** 个字符 | | 联系方式 | **必填**;须为合法**中国大陆手机号**(11 位、1 开头等,与项目全局手机号规则一致) | | 附件材料 | **选填**;**单个**文件上传;允许后缀:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`ppt`、`pptx`;单文件 ≤ **30 MB** | | 封面 | **选填**;**单个**图片上传;允许后缀:`jpg`、`jpeg`、`png`(可扩展 `webp`);单文件 ≤ **10 MB** | **保存方式(与原型一致):** | 操作 | 行为 | | --- | --- | | **确定 / 保存** | 校验通过后保存,**发布状态为未发布**;不写入对外发布日期(或发布日期为空) | | **发布**(表单内,如橙色按钮) | 校验通过后保存,**发布状态为已发布**,并记录**发布日期**为操作当日(**§5.6**) | | **取消** | 关闭表单,不保存 | **必填字段汇总:** 项目名称、项目类型、项目简介、申报对象、申报开始日期、申报截止日期、项目周期、申报条件、申报流程、负责人、联系方式。 **校验摘要:** | 规则 | 说明 | | --- | --- | | 长度 | 各字段超出上限时拒绝保存并提示 | | 枚举 | 项目类型须为 **§2.1** 有效资讯类别编码之一 | | 申报时间 | 开始、截止日期格式合法;截止 **≥** 开始 | | 手机号 | 不符合规则时拒绝保存 | | 附件/封面 | 后缀、大小不符时拒绝上传或拒绝保存;未上传附件/封面时允许保存(选填) | **保存结果:** 生成一条指南记录,初始为 **未发布**(仅保存)或 **已发布**(保存并发布),可被列表查询、查看;未发布记录可继续修改、删除或发布。 --- ### 5.2 查询科技项目指南列表 - **项目名称:** **模糊**匹配;未输入则不过滤。 - **项目类型:** **精确**匹配;未选择则不过滤。 - **发布状态(建议):** **精确**匹配(未发布 / 已发布);未选择则不过滤;便于运营区分待发布与已上线指南。 - **分页:** 默认 **每页 20 条**,首页为第一页;单页条数上限与项目列表通用规范一致。 - **排序:** 默认按 **发布日期倒序**(已发布且日期较新者靠前);未发布记录可按 **创建时间倒序** 排在已发布之后,或统一按 **创建时间倒序**(产品择一,全文一致)。 **列表宜展示:** 项目名称、项目类型、申报对象、申报开始日期、申报截止日期、项目周期、负责人、联系方式、**发布日期**(未发布可为「—」或空)、**发布状态**,以及操作列。 **操作列与 §6 矩阵一致:** | 发布状态 | 行内操作 | | --- | --- | | 未发布 | 查看、发布、编辑、删除 | | 已发布 | 查看、下架 | --- ### 5.3 修改科技项目指南 - **状态约束:** 仅 **未发布** 指南允许进入编辑并保存。 - **已发布:** **不可修改**任何业务字段;须先 **下架**(**§5.6**)。 - **可修改项:** 与 **§5.1** 相同(含替换附件、封面)。 - **保存约束:** 提交时须重新满足 **§5.1** 全部校验;必填项不得为空。 - **附件/封面替换:** 更换并保存成功后,宜删除被替换的旧文件,避免存储残留(实现阶段约定)。 - **编辑表单按钮:** 未发布状态下通常仅提供 **保存**、**取消**;若产品允许在编辑页直接 **发布**,行为同 **§5.6**,发布后变为已发布。 --- ### 5.4 删除科技项目指南 - **允许删除:** **未发布** 且具备删除权限的记录。 - **不允许删除:** **已发布** 记录;须先 **下架**。 - **删除后果:** 记录从列表移除;关联附件、封面文件一并清理(若有)。 - **确认:** 删除前宜二次确认;支持批量删除时须提示选中条数。 --- ### 5.5 查看科技项目指南详情 - **展示内容:** **§5.1** 全部业务字段(含附件下载/预览入口、封面预览)、**发布状态**、**发布日期**;宜含创建人/创建时间、修改人/修改时间(若系统有审计字段)。 - **交互:** - **未发布:** 只读详情,可提供 **编辑**、**发布**、**删除** 入口(与列表操作等价)。 - **已发布:** 只读详情,可提供 **下架** 入口;**不提供编辑、删除**。 - **附件:** 已上传时展示文件名与下载/打开能力;未上传时展示「无」或「—」。 --- ### 5.6 发布与下架 #### 发布 | 项 | 说明 | | --- | --- | | **入口** | 列表行内「发布」、详情页「发布」、新增表单「发布」按钮(与「仅保存」区分) | | **前置** | 当前为 **未发布**;**§5.1** 必填项与校验均已满足 | | **结果** | 发布状态变为 **已发布**;记录 **发布日期** 为操作当日(自然日 **YYYY-MM-DD**) | | **重复发布** | 已发布记录不可再次发布 | #### 下架 | 项 | 说明 | | --- | --- | | **入口** | 列表行内「下架」、详情页「下架」 | | **前置** | 当前为 **已发布** | | **结果** | 发布状态变为 **未发布**;对外展示结束;**不删除**记录与附件、封面;可再编辑、再发布 | | **发布日期** | 下架后是否保留历史上次发布日期用于审计,或清空,由产品确认(**建议保留**上次发布日期只读展示,并记录下架操作时间若系统支持) | --- ## 6. 状态与操作矩阵(汇总) 在**已授权**前提下(菜单与按钮级权限按项目角色配置): | 当前发布状态 | 查看 | 新增 | 修改 | 发布 | 下架 | 删除 | | --- | --- | --- | --- | --- | --- | --- | | 未发布 | ✓ | — | ✓ | ✓ | — | ✓ | | 已发布 | ✓ | — | ✗ | — | ✓ | ✗ | | 列表/global | — | ✓ | — | — | — | — | - 「新增」为列表工具栏入口,新建记录初始为 **未发布**(除非表单选择保存并发布)。 - 下架后按 **未发布** 行权限执行。 --- ## 7. 列表筛选与业务约束补充 | 约束 | 说明 | | --- | --- | | 枚举展示 | 项目类型、发布状态在列表/详情中展示为中文标签,与 **§2.1、§2.2** 一致 | | 申报期展示 | 列表可同时展示「申报开始」「申报截止」两列;详情可合并展示为「YYYY-MM-DD ~ YYYY-MM-DD」 | | 同名项目 | 不强制项目名称全局唯一;若运营需要唯一性,另文约定并在保存时校验 | | 已发布内容一致性 | 已发布指南对外展示内容应与发布时保存内容一致;下架后修改再发布,以外部可见最新发布版本为准 | | 并发 | 同一条指南连续保存时,以后一次提交为准;发布、下架宜防重复点击(前端禁用或二次确认) | --- ## 8. 错误与提示约定 面向使用方的提示宜**语义明确、可区分**,例如: | 场景 | 提示方向(示例) | | --- | --- | | 必填项缺失 | 标明缺失项(如「请填写项目名称」) | | 字数超限 | 「项目名称不能超过 20 字」「项目简介不能超过 50 字」 | | 申报截止日期早于开始日期 | 「申报截止日期不能早于开始日期」 | | 手机号不合法 | 「请输入正确的手机号码」 | | 项目类型非法 | 「项目类型不在可选范围内」 | | 附件类型或大小不符 | 「仅支持 pdf、doc… 格式」「附件不能超过 30MB」 | | 封面类型或大小不符 | 「仅支持 jpg、png 格式」「封面不能超过 10MB」 | | 已发布不可编辑/删除 | 「已发布指南须先下架后再修改/删除」 | | 删除确认取消 | 不执行删除,无成功提示 | 本文档**不约定** HTTP 状态码、错误码字段名及接口报文结构(如 `code`、`msg`、`data`)。 --- ## 9. 非功能需求(建议) | 类别 | 建议 | | --- | --- | | 权限 | 查询、新增、修改、删除、发布、下架是否分角色(如仅科技管理员可发布) | | 审计 | 新增、修改、删除、发布、下架记操作日志 | | 附件安全 | 上传文件病毒扫描、访问鉴权(若附件含敏感说明) | | 双语 | 后台字段标签与提示与项目 i18n 规范一致(汉语 + 藏文,若适用) | --- ## 10. 修订说明(相对草稿) | 草稿条目 | 优化处理 | | --- | --- | | 第 6、7 条:未发布/已发布操作 | 固化为 **§2.2**、**§5.6**、**§6 矩阵**;明确已发布不可改删 | | 第 7 条:异常返回 `code/msg/data` | **移出**本文档 | | 第 8 条:技术栈 | **移出**本文档 | | 检出率、疫情等无关表述 | 无;本模块不涉及 | | 附件 `ppt` 笔误 | 统一为 `ppt`、`pptx` | | 项目简介 50 字、项目名称 20 字 | 写入 **§5.1** 并补充下限 1 字 | | 申报时间「开始~结束」 | 拆为两字段并增加 **§2.3** 日期关系校验 | | 附件、封面 | 明确为**选填**及格式、大小上限 | | 表单「发布」与「确定」 | 区分 **仅保存(未发布)** 与 **保存并发布(已发布)** | | 列表「发布日期」 | 与发布操作绑定,未发布展示为空或「—」 | | 无流程图与矩阵 | 增补 **§4**、**§6** | --- ## 11. 与相关文档关系 | 文档 | 关系 | | --- | --- | | `科技项目与活动-草稿.md` | 初稿功能列表 | | `科技项目与活动.png` | 列表与新增表单原型参考 | | 《科技项目与活动技术方案》(待编) | 库表、接口、权限标识 | | 《科技项目与活动管理测试用例》(待编) | 用例与本文档章节对应 | | 《科技项目与活动前端技术方案》(待编) | 前端页面、路由、i18n |