Files
hjc-web/database/feature-section-backend.md
T
gxwebsoft 2b69686795 feat(app): 添加多模板关于我们页面及相关路由和404页面
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引
- 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理
- 实现/article、/case、/product及/page动态路由兼容列表与详情展示
- 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置
- 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持
- 模板增强支持CMS单页内容加载及SEO信息动态设置
- 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
2026-09-08 12:13:44 +08:00

2.4 KiB
Raw Blame History

首页优势模块 - 后端对接说明

前端(website-template)与后台(website-admin)已改造完成,数据通过 cms_website_setting.features 字段贯通。 本文件说明 Java 后端 需要补齐的两处改动,否则后台配置无法真正持久化 / 下发给前台。

1. 数据库

执行 database/add-website-setting-features.sql

ALTER TABLE cms_website_setting
  ADD COLUMN features TEXT NULL
    COMMENT '首页优势模块配置(JSON)';

2. 实体 CmsWebsiteSetting

com.gxwebsoft.cms.entity.CmsWebsiteSetting 增加字段(MyBatis-Plus 自动建表/映射):

@TableField("features")
private String features; // 首页优势模块配置 JSON 字符串

并在对应的 VO / 返回对象中保留该字段。

3. getSiteInfo 合并 features 到 setting

getSiteInfo 当前已把 cms_website_settingsearchBtn / loginBtn / ... 合并进返回体的 setting (前台 siteInfo.setting 即来源)。新增:把 features 也合并进去。

伪代码:

// 在组装 setting 对象处,追加
setting.put("features", websiteSetting != null ? websiteSetting.getFeatures() : null);

前端 useFeatures() 读取 siteInfo.setting.featuresJSON.parse。 若后端未合并,前台拿不到 features → 自动回退各模板默认数据(不影响页面展示,仅配置不生效)。

4. 数据格式约定

features 为 JSON 字符串,结构:

{
  "enabled": true,
  "title": "我们的优势",
  "subtitle": "为企业提供从品牌展示到客户转化的全链路官网解决方案",
  "items": [
    { "title": "企业优势", "desc": "...", "icon": "building" },
    { "title": "核心产品", "desc": "...", "icon": "box" },
    { "title": "客户案例", "desc": "...", "icon": "case" },
    { "title": "在线留言", "desc": "...", "icon": "message" }
  ]
}
  • icon 为图标名,取值范围为前台 FeatureIcon.vue 的 36 个名称,后台下拉已内置。
  • items 最多 4 个(前后台均做了截断)。
  • enabled=false 时前台隐藏整块。

5. 验证清单

  1. 后台「网站设置 → 功能开关 → 首页优势模块」修改标题 / 卡片并保存;
  2. GET /api/cms/cms-website/getSiteInfo 确认返回 setting.features 非空;
  3. 前台对应租户首页「优势卡片区」内容随之变化;关闭「启用模块」后整块消失。