优化搜索界面及控制器
This commit is contained in:
@@ -28,14 +28,14 @@ class SearchController extends BaseController
|
||||
$detailUrl = '/index/articles/detail';
|
||||
$categoryUrl = '/index/articles/category';
|
||||
$status = 2; // 文章状态为2
|
||||
$fields = 'id, title, cate, image, author, create_time as publishdate';
|
||||
$fields = 'id, title, cate, image, author, FROM_UNIXTIME(create_time, "%Y-%m-%d") as publishdate';
|
||||
} else if ($type == 'resource') {
|
||||
$model = new Resources();
|
||||
$categoryModel = new ResourcesCategory();
|
||||
$detailUrl = '/index/resources/detail';
|
||||
$categoryUrl = '/index/resources/category';
|
||||
$status = 1; // 资源状态为1
|
||||
$fields = 'id, title, cate, icon, author, create_time as publishdate';
|
||||
$fields = 'id, title, cate, icon, uploader, FROM_UNIXTIME(create_time, "%Y-%m-%d") as publishdate';
|
||||
} else {
|
||||
$this->error('无效的搜索类型');
|
||||
}
|
||||
@@ -61,6 +61,7 @@ class SearchController extends BaseController
|
||||
->find();
|
||||
|
||||
$item['category'] = $category ?: ['id' => 0, 'name' => '未分类', 'image' => ''];
|
||||
$item['cate'] = $item['category']['name']; // 使用分类名称替换分类ID
|
||||
|
||||
// 如果文章的图片为空,使用分类的图片
|
||||
if (empty($item['image'])) {
|
||||
@@ -71,10 +72,11 @@ class SearchController extends BaseController
|
||||
}
|
||||
} else {
|
||||
$category = $categoryModel->where('id', $item['cate'])
|
||||
->field('id, name, icon')
|
||||
->field('id, name, icon, cid')
|
||||
->find();
|
||||
|
||||
$item['category'] = $category ?: ['id' => 0, 'name' => '未分类', 'icon' => ''];
|
||||
$item['category'] = $category ?: ['id' => 0, 'name' => '未分类', 'icon' => '', 'cid' => 0];
|
||||
$item['cate'] = $item['category']['name']; // 使用分类名称替换分类ID
|
||||
|
||||
// 如果资源的图片为空,使用分类的图片
|
||||
if (empty($item['icon'])) {
|
||||
@@ -83,6 +85,13 @@ class SearchController extends BaseController
|
||||
if (empty($item['icon'])) {
|
||||
$item['icon'] = '/static/images/default.jpg';
|
||||
}
|
||||
|
||||
// 根据分类cid判断资源类型
|
||||
if ($item['category']['cid'] == 8) {
|
||||
$item['detail_url'] = url('game/detail', ['id' => $item['id']]);
|
||||
} else {
|
||||
$item['detail_url'] = url('program/detail', ['id' => $item['id']]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,29 +19,24 @@
|
||||
{if $items}
|
||||
{volist name="items" id="item"}
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="margin-right: 20px;">
|
||||
{if $type == 'article'}
|
||||
<img src="{$item.image}" alt="{$item.title}" style="width: 250px; height: 140px; object-fit: cover;">
|
||||
{else}
|
||||
<img src="{$item.icon}" alt="{$item.title}" style="width: 250px; height: 140px; object-fit: cover;">
|
||||
{/if}
|
||||
</div>
|
||||
<div class="layui-col-md8">
|
||||
<h3 class="layui-text">
|
||||
<a href="{$detailUrl}?id={$item.id}" class="layui-text" style="color: #333;">{$item.title}</a>
|
||||
</h3>
|
||||
<div class="layui-text" style="margin: 10px 0;">
|
||||
<span class="layui-badge layui-bg-gray">{$item.category.name}</span>
|
||||
<span class="layui-badge layui-bg-gray">{$item.author}</span>
|
||||
<span class="layui-badge layui-bg-gray">{$item.publishdate|date="Y-m-d"}</span>
|
||||
</div>
|
||||
<div class="layui-text" style="margin-top: 10px;">
|
||||
<a href="{$detailUrl}?id={$item.id}" class="layui-btn layui-btn-sm layui-btn-normal">查看详情</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-result-item" onclick="window.location.href='<?php echo $type == 'article' ? url('article/detail', ['id' => $item['id']]) : $item['detail_url'] ?>'">
|
||||
<div class="search-result-image">
|
||||
<?php if($type == 'article'): ?>
|
||||
<img src="<?php echo $item['image'] ?: '/static/images/default.jpg' ?>" alt="<?php echo $item['title'] ?>">
|
||||
<?php else: ?>
|
||||
<img src="<?php echo $item['icon'] ?: '/static/images/default.jpg' ?>" alt="<?php echo $item['title'] ?>">
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="search-result-content">
|
||||
<h3 class="search-result-title"><?php echo $item['title'] ?></h3>
|
||||
<div class="search-result-meta">
|
||||
<span class="layui-badge layui-bg-blue"><?php echo $item['cate'] ?></span>
|
||||
<?php if($type == 'article'): ?>
|
||||
<span class="layui-badge layui-bg-green">作者:<?php echo $item['author'] ?></span>
|
||||
<?php else: ?>
|
||||
<span class="layui-badge layui-bg-green">上传者:<?php echo $item['uploader'] ?></span>
|
||||
<?php endif; ?>
|
||||
<span class="layui-badge layui-bg-gray"><?php echo $item['publishdate'] ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -85,4 +80,53 @@ layui.use(['laypage'], function(){
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.search-result-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 15px;
|
||||
transition: all 0.3s ease;
|
||||
border-radius: 4px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.search-result-item:hover {
|
||||
background-color:rgb(255, 255, 255);
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 2px 8px rgba(0, 174, 255, 0.5);
|
||||
}
|
||||
|
||||
.search-result-image {
|
||||
margin-right: 20px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.search-result-image img {
|
||||
width: 250px;
|
||||
height: 140px;
|
||||
object-fit: cover;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.search-result-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.search-result-title {
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
|
||||
.search-result-meta {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.search-result-meta .layui-badge {
|
||||
margin-right: 5px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user