商城装修
这篇解决什么
装修模板和页面存在哪两张表、启用规则是什么。读完能改 promotion_diy_template.property(底部 TabBar)和页面组件树,不要去改 Banner 表。
默认端口 48080。开启见 商城功能设计。内容投放见 内容管理。
示意图:管理端维护模板。用户端只读当前 used=true 的那一份。
从哪改
装修挂在营销子模块,不是独立 Maven 工程。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 模板 | @RequestMapping("/promotion/diy-template") | ruoyi-office/yudao-module-mall/yudao-module-promotion-server/.../controller/admin/diy/DiyTemplateController.java |
| 页面 | /promotion/diy-page | DiyPageController |
| 用户端 | 取启用模板、按 id 取页 | controller/app/diy/ |
| 模板表 | promotion_diy_template | DiyTemplateDO |
| 页面表 | promotion_diy_page | DiyPageDO |
| 管理端 | 列表 + 装修器 | ruoyi-office-vben/apps/web-antd/src/views/mall/promotion/diy/ |
官方菜单:营销中心 2030 下「商城装修」2435。装修模板 2436,装修页面 2442。隐藏路由 /diy/template/decorate/:id、/diy/page/decorate/:id。
新建模板会自动建两个默认页,名称「首页」「我的」。DiyPageEnum 只有 INDEX(1)、MY(2),给 App 按页名匹配,不是库字段。
字段
同一时间只能有一个 used=true。useDiyTemplate 会把其它模板改成未用。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
used / usedTime | 是否启用、启用时间 | DiyTemplateDO |
property(模板) | JSON,底部导航 | 同上 |
previewPicUrls | 多图预览 | 同上 |
templateId | 页面归属模板 | DiyPageDO |
property(页面) | JSON,组件树 | 同上 |
页面 JSON 常见键:page、navigationBar、components[]。轮播图组件把图片写在组件 items 里,不读 promotion_banner。
本 UniApp 不是 C 端装修渲染
后端有 GET /promotion/diy-template/used。当前 ruoyi-office-uniapp 的 pages-mall/promotion/diy/ 是管理员搬家页。PC 预览走独立商城 H5(VITE_MALL_H5_DOMAIN),不要在管理 App 里找首页组件树。
和 Banner 并行
Banner 按 position 投放,见 内容管理。装修页自己的轮播不写 Banner 表,两边没有外键。
按本仓库 DO 生成的 ER。模板启用位是布尔,不是枚举。
配置与操作
走 营销中心 → 装修模板(2436,/mall/promotion/diy-template/diy-template)。新建模板会自动建「首页」「我的」两页。同一时间只能 used=true。页面 JSON 在 2442。隐藏装修器 /diy/template/decorate/:id、/diy/page/decorate/:id。
轮播写在组件 items,不读 promotion_banner。当前 UniApp pages-mall/promotion/diy/ 是管理员搬家页,C 端预览走商城 H5。开启见 商城功能设计。

本系统截图:装修模板。

本系统截图:装修页面。
