feat: 品牌里程

This commit is contained in:
2025-04-17 15:59:53 +08:00
parent f7e0ecc9fd
commit 92675ac6ba
14 changed files with 196 additions and 71 deletions

View File

@@ -0,0 +1,73 @@
<?php
declare (strict_types = 1);
namespace app\index\controller;
use app\index\model\SysBannerItemModel;
use app\index\model\SysBannerModel;
use think\facade\View;
/**
* 关于我们控制器
*/
class AboutUs extends Common
{
/**
* 品牌故事
*/
public function story()
{
// 获取品牌故事banner
$banners = SysBannerItemModel::hasWhere('banner', [
'language_id' => $this->lang_id,
'unique_label' => 'BANNER_67ff632a5f7aa'
])
->type('image')
->enabled(true)
->visible(['id', 'title', 'title_txt_color', 'image', 'desc', 'desc_txt_color', 'link'])
->order(['sort' => 'asc', 'id' => 'desc'])
->select();
View::assign('banners', $banners);
return View::fetch('story');
}
/**
* 品牌里程
*/
public function mileage()
{
$achievement = [];
$events = [];
$development = [];
// 获取品牌里程banner
$banner = SysBannerModel::with(['items'])
->uniqueLabel([
'BANNER_67ff786dc9c8d',
'BANNER_67ff7ef1354cf',
'BANNER_67ff7f37a0b67',
])
->language($this->lang_id)
->enabled(true)
->select();
if (!$banner->isEmpty()) {
$banner_map = [];
foreach ($banner as $v) {
$banner_map[$v->unique_label] = $v;
}
$achievement = $banner_map['BANNER_67ff786dc9c8d']->items->where('status', '=', 1)->toArray();
$events = $banner_map['BANNER_67ff7ef1354cf']->items->where('status', '=', 1)->toArray();
$development = $banner_map['BANNER_67ff7f37a0b67']->items->where('status', '=', 1)->toArray();
// 排序避免关联方法使用order排序bug
array_multisort(array_column($achievement, 'sort'), SORT_ASC, array_column($achievement, 'id'), SORT_DESC, $achievement);
array_multisort(array_column($events, 'sort'), SORT_ASC, array_column($events, 'id'), SORT_DESC, $events);
array_multisort(array_column($development, 'sort'), SORT_ASC, array_column($development, 'id'), SORT_DESC, $development);
}
View::assign('achievement', $achievement);
View::assign('events', $events);
View::assign('development', $development);
return View::fetch('mileage');
}
}

View File

@@ -1,43 +0,0 @@
<?php
declare (strict_types = 1);
namespace app\index\controller;
use app\admin\controller\v1\BannerItem;
use app\index\model\SysBannerItemModel;
use think\facade\View;
/**
* 品牌故事控制器
*/
class Brand extends Common
{
/**
* 品牌故事
*/
public function story()
{
// 获取品牌故事banner
$banners = SysBannerItemModel::hasWhere('banner', [
'language_id' => $this->lang_id,
'unique_label' => 'BANNER_67ff632a5f7aa'
])
->type('image')
->enabled(true)
->visible(['id', 'title', 'title_txt_color', 'image', 'desc', 'desc_txt_color', 'link'])
->order(['sort' => 'asc', 'id' => 'desc'])
->select();
View::assign('banners', $banners);
return View::fetch('story');
}
/**
* 品牌里程
*/
public function mileage()
{
return View::fetch('mileage');
}
}

View File

@@ -40,5 +40,10 @@ return [
'search_placeholder' => 'Search model',
'no_data' => 'No Result',
'no_video' => 'No Video',
]
],
'mileage' => [
'achievement' => 'Our Achievement',
'events' => 'Brand Events',
'development' => 'Tech Development',
],
];

View File

@@ -40,5 +40,10 @@ return [
'search_placeholder' => '搜索型号',
'no_data' => '查询无结果!',
'no_video' => '查询无此视频!',
]
],
'mileage' => [
'achievement' => 'ORICO荣耀',
'events' => '品牌里程',
'development' => '品牌活动',
],
];

View File

@@ -48,12 +48,12 @@ Route::group('faq', function() {
Route::get('index', 'Faq/index');
});
// 品牌
Route::group('brand', function() {
// 关于我们
Route::group('aboutus', function() {
// 品牌故事
Route::get('story', 'Brand/story');
Route::get('story', 'AboutUs/story');
// 品牌里程
Route::get('mileage', 'Brand/mileage');
Route::get('mileage', 'AboutUs/mileage');
});
// 数据迁移

View File

@@ -0,0 +1,96 @@
{extend name="public/base" /}
{block name="style"}
<link rel="stylesheet" href="__CSS__/achievement.css" />
{/block}
{block name="main"}
<div class="orico_Page_achievement">
<div class="achievementMain">
<img src="__IMAGES__/Achievement.png" class="acvImg" />
<div class="achInfo">
<div class="title">{:lang('mileage.achievement')}</div>
{notempty name="achievement"}
<div class="achNums">
{volist name="achievement" id="ac"}
<div class="achive_shuju">
<div class="title1" {notempty name="ac.desc_txt_color"}style="color:{$ac.desc_txt_color};"{/notempty}>{$ac.desc|raw}</div>
<div class="subtitle1" {notempty name="ac.title_txt_color"}style="color:{$ac.title_txt_color};"{/notempty}>{$ac.title}</div>
</div>
{/volist}
</div>
{/notempty}
</div>
<div class="achTimes">
{notempty name="events"}
<div class="timecontent">
<div class="title">{:lang('mileage.events')}</div>
<div class="timelist">
<div class="timeline-time">
<ul class="event_year">
{volist name="events" id="ev" key="k"}
<li {eq name="k" value="1"}class="current"{/eq}>
<label for="{$ev.title}" {notempty name="ev.title_txt_color"}style="color:{$ev.title_txt_color};"{/notempty}>{$ev.title}</label>
</li>
{/volist}
</ul>
</div>
<div class="timeline-con">
<div class="con_event_list">
<ul class="event_list">
{volist name="events" id="ev" key="k"}
<div style="overflow: hidden; color: black;">
<h3
id="{$ev.title}"
{eq name="k" value="1"}class="backgroundimg"{/eq}
{notempty name="ev.title_txt_color"}style="color:{$ev.title_txt_color};"{/notempty}
>
{$ev.title}
</h3>
<li {notempty name="ev.desc_txt_color"}style="color:{$ev.desctxt_color};"{/notempty}>{$ev.desc|raw}</li>
</div>
{/volist}
</ul>
</div>
</div>
</div>
</div>
{/notempty}
</div>
<div class="tech">
{notempty name="development"}
<div class="techcontent">
<div class="title">{:lang('mileage.development')}</div>
{volist name="development" id="de"}
<div class="techcon ">
<div class="text">
<img src="__IMAGES__/lichengbei.png">
<div class="year" {notempty name="de.title_txt_color"}style="color:{$de.title_txt_color};"{/notempty}>{$de.title}</div>
<div class="context" {notempty name="de.desc_txt_color"}style="color:{$de.desctxt_color};"{/notempty}>{$de.desc|raw}</div>
</div>
<div class="tech-img">
<img src="{$de.image}" />
</div>
</div>
{/volist}
</div>
{/notempty}
</div>
</div>
</div>
{/block}
{block name="script"}
<script type="text/javascript">
$(function() {
$('label').click(function() {
$('.event_year>li').removeClass('current');
$(this).parent('li').addClass('current');
var year = $(this).attr('for');
$('#' + year).parent().prevAll('div').slideUp(800);
$('#' + year).parent().slideDown(800).nextAll('div').slideDown(800);
$('#' + year).parent().css('color', "red").nextAll('div').css('color', "black")
//
$("h3").removeClass('backgroundimg')
$('#' + year).addClass('backgroundimg')
});
});
</script>
{/block}