You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1284 lines
49 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 自定义器预览脚本
* 用于在自定义器中实时预览Banner和Futures更改
*/
(function($) {
'use strict';
// 横幅图片更改预览
for (let i = 1; i <= 5; i++) {
wp.customize('banner_image_' + i, function(value) {
value.bind(function(newval) {
// 刷新页面以显示新的Banner图片
wp.customize.preview.send('refresh');
});
});
// 横幅内容更改预览
wp.customize('banner_content_' + i, function(value) {
value.bind(function(newval) {
$('.nenghui-banner .banner-slide:nth-child(' + i + ') .banner-text-content').html(newval);
});
});
// 横幅按钮文字更改预览
wp.customize('banner_button_text_' + i, function(value) {
value.bind(function(newval) {
$('.nenghui-banner .banner-slide:nth-child(' + i + ') .banner-btn').text(newval);
});
});
// 横幅按钮链接更改预览
wp.customize('banner_button_url_' + i, function(value) {
value.bind(function(newval) {
$('.nenghui-banner .banner-slide:nth-child(' + i + ') .banner-btn').attr('href', newval);
});
});
}
// 横幅高度更改预览
wp.customize('banner_height', function(value) {
value.bind(function(newval) {
// 处理高度值,确保包含单位
var height = newval;
if (/^\d+$/.test(newval)) {
height = newval + 'px';
}
// 验证格式
if (!/^\d+(\.\d+)?(px|vh)$/.test(height)) {
height = '500px';
}
$('.nenghui-banner').css('height', height);
$('.nenghui-banner .banner-slide').css('height', height);
});
});
// 横幅自动播放设置更改预览
wp.customize('banner_autoplay', function(value) {
value.bind(function(newval) {
// 刷新页面以应用新的自动播放设置
wp.customize.preview.send('refresh');
});
});
// 横幅自动播放间隔更改预览
wp.customize('banner_autoplay_delay', function(value) {
value.bind(function(newval) {
// 刷新页面以应用新的播放间隔
wp.customize.preview.send('refresh');
});
});
// 横幅遮罩开关更改预览
wp.customize('banner_overlay_enabled', function(value) {
value.bind(function(newval) {
if (newval) {
// 显示遮罩
$('.nenghui-banner .banner-overlay').show();
} else {
// 隐藏遮罩
$('.nenghui-banner .banner-overlay').hide();
}
});
});
// 横幅纯图模式开关更改预览
wp.customize('banner_image_only_mode', function(value) {
value.bind(function(newval) {
if (newval) {
// 隐藏文字和按钮内容
$('.nenghui-banner .banner-content').hide();
} else {
// 显示文字和按钮内容
$('.nenghui-banner .banner-content').show();
}
});
});
// 横幅移动端显示控制更改预览
wp.customize('banner_show_on_mobile', function(value) {
value.bind(function(newval) {
if (!newval) {
// 移动端隐藏
$('.nenghui-banner').addClass('hide-on-mobile');
} else {
// 移动端显示
$('.nenghui-banner').removeClass('hide-on-mobile');
}
});
});
// 横幅左右切换按钮开关更改预览
wp.customize('banner_navigation_enabled', function(value) {
value.bind(function(newval) {
if (newval) {
// 显示切换按钮
$('.nenghui-banner .banner-nav-prev, .nenghui-banner .banner-nav-next').show();
} else {
// 隐藏切换按钮
$('.nenghui-banner .banner-nav-prev, .nenghui-banner .banner-nav-next').hide();
}
});
});
// 横幅数量更改预览
wp.customize('banner_count', function(value) {
value.bind(function(newval) {
// 刷新页面以重新生成Banner结构
wp.customize.preview.send('refresh');
});
});
// ========== 特色功能区块预览功能 ==========
// 特色功能主标题更改预览
wp.customize('futures_title', function(value) {
value.bind(function(newval) {
$('.nenghui-futures .futures-title').text(newval);
});
});
// 特色功能背景图片更改预览
wp.customize('futures_bg_image', function(value) {
value.bind(function(newval) {
if (newval) {
$('.nenghui-futures').css('background-image', 'url(' + newval + ')');
} else {
$('.nenghui-futures').css('background-image', 'none');
}
});
});
// 特色功能按钮文字更改预览
wp.customize('futures_button_text', function(value) {
value.bind(function(newval) {
$('.nenghui-futures .futures-btn').text(newval);
});
});
// 特色功能按钮链接更改预览
wp.customize('futures_button_url', function(value) {
value.bind(function(newval) {
$('.nenghui-futures .futures-btn').attr('href', newval);
});
});
// 特色功能项目预览
for (let i = 1; i <= 5; i++) {
// 功能图标更改预览
wp.customize('futures_item_' + i + '_icon', function(value) {
value.bind(function(newval) {
if (newval) {
$('.nenghui-futures .futures-item:nth-child(' + i + ') .futures-icon img').attr('src', newval);
$('.nenghui-futures .futures-item:nth-child(' + i + ')').show();
} else {
$('.nenghui-futures .futures-item:nth-child(' + i + ')').hide();
}
});
});
// 功能标题更改预览
wp.customize('futures_item_' + i + '_title', function(value) {
value.bind(function(newval) {
$('.nenghui-futures .futures-item:nth-child(' + i + ') .futures-item-title').text(newval);
});
});
}
// ========== 页面标题横幅区块预览功能 ==========
// 页面标题横幅主标题更改预览
wp.customize('banner_title_main_title', function(value) {
value.bind(function(newval) {
$('.nenghui-banner-title .banner-title').text(newval);
});
});
// 页面标题横幅描述更改预览
wp.customize('banner_title_description', function(value) {
value.bind(function(newval) {
if (newval && newval.trim() !== '') {
$('.nenghui-banner-title .banner-description').text(newval).show();
} else {
$('.nenghui-banner-title .banner-description').hide();
}
});
});
// 页面标题横幅背景图片更改预览
wp.customize('banner_title_bg_image', function(value) {
value.bind(function(newval) {
const bannerElement = $('.nenghui-banner-title');
const bannerImage = bannerElement.find('.banner-image');
if (newval && newval.trim() !== '') {
// 设置新的背景图片
bannerImage.css('background-image', 'url(' + newval + ')');
bannerElement.attr('data-bg-image', newval);
bannerElement.removeClass('no-image');
// 预加载图片以检测是否有效
const img = new Image();
img.onload = function() {
bannerElement.removeClass('no-image');
};
img.onerror = function() {
bannerElement.addClass('no-image');
};
img.src = newval;
} else {
// 使用默认背景图片
const defaultImage = bannerElement.data('default-bg') ||
(typeof wp !== 'undefined' && wp.customize && wp.customize.settings && wp.customize.settings.theme && wp.customize.settings.theme.template_url ?
wp.customize.settings.theme.template_url + '/assets/images/about-bg.webp' :
'/wp-content/themes/nenghui-energy-theme-4/assets/images/about-bg.webp');
bannerImage.css('background-image', 'url(' + defaultImage + ')');
bannerElement.attr('data-bg-image', defaultImage);
bannerElement.removeClass('no-image');
}
});
});
// 页面标题横幅遮罩透明度更改预览
wp.customize('banner_title_overlay_opacity', function(value) {
value.bind(function(newval) {
$('.nenghui-banner-title .banner-overlay').css('opacity', newval);
});
});
// 页面标题横幅高度更改预览
wp.customize('banner_title_height', function(value) {
value.bind(function(newval) {
var height = newval;
// 处理高度值,确保包含单位
if (/^\d+$/.test(newval)) {
height = newval + 'px';
}
// 验证格式
if (!/^\d+(\.\d+)?(px|vh|%)$/.test(height)) {
height = '60vh';
}
$('.nenghui-banner-title').css('height', height);
});
});
// ========== 新闻区块预览功能 ==========
// 新闻标题更改预览
wp.customize('news_title', function(value) {
value.bind(function(newval) {
$('.news-container .news-title').text(newval);
});
});
// 新闻分类更改预览 - 需要刷新页面
wp.customize('news_category_id', function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// 新闻排序字段更改预览
wp.customize('news_order_by', function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// 新闻排序方向更改预览
wp.customize('news_order', function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// 新闻文章数量更改预览
wp.customize('news_posts_count', function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// 新闻每页文章数量更改预览
wp.customize('news_posts_per_page', function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// 新闻分页开关更改预览
wp.customize('news_enable_pagination', function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// ========== 选项卡区块预览功能 ==========
// 选项卡数量更改预览
wp.customize('tabs_count', function(value) {
value.bind(function(newval) {
// 刷新页面以重新生成选项卡结构
wp.customize.preview.send('refresh');
});
});
// ========== 关于我们导航区块预览功能 ==========
// 关于我们导航菜单更改预览
wp.customize('about_nav_menu_id', function(value) {
value.bind(function(newval) {
// 刷新页面以重新生成导航菜单
wp.customize.preview.send('refresh');
});
});
// 关于我们导航背景色更改预览
wp.customize('about_nav_bg_color', function(value) {
value.bind(function(newval) {
$('.nenghui-about-nav').css('background-color', newval);
});
});
// 关于我们导航文字颜色更改预览
wp.customize('about_nav_text_color', function(value) {
value.bind(function(newval) {
$('.nenghui-about-nav .about-nav-link').css('color', newval);
});
});
// 关于我们导航激活状态颜色更改预览
wp.customize('about_nav_active_color', function(value) {
value.bind(function(newval) {
$('.nenghui-about-nav .about-nav-item.active .about-nav-link').css({
'color': newval,
'border-bottom-color': newval
});
$('.nenghui-about-nav .about-nav-link:hover').css('color', newval);
});
});
// 关于我们导航样式更改预览
wp.customize('about_nav_style', function(value) {
value.bind(function(newval) {
const aboutNav = $('.nenghui-about-nav');
const navMenu = aboutNav.find('.about-nav-menu');
// 移除所有样式类
aboutNav.removeClass('nav-horizontal nav-vertical nav-dropdown');
// 添加新样式类
aboutNav.addClass('nav-' + newval);
// 根据样式调整布局
if (newval === 'vertical') {
navMenu.css({
'flex-direction': 'column',
'align-items': 'stretch'
});
} else {
navMenu.css({
'flex-direction': 'row',
'align-items': 'center'
});
}
});
});
// 关于我们导航位置更改预览
wp.customize('about_nav_position', function(value) {
value.bind(function(newval) {
// 刷新页面以应用新的位置设置
wp.customize.preview.send('refresh');
});
});
// 选项卡项目预览支持最多5个选项卡
for (let i = 1; i <= 5; i++) {
// 选项卡标题更改预览
wp.customize('tab_title_' + i, function(value) {
value.bind(function(newval) {
const tabElement = $('.nenghui-container .nenghui-tab[data-nenghui-tab="tab-' + i + '"]');
if (newval && newval.trim() !== '') {
tabElement.text(newval).show();
} else {
tabElement.hide();
}
});
});
// 选项卡ID更改预览
wp.customize('tab_id_' + i, function(value) {
value.bind(function(newval) {
// 刷新页面以应用新的ID
wp.customize.preview.send('refresh');
});
});
// 选项卡主标题更改预览
wp.customize('tab_main_title_' + i, function(value) {
value.bind(function(newval) {
// 如果当前选项卡是激活状态,更新主标题
const tabId = wp.customize('tab_id_' + i).get() || 'tab-' + i;
const activeTab = $('.nenghui-container .nenghui-tab.active[data-nenghui-tab="' + tabId + '"]');
if (activeTab.length > 0) {
$('.nenghui-container .main-title').html(newval);
}
});
});
// 选项卡按钮文字更改预览
wp.customize('tab_button_text_' + i, function(value) {
value.bind(function(newval) {
// 如果当前选项卡是激活状态,更新按钮文字
const tabId = wp.customize('tab_id_' + i).get() || 'tab-' + i;
const activeTab = $('.nenghui-container .nenghui-tab.active[data-nenghui-tab="' + tabId + '"]');
if (activeTab.length > 0) {
const button = $('.nenghui-container .learn-more-btn');
const spanElement = button.find('span:not(.arrow)');
if (spanElement.length > 0) {
spanElement.text(newval);
} else {
// 如果没有span元素直接更新按钮文字保留箭头
const arrowHtml = button.find('.arrow').length > 0 ? button.find('.arrow')[0].outerHTML : '';
button.html('<span>' + newval + '</span><span class="arrow">→</span>');
}
}
});
});
// 选项卡按钮链接更改预览
wp.customize('tab_button_url_' + i, function(value) {
value.bind(function(newval) {
// 如果当前选项卡是激活状态,更新按钮链接
const tabId = wp.customize('tab_id_' + i).get() || 'tab-' + i;
const activeTab = $('.nenghui-container .nenghui-tab.active[data-nenghui-tab="' + tabId + '"]');
if (activeTab.length > 0) {
$('.nenghui-container .learn-more-btn').attr('href', newval);
}
});
});
// 选项卡图片更改预览
wp.customize('tab_image_' + i, function(value) {
value.bind(function(newval) {
// 如果当前选项卡是激活状态,更新图片
const tabId = wp.customize('tab_id_' + i).get() || 'tab-' + i;
const activeTab = $('.nenghui-container .nenghui-tab.active[data-nenghui-tab="' + tabId + '"]');
if (activeTab.length > 0 && newval) {
$('.nenghui-container .tab-image img').attr('src', newval);
}
});
});
// 选项卡图片替代文字更改预览
wp.customize('tab_image_alt_' + i, function(value) {
value.bind(function(newval) {
// 如果当前选项卡是激活状态更新图片alt属性
const tabId = wp.customize('tab_id_' + i).get() || 'tab-' + i;
const activeTab = $('.nenghui-container .nenghui-tab.active[data-nenghui-tab="' + tabId + '"]');
if (activeTab.length > 0) {
$('.nenghui-container .tab-image img').attr('alt', newval);
}
});
});
}
// 监听选项卡切换事件,确保预览功能正常工作
$(document).on('click', '.nenghui-container .nenghui-tab', function() {
// 延迟一点时间确保DOM更新完成
setTimeout(function() {
// 触发当前激活选项卡的所有设置重新应用
const activeTab = $('.nenghui-container .nenghui-tab.active');
if (activeTab.length > 0) {
const tabType = activeTab.attr('data-nenghui-tab');
// 优化:减少循环范围,只检查实际存在的选项卡
const maxTabs = wp.customize('tabs_count') ? wp.customize('tabs_count').get() : 5;
for (let i = 1; i <= Math.min(maxTabs, 10); i++) {
const tabIdControl = wp.customize('tab_id_' + i);
if (!tabIdControl) continue; // 跳过不存在的控件
const tabId = tabIdControl.get() || 'tab-' + i;
if (tabId === tabType) {
// 重新应用当前选项卡的设置
const mainTitleControl = wp.customize('tab_main_title_' + i);
const buttonTextControl = wp.customize('tab_button_text_' + i);
const buttonUrlControl = wp.customize('tab_button_url_' + i);
const imageControl = wp.customize('tab_image_' + i);
const mainTitle = mainTitleControl ? mainTitleControl.get() : '';
const buttonText = buttonTextControl ? buttonTextControl.get() : '了解更多';
const buttonUrl = buttonUrlControl ? buttonUrlControl.get() : '#';
let image = imageControl ? imageControl.get() : '';
const imageAlt = wp.customize('tab_image_alt_' + i) ? wp.customize('tab_image_alt_' + i).get() : '';
// 如果没有图片,使用默认占位图片
if (!image) {
image = '/wp-content/themes/nenghui-energy-theme-1.0/assets/images/NaN-img.png';
}
// 更新内容
if (mainTitle) $('.nenghui-container .main-title').html(mainTitle);
if (buttonText) {
const button = $('.nenghui-container .learn-more-btn');
const spanElement = button.find('span:not(.arrow)');
if (spanElement.length > 0) {
spanElement.text(buttonText);
} else {
button.html('<span>' + buttonText + '</span><span class="arrow">→</span>');
}
}
if (buttonUrl) $('.nenghui-container .learn-more-btn').attr('href', buttonUrl);
if (image) $('.nenghui-container .tab-image img').attr('src', image);
if (imageAlt) $('.nenghui-container .tab-image img').attr('alt', imageAlt);
break;
}
}
}
}, 100);
});
// ========== 关于公司区块预览功能 ==========
// 关于公司主标题更改预览
wp.customize('about_company_title', function(value) {
value.bind(function(newval) {
$('.about-company-section .about-company-title').text(newval);
});
});
// 关于公司描述更改预览
wp.customize('about_company_description', function(value) {
value.bind(function(newval) {
$('.about-company-section .about-company-description p').html(newval);
});
});
// 关于公司第二段描述更改预览
wp.customize('about_company_description_2', function(value) {
value.bind(function(newval) {
$('.about-company-section .about-company-description-2 p').html(newval);
});
});
// 关于公司右侧图片更改预览
wp.customize('about_company_image', function(value) {
value.bind(function(newval) {
if (newval) {
$('.about-company-section .about-company-image img').attr('src', newval);
}
});
});
// 关于公司统计项目预览
for (let i = 1; i <= 4; i++) {
// 统计数字更改预览
wp.customize('about_company_stat_' + i + '_number', function(value) {
value.bind(function(newval) {
$('.about-company-section .stat-item:nth-child(' + i + ') .stat-number').text(newval);
});
});
// 统计标签更改预览
wp.customize('about_company_stat_' + i + '_label', function(value) {
value.bind(function(newval) {
$('.about-company-section .stat-item:nth-child(' + i + ') .stat-label').text(newval);
});
});
// 统计图标更改预览
wp.customize('about_company_stat_' + i + '_icon', function(value) {
value.bind(function(newval) {
if (newval) {
$('.about-company-section .stat-item:nth-child(' + i + ') .stat-icon img').attr('src', newval);
}
});
});
}
// ========== 发展历程区块预览功能 ==========
// 发展历程主标题更改预览
wp.customize('development_history_title', function(value) {
value.bind(function(newval) {
$('.development-history-section .development-history-title').text(newval);
});
});
// 发展历程背景图片更改预览
wp.customize('development_history_bg_image', function(value) {
value.bind(function(newval) {
if (newval) {
$('.development-history-section .development-history-bg').css('background-image', 'url(' + newval + ')');
}
});
});
// 发展历程年份数量更改预览
wp.customize('development_history_items_count', function(value) {
value.bind(function(newval) {
// 年份数量变化时刷新页面以重新生成项目
wp.customize.preview.send('refresh');
});
});
// 发展历程各年份项目预览
// 动态获取年份数量并为每个项目添加预览功能
function addDevelopmentHistoryItemPreview(itemIndex) {
// 年份更改预览
wp.customize('development_history_item_' + itemIndex + '_year', function(value) {
value.bind(function(newval) {
const timelineItem = $('.development-history-section .timeline-item').eq(itemIndex - 1);
if (timelineItem.length > 0) {
timelineItem.find('.timeline-year').text(newval);
timelineItem.attr('data-year', newval);
// 如果这是当前激活的项目,也更新右侧显示
if (timelineItem.hasClass('active')) {
$('.development-history-section .display-year').text(newval);
}
}
});
});
// 描述更改预览
wp.customize('development_history_item_' + itemIndex + '_description', function(value) {
value.bind(function(newval) {
const timelineItem = $('.development-history-section .timeline-item').eq(itemIndex - 1);
if (timelineItem.length > 0) {
const descriptionElement = timelineItem.find('.timeline-description');
timelineItem.attr('data-description', newval);
if (newval && newval.trim() !== '') {
if (descriptionElement.length === 0) {
timelineItem.find('.timeline-content').append('<div class="timeline-description">' + newval + '</div>');
} else {
descriptionElement.text(newval);
}
} else {
descriptionElement.remove();
}
// 如果这是当前激活的项目,也更新右侧显示
if (timelineItem.hasClass('active')) {
const displayDescription = $('.development-history-section .display-description');
if (newval && newval.trim() !== '') {
if (displayDescription.length === 0) {
$('.development-history-section .development-history-display').append('<div class="display-description">' + newval + '</div>');
} else {
displayDescription.text(newval).show();
}
} else {
displayDescription.hide();
}
}
}
});
});
// 激活状态更改预览
wp.customize('development_history_item_' + itemIndex + '_active', function(value) {
value.bind(function(newval) {
const timelineItem = $('.development-history-section .timeline-item').eq(itemIndex - 1);
if (timelineItem.length > 0) {
if (newval) {
// 移除其他项目的激活状态
$('.development-history-section .timeline-item').removeClass('active');
// 激活当前项目
timelineItem.addClass('active');
// 更新右侧显示
const year = timelineItem.attr('data-year') || '';
const description = timelineItem.attr('data-description') || '';
$('.development-history-section .display-year').text(year);
const displayDescription = $('.development-history-section .display-description');
if (description && description.trim() !== '') {
if (displayDescription.length === 0) {
$('.development-history-section .development-history-display').append('<div class="display-description">' + description + '</div>');
} else {
displayDescription.text(description).show();
}
} else {
displayDescription.hide();
}
} else {
timelineItem.removeClass('active');
}
}
});
});
}
// 为最多20个年份项目添加预览功能
for (let i = 1; i <= 20; i++) {
addDevelopmentHistoryItemPreview(i);
}
// ========== 联系地图区块预览功能 ==========
// 联系地图区块标题更改预览
wp.customize('contact_map_title', function(value) {
value.bind(function(newval) {
$('.nenghui-contact-map .contact-map-title').text(newval);
if (newval && newval.trim() !== '') {
$('.nenghui-contact-map .contact-map-header').show();
} else {
$('.nenghui-contact-map .contact-map-header').hide();
}
});
});
// 办公地址更改预览
wp.customize('contact_office_address', function(value) {
value.bind(function(newval) {
const addressItem = $('.nenghui-contact-map .contact-item').eq(0);
if (newval && newval.trim() !== '') {
addressItem.find('.contact-value').html(newval.replace(/\n/g, '<br>'));
addressItem.show();
} else {
addressItem.hide();
}
});
});
// 电话/手机更改预览
wp.customize('contact_phone', function(value) {
value.bind(function(newval) {
const phoneItem = $('.nenghui-contact-map .contact-item').eq(1);
if (newval && newval.trim() !== '') {
const cleanPhone = newval.replace(/[\s\-\(\)]/g, '');
phoneItem.find('.contact-value a').attr('href', 'tel:' + cleanPhone).text(newval);
phoneItem.show();
} else {
phoneItem.hide();
}
});
});
// 邮箱更改预览
wp.customize('contact_email', function(value) {
value.bind(function(newval) {
const emailItem = $('.nenghui-contact-map .contact-item').eq(2);
if (newval && newval.trim() !== '') {
emailItem.find('.contact-value a').attr('href', 'mailto:' + newval).text(newval);
emailItem.show();
} else {
emailItem.hide();
}
});
});
// 地图嵌入代码更改预览
wp.customize('contact_map_embed_code', function(value) {
value.bind(function(newval) {
const mapContainer = $('.nenghui-contact-map .contact-map-container');
if (newval && newval.trim() !== '') {
mapContainer.html(newval);
} else {
mapContainer.html('<div class="map-placeholder" style="height: 100%; background-color: #e9ecef; display: flex; align-items: center; justify-content: center; border-radius: 8px;"><p style="color: #6c757d; text-align: center; margin: 0;">请在自定义器中设置地图嵌入代码<br><small>联系地图设置 → 地图设置 → 地图嵌入代码</small></p></div>');
}
});
});
// 地图高度更改预览
wp.customize('contact_map_height', function(value) {
value.bind(function(newval) {
let height = newval;
// 验证高度格式
if (!/^\d+(\.\d+)?(px|vh|%)$/.test(height)) {
height = '400px';
}
$('.nenghui-contact-map .contact-map-container').css('height', height);
});
});
// 背景颜色更改预览
wp.customize('contact_bg_color', function(value) {
value.bind(function(newval) {
$('.nenghui-contact-map').css('background-color', newval);
});
});
// 文字颜色更改预览
wp.customize('contact_text_color', function(value) {
value.bind(function(newval) {
$('.nenghui-contact-map').css('color', newval);
});
});
// 图标颜色更改预览
wp.customize('contact_icon_color', function(value) {
value.bind(function(newval) {
$('.nenghui-contact-map .contact-icon').css('color', newval);
});
});
// 产品Banner预览功能
// 产品数量更改预览
wp.customize('products_banner_count', function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// 自动播放设置更改预览
wp.customize('products_banner_autoplay', function(value) {
value.bind(function(newval) {
var carousel = document.querySelector('.products-carousel');
if (carousel) {
carousel.setAttribute('data-autoplay', newval ? 'true' : 'false');
// 重新初始化轮播
wp.customize.preview.send('refresh');
}
});
});
// 自动播放延迟更改预览
wp.customize('products_banner_autoplay_delay', function(value) {
value.bind(function(newval) {
var carousel = document.querySelector('.products-carousel');
if (carousel) {
carousel.setAttribute('data-delay', newval);
// 重新初始化轮播
wp.customize.preview.send('refresh');
}
});
});
// 为每个产品添加预览功能
for (let i = 1; i <= 7; i++) {
// 产品图片更改预览
wp.customize('products_banner_image_' + i, function(value) {
value.bind(function(newval) {
wp.customize.preview.send('refresh');
});
});
// 产品标题更改预览
wp.customize('products_banner_title_' + i, function(value) {
value.bind(function(newval) {
var titleElement = $('.nenghui-products-banner .product-slide:nth-child(' + i + ') .product-title');
if (titleElement.length) {
titleElement.text(newval);
} else {
wp.customize.preview.send('refresh');
}
});
});
// 产品描述更改预览
wp.customize('products_banner_description_' + i, function(value) {
value.bind(function(newval) {
var descElement = $('.nenghui-products-banner .product-slide:nth-child(' + i + ') .product-description');
if (descElement.length) {
descElement.text(newval);
} else {
wp.customize.preview.send('refresh');
}
});
});
// 产品链接更改预览
wp.customize('products_banner_link_' + i, function(value) {
value.bind(function(newval) {
var linkElement = $('.nenghui-products-banner .product-slide:nth-child(' + i + ') .product-link');
if (linkElement.length) {
linkElement.attr('href', newval);
} else {
wp.customize.preview.send('refresh');
}
});
});
}
// ===== Black Maps 地图设置实时预览 =====
// 地图背景颜色更改预览
wp.customize('black_maps_bg_color', function(value) {
value.bind(function(newval) {
$('.black-maps-wrapper').css('background-color', newval);
// 同时更新ECharts配置中的背景色
updateMapBackgroundColor(newval);
});
});
// 地图标题更改预览
wp.customize('black_maps_title', function(value) {
value.bind(function(newval) {
updateMapTitle(newval);
});
});
// 地图副标题更改预览
wp.customize('black_maps_subtitle', function(value) {
value.bind(function(newval) {
updateMapSubtitle(newval);
});
});
// 地图高度更改预览
wp.customize('black_maps_height', function(value) {
value.bind(function(newval) {
$('.black-maps-wrapper').css('height', newval);
// 触发ECharts重新调整大小
resizeAllMaps();
});
});
// 中国区域颜色更改预览
wp.customize('black_maps_china_color', function(value) {
value.bind(function(newval) {
updateMapChinaColor(newval);
});
});
// 目标国家颜色更改预览
wp.customize('black_maps_target_color', function(value) {
value.bind(function(newval) {
updateMapTargetColor(newval);
});
});
// 连接线颜色更改预览
wp.customize('black_maps_line_color', function(value) {
value.bind(function(newval) {
updateMapLineColor(newval);
});
});
// 自定义国家数据更改预览
wp.customize('black_maps_countries', function(value) {
value.bind(function(newval) {
updateMapCountries(newval);
});
});
// 地图更新辅助函数
function updateMapBackgroundColor(color) {
// 查找所有地图实例并更新背景色
$('.black-maps-container').each(function() {
var chartInstance = echarts.getInstanceByDom(this);
if (chartInstance) {
var option = chartInstance.getOption();
option.backgroundColor = color;
chartInstance.setOption(option);
}
});
}
function updateMapTitle(title) {
$('.black-maps-container').each(function() {
var chartInstance = echarts.getInstanceByDom(this);
if (chartInstance) {
var option = chartInstance.getOption();
if (option.title && option.title[0]) {
option.title[0].text = title;
chartInstance.setOption(option);
}
}
});
}
function updateMapSubtitle(subtitle) {
$('.black-maps-container').each(function() {
var chartInstance = echarts.getInstanceByDom(this);
if (chartInstance) {
var option = chartInstance.getOption();
if (option.title && option.title[0]) {
option.title[0].subtext = subtitle;
chartInstance.setOption(option);
}
}
});
}
function updateMapChinaColor(color) {
$('.black-maps-container').each(function() {
var chartInstance = echarts.getInstanceByDom(this);
if (chartInstance) {
var option = chartInstance.getOption();
if (option.geo && option.geo[0] && option.geo[0].regions) {
// 查找中国区域配置并更新颜色
option.geo[0].regions.forEach(function(region) {
if (region.name === 'China') {
region.itemStyle.normal.areaColor = color;
region.itemStyle.emphasis.areaColor = color;
}
});
chartInstance.setOption(option);
}
}
});
}
function updateMapTargetColor(color) {
$('.black-maps-container').each(function() {
var chartInstance = echarts.getInstanceByDom(this);
if (chartInstance) {
var option = chartInstance.getOption();
if (option.geo && option.geo[0] && option.geo[0].regions) {
// 更新所有目标国家的颜色(除了中国)
option.geo[0].regions.forEach(function(region) {
if (region.name !== 'China') {
region.itemStyle.normal.areaColor = color;
region.itemStyle.emphasis.areaColor = color;
}
});
chartInstance.setOption(option);
}
}
});
}
function updateMapLineColor(color) {
$('.black-maps-container').each(function() {
var chartInstance = echarts.getInstanceByDom(this);
if (chartInstance) {
var option = chartInstance.getOption();
if (option.series) {
// 更新所有线条系列的颜色
option.series.forEach(function(series) {
if (series.type === 'lines' && series.lineStyle) {
series.lineStyle.normal.color = color;
}
});
chartInstance.setOption(option);
}
}
});
}
function updateMapCountries(countriesJson) {
// 当国家数据更改时,重新加载整个地图
// 这是最简单和最可靠的方法
wp.customize.preview.send('refresh');
}
function resizeAllMaps() {
// 调整所有地图实例的大小
setTimeout(function() {
$('.black-maps-container').each(function() {
var chartInstance = echarts.getInstanceByDom(this);
if (chartInstance) {
chartInstance.resize();
}
});
}, 100);
}
// ========== 地图设置实时预览 ==========
// 地图标题预览
wp.customize('black_maps_title', function(value) {
value.bind(function(newval) {
// 如果页面上有ECharts实例更新标题
if (typeof echarts !== 'undefined') {
$('.black-maps-wrapper').each(function() {
var mapId = $(this).find('[id^="echartsMap"]').attr('id');
if (mapId) {
var chartInstance = echarts.getInstanceByDom(document.getElementById(mapId));
if (chartInstance) {
chartInstance.setOption({
title: {
text: newval
}
});
}
}
});
}
});
});
// 地图副标题预览
wp.customize('black_maps_subtitle', function(value) {
value.bind(function(newval) {
if (typeof echarts !== 'undefined') {
$('.black-maps-wrapper').each(function() {
var mapId = $(this).find('[id^="echartsMap"]').attr('id');
if (mapId) {
var chartInstance = echarts.getInstanceByDom(document.getElementById(mapId));
if (chartInstance) {
chartInstance.setOption({
title: {
subtext: newval
}
});
}
}
});
}
});
});
// 地图高度预览
wp.customize('black_maps_height', function(value) {
value.bind(function(newval) {
var height = newval;
if (/^\d+$/.test(newval)) {
height = newval + 'px';
}
$('.black-maps-wrapper, .black-maps-container, [id^="echartsMap"]').css('height', height);
// 重新调整ECharts大小
if (typeof echarts !== 'undefined') {
setTimeout(function() {
$('.black-maps-wrapper').each(function() {
var mapId = $(this).find('[id^="echartsMap"]').attr('id');
if (mapId) {
var chartInstance = echarts.getInstanceByDom(document.getElementById(mapId));
if (chartInstance) {
chartInstance.resize();
}
}
});
}, 100);
}
});
});
// 背景颜色预览
wp.customize('black_maps_bg_color', function(value) {
value.bind(function(newval) {
$('.black-maps-wrapper').css('background-color', newval);
});
});
// 图表背景颜色预览
wp.customize('black_maps_chart_bg', function(value) {
value.bind(function(newval) {
if (typeof echarts !== 'undefined') {
$('.black-maps-wrapper').each(function() {
var mapId = $(this).find('[id^="echartsMap"]').attr('id');
if (mapId) {
var chartInstance = echarts.getInstanceByDom(document.getElementById(mapId));
if (chartInstance) {
chartInstance.setOption({
backgroundColor: newval
});
}
}
});
}
});
});
// 标题颜色预览
wp.customize('black_maps_title_color', function(value) {
value.bind(function(newval) {
if (typeof echarts !== 'undefined') {
$('.black-maps-wrapper').each(function() {
var mapId = $(this).find('[id^="echartsMap"]').attr('id');
if (mapId) {
var chartInstance = echarts.getInstanceByDom(document.getElementById(mapId));
if (chartInstance) {
chartInstance.setOption({
title: {
textStyle: {
color: newval
}
}
});
}
}
});
}
});
});
// 标题字体大小预览
wp.customize('black_maps_title_size', function(value) {
value.bind(function(newval) {
if (typeof echarts !== 'undefined') {
$('.black-maps-wrapper').each(function() {
var mapId = $(this).find('[id^="echartsMap"]').attr('id');
if (mapId) {
var chartInstance = echarts.getInstanceByDom(document.getElementById(mapId));
if (chartInstance) {
chartInstance.setOption({
title: {
textStyle: {
fontSize: parseInt(newval)
}
}
});
}
}
});
}
});
});
// 颜色相关设置预览(需要刷新页面以完全应用)
var colorSettings = [
'black_maps_china_color',
'black_maps_target_color',
'black_maps_line_color',
'black_maps_effect_color'
];
colorSettings.forEach(function(setting) {
wp.customize(setting, function(value) {
value.bind(function(newval) {
// 颜色变化需要重新初始化地图,所以刷新页面
wp.customize.preview.send('refresh');
});
});
});
// 自定义国家数据预览
wp.customize('black_maps_countries_json', function(value) {
value.bind(function(newval) {
// 国家数据变化需要重新初始化地图
wp.customize.preview.send('refresh');
});
});
// 显示参数预览
var displaySettings = [
'black_maps_enable_zoom',
'black_maps_enable_drag',
'black_maps_animation_speed'
];
displaySettings.forEach(function(setting) {
wp.customize(setting, function(value) {
value.bind(function(newval) {
// 显示参数变化需要重新初始化地图
wp.customize.preview.send('refresh');
});
});
});
// 地图预览辅助函数
function refreshMapPreview() {
if (typeof echarts !== 'undefined') {
setTimeout(function() {
$('.black-maps-wrapper').each(function() {
var mapId = $(this).find('[id^="echartsMap"]').attr('id');
if (mapId) {
var chartInstance = echarts.getInstanceByDom(document.getElementById(mapId));
if (chartInstance) {
chartInstance.resize();
}
}
});
}, 200);
}
}
// 监听窗口大小变化,调整地图大小
$(window).on('resize', function() {
refreshMapPreview();
});
})(jQuery);