Port aksrt_get_search_box/posts for menu_search and layout 1/3 slide; unify publish switch; expand user-box admin row; CSS/JS remote-box parity.
1153 lines
50 KiB
JavaScript
1153 lines
50 KiB
JavaScript
/**
|
||
* Page Display domain schemas.
|
||
* Each key corresponds to a sub-page under the "页面&显示" section.
|
||
*/
|
||
|
||
/** Theme asset base for layout previews (admin SPA). */
|
||
function themeAsset(path) {
|
||
const base = (typeof window !== 'undefined' && window.aksrtAdminData && window.aksrtAdminData.themeUri)
|
||
? String(window.aksrtAdminData.themeUri).replace(/\/$/, '')
|
||
: ''
|
||
return base ? `${base}/${path.replace(/^\//, '')}` : path
|
||
}
|
||
|
||
/** Homepage sort options — keep in sync with AKSRT_Settings_Home_Cms::homepage_allowed_sorts() */
|
||
const sortOptions = [
|
||
{ label: '最近更新', value: 'modified' },
|
||
{ label: '发布时间', value: 'date' },
|
||
{ label: '浏览量', value: 'views' },
|
||
{ label: '点赞数', value: 'likes' },
|
||
{ label: '评论数', value: 'comments' },
|
||
{ label: '收藏数', value: 'favorites' },
|
||
{ label: '下载量', value: 'downloads' },
|
||
{ label: '随机', value: 'rand' },
|
||
]
|
||
|
||
export const pageDisplaySchemas = {
|
||
/**
|
||
* Header navigation settings
|
||
*/
|
||
'header-nav': {
|
||
key: 'page_display.header-nav',
|
||
title: '顶部导航栏',
|
||
icon: 'fas fa-bars',
|
||
description: '配置导航栏布局、菜单结构、搜索入口和用户入口。',
|
||
defaults: {
|
||
header_fixed: true,
|
||
header_search_enabled: true,
|
||
header_user_menu: true,
|
||
header_mobile_drawer: true,
|
||
header_nav_style: 'default',
|
||
header_max_width: 1200,
|
||
header_scroll_down_hide: true,
|
||
header_layout: '1',
|
||
header_nav_pay_vip: true,
|
||
header_nav_user_pay_vip: true,
|
||
header_newposts_types: ['post'],
|
||
header_user_newposts_btn: 'post',
|
||
header_user_newposts_text: '发布内容',
|
||
mobile_header_layout: 'center',
|
||
mobile_navbar_align: 'left',
|
||
header_newposts_enabled: true,
|
||
header_newposts_text: '<i class="fa fa-pencil"></i> 发布',
|
||
header_newposts_radius: true,
|
||
header_newposts_class: 'jb-blue',
|
||
header_theme_custom: false,
|
||
header_theme_bg_custom: '',
|
||
header_theme_bg: '',
|
||
header_theme_color_custom: '',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'layout',
|
||
title: '导航栏布局',
|
||
icon: 'fas fa-th-large',
|
||
fields: [
|
||
{ key: 'header_fixed', label: '固定导航栏', type: 'switch', default: true, help: '页面滚动时导航栏保持在顶部' },
|
||
{ key: 'header_nav_style', label: '导航栏风格', type: 'radio', default: 'default', options: [
|
||
{ label: '默认', value: 'default' },
|
||
{ label: '透明', value: 'transparent' },
|
||
{ label: '毛玻璃', value: 'blur' },
|
||
]},
|
||
{ key: 'header_max_width', label: '导航栏最大宽度', type: 'select', default: 1200, options: [
|
||
{ label: '跟随内容', value: 0 },
|
||
{ label: '1080px', value: 1080 },
|
||
{ label: '1200px', value: 1200 },
|
||
{ label: '1320px', value: 1320 },
|
||
]},
|
||
{ key: 'header_scroll_down_hide', label: '下滑隐藏导航', type: 'switch', default: true, help: '下滚动隐藏,上滚动显示(需开启固定导航)' },
|
||
],
|
||
},
|
||
{
|
||
key: 'layout-type',
|
||
title: '布局类型',
|
||
icon: 'fas fa-columns',
|
||
fields: [
|
||
{
|
||
key: 'header_layout',
|
||
label: '电脑端布局',
|
||
type: 'image_select',
|
||
default: '1',
|
||
options: [
|
||
{ label: '布局 1(经典)', value: '1', image: themeAsset('assets/images/header-layout/header_layout_1.png') },
|
||
{ label: '布局 2(内联搜索)', value: '2', image: themeAsset('assets/images/header-layout/header_layout_2.png') },
|
||
{ label: '布局 3(紧凑)', value: '3', image: themeAsset('assets/images/header-layout/header_layout_3.png') },
|
||
],
|
||
help: '不同布局切换导航 DOM 结构(与 zibll image_select 一致)',
|
||
},
|
||
{
|
||
key: 'mobile_header_layout',
|
||
label: '移动端布局',
|
||
type: 'image_select',
|
||
default: 'center',
|
||
options: [
|
||
{ label: '居中(含搜索按钮)', value: 'center', image: themeAsset('assets/images/header-layout/mobile_header_layout_center.png') },
|
||
{ label: '靠左', value: 'left', image: themeAsset('assets/images/header-layout/mobile_header_layout_left.png') },
|
||
],
|
||
},
|
||
{
|
||
key: 'mobile_navbar_align',
|
||
label: '移动端菜单方向',
|
||
type: 'radio',
|
||
default: 'left',
|
||
options: [
|
||
{ label: '顶部(关闭手势)', value: 'top' },
|
||
{ label: '左侧滑出', value: 'left' },
|
||
{ label: '右侧滑出', value: 'right' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
{
|
||
key: 'newposts',
|
||
title: '发布按钮',
|
||
icon: 'fas fa-pen',
|
||
fields: [
|
||
{ key: 'header_newposts_enabled', label: '启用发布按钮', type: 'switch', default: true, help: '顶部导航显示发布入口(对齐 zibll nav_newposts)' },
|
||
{ key: 'header_newposts_text', label: '按钮文案', type: 'input', default: '<i class="fa fa-pencil"></i> 发布', dependsOn: { key: 'header_newposts_enabled', value: true } },
|
||
{ key: 'header_newposts_radius', label: '按钮圆角(胶囊)', type: 'switch', default: true, dependsOn: { key: 'header_newposts_enabled', value: true }, help: '开启后两端大圆角,对齐 zibll nav_newposts_radius' },
|
||
{ key: 'header_newposts_class', label: '按钮颜色', type: 'select', default: 'jb-blue', options: [
|
||
{ label: '蓝色', value: 'jb-blue' },
|
||
{ label: '红色', value: 'jb-red' },
|
||
{ label: '绿色', value: 'jb-green' },
|
||
{ label: '黄色', value: 'jb-yellow' },
|
||
{ label: '紫色', value: 'jb-purple' },
|
||
{ label: '粉色', value: 'jb-pink' },
|
||
], dependsOn: { key: 'header_newposts_enabled', value: true } },
|
||
{ key: 'header_newposts_types', label: '发布类型', type: 'select', multiple: true, default: ['post'], options: [
|
||
{ label: '文章', value: 'post' },
|
||
{ label: '帖子', value: 'topic' },
|
||
{ label: '商品', value: 'product' },
|
||
], dependsOn: { key: 'header_newposts_enabled', value: true }, help: '未开启的模块不会显示' },
|
||
{ key: 'header_user_newposts_btn', label: '用户卡发布类型', type: 'select', default: 'post', options: [
|
||
{ label: '文章', value: 'post' },
|
||
{ label: '帖子', value: 'topic' },
|
||
{ label: '商品', value: 'product' },
|
||
] },
|
||
{ key: 'header_user_newposts_text', label: '用户卡发布文案', type: 'input', default: '发布内容' },
|
||
{ key: 'header_nav_pay_vip', label: '导航栏开通会员按钮', type: 'switch', default: true, help: '顶部导航显示开通会员' },
|
||
{ key: 'header_nav_user_pay_vip', label: '用户框开通会员按钮', type: 'switch', default: true },
|
||
],
|
||
},
|
||
{
|
||
key: 'color',
|
||
title: '导航配色',
|
||
icon: 'fas fa-palette',
|
||
fields: [
|
||
{ key: 'header_theme_custom', label: '自定义导航配色', type: 'switch', default: false, help: '启用后覆盖导航栏默认配色' },
|
||
{ key: 'header_theme_bg_custom', label: '导航背景色', type: 'color', default: '', dependsOn: { key: 'header_theme_custom', value: true } },
|
||
{ key: 'header_theme_bg', label: '导航背景色(备选)', type: 'color', default: '', dependsOn: { key: 'header_theme_custom', value: true } },
|
||
{ key: 'header_theme_color_custom', label: '导航文字色', type: 'color', default: '', dependsOn: { key: 'header_theme_custom', value: true } },
|
||
],
|
||
},
|
||
{
|
||
key: 'components',
|
||
title: '导航组件',
|
||
icon: 'fas fa-puzzle-piece',
|
||
fields: [
|
||
{ key: 'header_search_enabled', label: '搜索入口', type: 'switch', default: true },
|
||
{ key: 'header_user_menu', label: '用户菜单', type: 'switch', default: true },
|
||
{ key: 'header_mobile_drawer', label: '移动端抽屉导航', type: 'switch', default: true },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Category page settings
|
||
*/
|
||
category: {
|
||
key: 'page_display.category',
|
||
title: '分类页面',
|
||
icon: 'fas fa-folder-open',
|
||
description: '为分类归档页配置头图、简介、列表模式、筛选条和侧边栏。',
|
||
defaults: {
|
||
category_cover_enabled: true,
|
||
category_desc_enabled: true,
|
||
category_header_style: 'cover',
|
||
category_list_mode: 'grid',
|
||
category_filter_bar: true,
|
||
category_sidebar: true,
|
||
category_per_page: 12,
|
||
category_default_cover: '',
|
||
category_post_count: true,
|
||
category_orderby: 'modified',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'header',
|
||
title: '分类头图',
|
||
icon: 'fas fa-image',
|
||
fields: [
|
||
{ key: 'category_header_style', label: '头部风格', type: 'radio', default: 'cover', options: [
|
||
{ label: '封面图', value: 'cover' },
|
||
{ label: '简洁标题', value: 'simple' },
|
||
{ label: '隐藏', value: 'none' },
|
||
]},
|
||
{ key: 'category_cover_enabled', label: '显示封面图', type: 'switch', default: true, dependsOn: { key: 'category_header_style', value: 'cover' } },
|
||
{ key: 'category_desc_enabled', label: '显示分类简介', type: 'switch', default: true },
|
||
{ key: 'category_default_cover', label: '默认封面图', type: 'upload', default: '', help: '未设置分类封面时使用的默认图片' },
|
||
],
|
||
},
|
||
{
|
||
key: 'list',
|
||
title: '列表设置',
|
||
icon: 'fas fa-list',
|
||
fields: [
|
||
{ key: 'category_list_mode', label: '列表模式', type: 'radio', default: 'grid', options: [
|
||
{ label: '网格', value: 'grid' },
|
||
{ label: '列表', value: 'list' },
|
||
{ label: '紧凑', value: 'compact' },
|
||
]},
|
||
{ key: 'category_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
|
||
{ key: 'category_filter_bar', label: '筛选条', type: 'switch', default: true, help: '子分类筛选和排序' },
|
||
{ key: 'category_sidebar', label: '侧边栏', type: 'switch', default: true },
|
||
{ key: 'category_post_count', label: '显示文章数', type: 'switch', default: true, help: '在分类列表中显示每篇文章的浏览次数' },
|
||
],
|
||
},
|
||
{
|
||
key: 'orderby',
|
||
title: '排序设置',
|
||
icon: 'fas fa-sort',
|
||
fields: [
|
||
{ key: 'category_orderby', label: '默认排序', type: 'select', default: 'modified', options: [
|
||
{ label: '最近更新', value: 'modified' },
|
||
{ label: '发布时间', value: 'date' },
|
||
{ label: '浏览数', value: 'views' },
|
||
{ label: '评论数', value: 'comments' },
|
||
{ label: '点赞数', value: 'likes' },
|
||
]},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Tag page settings
|
||
*/
|
||
tag: {
|
||
key: 'page_display.tag',
|
||
title: '标签页面',
|
||
icon: 'fas fa-tags',
|
||
description: '为标签归档页配置展示样式和布局。',
|
||
defaults: {
|
||
tag_header_style: 'simple',
|
||
tag_default_cover: '',
|
||
tag_list_mode: 'grid',
|
||
tag_sidebar: true,
|
||
tag_per_page: 12,
|
||
tag_post_count: true,
|
||
tag_orderby: 'count',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'header',
|
||
title: '标签头图',
|
||
icon: 'fas fa-tag',
|
||
fields: [
|
||
{ key: 'tag_header_style', label: '头部风格', type: 'radio', default: 'simple', options: [
|
||
{ label: '简洁标题', value: 'simple' },
|
||
{ label: '封面图', value: 'cover' },
|
||
{ label: '隐藏', value: 'none' },
|
||
]},
|
||
{ key: 'tag_default_cover', label: '默认封面图', type: 'upload', default: '' },
|
||
],
|
||
},
|
||
{
|
||
key: 'list',
|
||
title: '列表设置',
|
||
icon: 'fas fa-list',
|
||
fields: [
|
||
{ key: 'tag_list_mode', label: '列表模式', type: 'radio', default: 'grid', options: [
|
||
{ label: '网格', value: 'grid' },
|
||
{ label: '列表', value: 'list' },
|
||
]},
|
||
{ key: 'tag_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
|
||
{ key: 'tag_sidebar', label: '侧边栏', type: 'switch', default: true },
|
||
{ key: 'tag_post_count', label: '显示文章数', type: 'switch', default: true },
|
||
],
|
||
},
|
||
{
|
||
key: 'orderby',
|
||
title: '排序设置',
|
||
icon: 'fas fa-sort',
|
||
fields: [
|
||
{ key: 'tag_orderby', label: '默认排序', type: 'select', default: 'count', options: [
|
||
{ label: '文章数', value: 'count' },
|
||
{ label: '名称', value: 'name' },
|
||
{ label: '最近更新', value: 'modified' },
|
||
]},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* User homepage settings
|
||
*/
|
||
'user-home': {
|
||
key: 'page_display.user-home',
|
||
title: '用户主页',
|
||
icon: 'fas fa-user-circle',
|
||
description: '公开用户主页对齐 Zibll 作者页:通栏头图 + Tab 计数;交易/快捷入口仅在用户中心。',
|
||
defaults: {
|
||
user_home_tabs: 'posts,favorites,comments,follow',
|
||
user_home_tabs_order: 'posts,favorites,comments,follow',
|
||
user_home_tabs_pc_hide: '',
|
||
user_home_tabs_mobile_hide: '',
|
||
user_home_sidebar: false,
|
||
user_home_cover: true,
|
||
user_home_follow: true,
|
||
user_home_posts_per_page: 10,
|
||
user_home_avatar: true,
|
||
user_home_name: true,
|
||
user_home_desc: true,
|
||
user_home_stats: false,
|
||
user_home_social: true,
|
||
author_main_tab_swiper: false,
|
||
user_home_message: true,
|
||
user_home_private: true,
|
||
user_home_paging_ajax: true,
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'layout',
|
||
title: '主页布局',
|
||
icon: 'fas fa-th-large',
|
||
fields: [
|
||
{ key: 'user_home_cover', label: '封面区域', type: 'switch', default: true, help: '用户主页顶部封面图' },
|
||
{ key: 'user_home_sidebar', label: '侧边栏(已弃用)', type: 'switch', default: false, help: '公开主页为通栏布局(对齐 Zibll author);运行时强制关闭。交易服务请去用户中心。' },
|
||
{ key: 'user_home_follow', label: '关注按钮', type: 'switch', default: true },
|
||
{ key: 'user_home_posts_per_page', label: '每页文章数', type: 'number', default: 10, min: 5, max: 50 },
|
||
{ key: 'user_home_paging_ajax', label: 'AJAX 翻页', type: 'switch', default: true, help: '使用 AJAX 加载替代传统翻页' },
|
||
],
|
||
},
|
||
{
|
||
key: 'tabs',
|
||
title: 'Tab 配置',
|
||
icon: 'fas fa-columns',
|
||
fields: [
|
||
{ key: 'user_home_tabs', label: '显示的 Tab', type: 'input', default: 'posts,favorites,comments,follow', help: '逗号分隔;默认 posts,favorites,comments,follow(粉丝)。可选 credits,product,plate,forum' },
|
||
{ key: 'user_home_tabs_order', label: 'Tab 显示顺序', type: 'input', default: 'posts,favorites,comments,follow', help: '逗号分隔,控制栏目顺序' },
|
||
{ key: 'user_home_tabs_pc_hide', label: 'PC 端隐藏', type: 'input', default: '', help: '逗号分隔要在 PC 端隐藏的栏目' },
|
||
{ key: 'user_home_tabs_mobile_hide', label: '移动端隐藏', type: 'input', default: '', help: '逗号分隔要在移动端隐藏的栏目' },
|
||
{ key: 'author_main_tab_swiper', label: '移动端滑动切换', type: 'switch', default: false, help: '移动端左右滑动切换栏目' },
|
||
],
|
||
},
|
||
{
|
||
key: 'display',
|
||
title: '展示设置',
|
||
icon: 'fas fa-eye',
|
||
fields: [
|
||
{ key: 'user_home_avatar', label: '显示头像', type: 'switch', default: true },
|
||
{ key: 'user_home_name', label: '显示用户名', type: 'switch', default: true },
|
||
{ key: 'user_home_desc', label: '显示个人简介', type: 'switch', default: true },
|
||
{ key: 'user_home_stats', label: '显示统计数据(已弃用)', type: 'switch', default: false, help: '计数已并入 Tab 角标,头图内不再重复文章/评论/收藏。' },
|
||
{ key: 'user_home_social', label: '显示社交链接', type: 'switch', default: true },
|
||
{ key: 'user_home_message', label: '私信/消息按钮', type: 'switch', default: true, help: '本人显示消息中心入口;访客显示私信入口' },
|
||
{ key: 'user_home_private', label: '留言按钮', type: 'switch', default: true, help: '预留开关,公开主页留言入口' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Other pages settings (404, search results, etc.)
|
||
*/
|
||
other: {
|
||
key: 'page_display.other',
|
||
title: '其它页面',
|
||
icon: 'fas fa-file',
|
||
description: '配置 404 页面、搜索结果页等特殊页面的展示。',
|
||
defaults: {
|
||
page_header_style: '1',
|
||
page_header_cover_img: '',
|
||
page_404_search: true,
|
||
page_404_popular: true,
|
||
page_404_message: '页面未找到',
|
||
page_404_back: true,
|
||
page_search_sidebar: true,
|
||
page_search_per_page: 12,
|
||
page_author_cover: true,
|
||
page_author_sidebar: true,
|
||
page_author_posts_per_page: 12,
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'page-header',
|
||
title: '统一页头',
|
||
icon: 'fas fa-heading',
|
||
fields: [
|
||
{ key: 'page_header_style', label: '页面标题样式', type: 'select', default: '1', options: [
|
||
{ label: '不显示', value: '' },
|
||
{ label: '简单', value: '1' },
|
||
{ label: '卡片', value: '2' },
|
||
{ label: '封面', value: '3' },
|
||
], help: '控制归档/搜索/页面的页头样式,单页可通过 post meta 覆盖' },
|
||
{ key: 'page_header_cover_img', label: '默认封面图', type: 'upload', default: '', help: '封面样式(样式3)的默认背景图,单页可覆盖' },
|
||
],
|
||
},
|
||
{
|
||
key: 'page_404',
|
||
title: '404 页面',
|
||
icon: 'fas fa-exclamation-triangle',
|
||
fields: [
|
||
{ key: 'page_404_message', label: '404 提示文字', type: 'input', default: '页面未找到' },
|
||
{ key: 'page_404_search', label: '显示搜索框', type: 'switch', default: true },
|
||
{ key: 'page_404_popular', label: '显示热门文章', type: 'switch', default: true },
|
||
{ key: 'page_404_back', label: '显示返回首页', type: 'switch', default: true },
|
||
],
|
||
},
|
||
{
|
||
key: 'search_results',
|
||
title: '搜索结果页',
|
||
icon: 'fas fa-search',
|
||
fields: [
|
||
{ key: 'page_search_sidebar', label: '搜索结果侧边栏', type: 'switch', default: true },
|
||
{ key: 'page_search_per_page', label: '每页结果数', type: 'number', default: 12, min: 4, max: 48 },
|
||
],
|
||
},
|
||
{
|
||
key: 'author',
|
||
title: '作者页面',
|
||
icon: 'fas fa-user-edit',
|
||
fields: [
|
||
{ key: 'page_author_cover', label: '显示封面', type: 'switch', default: true },
|
||
{ key: 'page_author_sidebar', label: '显示侧边栏', type: 'switch', default: true },
|
||
{ key: 'page_author_posts_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Global background settings
|
||
*/
|
||
background: {
|
||
key: 'page_display.background',
|
||
title: '全局背景',
|
||
icon: 'fas fa-image',
|
||
description: '配置站点全局背景图、背景色、暗色模式背景和遮罩。',
|
||
defaults: {
|
||
bg_color: '',
|
||
bg_image: '',
|
||
bg_size: '100%',
|
||
bg_position: 'center center',
|
||
bg_repeat: 'no-repeat',
|
||
bg_attachment: 'fixed',
|
||
bg_dark_color: '',
|
||
bg_dark_image: '',
|
||
bg_overlay: false,
|
||
bg_overlay_color: 'rgba(0, 0, 0, 0.3)',
|
||
page_bg_color: '',
|
||
page_bg_image: '',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'light',
|
||
title: '亮色背景',
|
||
icon: 'fas fa-sun',
|
||
fields: [
|
||
{ key: 'bg_color', label: '背景颜色', type: 'color', default: '', help: '留空则使用主题默认背景色' },
|
||
{ key: 'bg_image', label: '背景图片', type: 'media', help: '推荐使用高分辨率图片' },
|
||
{ key: 'bg_size', label: '图片尺寸', type: 'select', default: 'cover', options: [
|
||
{ label: '覆盖 (Cover)', value: 'cover' },
|
||
{ label: '包含 (Contain)', value: 'contain' },
|
||
{ label: '原始大小', value: 'auto' },
|
||
{ label: '拉伸填充', value: '100% 100%' },
|
||
{ label: '100% 宽度(旧版兼容)', value: '100%' },
|
||
]},
|
||
{ key: 'bg_position', label: '图片位置', type: 'select', default: 'center center', options: [
|
||
{ label: '居中', value: 'center center' },
|
||
{ label: '顶部居中', value: 'top center' },
|
||
{ label: '底部居中', value: 'bottom center' },
|
||
]},
|
||
{ key: 'bg_repeat', label: '图片重复', type: 'select', default: 'no-repeat', options: [
|
||
{ label: '不重复', value: 'no-repeat' },
|
||
{ label: '平铺', value: 'repeat' },
|
||
{ label: '水平平铺', value: 'repeat-x' },
|
||
{ label: '垂直平铺', value: 'repeat-y' },
|
||
]},
|
||
{ key: 'bg_attachment', label: '固定方式', type: 'select', default: 'fixed', options: [
|
||
{ label: '固定 (视差)', value: 'fixed' },
|
||
{ label: '随内容滚动', value: 'scroll' },
|
||
]},
|
||
],
|
||
},
|
||
{
|
||
key: 'dark',
|
||
title: '暗色背景',
|
||
icon: 'fas fa-moon',
|
||
fields: [
|
||
{ key: 'bg_dark_color', label: '暗色背景颜色', type: 'color', default: '', help: '留空则使用主题默认暗色背景' },
|
||
{ key: 'bg_dark_image', label: '暗色背景图片', type: 'media', help: '暗色模式下显示的背景图' },
|
||
],
|
||
},
|
||
{
|
||
key: 'overlay',
|
||
title: '遮罩设置',
|
||
icon: 'fas fa-layer-group',
|
||
fields: [
|
||
{ key: 'bg_overlay', label: '启用背景遮罩', type: 'switch', default: false, help: '在背景图上方叠加半透明遮罩,提升文字可读性' },
|
||
{ key: 'bg_overlay_color', label: '遮罩颜色', type: 'input', default: 'rgba(0, 0, 0, 0.3)', dependsOn: { key: 'bg_overlay', value: true }, help: '支持 rgba/hex 色值' },
|
||
],
|
||
},
|
||
{
|
||
key: 'page',
|
||
title: '页面背景',
|
||
icon: 'fas fa-file',
|
||
fields: [
|
||
{ key: 'page_bg_color', label: '内容区背景色', type: 'color', default: '', help: '主内容区域的背景色' },
|
||
{ key: 'page_bg_image', label: '内容区背景图', type: 'media' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Menu decoration settings
|
||
*/
|
||
'menu-decoration': {
|
||
key: 'page_display.menu-decoration',
|
||
title: '菜单装饰',
|
||
icon: 'fas fa-bars',
|
||
description: '配置导航菜单的图标、徽章、下拉样式和图文卡片子菜单。',
|
||
defaults: {
|
||
menu_icon_enabled: true,
|
||
menu_badge_enabled: true,
|
||
menu_submenu_style: 'dropdown',
|
||
menu_submenu_columns: 1,
|
||
menu_submenu_width: 220,
|
||
menu_mobile_style: 'drawer',
|
||
menu_item_padding: 12,
|
||
menu_hover_effect: 'underline',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'icon',
|
||
title: '菜单图标',
|
||
icon: 'fas fa-icons',
|
||
fields: [
|
||
{ key: 'menu_icon_enabled', label: '显示菜单图标', type: 'switch', default: true, help: '在菜单项文字前显示图标(需在菜单管理中设置 CSS 类)' },
|
||
{ key: 'menu_badge_enabled', label: '显示菜单徽章', type: 'switch', default: true, help: '在菜单项上显示 "新"、"热" 等徽章标记' },
|
||
],
|
||
},
|
||
{
|
||
key: 'submenu',
|
||
title: '下拉子菜单',
|
||
icon: 'fas fa-caret-square-down',
|
||
fields: [
|
||
{
|
||
key: 'menu_submenu_style',
|
||
label: '子菜单样式',
|
||
type: 'radio',
|
||
default: 'dropdown',
|
||
options: [
|
||
{ label: '普通下拉', value: 'dropdown' },
|
||
{ label: '多列下拉', value: 'mega' },
|
||
{ label: '图文卡片', value: 'cards' },
|
||
],
|
||
},
|
||
{ key: 'menu_submenu_columns', label: '多列列数', type: 'number', default: 1, min: 1, max: 5, dependsOn: { key: 'menu_submenu_style', value: 'mega' } },
|
||
{ key: 'menu_submenu_width', label: '子菜单宽度 (px)', type: 'number', default: 220, min: 160, max: 800, dependsOn: { key: 'menu_submenu_style', value: 'mega' } },
|
||
],
|
||
},
|
||
{
|
||
key: 'effect',
|
||
title: '交互效果',
|
||
icon: 'fas fa-magic',
|
||
fields: [
|
||
{
|
||
key: 'menu_hover_effect',
|
||
label: 'Hover 效果',
|
||
type: 'radio',
|
||
default: 'underline',
|
||
options: [
|
||
{ label: '下划线', value: 'underline' },
|
||
{ label: '背景色', value: 'background' },
|
||
{ label: '文字变色', value: 'color' },
|
||
{ label: '无效果', value: 'none' },
|
||
],
|
||
},
|
||
{ key: 'menu_item_padding', label: '菜单项内边距 (px)', type: 'number', default: 12, min: 4, max: 32 },
|
||
],
|
||
},
|
||
{
|
||
key: 'mobile',
|
||
title: '移动端菜单',
|
||
icon: 'fas fa-mobile-alt',
|
||
fields: [
|
||
{
|
||
key: 'menu_mobile_style',
|
||
label: '移动端菜单样式',
|
||
type: 'radio',
|
||
default: 'drawer',
|
||
options: [
|
||
{ label: '抽屉', value: 'drawer' },
|
||
{ label: '全屏', value: 'fullscreen' },
|
||
{ label: '下拉', value: 'dropdown' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Header components
|
||
*/
|
||
'header-components': {
|
||
key: 'page_display.header-components',
|
||
title: '顶部多功能组件',
|
||
icon: 'fas fa-th',
|
||
description: '配置顶部组件的显示范围、设备规则、轮播参数、搜索覆盖层与图标卡片。幻灯片图片/文案内容请到「Hero 轮播」「Banner 轮播」管理。',
|
||
defaults: {
|
||
header_components_search_enabled: true,
|
||
header_components_cards_enabled: false,
|
||
header_components_nav_color: '#ffffff',
|
||
header_components_show_on: ['home'],
|
||
header_components_device_visibility: '',
|
||
header_components_filter_blur_devices: [],
|
||
header_components_card_show_devices: ['pc', 'mobile'],
|
||
header_components_card_shared_bg: false,
|
||
header_components_card_blur: true,
|
||
header_components_card_icon_shape: 'circle',
|
||
header_components_icon_cards: [],
|
||
header_components_search_pc: true,
|
||
header_components_search_mobile: true,
|
||
header_components_search_show_keywords: false,
|
||
header_components_search_popular_limit: 5,
|
||
header_components_search_show_input_cat: false,
|
||
header_components_search_show_type: false,
|
||
header_components_search_before_html: '<div class="em16 font-bold mb10">更优雅的Wordpress主题</div>\n<div>这是导航栏幻灯片多功能组件,可在后台进行配置</div>',
|
||
header_components_search_after_html: '',
|
||
slider_config_direction: 'horizontal',
|
||
slider_config_speed: 300,
|
||
slider_config_button: true,
|
||
slider_config_scale_height: false,
|
||
slider_config_scale: false,
|
||
slider_config_max_height: '',
|
||
slider_config_min_height: '',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'visibility',
|
||
title: '显示规则',
|
||
icon: 'fas fa-eye',
|
||
fields: [
|
||
{ key: 'header_components_search_enabled', label: '启用搜索覆盖层', type: 'switch', default: true, help: '在顶部组件区域显示搜索条覆盖层' },
|
||
{ key: 'header_components_cards_enabled', label: '启用图标卡片', type: 'switch', default: false, help: '在顶部组件区域显示图标卡片入口' },
|
||
{ key: 'header_components_show_on', label: '按页面类型启用', type: 'checkbox', default: ['home'], options: [
|
||
{ label: '首页', value: 'home' },
|
||
{ label: '专题页', value: 'topics' },
|
||
{ label: '分类页', value: 'category' },
|
||
{ label: '标签页', value: 'tag' },
|
||
{ label: '用户页', value: 'author' },
|
||
{ label: '文章页', value: 'single' },
|
||
{ label: '搜索页', value: 'search' },
|
||
{ label: '[论坛]首页', value: 'forum_home' },
|
||
{ label: '[论坛]板块页面', value: 'forum_plate' },
|
||
{ label: '[论坛]帖子页面', value: 'forum_post' },
|
||
{ label: '其它页面', value: 'page' },
|
||
], help: '选择启用顶部多功能组件的页面类型,一个都不选则为关闭此功能' },
|
||
{ key: 'header_components_device_visibility', label: '设备显示规则', type: 'radio', default: '', options: [
|
||
{ label: '全部', value: '' },
|
||
{ label: '仅电脑', value: 'only_pc' },
|
||
{ label: '仅移动', value: 'only_sm' },
|
||
] },
|
||
],
|
||
},
|
||
{
|
||
key: 'nav-color',
|
||
title: '导航栏配色',
|
||
icon: 'fas fa-palette',
|
||
fields: [
|
||
{ key: 'header_components_nav_color', label: '导航栏文字颜色', type: 'color', default: '#ffffff', help: '顶部组件叠加时固定导航的文字颜色' },
|
||
],
|
||
},
|
||
{
|
||
key: 'slider-config',
|
||
title: '幻灯片配置',
|
||
icon: 'fas fa-sliders-h',
|
||
fields: [
|
||
{ key: 'slider_config_direction', label: '滑动方向', type: 'radio', default: 'horizontal', 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: 'search',
|
||
title: '搜索组件',
|
||
icon: 'fas fa-search',
|
||
fields: [
|
||
{ key: 'header_components_search_pc', label: 'PC 端显示搜索', type: 'switch', default: true, dependsOn: { key: 'header_components_search_enabled', value: true } },
|
||
{ key: 'header_components_search_mobile', label: '移动端显示搜索', type: 'switch', default: true, dependsOn: { key: 'header_components_search_enabled', value: true } },
|
||
{ key: 'header_components_search_show_keywords', label: '显示热门搜索词', type: 'switch', default: false, dependsOn: { key: 'header_components_search_enabled', value: true } },
|
||
{ key: 'header_components_search_popular_limit', label: '热词数量', type: 'number', default: 5, min: 1, max: 20, dependsOn: { key: 'header_components_search_show_keywords', value: true } },
|
||
{ key: 'header_components_search_show_input_cat', label: '显示分类搜索', type: 'switch', default: false, dependsOn: { key: 'header_components_search_enabled', value: true }, help: '搜索框内显示分类选择下拉' },
|
||
{ key: 'header_components_search_show_type', label: '显示类型切换', type: 'switch', default: false, dependsOn: { key: 'header_components_search_enabled', value: true }, help: '搜索框内显示内容类型切换' },
|
||
{
|
||
key: 'header_components_search_before_html',
|
||
label: '搜索上方额外内容',
|
||
type: 'textarea',
|
||
default: '<div class="em16 font-bold mb10">更优雅的Wordpress主题</div>\n<div>这是导航栏幻灯片多功能组件,可在后台进行配置</div>',
|
||
rows: 4,
|
||
dependsOn: { key: 'header_components_search_enabled', value: true },
|
||
help: 'Hero 主标题/副标题写在这里(支持 HTML)。不要依赖幻灯片文案,以免与搜索重叠;请注意组件总高度。',
|
||
},
|
||
{
|
||
key: 'header_components_search_after_html',
|
||
label: '搜索下方额外内容',
|
||
type: 'textarea',
|
||
default: '',
|
||
rows: 3,
|
||
dependsOn: { key: 'header_components_search_enabled', value: true },
|
||
help: '支持 HTML;请注意组件总高度。',
|
||
},
|
||
],
|
||
},
|
||
{
|
||
key: 'cards',
|
||
title: '图标卡片样式',
|
||
icon: 'fas fa-th-large',
|
||
fields: [
|
||
{ key: 'header_components_filter_blur_devices', label: '容器模糊设备', type: 'checkbox', default: [], dependsOn: { key: 'header_components_cards_enabled', value: true }, options: [
|
||
{ label: 'PC', value: 'pc' },
|
||
{ label: '移动端', value: 'mobile' },
|
||
]},
|
||
{ key: 'header_components_card_show_devices', label: '卡片显示设备', type: 'checkbox', default: ['pc', 'mobile'], dependsOn: { key: 'header_components_cards_enabled', value: true }, options: [
|
||
{ label: 'PC', value: 'pc' },
|
||
{ label: '移动端', value: 'mobile' },
|
||
]},
|
||
{ key: 'header_components_card_shared_bg', label: '共享卡片背景', type: 'switch', default: false, dependsOn: { key: 'header_components_cards_enabled', value: true }, help: '开启后所有图标卡片共用背景模式' },
|
||
{ key: 'header_components_card_blur', label: '启用卡片模糊效果', type: 'switch', default: true, dependsOn: { key: 'header_components_cards_enabled', value: true } },
|
||
{ key: 'header_components_card_icon_shape', label: '图标形状', type: 'radio', default: 'circle', dependsOn: { key: 'header_components_cards_enabled', value: true }, options: [
|
||
{ label: '圆形', value: 'circle' },
|
||
{ label: '方形', value: 'square' },
|
||
]},
|
||
],
|
||
},
|
||
{
|
||
key: 'icon-cards',
|
||
title: '图标卡片列表',
|
||
icon: 'fas fa-list',
|
||
fields: [
|
||
{
|
||
key: 'header_components_icon_cards',
|
||
label: '图标卡片',
|
||
type: 'repeater',
|
||
ui: 'list-modal',
|
||
listPreview: {
|
||
iconKey: 'icon',
|
||
customIconKey: 'custom_icon',
|
||
iconClassKey: 'icon_class',
|
||
titleKey: 'title',
|
||
descKey: 'desc',
|
||
urlKey: 'url',
|
||
},
|
||
editText: '编辑卡片',
|
||
emptyText: '暂无图标卡片',
|
||
sanitize_type: 'array',
|
||
default: [],
|
||
dependsOn: { key: 'header_components_cards_enabled', value: true },
|
||
addText: '添加卡片',
|
||
fields: [
|
||
{ key: 'icon', label: '图标类名', type: 'input', default: 'fas fa-star', placeholder: 'fas fa-star' },
|
||
{ key: 'custom_icon', label: '自定义图标 HTML', type: 'textarea', default: '', rows: 2, placeholder: '<svg>...</svg>' },
|
||
{ key: 'icon_class', label: '图标配色', type: 'select', default: 'c-blue', options: [
|
||
{ label: 'Blue', value: 'c-blue' },
|
||
{ label: 'Yellow', value: 'c-yellow' },
|
||
{ label: 'Green', value: 'c-green' },
|
||
{ label: 'Red', value: 'c-red' },
|
||
{ label: 'Orange', value: 'c-orange' },
|
||
{ label: 'Cyan', value: 'c-cyan' },
|
||
{ label: 'Pink', value: 'c-pink' },
|
||
{ label: 'Gradient Cyan', value: 'jb-cyan' },
|
||
{ label: 'Gradient Green', value: 'jb-green' },
|
||
{ label: 'Gradient Orange', value: 'jb-orange' },
|
||
]},
|
||
{ key: 'title', label: '标题', type: 'input', default: '' },
|
||
{ key: 'desc', label: '描述', type: 'input', default: '' },
|
||
{ key: 'url', label: '链接 URL', type: 'input', default: '', placeholder: 'https://example.com' },
|
||
{ key: 'target', label: '打开方式', type: 'radio', default: '_self', options: [
|
||
{ label: '当前标签页', value: '_self' },
|
||
{ label: '新标签页', value: '_blank' },
|
||
]},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
footer: {
|
||
key: 'page_display.footer',
|
||
title: '底部页脚',
|
||
icon: 'fas fa-shoe-prints',
|
||
description: '页脚布局、友链、版权信息配置。实际编辑界面在 FooterSettings.vue(customPage),此处为 REST 聚合描述。',
|
||
defaults: {
|
||
footer_columns: 3,
|
||
footer_copyright: true,
|
||
footer_icp: true,
|
||
icp_number: '',
|
||
footer_police: true,
|
||
police_number: '',
|
||
footer_theme_custom: false,
|
||
footer_theme_bg_custom: '',
|
||
footer_theme_bg: '',
|
||
footer_theme_color_custom: '',
|
||
footer_contact_wechat_img: '',
|
||
footer_contact_qq: '',
|
||
footer_contact_weibo: '',
|
||
footer_contact_email: '',
|
||
footer_t1_m_s: ['pc', 'mobile'],
|
||
footer_t1_img: '',
|
||
footer_t1_img_dark: '',
|
||
footer_t1_t: '',
|
||
fcode_t1_code: '',
|
||
footer_contact_m_s: ['pc', 'mobile'],
|
||
footer_contact_more: '',
|
||
fcode_t2_code_1: '',
|
||
fcode_t2_code_2: '',
|
||
footer_mini_img_m_s: ['pc', 'mobile'],
|
||
footer_mini_img: '',
|
||
fcode_customize_code: '',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'layout',
|
||
title: '页脚布局',
|
||
icon: 'fas fa-columns',
|
||
fields: [
|
||
{ key: 'footer_columns', label: '页脚列数', type: 'number', default: 3, min: 1, max: 4 },
|
||
{ key: 'footer_copyright', label: '显示版权信息', type: 'switch', default: true },
|
||
{ key: 'footer_icp', label: '显示ICP备案', type: 'switch', default: true },
|
||
{ key: 'icp_number', label: 'ICP备案号', type: 'input', default: '' },
|
||
{ key: 'footer_police', label: '显示公安备案', type: 'switch', default: true },
|
||
{ key: 'police_number', label: '公安备案号', type: 'input', default: '' },
|
||
],
|
||
},
|
||
{
|
||
key: 'color',
|
||
title: '页脚颜色',
|
||
icon: 'fas fa-palette',
|
||
fields: [
|
||
{ key: 'footer_theme_custom', label: '自定义页脚颜色', type: 'switch', default: false },
|
||
{ key: 'footer_theme_bg_custom', label: '自定义背景色', type: 'color', default: '' },
|
||
{ key: 'footer_theme_bg', label: '背景图片', type: 'media', default: '' },
|
||
{ key: 'footer_theme_color_custom', label: '自定义文字颜色', type: 'color', default: '' },
|
||
],
|
||
},
|
||
{
|
||
key: 'contact',
|
||
title: '联系方式',
|
||
icon: 'fas fa-address-book',
|
||
fields: [
|
||
{ key: 'footer_contact_wechat_img', label: '微信二维码', type: 'media', default: '' },
|
||
{ key: 'footer_contact_qq', label: 'QQ', type: 'input', default: '' },
|
||
{ key: 'footer_contact_weibo', label: '微博', type: 'input', default: '' },
|
||
{ key: 'footer_contact_email', label: '邮箱', type: 'input', default: '' },
|
||
],
|
||
},
|
||
{
|
||
key: 'brand',
|
||
title: '品牌列(第一列)',
|
||
icon: 'fas fa-building',
|
||
fields: [
|
||
{ key: 'footer_t1_m_s', label: '显示设备', type: 'checkbox', default: ['pc', 'mobile'] },
|
||
{ key: 'footer_t1_img', label: '页脚 Logo(日间)', type: 'media', default: '' },
|
||
{ key: 'footer_t1_img_dark', label: '页脚 Logo(夜间)', type: 'media', default: '' },
|
||
{ key: 'footer_t1_t', label: '品牌标题', type: 'input', default: '' },
|
||
{ key: 'fcode_t1_code', label: '品牌列自定义代码', type: 'textarea', default: '' },
|
||
],
|
||
},
|
||
{
|
||
key: 'contact_ext',
|
||
title: '联系方式扩展',
|
||
icon: 'fas fa-phone-alt',
|
||
fields: [
|
||
{ key: 'footer_contact_m_s', label: '显示设备', type: 'checkbox', default: ['pc', 'mobile'] },
|
||
{ key: 'footer_contact_more', label: '更多联系项', type: 'textarea', default: '' },
|
||
{ key: 'fcode_t2_code_1', label: '链接 HTML(fcode_t2_code_1)', type: 'textarea', default: '' },
|
||
{ key: 'fcode_t2_code_2', label: '链接下方自定义代码', type: 'textarea', default: '' },
|
||
],
|
||
},
|
||
{
|
||
key: 'mini_qr',
|
||
title: '二维码图片组(第三列)',
|
||
icon: 'fas fa-qrcode',
|
||
fields: [
|
||
{ key: 'footer_mini_img_m_s', label: '显示设备', type: 'checkbox', default: ['pc', 'mobile'] },
|
||
{ key: 'footer_mini_img', label: '二维码组', type: 'textarea', default: '' },
|
||
],
|
||
},
|
||
{
|
||
key: 'custom',
|
||
title: '底部自定义',
|
||
icon: 'fas fa-code',
|
||
fields: [
|
||
{ key: 'fcode_customize_code', label: '底部自定义代码', type: 'textarea', default: '' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Homepage settings (already has a real Vue page)
|
||
*/
|
||
homepage: {
|
||
key: 'page_display.homepage',
|
||
title: '首页配置',
|
||
icon: 'fas fa-home',
|
||
description: '配置首页主列表、分类 Tab、卡片样式与首页交互。实际编辑界面在 HomepageSettings.vue(customPage),此处补齐 page_display 的 schema 契约。',
|
||
defaults: {
|
||
homepage_tabs: [],
|
||
homepage_card_style: 'default',
|
||
homepage_multi_thumb_enabled: false,
|
||
homepage_multi_thumb_min_images: 3,
|
||
homepage_sidebar_mini_enabled: true,
|
||
homepage_default_sort: 'date',
|
||
homepage_default_view: 'list',
|
||
homepage_sort_ajax_enabled: true,
|
||
homepage_sticky_tabs_enabled: true,
|
||
home_posts_list_s: true,
|
||
home_list_title: '最新发布',
|
||
home_list_sort_enabled: true,
|
||
home_list_sort_options: ['modified', 'date', 'views', 'likes', 'comments'],
|
||
home_list_sort_dropdown: false,
|
||
home_exclude_post_ids: [],
|
||
home_exclude_category_ids: [],
|
||
homepage_tab_posts_per_page: 6,
|
||
homepage_tab_limit: 4,
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'main-stream',
|
||
title: '主列表',
|
||
icon: 'fas fa-list',
|
||
fields: [
|
||
{ key: 'home_posts_list_s', label: '启用主列表', type: 'switch', default: true },
|
||
{ key: 'index_list_title', label: '区块标题', type: 'input', default: '最新发布', dependsOn: { key: 'home_posts_list_s', value: true } },
|
||
{ key: 'home_list1_orderby_option.orderby', label: '默认排序', type: 'select', default: 'date', dependsOn: { key: 'home_posts_list_s', value: true }, options: sortOptions },
|
||
{ key: 'home_list1_orderby_s', label: '启用排序栏', type: 'switch', default: true, dependsOn: { key: 'home_posts_list_s', value: true } },
|
||
{ key: 'home_list_sort_dropdown', label: '排序栏下拉模式', type: 'switch', default: false, dependsOn: { key: 'home_list1_orderby_s', value: true } },
|
||
{ key: 'home_list1_orderby_option', label: '可用排序选项', type: 'checkbox', default: ['modified', 'date', 'views', 'likes', 'comments'], dependsOn: { key: 'home_list1_orderby_s', value: true }, options: sortOptions },
|
||
],
|
||
},
|
||
{
|
||
key: 'exclude',
|
||
title: '排除规则',
|
||
icon: 'fas fa-filter',
|
||
fields: [
|
||
{ key: 'home_exclude_posts', label: '排除文章 ID', type: 'array', default: [], help: '主列表和 Tab 查询均排除这些文章。' },
|
||
{ key: 'home_exclude_cats', label: '排除分类 ID', type: 'array', default: [], help: '主列表排除这些分类。' },
|
||
],
|
||
},
|
||
{
|
||
key: 'tabs',
|
||
title: '首页 Tab',
|
||
icon: 'fas fa-tags',
|
||
fields: [
|
||
{ key: 'home_lists', label: '首页 Tab', type: 'array', default: [], help: '分类 Tab 由 HomepageSettings.vue 中的可视化编辑器维护。' },
|
||
{ key: 'homepage_tab_limit', label: 'Tab 数量上限', type: 'number', default: 4, min: 1, max: 12 },
|
||
{ key: 'homepage_tab_posts_per_page', label: '每 Tab 文章数', type: 'number', default: 6, min: 1, max: 20 },
|
||
{ key: 'homepage_sticky_tabs_enabled', label: 'Tab 吸顶', type: 'switch', default: true },
|
||
],
|
||
},
|
||
{
|
||
key: 'cards-sidebar',
|
||
title: '卡片与侧栏',
|
||
icon: 'fas fa-columns',
|
||
fields: [
|
||
{
|
||
key: 'homepage_card_style',
|
||
label: '卡片风格(已弃用)',
|
||
type: 'radio',
|
||
default: 'default',
|
||
options: [
|
||
{ label: '默认', value: 'default' },
|
||
{ label: '风格 2', value: 'style2' },
|
||
{ label: '风格 3', value: 'style3' },
|
||
],
|
||
help: '已弃用:请改用「文章列表」中的列表/卡片样式设置。',
|
||
},
|
||
{ key: 'homepage_multi_thumb_enabled', label: '多图卡片(已弃用)', type: 'switch', default: true, help: '请改用文章列表缩略图/多图设置。' },
|
||
{ key: 'homepage_multi_thumb_min_images', label: '最少图片数(已弃用)', type: 'number', default: 3, min: 2, max: 4 },
|
||
{
|
||
key: 'homepage_default_view',
|
||
label: '默认视图(已弃用)',
|
||
type: 'radio',
|
||
default: 'list',
|
||
options: [
|
||
{ label: '列表', value: 'list' },
|
||
{ label: '卡片', value: 'card' },
|
||
],
|
||
help: 'SSR 以文章列表全局设置为准;此字段仅作兼容保留。',
|
||
},
|
||
{ key: 'homepage_sidebar_mini_enabled', label: '迷你侧栏列表', type: 'switch', default: true },
|
||
{ key: 'homepage_sort_ajax_enabled', label: '排序栏 AJAX', type: 'switch', default: true },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
/**
|
||
* Special/topic page settings
|
||
*/
|
||
special: {
|
||
key: 'page_display.special',
|
||
title: '专题页面',
|
||
icon: 'fas fa-layer-group',
|
||
description: '配置专题聚合页的封面、摘要、布局、聚合规则和子页面展示策略。',
|
||
defaults: {
|
||
special_cover_enabled: true,
|
||
special_summary_enabled: true,
|
||
special_summary_length: 200,
|
||
special_default_cover: '',
|
||
special_layout: 'grid',
|
||
special_columns: 2,
|
||
special_source_type: 'category',
|
||
special_source_ids: '',
|
||
special_subpage_display: 'cards',
|
||
special_subpage_count: 6,
|
||
special_sidebar: true,
|
||
special_pagination: 'numeric',
|
||
special_per_page: 12,
|
||
special_post_count: false,
|
||
special_orderby: 'date',
|
||
},
|
||
groups: [
|
||
{
|
||
key: 'header',
|
||
title: '专题头部',
|
||
icon: 'fas fa-image',
|
||
fields: [
|
||
{ key: 'special_cover_enabled', label: '显示专题封面', type: 'switch', default: true, help: '在专题页顶部展示封面图' },
|
||
{ key: 'special_summary_enabled', label: '显示专题摘要', type: 'switch', default: true },
|
||
{ key: 'special_summary_length', label: '摘要最大长度', type: 'number', default: 200, min: 50, max: 500, dependsOn: { key: 'special_summary_enabled', value: true } },
|
||
{ key: 'special_default_cover', label: '默认封面图', type: 'upload', default: '', help: '未设置专题封面时使用的默认图片' },
|
||
],
|
||
},
|
||
{
|
||
key: 'layout',
|
||
title: '布局设置',
|
||
icon: 'fas fa-th-large',
|
||
fields: [
|
||
{
|
||
key: 'special_layout',
|
||
label: '内容布局',
|
||
type: 'radio',
|
||
default: 'grid',
|
||
options: [
|
||
{ label: '网格', value: 'grid' },
|
||
{ label: '列表', value: 'list' },
|
||
{ label: '瀑布流', value: 'masonry' },
|
||
],
|
||
},
|
||
{ key: 'special_columns', label: '网格列数', type: 'number', default: 2, min: 1, max: 4, dependsOn: { key: 'special_layout', value: 'grid' } },
|
||
{ key: 'special_sidebar', label: '侧边栏', type: 'switch', default: true },
|
||
{ key: 'special_post_count', label: '显示文章数', type: 'switch', default: false, help: '在专题列表中显示每篇文章的浏览次数' },
|
||
],
|
||
},
|
||
{
|
||
key: 'aggregation',
|
||
title: '聚合规则',
|
||
icon: 'fas fa-database',
|
||
fields: [
|
||
{
|
||
key: 'special_source_type',
|
||
label: '内容来源',
|
||
type: 'radio',
|
||
default: 'category',
|
||
options: [
|
||
{ label: '分类', value: 'category' },
|
||
{ label: '标签', value: 'tag' },
|
||
{ label: '手动选择', value: 'manual' },
|
||
{ label: '最新文章', value: 'latest' },
|
||
],
|
||
},
|
||
{ key: 'special_source_ids', label: '来源 ID 列表', type: 'input', default: '', placeholder: '逗号分隔分类/标签 ID', help: '填写分类或标签的 ID,逗号分隔' },
|
||
],
|
||
},
|
||
{
|
||
key: 'subpage',
|
||
title: '子页面展示',
|
||
icon: 'fas fa-clone',
|
||
fields: [
|
||
{
|
||
key: 'special_subpage_display',
|
||
label: '子页面样式',
|
||
type: 'radio',
|
||
default: 'cards',
|
||
options: [
|
||
{ label: '卡片', value: 'cards' },
|
||
{ label: '列表', value: 'list' },
|
||
{ label: '时间线', value: 'timeline' },
|
||
],
|
||
},
|
||
{ key: 'special_subpage_count', label: '每页子页面数', type: 'number', default: 6, min: 1, max: 24 },
|
||
],
|
||
},
|
||
{
|
||
key: 'pagination',
|
||
title: '分页设置',
|
||
icon: 'fas fa-ellipsis-h',
|
||
fields: [
|
||
{
|
||
key: 'special_pagination',
|
||
label: '分页模式',
|
||
type: 'radio',
|
||
default: 'numeric',
|
||
options: [
|
||
{ label: '数字分页', value: 'numeric' },
|
||
{ label: '加载更多', value: 'load_more' },
|
||
{ label: '无限滚动', value: 'infinite' },
|
||
],
|
||
},
|
||
{ key: 'special_per_page', label: '每页文章数', type: 'number', default: 12, min: 4, max: 48 },
|
||
],
|
||
},
|
||
{
|
||
key: 'orderby',
|
||
title: '排序设置',
|
||
icon: 'fas fa-sort',
|
||
fields: [
|
||
{ key: 'special_orderby', label: '默认排序', type: 'select', default: 'date', options: [
|
||
{ label: '发布时间', value: 'date' },
|
||
{ label: '最近更新', value: 'modified' },
|
||
{ label: '浏览数', value: 'views' },
|
||
{ label: '评论数', value: 'comments' },
|
||
]},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
}
|