签入版本

This commit is contained in:
2026-09-28 18:51:35 +08:00
commit ab0f064ea6
2692 changed files with 354751 additions and 0 deletions
@@ -0,0 +1,4 @@
html {
filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
-webkit-filter: grayscale(100%);
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

@@ -0,0 +1,181 @@
layui.config({
base: getProjectUrl() + 'assets/module/'
}).use(['jquery', 'element', 'util', 'admin'], function () {
var $ = layui.jquery;
var element = layui.element;
var util = layui.util;
var admin = layui.admin;
admin.removeLoading();
if ($('.ew-header').length > 0) {
// 获取当前页面所有的导航id
var navIds = [];
$('[nav-id]').each(function () {
navIds.push($(this).attr('nav-id'));
});
// 导航点击事件
element.on('nav(ew-header-nav)', function (elem) {
var layHref = $(elem).attr('lay-href');
if (layHref) {
if (navIds.length == 0) {
location.href = layHref;
} else if (layHref.indexOf('#') != -1) {
var hash = layHref.substring(layHref.indexOf('#') + 1);
var $section = $('[nav-id="' + hash + '"]');
if ($section.length > 0) {
$('html,body').animate({scrollTop: $section.offset().top - 70}, 300);
}
} else {
$('html').animate({scrollTop: 0}, 300);
}
}
});
// 滚动监听,节流处理
if (navIds.length > 0) {
$(window).on('scroll', function () {
doOnScroll();
});
if (location.hash) {
$('.ew-header a[lay-href$="' + location.hash.substring(1) + '"]').trigger('click');
} else {
doOnScroll();
}
// nav-scroll事件
$(document).on('click', '[nav-scroll]', function () {
var hash = $(this).attr('nav-scroll');
var $section = $('[nav-id="' + hash + '"]');
if ($section.length > 0) {
$('.ew-header .layui-nav-item').removeClass('layui-this');
$('.ew-header a[lay-href$="#' + hash + '"]').parent().addClass('layui-this');
$('html,body').animate({scrollTop: $section.offset().top - 70}, 300);
}
});
}
// 咨询弹窗样式(仅注入一次)
if (!$('#xmContactStyle').length) {
$('head').append(
'<style id="xmContactStyle">' +
'.xm-cp{padding:0;overflow:hidden;border-radius:10px;}' +
'.xm-cp-hero{text-align:center;padding:32px 30px 24px;background:linear-gradient(135deg,#1f3a6b 0%,#2a5298 100%);position:relative;}' +
'.xm-cp-close{position:absolute;top:12px;right:14px;width:32px;height:32px;border:none;background:rgba(255,255,255,0.15);border-radius:50%;color:#fff;font-size:22px;line-height:32px;cursor:pointer;transition:background .2s;}' +
'.xm-cp-close:hover{background:rgba(255,255,255,0.3);}' +
'.xm-cp-hero h3{font-size:22px;font-weight:600;color:#fff;margin-bottom:8px;}' +
'.xm-cp-hero p{font-size:14px;color:rgba(255,255,255,0.7);line-height:1.6;}' +
'.xm-cp-body{padding:30px;background:#fff;text-align:center;}' +
'.xm-cp-qr{width:180px;height:180px;background:#f8fafd;border-radius:14px;padding:8px;border:1px solid #e8edf5;margin:0 auto 12px;transition:transform .25s,box-shadow .25s;}' +
'.xm-cp-qr:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,20,50,0.10);}' +
'.xm-cp-qr img{width:100%;height:100%;border-radius:8px;object-fit:cover;}' +
'.xm-cp-qr-label{font-size:14px;font-weight:600;color:#0b1a33;display:flex;align-items:center;justify-content:center;gap:5px;margin-bottom:4px;}' +
'.xm-cp-qr-label .layui-icon{font-size:16px;}' +
'.xm-cp-qr-tip{font-size:13px;color:#8b9ab5;}' +
'</style>'
);
}
// 右侧浮层工具栏(保持原 fixbar 样式)
util.fixbar({
bgcolor: '#165DFF',
bar1: '&#xe63a;',
bar2: '&#xe676;',
bar3: '&#xe604;',
click: function (type) {
if (type === 'bar1') {
openContactLayer('wechat');
} else if (type === 'bar2') {
openContactLayer('qq');
} else if (type === 'bar3') {
$('html,body').animate({scrollTop: 0}, 300);
}
}
});
// 咨询弹窗公共方法
window.openContactLayer = function(type) {
var isWx = type === 'wechat';
var heroTitle = isWx ? '微信客服' : 'QQ客服';
var heroDesc = isWx ? '长按或扫描二维码,添加微信好友<br>技术顾问一对一为您解答疑问' : '长按或扫描二维码,添加QQ好友<br>技术顾问一对一为您解答疑问';
var qrImg = isWx ? '/static/assets/images/img_wx.png' : '/static/assets/images/img_qq.png';
var qrAlt = isWx ? '微信二维码' : 'QQ二维码';
var qrLabel = isWx
? '<i class="layui-icon layui-icon-dialogue" style="color:#07c160;"></i> 微信扫码'
: '<i class="layui-icon layui-icon-login-qq" style="color:#12b7f5;"></i> QQ扫码';
var html = '<div class="xm-cp">' +
'<div class="xm-cp-hero">' +
'<button type="button" class="xm-cp-close" onclick="layui.layer.closeAll()">×</button>' +
'<h3>' + heroTitle + '</h3>' +
'<p>' + heroDesc + '</p>' +
'</div>' +
'<div class="xm-cp-body">' +
'<div class="xm-cp-qr"><img src="' + qrImg + '" alt="' + qrAlt + '"/></div>' +
'<div class="xm-cp-qr-label">' + qrLabel + '</div>' +
'<div class="xm-cp-qr-tip">长按识别或截图扫码</div>' +
'</div>' +
'</div>';
layer.open({
type: 1,
title: false,
closeBtn: 0,
shade: 0.35,
area: ['380px'],
content: html,
success: function (layero) {
layero.css('border-radius', '10px');
}
});
};
}
// 同步当前滚动位置
function doOnScroll() {
var winScrollTop = $(window).scrollTop();
for (var i = navIds.length - 1; i >= 0; i--) {
if (winScrollTop >= ($('[nav-id="' + navIds[i] + '"]').offset().top - 75)) {
$('.ew-header .layui-nav-item').removeClass('layui-this');
$('.ew-header a[lay-href$="#' + navIds[i] + '"]').parent().addClass('layui-this');
return;
}
}
$('.ew-header .layui-nav-item').removeClass('layui-this');
$('.ew-header a[lay-href="index.html"]').parent().addClass('layui-this');
}
// 移动设备下头部导航多级菜单展开折叠
$('body').on('click', '.ew-nav-group .layui-nav-item', function (e) {
if (admin.getPageWidth() < 935) {
$('.ew-nav-group .layui-nav-item>.layui-nav-child').removeClass('layui-anim layui-anim-upbit');
var $navChild = $(this).children('.layui-nav-child');
if ($navChild.hasClass('layui-show')) {
$navChild.removeClass('layui-show');
$(this).find('.layui-nav-more').removeClass('layui-nav-mored');
} else {
$('.ew-nav-group .layui-nav-item>.layui-nav-child').removeClass('layui-show');
$('.ew-nav-group .layui-nav-item>a>.layui-nav-more').removeClass('layui-nav-mored');
$navChild.addClass('layui-show');
$(this).find('.layui-nav-more').addClass('layui-nav-mored');
}
}
});
});
// 获取当前项目的根路径
function getProjectUrl() {
var layuiDir = layui.cache.dir;
if (!layuiDir) {
var js = document.scripts, last = js.length - 1, src;
for (var i = last; i > 0; i--) {
if (js[i].readyState === 'interactive') {
src = js[i].src;
break;
}
}
var jsPath = src || js[last].src;
layuiDir = jsPath.substring(0, jsPath.lastIndexOf('/') + 1);
}
return layuiDir.substring(0, layuiDir.indexOf('assets'));
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
/** layui-v2.5.4 MIT License By https://www.layui.com */
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Some files were not shown because too many files have changed in this diff Show More