Schema 收口第五轮:补齐 page_display 的 homepage / float-btn 契约

继续 Workstream C,集中处理 page_display 的结构性差异:

- 把原本只是空壳的 `page_display.homepage` schema 补齐为真实契约层:
  复用 HomepageSettings.vue 已在使用的字段(内容模型、主列表、首页 Tab、卡片样式、侧栏与交互),
  不回退旧接口,直接围绕当前最新的 homepage settings 链路补 schema 契约。
- 新增 `page_display.float-btn` 前端 schema section,和 PHP 已存在的 float-btn section 对齐,
  补齐五层中的前端 schema 缺口。
- page-display 路由配置中把 homepage 从 customPage 切回 schemaPage,并新增 float-btn 路由,
  使 page_display 域不再存在“有 PHP section 但无前端 schema page”的断层。
- 对齐 Zibll 默认值:header_layout 从 2 收敛到 1。
- 为 header-components 的 slider_config 子字段补 PHP dependsOn,避免在未启用顶部多功能组件时
  仍平铺暴露幻灯片参数。

验证:
- php -l 通过:class-aksrt-admin-schema-page-display.php
- node --check 通过:page-display/index.js / constants/sections/page-display.js
- shim 校验确认:/page-display/homepage 与 /page-display/float-btn 现在都以 SchemaPage 形式挂接,
  canonicalDomain=page_display,section 分别为 homepage / float-btn

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 00:22:19 +08:00
co-authored by Claude Fable 5
parent 6a7bcc8bf7
commit 12c11732cb
3 changed files with 196 additions and 16 deletions
@@ -49,7 +49,7 @@ class AKSRT_Admin_Schema_Page_Display {
['key' => 'header_theme_color_custom', 'label' => '自定义文字颜色', 'type' => 'color', 'default' => ''],
]],
['key' => 'layout-type', 'title' => '布局类型', 'fields' => [
['key' => 'header_layout', 'label' => '桌面端布局', 'type' => 'radio', 'default' => '2', 'options' => [
['key' => 'header_layout', 'label' => '桌面端布局', 'type' => 'radio', 'default' => '1', 'options' => [
['label' => '布局 1(经典)', 'value' => '1'],
['label' => '布局 2(内联搜索)', 'value' => '2'],
['label' => '布局 3(紧凑)', 'value' => '3'],
@@ -95,16 +95,16 @@ class AKSRT_Admin_Schema_Page_Display {
['key' => 'header_components_nav_color', 'label' => '导航栏文字颜色', 'type' => 'color', 'default' => '#ffffff'],
]],
['key' => 'slider-config', 'title' => '幻灯片配置', 'fields' => [
['key' => 'slider_config_direction', 'label' => '滑动方向', 'type' => 'radio', 'default' => 'horizontal', 'options' => [
['key' => 'slider_config_direction', 'label' => '滑动方向', 'type' => 'radio', 'default' => 'horizontal', 'dependsOn' => ['key' => 'header_components_show_on', 'not' => []], 'options' => [
['label' => '水平', 'value' => 'horizontal'],
['label' => '垂直', 'value' => 'vertical'],
]],
['key' => 'slider_config_speed', 'label' => '切换速度(ms)', 'type' => 'number', 'default' => 300, 'min' => 100, 'max' => 3000],
['key' => 'slider_config_button', 'label' => '显示前进后退按钮', 'type' => 'switch', 'default' => true],
['key' => 'slider_config_scale_height', 'label' => '缩放高度', 'type' => 'switch', 'default' => false],
['key' => 'slider_config_scale', 'label' => '缩放效果', 'type' => 'switch', 'default' => false],
['key' => 'slider_config_max_height', 'label' => '最大高度', 'type' => 'input', 'default' => ''],
['key' => 'slider_config_min_height', 'label' => '最小高度', 'type' => 'input', 'default' => ''],
['key' => 'slider_config_speed', 'label' => '切换速度(ms)', 'type' => 'number', 'default' => 300, 'min' => 100, 'max' => 3000, 'dependsOn' => ['key' => 'header_components_show_on', 'not' => []]],
['key' => 'slider_config_button', 'label' => '显示前进后退按钮', 'type' => 'switch', 'default' => true, 'dependsOn' => ['key' => 'header_components_show_on', 'not' => []]],
['key' => 'slider_config_scale_height', 'label' => '缩放高度', 'type' => 'switch', 'default' => false, 'dependsOn' => ['key' => 'header_components_show_on', 'not' => []]],
['key' => 'slider_config_scale', 'label' => '缩放效果', 'type' => 'switch', 'default' => false, 'dependsOn' => ['key' => 'header_components_show_on', 'not' => []]],
['key' => 'slider_config_max_height', 'label' => '最大高度', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'header_components_show_on', 'not' => []]],
['key' => 'slider_config_min_height', 'label' => '最小高度', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'header_components_show_on', 'not' => []]],
]],
['key' => 'search', 'title' => '搜索组件', 'fields' => [
['key' => 'header_components_search_pc', 'label' => 'PC 端显示搜索', 'type' => 'switch', 'default' => true],