@@ -145,216 +151,19 @@ $loginStatus = [
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
+
+ // 搜索功能相关代码
+ layui.use(['layer'], function () {
+ var layer = layui.layer;
+ var $ = layui.jquery;
+
+ // 执行搜索
+ function executeSearch() {
+ var searchInput = document.getElementById('searchInput');
+ if (!searchInput) {
+ layer.msg('搜索组件初始化失败');
+ return;
+ }
+
+ var keyword = searchInput.value.trim();
+ var type = document.getElementById('searchType').value;
+
+ if (!keyword) {
+ layer.msg('请输入搜索关键词');
+ return;
+ }
+
+ // 跳转到统一的搜索结果页面
+ window.location.href = '/index/search/index?keyword=' + encodeURIComponent(keyword) + '&type=' + type;
+ }
+
+ // 绑定事件
+ $(function() {
+ var searchMask = $('#searchMask');
+ var searchInput = $('#searchInput');
+ var searchBtn = $('#searchBtn');
+ var mainSearchIcon = $('#mainSearchIcon');
+ var stickySearchIcon = $('#stickySearchIcon');
+
+ // 显示搜索框
+ function showSearch() {
+ searchMask.addClass('show');
+ setTimeout(function() {
+ searchInput.focus();
+ }, 300);
+ }
+
+ // 隐藏搜索框
+ function hideSearch() {
+ searchMask.removeClass('show');
+ searchInput.val('');
+ }
+
+ // 绑定搜索图标点击事件
+ mainSearchIcon.on('click', showSearch);
+ stickySearchIcon.on('click', showSearch);
+
+ // 绑定搜索按钮点击事件
+ searchBtn.on('click', function(e) {
+ e.preventDefault();
+ executeSearch();
+ });
+
+ // 绑定回车键搜索
+ searchInput.on('keypress', function(e) {
+ if (e.which === 13) {
+ e.preventDefault();
+ executeSearch();
+ }
+ });
+
+ // 点击遮罩层关闭搜索框
+ searchMask.on('click', function(e) {
+ if ($(e.target).hasClass('search-mask')) {
+ hideSearch();
+ }
+ });
+
+ // 绑定ESC键关闭搜索框
+ $(document).on('keydown', function(e) {
+ if (e.keyCode === 27 && searchMask.hasClass('show')) {
+ hideSearch();
+ }
+ });
+
+ // 输入框获得焦点时选中所有文本
+ searchInput.on('focus', function() {
+ this.select();
+ });
+ });
+ });
+
+
+
\ No newline at end of file
diff --git a/app/index/view/component/header.php b/app/index/view/component/header.php
index 53e3196..2b5a1b4 100644
--- a/app/index/view/component/header.php
+++ b/app/index/view/component/header.php
@@ -69,6 +69,22 @@ $loginStatus = [
游戏下载
@@ -125,14 +141,17 @@ $loginStatus = [
+
+
+
@@ -175,217 +194,6 @@ $loginStatus = [
-
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/index/view/component/main.php b/app/index/view/component/main.php
index 88ec73e..040a184 100644
--- a/app/index/view/component/main.php
+++ b/app/index/view/component/main.php
@@ -614,6 +614,87 @@
});
}
+ // 搜索功能相关代码
+ layui.use(['layer'], function () {
+ var layer = layui.layer;
+ var $ = layui.jquery;
+
+ // 搜索功能相关变量
+ var searchMask = $('#searchMask');
+ var searchInput = $('#searchInput');
+ var searchBtn = $('#searchBtn');
+ var searchIcons = $('#mainSearchIcon, #stickySearchIcon');
+
+ // 显示搜索框
+ function showSearch() {
+ searchMask.addClass('show');
+ searchInput.focus();
+ }
+
+ // 隐藏搜索框
+ function hideSearch() {
+ searchMask.removeClass('show');
+ searchInput.val('').blur();
+ }
+
+ // 执行搜索
+ function doSearch() {
+ var keyword = searchInput.val().trim();
+ if (keyword) {
+ window.location.href = '/search?keyword=' + encodeURIComponent(keyword);
+ } else {
+ layer.msg('请输入搜索关键词', { icon: 0 });
+ }
+ }
+
+ // 事件绑定
+ function bindEvents() {
+ // 点击搜索图标显示搜索框
+ searchIcons.on('click', showSearch);
+
+ // 点击蒙版背景隐藏搜索框
+ searchMask.on('click', function (e) {
+ if ($(e.target).hasClass('search-mask')) {
+ hideSearch();
+ }
+ });
+
+ // 搜索按钮点击事件
+ searchBtn.on('click', function (e) {
+ e.preventDefault();
+ doSearch();
+ });
+
+ // 回车键触发搜索
+ searchInput.on('keypress', function (e) {
+ if (e.which === 13) {
+ e.preventDefault();
+ doSearch();
+ }
+ });
+
+ // ESC键关闭搜索框
+ $(document).on('keydown', function (e) {
+ if (e.keyCode === 27 && searchMask.hasClass('show')) {
+ hideSearch();
+ }
+ });
+
+ // 输入框获得焦点时全选文本
+ searchInput.on('focus', function () {
+ this.select();
+ });
+ }
+
+ // 初始化
+ function init() {
+ bindEvents();
+ }
+
+ // 启动
+ init();
+ });
+
// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
loadWebArticles();
diff --git a/app/index/view/search/index.php b/app/index/view/search/index.php
new file mode 100644
index 0000000..52ee1df
--- /dev/null
+++ b/app/index/view/search/index.php
@@ -0,0 +1,88 @@
+{include file="component/head" /}
+{include file="component/header-simple" /}
+
+
+
+
+
+
+
+
+
+
+ {if $items}
+ {volist name="items" id="item"}
+
+
+
+
+
+ {if $type == 'article'}
+

+ {else}
+

+ {/if}
+
+
+
+
+ {$item.category.name}
+ {$item.author}
+ {$item.publishdate|date="Y-m-d"}
+
+
+
+
+
+
+
+ {/volist}
+ {else}
+
+
+
+
+
暂无相关{$type == 'article' ? '文章' : '资源'}
+
+
+
+ {/if}
+
+
+
+
+
+
+
+{include file="component/footer" /}
+{include file="component/foot" /}
+
+
\ No newline at end of file
diff --git a/runtime/index/temp/745a6917c29d4d1aec94c5bc5dbce0b2.php b/runtime/index/temp/745a6917c29d4d1aec94c5bc5dbce0b2.php
index cdecb05..d7ac5d6 100644
--- a/runtime/index/temp/745a6917c29d4d1aec94c5bc5dbce0b2.php
+++ b/runtime/index/temp/745a6917c29d4d1aec94c5bc5dbce0b2.php
@@ -1,4 +1,4 @@
-
+
@@ -58,12 +58,17 @@ $loginStatus = [
+
+
+
@@ -113,12 +118,17 @@ $loginStatus = [
+
+
+
@@ -161,216 +171,19 @@ $loginStatus = [
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -820,6 +1111,10 @@ $loginStatus = [
Copyright 2025 | All Rights By Yunzer
+
diff --git a/runtime/index/temp/cb3abdcb36407244b9b613766f30573b.php b/runtime/index/temp/cb3abdcb36407244b9b613766f30573b.php
index 69e3dc6..a6a5d3d 100644
--- a/runtime/index/temp/cb3abdcb36407244b9b613766f30573b.php
+++ b/runtime/index/temp/cb3abdcb36407244b9b613766f30573b.php
@@ -1,4 +1,4 @@
-
+
@@ -87,6 +87,22 @@ $loginStatus = [
游戏下载
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -143,14 +159,17 @@ $loginStatus = [
+
+
+
@@ -193,217 +212,6 @@ $loginStatus = [
-
-
+
+
@@ -1306,6 +1523,87 @@ $loginStatus = [
});
}
+ // 搜索功能相关代码
+ layui.use(['layer'], function () {
+ var layer = layui.layer;
+ var $ = layui.jquery;
+
+ // 搜索功能相关变量
+ var searchMask = $('#searchMask');
+ var searchInput = $('#searchInput');
+ var searchBtn = $('#searchBtn');
+ var searchIcons = $('#mainSearchIcon, #stickySearchIcon');
+
+ // 显示搜索框
+ function showSearch() {
+ searchMask.addClass('show');
+ searchInput.focus();
+ }
+
+ // 隐藏搜索框
+ function hideSearch() {
+ searchMask.removeClass('show');
+ searchInput.val('').blur();
+ }
+
+ // 执行搜索
+ function doSearch() {
+ var keyword = searchInput.val().trim();
+ if (keyword) {
+ window.location.href = '/search?keyword=' + encodeURIComponent(keyword);
+ } else {
+ layer.msg('请输入搜索关键词', { icon: 0 });
+ }
+ }
+
+ // 事件绑定
+ function bindEvents() {
+ // 点击搜索图标显示搜索框
+ searchIcons.on('click', showSearch);
+
+ // 点击蒙版背景隐藏搜索框
+ searchMask.on('click', function (e) {
+ if ($(e.target).hasClass('search-mask')) {
+ hideSearch();
+ }
+ });
+
+ // 搜索按钮点击事件
+ searchBtn.on('click', function (e) {
+ e.preventDefault();
+ doSearch();
+ });
+
+ // 回车键触发搜索
+ searchInput.on('keypress', function (e) {
+ if (e.which === 13) {
+ e.preventDefault();
+ doSearch();
+ }
+ });
+
+ // ESC键关闭搜索框
+ $(document).on('keydown', function (e) {
+ if (e.keyCode === 27 && searchMask.hasClass('show')) {
+ hideSearch();
+ }
+ });
+
+ // 输入框获得焦点时全选文本
+ searchInput.on('focus', function () {
+ this.select();
+ });
+ }
+
+ // 初始化
+ function init() {
+ bindEvents();
+ }
+
+ // 启动
+ init();
+ });
+
// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
loadWebArticles();
@@ -1366,6 +1664,10 @@ $loginStatus = [
Copyright 2025 | All Rights By Yunzer
+