2b69686795
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
2.4 KiB
2.4 KiB
首页优势模块 - 后端对接说明
前端(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_setting 的 searchBtn / loginBtn / ... 合并进返回体的 setting
(前台 siteInfo.setting 即来源)。新增:把 features 也合并进去。
伪代码:
// 在组装 setting 对象处,追加
setting.put("features", websiteSetting != null ? websiteSetting.getFeatures() : null);
前端 useFeatures() 读取 siteInfo.setting.features 并 JSON.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. 验证清单
- 后台「网站设置 → 功能开关 → 首页优势模块」修改标题 / 卡片并保存;
- 调
GET /api/cms/cms-website/getSiteInfo确认返回setting.features非空; - 前台对应租户首页「优势卡片区」内容随之变化;关闭「启用模块」后整块消失。