5.3 KiB
5.3 KiB
项目长期记忆
项目信息
- 项目名称:广西决策咨询网(jczxw-pc)
- PC端路径:/Users/gxwebsoft/VUE/jczxw2-pc(Nuxt 3 + Ant Design Vue + Tailwind CSS)
- Java后端路径:/Users/gxwebsoft/JAVA/jczxw-java
- 后台管理:集成在PC端 /admin 目录下(不单独部署)
技术栈
- Nuxt 3 + Vue 3 + TypeScript
- Ant Design Vue
- Tailwind CSS
- i18n(中英文)
- @nuxt/content
网站结构(已确认菜单)
一级菜单
首页、政策要闻、决策咨询、决策参考、专家资讯、智库观察、建言献策、会员服务、翰墨文谈、关于
二级菜单
- 政策要闻:党中央国务院信息、自治区党委政府信息、其他(厅委办)信息、最新发布
- 决策咨询:市县决策、前沿观察、行业资讯、企业动态、研究热点、学术活动、其他汇编
- 决策参考:政策原文、深度解读、研究成果、专题研究、东盟研究、数据服务(会员限制)
- 专家资讯:专家视点、专家动态、专家申请(含资料上传审核系统)
- 智库观察:智库介绍、智库视角
- 建言献策:后台处理显示,需注册身份
- 会员服务:企业咨询、专项服务
- 翰墨文谈:(独立栏目)
- 关于我们:学会简介、组织机构、学会章程、咨询服务、加入我们(含会员申请+资料上传审核)
已有页面
- app/pages/index.vue(首页,已完成)
- app/pages/news/index.vue(政策要闻列表,已完成)
- app/pages/consultation/index.vue(决策咨询列表,已完成)
- app/pages/reference/index.vue(决策参考列表,已完成)
- app/pages/expert/index.vue(专家资讯列表)
- app/pages/expert/apply.vue(专家申请)
- app/pages/expert/[id].vue(专家详情页,已完成)
- app/pages/think-tank/index.vue(智库观察列表,已完成)
- app/pages/suggestions/index.vue(建言献策,含表单,已完成)
- app/pages/membership/index.vue(会员服务,已完成)
- app/pages/hanmo/index.vue(翰墨文谈列表,已完成)
- app/pages/about/index.vue(关于我们,已完成)
- app/pages/about/organization.vue(组织机构,已完成)
- app/pages/about/charter.vue(学会章程,已完成)
- app/pages/about/consultation.vue(咨询服务,已完成)
- app/pages/about/join/enterprise.vue(企业会员申请)
- app/pages/about/join/personal.vue(个人会员申请)
- app/pages/article/[id].vue(文章详情页,已完成)
- app/pages/profile/index.vue(个人中心,已完成)
- app/pages/contact.vue(联系我们,已完成)
- app/pages/error.vue(404/错误页面,已完成)
- app/pages/login.vue(登录页,已适配)
- app/pages/agreement.vue(注册协议,已适配)
- app/pages/privacy.vue(隐私政策,已适配)
后台管理页面(/admin)
- admin/index.vue(管理首页)
- admin/articles.vue(文章管理,含新增/编辑/删除)
- admin/categories.vue(栏目管理)
- admin/article-categories.vue(文章分类管理)
- admin/announcements.vue(公告管理)
- admin/experts/index.vue(专家列表)
- admin/experts/review.vue(专家审核)
- admin/members/index.vue(会员列表)
- admin/members/review.vue(会员审核)
- admin/suggestions/index.vue(建言管理)
- admin/users.vue(用户管理)
- admin/downloads.vue(资料下载管理)
- admin/applications/expert.vue(专家申请管理)
- admin/applications/member.vue(会员申请管理)
- admin/settings.vue(系统设置,已适配为决策咨询网配置)
- admin/tickets.vue(工单管理,未接入导航)
关键组件
- app/components/ArticleListPage.vue(通用文章列表组件,支持分类筛选)
- app/components/SiteHeader.vue(网站头部导航,已从静态菜单改为从 getSiteInfo 接口动态读取)
- app/components/SiteFooter.vue(网站底部)
- app/config/admin-nav.ts(后台导航配置)
- app/config/nav.ts(前台导航配置,作为 API 失败时的兜底数据)
新增文件(动态菜单功能)
- app/composables/useMenu.ts(菜单状态管理 composable,含 mapNavItem 数据映射函数)
- app/plugins/fetch-menu.ts(应用初始化时获取菜单数据的插件)
待接入后端API(TODO)
- 文章列表/详情API
- 专家申请提交
- 会员申请提交
- 建言献策提交
- 数据服务(VIP内容)访问控制
- 首页轮播图管理API
- 栏目管理API
- 设置保存/加载API
设计风格
- 主色:深蓝色 #1e3a5f / #0d1b2a
- 强调色:橙色 #f97316
- 背景:白色卡片 + 浅灰底
- 风格:政务门户,专业大气
技术细节
动态菜单实现(2026-05-10)
- 参考模板项目(/Users/gxwebsoft/Nuxt/template-10490)的 AppHeader 实现
getSiteInfo接口返回的数据中包含topNavs(顶部导航)和bottomNavs(底部导航)- 数据流向:plugin(fetch-menu.ts) → 调用 getSiteInfo() → 提取 topNavs → mapNavItem() 映射为 NavItem[] → 写入 useState('menu')
- SiteHeader.vue 通过 useMenu() composable 读取菜单,有数据时用 API 数据,无数据时兜底用静态 mainNav
- CmsNavigation 到 NavItem 的映射:title→label, path→to, code/navigationId→key, children 递归映射