From 07687e62b308347ffd57423ba64480518a6ff244 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Mon, 28 Apr 2025 16:01:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20nas=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/index/controller/TopicNas.php | 125 +++++ app/index/lang/en-us.php | 4 + app/index/lang/zh-cn.php | 4 + app/index/route/route.php | 18 + app/index/view/public/nas_base.html | 28 + app/index/view/public/nas_footer.html | 74 +++ app/index/view/public/nas_header.html | 50 ++ app/index/view/topic_nas/index.html | 150 ++++++ public/static/index/css/topic_nas_header.css | 59 +++ public/static/index/css/topic_nas_index.css | 508 +++++++++++++++++++ public/static/index/images/logo_nas.png | Bin 0 -> 15216 bytes 11 files changed, 1020 insertions(+) create mode 100644 app/index/controller/TopicNas.php create mode 100644 app/index/view/public/nas_base.html create mode 100644 app/index/view/public/nas_footer.html create mode 100644 app/index/view/public/nas_header.html create mode 100644 app/index/view/topic_nas/index.html create mode 100644 public/static/index/css/topic_nas_header.css create mode 100755 public/static/index/css/topic_nas_index.css create mode 100644 public/static/index/images/logo_nas.png diff --git a/app/index/controller/TopicNas.php b/app/index/controller/TopicNas.php new file mode 100644 index 00000000..75bbcd6d --- /dev/null +++ b/app/index/controller/TopicNas.php @@ -0,0 +1,125 @@ +getLanguages(); + + // 获取当前语言 + $current_language = $this->getCurrentLanguage($languages); + if (!empty($current_language)) { + $this->lang_id = $current_language['id']; + } + + // 获取产品分类 + $categorys = $this->getProductCategory($this->lang_id); + // 输出产品分类 + View::assign('header_categorys', $categorys); + + // 输出顶部导航 + View::assign('header_navigation', $this->getNavigation('NAV_680ef95e9db90', $this->lang_id)); + + // 获取系统配置 + $configs = $this->getSysConfig($this->lang_id, ['basic', 'contact', 'media']); + $this->basic_config = $configs['basic']; + // 输出系统配置 + View::assign('basic_config', $configs['basic']); + View::assign('contact_config', $configs['contact']); + View::assign('media_config', $configs['media']); + + // 获取底部导航 + $footer_navigation = $this->getNavigation('NAV_67f60be43df8d', $this->lang_id); + // 输出底部导航 + View::assign('footer_navigation', $footer_navigation); + } + + /** + * 专题-Nas首页 + */ + public function index() + { + $focus_image = []; + $nas_category = []; + $nas_video = []; + $nas_solution = []; + $nas_software = []; + // 获取banner数据 + $banners = SysBannerModel::with(['items' => function($query) { + $query->withoutField(['sort', 'created_at', 'updated_at', 'deleted_at']); + }]) + ->uniqueLabel([ + 'BANNER_680f156a805a8', + 'BANNER_680f15ca5482f', + 'BANNER_680f161b5fd3a', + 'BANNER_680f16358f14c', + 'BANNER_680f1e5132184' + ]) + ->language($this->lang_id) + ->enabled(true) + ->select(); + if (!$banners->isEmpty()) { + $banners_map = []; + foreach ($banners as $banner) { + $banners_map[$banner->unique_label] = $banner; + } + $focus_image = data_get($banners_map, 'BANNER_680f156a805a8')?->items->toArray(); + $nas_category = data_get($banners_map, 'BANNER_680f15ca5482f')?->items->chunk(3)?->toArray(); + $nas_video = data_get($banners_map, 'BANNER_680f161b5fd3a')?->items->first()?->toArray(); + $nas_solution = data_get($banners_map, 'BANNER_680f16358f14c')?->items->toArray(); + $nas_software = data_get($banners_map, 'BANNER_680f1e5132184')?->items->toArray(); + } + View::assign('focus_image', $focus_image); + View::assign('nas_category', $nas_category); + View::assign('nas_video', $nas_video); + View::assign('nas_solution', $nas_solution); + View::assign('nas_software', $nas_software); + + return View::fetch('index'); + } + + /** + * 专题-Nas产品体验页 + */ + public function product() + { + return View::fetch('product'); + } + + /** + * 专题-Nas客户合作页 + */ + public function cooperation() + { + return View::fetch('cooperation'); + } + + /** + * 专题-Nas帮助中心页 + */ + public function help() + { + return View::fetch('help'); + } + + /** + * 专题-Nas软件下载页 + */ + public function download() + { + return View::fetch('download'); + } +} diff --git a/app/index/lang/en-us.php b/app/index/lang/en-us.php index dec73640..17c12f51 100644 --- a/app/index/lang/en-us.php +++ b/app/index/lang/en-us.php @@ -199,4 +199,8 @@ return [ 'send_success' => 'Add Success!', 'send_fail' => 'Add Fail!', ], + 'topic_nas_index' => [ + 'solution_section_title' => 'ORICO网络存储解决方案', + 'software_section_title' => 'NAS配套软件', + ], ]; \ No newline at end of file diff --git a/app/index/lang/zh-cn.php b/app/index/lang/zh-cn.php index f26ef7b8..374b0824 100644 --- a/app/index/lang/zh-cn.php +++ b/app/index/lang/zh-cn.php @@ -199,4 +199,8 @@ return [ 'send_success' => '信息已成功提交', 'send_fail' => '信息提交失败', ], + 'topic_nas_index' => [ + 'solution_section_title' => 'ORICO网络存储解决方案', + 'software_section_title' => 'NAS配套软件', + ], ]; \ No newline at end of file diff --git a/app/index/route/route.php b/app/index/route/route.php index 041c59a5..a05e5ccb 100644 --- a/app/index/route/route.php +++ b/app/index/route/route.php @@ -83,5 +83,23 @@ Route::group('contactus', function() { // 提交留言批量购买 Route::post('bulkbuy', 'ContactUs/bulkbuy'); }); + +// 专题 +Route::group('topic', function() { + // 专题-Nas + Route::group('nas', function() { + // 专题-Nas首页 + Route::get('index', 'TopicNas/index'); + // 专题-Nas产品体验页 + Route::get('product', 'TopicNas/product'); + // 专题-Nas客户合作页 + Route::get('cooperation', 'TopicNas/cooperation'); + // 专题-Nas帮助中心页 + Route::get('help', 'TopicNas/help'); + // 专题-Nas软件下载页 + Route::get('download', 'TopicNas/download'); + }); +}); + // 数据迁移 Route::get('/data/migration', 'DataMigration/index'); diff --git a/app/index/view/public/nas_base.html b/app/index/view/public/nas_base.html new file mode 100644 index 00000000..86bf7176 --- /dev/null +++ b/app/index/view/public/nas_base.html @@ -0,0 +1,28 @@ + + + + + {block name="title"}{$basic_config['website_seo_title']['value']}{/block} + {block name="seo"} + + + {/block} + + + + + + {block name="style"}{/block} + + + + {block name="header"} + {include file="public/nas_header"/} + {/block} + {block name="main"}{/block} + {block name="footer"} + {include file="public/nas_footer"/} + {/block} + {block name="script"}{/block} + + \ No newline at end of file diff --git a/app/index/view/public/nas_footer.html b/app/index/view/public/nas_footer.html new file mode 100644 index 00000000..7c861df3 --- /dev/null +++ b/app/index/view/public/nas_footer.html @@ -0,0 +1,74 @@ + \ No newline at end of file diff --git a/app/index/view/public/nas_header.html b/app/index/view/public/nas_header.html new file mode 100644 index 00000000..f0b4f0b9 --- /dev/null +++ b/app/index/view/public/nas_header.html @@ -0,0 +1,50 @@ +
+
+ + {notempty name="header_navigation"} + + {/notempty} +
+
+ \ No newline at end of file diff --git a/app/index/view/topic_nas/index.html b/app/index/view/topic_nas/index.html new file mode 100644 index 00000000..928bdf1c --- /dev/null +++ b/app/index/view/topic_nas/index.html @@ -0,0 +1,150 @@ +{extend name="public/nas_base" /} +{block name="style"} + + +{/block} +{block name="main"} +
+ +
+ + {notempty name="focus_image"} +
+
+
+ {volist name="focus_image" id="fo"} +
+ {$fo.title} +
+ {/volist} +
+ +
+ +
+
+
+
+ {/notempty} + + {notempty name="nas_category"} +
+
+ {volist name="nas_category" id="category" key="idx"} +
+ {volist name="category" id="cate" key="k"} + {if condition="$idx == 2 && $k == 1"} + {assign name="class" value="cateit bigcateit" /} + {elseif condition="$idx == 2 && $k == 2" /} + {assign name="class" value="cateit smallcateit" /} + {else /} + {assign name="class" value="cateit" /} + {/if} + + + {/volist} +
+ {/volist} +
+
+ {/notempty} + + {notempty name="nas_video"} +
+
+ +
+
+ {/notempty} + + {notempty name="nas_solution"} +
+ {:lang('topic_nas_index.solution_section_title')} +
+
+ {volist name="nas_solution" id="so"} +
+ +
+ {$so.title} +
+ +
+ {$so.title} + {$so.desc|raw} +
+
+ {/volist} +
+
+
+ {/notempty} + + {notempty name="nas_software"} +
+ {:lang('topic_nas_index.software_section_title')} + {volist name="nas_software" id="soft" offset="0" length="3"} + +
+ +
+
+ {$soft.title} + {$soft.desc|raw} +
+
+ {/volist} + {volist name="nas_software" id="soft" offset="3"} +
+ + + +
+ {/volist} +
+ {/notempty} +
+
+{/block} +{block name="script"} + + +{/block} \ No newline at end of file diff --git a/public/static/index/css/topic_nas_header.css b/public/static/index/css/topic_nas_header.css new file mode 100644 index 00000000..3509ff2d --- /dev/null +++ b/public/static/index/css/topic_nas_header.css @@ -0,0 +1,59 @@ +.narsPage-head { + width: 100%; + position: relative; + background: #fff; +} + +.narsPage-head .headcenter { + height: 3.75rem; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + width: 75rem; + margin: 0 auto; +} + +.narsPage-head .headcenter .navitem { + position: relative; + margin-left: 4.375rem; + color: #000; + font-size: 1.0rem; + cursor: pointer; + display: inline-block; +} + +.narsPage-head .headcenter .downimg { + position: absolute; + top: 50%; + transform: translateY(-50%); + height: 15px; + margin-left: 2px; +} + +.narsPage-head .headcenter .children { + display: none; + position: absolute; + top: 2.5rem; + list-style: none; + font-size: 1rem; + color: #000; + background-color: #fff; + border-radius: 5px; + box-shadow: 0 0 1px 0 #88909A; + z-index: 9999; +} + +.narsPage-head .headcenter .children li { + padding: 0.5rem 1rem; +} + +.narsPage-head .headcenter .navitem.hover, +.narsPage-head .headcenter .navitem:hover { + color: #004bfa; +} + +.narsPage-head .headcenter .logico { + width: 12.375rem; + height: 3.875rem; +} \ No newline at end of file diff --git a/public/static/index/css/topic_nas_index.css b/public/static/index/css/topic_nas_index.css new file mode 100755 index 00000000..93c4dd1e --- /dev/null +++ b/public/static/index/css/topic_nas_index.css @@ -0,0 +1,508 @@ +.narsbanner-img { + width: 100%; + height: auto; + display: block; +} + +.goico-img { + width: 1.5rem; + height: 1.5rem; + display: block; +} + +.ainasimg { + width: 15.875rem; + height: 4.5625rem; + margin: 0 auto; +} + +.jjfabgimg { + width: 20.1875rem; + height: 37.6875rem; + border-radius: 0.375rem; +} + +.narsIndex-banner { + width: 100%; + position: relative; + overflow: hidden; + height: 56.4375rem; +} + +.narsIndex-banner .mySwiper .swiper-slide { + position: relative; +} + +.narsIndex-banner .mySwiper .swiper-slide .strct { + position: absolute; + left: 0; + right: 0; + top: 3.375rem; + text-align: center; +} + +.narsIndex-banner .mySwiper .swiper-slide .strct img { + width: 100%; +} + +.narsIndex-banner .mySwiper .swiper-slide .strct .sw-title { + font-size: 3.125rem; +} + +.narsIndex-banner .mySwiper .swiper-slide .strct .btmore { + cursor: pointer; + width: 17.625rem; + height: 3.25rem; + display: block; + margin: 0 auto; + line-height: 3.25rem; + position: relative; + background: #004bfa; + border-radius: 1.625rem; + font-size: 1.875rem; + color: #fff; + margin-top: 1.25rem; +} + +.narsIndex-banner .mySwiper .swiper-slide .strct .btmore .btst { + padding-right: 1rem; +} + +.narsIndex-banner .mySwiper .swiper-slide .strct .btmore .goico-img { + position: absolute; + top: 1.0625rem; + right: 1.6875rem; +} + +.narsIndex-banner .mySwiper .swiper-button-next { + position: absolute !important; + color: white; + margin-right: 170px; + margin-left: 0; + margin-top: 0px; +} + +.narsIndex-banner .mySwiper .swiper-button-prev { + position: absolute !important; + color: white; + margin-left: 170px; + margin-top: 0px; +} + +.narsIndex-banner .mySwiper .swiper-pagination { + bottom: 5% !important; + left: 0; + right: 0; +} + +.narsIndex-banner .mySwiper .swiper-pagination .swiper-pagination-bullet { + width: 8px; + height: 8px; + color: white; +} + +.narsIndex-banner .mySwiper .swiper-pagination-bullet-active { + width: 24px !important; + height: 24px; + border-radius: 10px; + color: #ffffff !important; + background-color: #ffffff !important; +} + +.narsIndex-banner .my-pagination-clickable { + width: 1200px; + text-align: right; +} + +.nars-cate { + padding-top: 5rem; + padding-bottom: 5.5rem; + background: #fff; + margin: 0 auto; + max-width: 1920px; +} + +.nars-cate .narscatecenter { + overflow-x: hidden; + display: flex; + flex-direction: row; + justify-content: space-between; + height: auto; + min-width: 1024px; + overflow: hidden; + margin: 0 7.5rem; +} + +.nars-cate .narscatecenter .cate-column { + width: 33%; + display: flex; + flex-direction: column; + height: auto; + color: #000; + font-size: 1.875rem; +} + +.nars-cate .narscatecenter .cate-column .cateit { + width: 100%; + height: 10.25rem; + border-radius: 1rem; + background: #fff; + margin-bottom: 1rem; + display: flex; +} + +.nars-cate .narscatecenter .cate-column .bigcateit { + /*height:12.05rem;*/ + height: 15.05rem +} + +.nars-cate .narscatecenter .cate-column .smallcateit { + height: 5.45rem; +} + +@media screen and (min-width:750px) and (max-width:1280px) { + .nars-cate .narscatecenter .cate-column .cateit { + width: 100%; + height: 10.25rem; + border-radius: 1rem; + background: #fff; + margin-bottom: 1rem; + display: flex; + } + + .nars-cate .narscatecenter .cate-column .bigcateit { + height: 15.05rem; + } + + .nars-cate .narscatecenter .cate-column .smallcateit { + height: 5.45rem; + } +} + +@media screen and (min-width:1281px) and (max-width:1360px) { + .nars-cate .narscatecenter .cate-column .cateit { + height: 12.25rem; + } + + .nars-cate .narscatecenter .cate-column .bigcateit { + height: 17.05rem; + } + + .nars-cate .narscatecenter .cate-column .smallcateit { + height: 7.45rem; + } +} + +@media screen and (min-width:1361px) and (max-width:1460px) { + .nars-cate .narscatecenter .cate-column .cateit { + height: 13.25rem; + } + + .nars-cate .narscatecenter .cate-column .bigcateit { + height: 18.05rem; + } + + .nars-cate .narscatecenter .cate-column .smallcateit { + height: 8.45rem; + } +} + +@media screen and (min-width:1461px) and (max-width:1660px) { + .nars-cate .narscatecenter .cate-column .cateit { + height: 15.25rem; + } + + .nars-cate .narscatecenter .cate-column .bigcateit { + height: 24.05rem; + } + + .nars-cate .narscatecenter .cate-column .smallcateit { + height: 6.45rem; + } +} + +@media screen and (min-width:1661px) and (max-width:1760px) { + .nars-cate .narscatecenter .cate-column .cateit { + height: 15.25rem; + } + + .nars-cate .narscatecenter .cate-column .bigcateit { + height: 23.05rem; + } + + .nars-cate .narscatecenter .cate-column .smallcateit { + height: 7.45rem; + } +} + +@media screen and (min-width:1761px) and (max-width:1960px) { + .nars-cate .narscatecenter .cate-column .cateit { + height: 16.25rem; + } + + .nars-cate .narscatecenter .cate-column .bigcateit { + height: 24.05rem; + } + + .nars-cate .narscatecenter .cate-column .smallcateit { + height: 8.45rem; + } +} + +@media screen and (min-width:1980px) { + .nars-cate .narscatecenter .cate-column .cateit { + height: 18.25rem; + } + + .nars-cate .narscatecenter .cate-column .bigcateit { + height: 26.05rem; + } + + .nars-cate .narscatecenter .cate-column .smallcateit { + height: 10.45rem; + } +} + +.nars-cate .narscatecenter .cate-column .cateit .pp1 { + margin-top: 2.625rem; + margin-left: 2.125rem; + color: #020612; + font-size: 1.875rem; + font-weight: bold; +} + +.nars-cate .narscatecenter .cate-column .cateit .pp1 span:last-child { + color: #91A5C4; + font-size: 1.375rem; + font-weight: 500; +} + +.nars-cate .narscatecenter .cate-column .cateit .pp1 .zjtitle { + margin: 0 auto; + font-size: 3.4375rem; + font-weight: bold; + color: #020612; +} + +.nars-cate .narscatecenter .cate-column .cateit .pp1 .zjtitle-sm { + color: #020612; + font-size: 1.375rem; +} + +.nars-cate .narscatecenter .cate-column2 { + width: 24.1875rem; +} + +.narsVideo { + width: 100%; + padding-top: 3.25rem; + padding-bottom: 4.5rem; +} + +.narsVideo .videoview { + margin: 0 7.5rem; + /*height: 47.5rem;*/ + overflow: hidden; +} + +.narsVideo .videoview .video { + height: 100%; + width: 100%; + object-fit: fill; +} + +.nars-jjfa { + width: 100%; + display: flex; + flex-direction: column; + overflow-x: hidden; + padding-bottom: 3.8125rem; + max-width: 1920px; + margin: 0 auto; +} + +.nars-jjfa .jjfa-title { + font-size: 3.75rem; + font-weight: bold; + padding-bottom: 3.75rem; + margin: 0 auto; +} +.nars-jjfa .jjfa-title1 { + color:#004BFA +} + +.nars-jjfa .jjfaSwiper { + margin: 0 7.5rem; + overflow: hidden; + position: relative; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide { + position: relative; + width: 20.1875rem; + height: 37.6875rem; + border-radius: 0.375rem; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide .jjfa-ct { + position: absolute; + top: 0; + text-align: center; + width: 100%; + width: 100%; + height: 5.125rem; + background: #3231FF; + line-height: 5.125rem; + color: #fff; + border-top-right-radius: 0.375rem; + border-top-left-radius: 0.375rem; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide .jjfa-ct .st { + font-size: 1.875rem; + font-weight: bold; + color: #fff; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide .jjfa-info .jjfa-a { + color: #9196a5; + line-height: 2.25rem; + font-size: 1.125rem; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide .jjfa-info { + background: #ecf2fe; + position: absolute; + top: 0; + height: 37.6875rem; + padding: 0 2.875rem; + display: none; + flex-direction: column; + text-align:left; + white-space:pre-line; + cursor: pointer; + border-radius: 0.375rem; + line-height: 2.375rem; + font-size: 1.45rem; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide .jjfa-info .jjfa-sp-title { + color: #020612; + font-size: 1.875rem; + padding-top: 2.8rem; + padding-bottom: 1.5rem; + font-weight: bold +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide .jjfa-info .jjfatt { + width: 100%; + font-weight: bold; + text-align: center; + font-size: 30px; + margin-bottom: 1.6875rem; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide .jjfa-info .jjfa-txt { + font-size: 1.5rem; + margin-bottom: 1.25rem; + line-height: 2.1875rem; + text-indent: 2em; +} + +.nars-jjfa .jjfaSwiper .swiper-wrapper .swiper-slide:hover .jjfa-info { + display: flex; + background: linear-gradient(90deg, #CDD9F1 0%, #ECF2FE 100%); + font-size: 1.125rem; +} + +.nars-wlj { + width: 100%; + display: flex; + flex-direction: column; + overflow-x: hidden; + padding-bottom: 7.1875rem; + max-width: 1920px; + margin: 0 auto; +} + +.nars-wlj .wlj-title { + font-size: 3.75rem; + font-weight: bold; + padding-bottom: 2.8125rem; + margin: 0 auto; +} +.nars-wlj .wlj-title-sp { + color:#004BFA +} +.nars-wlj .wltitem { + margin: 0 7.5rem; + min-width: 1024px; + background: #000; + display: flex; + flex-direction: row; + justify-content: space-between; + margin-bottom: 1.375rem; + background: #ecf2fe !important; + border-radius: 8px +} + +.nars-wlj .wltitem .wljcp { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + height: inherit; + width: 50%; + overflow: hidden; +} + +.nars-wlj .wltitem .wljcp .tt { + font-size: 3.125rem; + font-weight: bold; + color: #fff; + width: 35.5rem; + text-align: center; + margin-left: 35%; +} + +.nars-wlj .wltitem .wljcp .wljimg { + width: 100%; + /*height: 27.125rem; + margin-left: 11.5rem;*/ +} + +.nars-wlj .wltitem .wljcpinfo { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + color: #000; + flex: 1; + padding: 0 3rem; +} + +.nars-wlj .wltitem .wljcpinfo .if-title { + font-weight: bold; + font-size: 2.25rem; + padding-bottom: 0.6rem; +} + +.nars-wlj .wltitem .wljcpinfo .if-info { + font-size: 1.25rem; + line-height: 2.15rem; + text-align: center; + white-space:pre-line; + color: #a2a7ba; +} + +.nars-wlj .wltitem .wljcpinfo .wlj-xzbt { + /*width: 21.75rem; + height: 6.5rem; + line-height: 6.5rem;*/ + padding: 0.75rem 6rem; + border-radius: 3.25rem; + border: 1px solid #FFFFFF; + font-size: 2.5rem; + text-align: center; + cursor: pointer; +} \ No newline at end of file diff --git a/public/static/index/images/logo_nas.png b/public/static/index/images/logo_nas.png new file mode 100644 index 0000000000000000000000000000000000000000..9bcc233f9b1f245b32c62d50c2c4f715dc212b6f GIT binary patch literal 15216 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 HcmMwfRRMS2 literal 0 HcmV?d00001