# 科技项目与活动 — 前端技术方案 > 依据:`doc/创新应用平台/科技项目与活动/科技项目与活动技术方案.md`、`科技项目与活动功能需求.md`;布局对齐 `breedingStandards/breedingManage/index.vue`(双 `el-card`);字段 **小驼峰**。 --- ## 1. 页面与路由 | 项 | 说明 | | --- | --- | | **Vue 路径** | `ruoyi-ui/src/views/innovationPlatform/techProjectGuide/index.vue` | | **组件名** | `TechProjectGuide` | | **菜单配置** | 若依「菜单管理」组件路径:`innovationPlatform/techProjectGuide/index`(手工配置,本文档不提供 SQL) | | **权限前缀** | `innovationPlatform:techProjectGuide:` | --- ## 2. API 模块 | 项 | 说明 | | --- | --- | | **文件** | `ruoyi-ui/src/api/innovationPlatform/techProjectGuide.js` | | **Base Path** | `/innovationPlatform/techProjectGuide` | 封装方法:`listTechProjectGuide`、`getTechProjectGuide`、`addTechProjectGuide`、`updateTechProjectGuide`、`delTechProjectGuide`、`publishTechProjectGuide`、`offlineTechProjectGuide`。 新增 Body 支持 `saveAndPublish: true` 表示保存并发布。 --- ## 3. 列表与查询 - **分页**:`pageNum`、`pageSize`(默认 20)。 - **筛选**:`projectName`(模糊);`projectType`(资讯类别编码精确);`publishStatus`(0/1 精确);类型选项由 `listInformationCategoryChildren('002')` 动态加载。 - **表格列**:项目名称、项目类型、申报对象、申报开始/截止、项目周期、负责人、联系方式、发布日期、发布状态、操作列。 --- ## 4. 表单与上传 - **字段**:项目名称(1~20)、项目类型(资讯类别下拉,`code`/`name`)、项目简介(1~50)、申报对象(1~200)、申报起止日期、项目周期(1~50)、申报条件/流程(必填多行)、负责人(1~10)、手机号、附件(选填)、封面(选填)。 **项目类型接口**:`ruoyi-ui/src/api/category/informationCategory.js` — `GET /category/informationCategory/children?parentCode=002`。 - **校验**:截止 ≥ 开始;手机号 `^1[3-9]\d{9}$`;附件扩展名与 ≤30MB;封面 jpg/jpeg/png 与 ≤10MB。 - **新增弹窗按钮**:「发布」(`saveAndPublish`)、「确定」(仅保存未发布)。 - **编辑**:仅 `publishStatus === 0` 可打开并保存。 --- ## 5. 操作按钮与状态机 | 按钮 | 显示条件 | 权限标识 | | --- | --- | --- | | 查看 | 有 query | `innovationPlatform:techProjectGuide:query` | | 编辑 | 未发布 | `innovationPlatform:techProjectGuide:edit` | | 删除 | 未发布 | `innovationPlatform:techProjectGuide:remove` | | 发布 | 未发布 | `innovationPlatform:techProjectGuide:publish` | | 下架 | 已发布 | `innovationPlatform:techProjectGuide:offline` | 详情弹窗内对未发布/已发布记录提供发布、下架快捷操作。 --- ## 6. 国际化 | 项 | 说明 | | --- | --- | | **语言包** | `src/lang/zh/innovationPlatform.js`、`src/lang/bo/innovationPlatform.js` | | **注册** | `zh-CN.js`、`bo.js` 中 `import innovationPlatform` | | **Mixin** | `src/mixins/innovationPlatformLocaleMixin.js`(`ipT`、`ipCommon`、`publishStatusText`) | | **组件** | `data.ipNs = 'techProjectGuide'` | --- ## 7. 联调说明 1. 部署后端 `BizTechProjectGuideController` 及 `biz_tech_project_guide` 表。 2. 在菜单管理中配置路由与按钮权限(见后端技术方案 §4)。 3. 验证:保存并发布、列表发布/下架、已发布不可编辑、附件上传与替换。 --- ## 8. 文件清单 | 类型 | 路径 | | --- | --- | | 页面 | `ruoyi-ui/src/views/innovationPlatform/techProjectGuide/index.vue` | | API | `ruoyi-ui/src/api/innovationPlatform/techProjectGuide.js` | | Mixin | `ruoyi-ui/src/mixins/innovationPlatformLocaleMixin.js` | | i18n | `ruoyi-ui/src/lang/zh/innovationPlatform.js`、`lang/bo/innovationPlatform.js` | --- ## 9. 修订记录 | 版本 | 说明 | | --- | --- | | 1.0 | 初版:双卡片 CRUD + 发布/下架;新增表单双按钮 |