Files
admin/db/02_sections.sql
T

112 lines
6.6 KiB
SQL
Raw Normal View History

2026-07-30 17:33:08 +08:00
-- ============================================================
-- 02_sections.sql
-- 页面区块系统:Section 区块、特性列表、步骤列表、数据指标、参数规格
-- 对应 proposal.md 第 3.1、4.3 节
-- ============================================================
-- -----------------------------------------------------------
-- Section 区块(通用,支持多种页面类型)
-- page_type: homepage / product / about / support
-- 首页和产品详情页可自由增删区块;关于我们/技术支持为固定布局
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `www_section_blocks` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`page_type` VARCHAR(20) NOT NULL COMMENT '所属页面: homepage / product / about / support',
`product_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '关联产品 IDpage_type=product 时)',
`layout` VARCHAR(30) NOT NULL COMMENT '布局类型: hero_split / hero_center / image_text / two_column / feature_grid / spec_showcase / video_showcase / scroll_narrative / cta_banner / spec_table',
`theme` VARCHAR(10) NOT NULL DEFAULT 'light' COMMENT '主题: light / dark',
2026-08-03 19:09:03 +08:00
`overline_color` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'Overline 自定义颜色(空=跟随主题默认色)',
`title_color` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '标题自定义颜色(空=跟随主题默认色)',
`body_color` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '副标题/正文自定义颜色(空=跟随主题默认色)',
2026-07-30 17:33:08 +08:00
`bg_type` VARCHAR(10) NOT NULL DEFAULT 'color' COMMENT '背景类型: color / image / video',
`bg_value` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '背景值(颜色值 或 素材路径)',
`overlay_enabled` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否启用遮罩层',
`overlay_opacity` DECIMAL(3,2) NOT NULL DEFAULT 0.00 COMMENT '遮罩透明度 0~1',
`overline_zh` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Overline 文本(中文)',
`overline_en` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Overline 文本(英文)',
`title_zh` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '标题(中文)',
`title_en` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '标题(英文)',
`subtitle_zh` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '副标题(中文)',
`subtitle_en` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '副标题(英文)',
`content_zh` TEXT COMMENT '正文内容(中文,富文本)',
`content_en` TEXT COMMENT '正文内容(英文,富文本)',
`cta_primary_zh` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '主 CTA 文案(中文)',
`cta_primary_en` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '主 CTA 文案(英文)',
`cta_primary_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '主 CTA 链接',
`cta_secondary_zh` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '次 CTA 文案(中文)',
`cta_secondary_en` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '次 CTA 文案(英文)',
`cta_secondary_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '次 CTA 链接',
`media_url_zh` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '图片/媒体路径(中文)',
`media_url_en` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '图片/媒体路径(英文)',
`video_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '视频地址(Video Showcase 专用)',
`config` JSON COMMENT '布局扩展配置(JSON),Feature Grid / Steps / Data Metrics 等',
`is_visible` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否显示',
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '排序(同页面内)',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_page_type` (`page_type`, `sort_order`),
KEY `idx_product_id` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='页面 Section 区块';
-- -----------------------------------------------------------
-- config 字段 JSON 结构说明(不在数据库中约束,应用层校验)
--
-- Feature Grid (layout=feature_grid):
-- {
-- "features": [
-- { "icon": "...", "title_zh": "...", "title_en": "...",
-- "desc_zh": "...", "desc_en": "..." }
-- ]
-- }
--
-- Data Metrics (layout=spec_showcase):
-- {
-- "metrics": [
-- { "value": "≥129.5", "unit": "dB", "label_zh": "信噪比", "label_en": "SNR" }
-- ]
-- }
--
-- Steps (layout=scroll_narrative):
-- {
-- "steps": [
-- { "title_zh": "...", "title_en": "...",
-- "desc_zh": "...", "desc_en": "...",
-- "media_url": "..." }
-- ]
-- }
-- -----------------------------------------------------------
-- -----------------------------------------------------------
-- 4.3 产品参数规格(Spec Table 布局子表)
-- 参数分组,挂载在 section_blocks 上
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `www_spec_groups` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`section_block_id` BIGINT UNSIGNED NOT NULL COMMENT '所属 Section 区块 ID',
`title_zh` VARCHAR(100) NOT NULL COMMENT '分组标题(中文)',
`title_en` VARCHAR(100) NOT NULL COMMENT '分组标题(英文)',
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '分组排序',
`default_visible` INT NOT NULL DEFAULT 5 COMMENT '收起状态下默认显示项数',
PRIMARY KEY (`id`),
KEY `idx_section_block` (`section_block_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='产品参数规格分组';
-- -----------------------------------------------------------
-- 参数项,挂载在 spec_groups 上
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `www_spec_items` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`spec_group_id` BIGINT UNSIGNED NOT NULL COMMENT '所属参数分组 ID',
`name_zh` VARCHAR(100) NOT NULL COMMENT '参数名称(中文)',
`name_en` VARCHAR(100) NOT NULL COMMENT '参数名称(英文)',
`value_zh` VARCHAR(500) NOT NULL COMMENT '参数值(中文)',
`value_en` VARCHAR(500) NOT NULL COMMENT '参数值(英文)',
`sort_order` INT NOT NULL DEFAULT 0 COMMENT '参数排序',
PRIMARY KEY (`id`),
KEY `idx_spec_group` (`spec_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='产品参数规格项';