34 changed files with 7675 additions and 0 deletions
-
119public/themes/website/4/en/demo/about-history.html
-
354public/themes/website/4/en/demo/about.html
-
150public/themes/website/4/en/demo/announce.html
-
228public/themes/website/4/en/demo/category.html
-
8public/themes/website/4/en/demo/components/empty.html
-
206public/themes/website/4/en/demo/components/mask.html
-
307public/themes/website/4/en/demo/contact.html
-
163public/themes/website/4/en/demo/download.html
-
135public/themes/website/4/en/demo/faq.html
-
288public/themes/website/4/en/demo/investment.html
-
217public/themes/website/4/en/demo/news-detail.html
-
281public/themes/website/4/en/demo/news.html
-
484public/themes/website/4/en/demo/product.html
-
192public/themes/website/4/en/demo/search.html
-
259public/themes/website/4/en/demo/solution.html
-
281public/themes/website/4/en/demo/solution2.html
-
166public/themes/website/4/en/demo/video.html
-
119public/themes/website/4/zh/demo/about-history.html
-
354public/themes/website/4/zh/demo/about.html
-
150public/themes/website/4/zh/demo/announce.html
-
228public/themes/website/4/zh/demo/category.html
-
8public/themes/website/4/zh/demo/components/empty.html
-
206public/themes/website/4/zh/demo/components/mask.html
-
307public/themes/website/4/zh/demo/contact.html
-
163public/themes/website/4/zh/demo/download.html
-
135public/themes/website/4/zh/demo/faq.html
-
288public/themes/website/4/zh/demo/investment.html
-
217public/themes/website/4/zh/demo/news-detail.html
-
281public/themes/website/4/zh/demo/news.html
-
484public/themes/website/4/zh/demo/product.html
-
192public/themes/website/4/zh/demo/search.html
-
259public/themes/website/4/zh/demo/solution.html
-
280public/themes/website/4/zh/demo/solution2.html
-
166public/themes/website/4/zh/demo/video.html
@ -0,0 +1,119 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/about-history.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/about-history.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-about-history" data-header-dark data-nav="About Raynen"> |
||||
|
{php} |
||||
|
$ui_about_history = uiId('about_history'); |
||||
|
$seller_id = (int)($seller_id ?? 1); |
||||
|
$history_items = getContentByCategory($ui_about_history, $seller_id, 9999, 'sort desc', []); |
||||
|
if (!is_array($history_items)) { |
||||
|
$history_items = []; |
||||
|
} |
||||
|
usort($history_items, function ($a, $b) { |
||||
|
return (int)($b['sub_title'] ?? 0) - (int)($a['sub_title'] ?? 0); |
||||
|
}); |
||||
|
foreach ($history_items as &$history_item) { |
||||
|
if (!empty($history_item['content'])) { |
||||
|
$history_item['content'] = htmlspecialchars_decode($history_item['content']); |
||||
|
} |
||||
|
} |
||||
|
unset($history_item); |
||||
|
{/php} |
||||
|
<div class="ah-page section__wrap"> |
||||
|
<div class="ah-layout" data-ah-spy> |
||||
|
<nav class="ah-nav__years" aria-label="Year navigation"> |
||||
|
{volist name="history_items" id="item" key="hk"} |
||||
|
{php}$year = trim((string)($item['sub_title'] ?? ''));{/php} |
||||
|
{if $year !== ''} |
||||
|
<a class="ah-nav__item{if $hk == 1} is-active{/if}" href="#year-{$year}" data-year="{$year}"> |
||||
|
<span class="ah-nav__year">{$year}</span> |
||||
|
</a> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
</nav> |
||||
|
<div class="ah-nav__rail" aria-hidden="true"> |
||||
|
<span class="ah-nav__indicator"></span> |
||||
|
</div> |
||||
|
<div class="ah-content"> |
||||
|
{volist name="history_items" id="item"} |
||||
|
{php}$year = trim((string)($item['sub_title'] ?? ''));{/php} |
||||
|
{if $year !== ''} |
||||
|
<section class="ah-block" id="year-{$year}" data-year="{$year}"> |
||||
|
<div class="ah-richtext"> |
||||
|
{$item.content|raw} |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
|
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,354 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/about.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/earth.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/about.css"> |
||||
|
</head> |
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-about" data-nav="{$current_cate.title}"> |
||||
|
<section class="ab-hero"> |
||||
|
<div class="ab-hero__title section__wrap" data-header-dark> |
||||
|
<h1> |
||||
|
<span>{$current_cate.content|raw}</span> |
||||
|
</h1> |
||||
|
</div> |
||||
|
<div class="ab-hero__media" aria-hidden="true"> |
||||
|
<video src="{$current_cate.description}" muted autoplay loop playsinline width="1920" height="720"></video> |
||||
|
</div> |
||||
|
</section> |
||||
|
{php} |
||||
|
$ui_about_intro = uiId('about_intro'); |
||||
|
$ui_about_history = uiId('about_history'); |
||||
|
$ui_about_culture = uiId('about_culture'); |
||||
|
$ui_about_global = uiId('about_global'); |
||||
|
$ui_about_members = uiId('about_members'); |
||||
|
$ui_about_honors = uiId('about_honors'); |
||||
|
$ui_about_csr = uiId('about_csr'); |
||||
|
$ui_download_csr = uiId('download_csr'); |
||||
|
$csr_report_href = getMuiLangUrl('/download.html'); |
||||
|
if ($ui_download_csr > 0) { |
||||
|
$csr_report_href .= '?cid=' . $ui_download_csr; |
||||
|
} |
||||
|
{/php} |
||||
|
{hcTaglib:category id="$ui_about_intro" item="vo" field="*"} |
||||
|
<section class="ab-intro section__wrap" id="intro" data-header-dark> |
||||
|
<h2 class="ab-intro__title">{$vo.title}</h2> |
||||
|
<div class="ab-intro__body"> |
||||
|
<div class="ab-intro__texts"> |
||||
|
<p>{:nl2br($vo.description)}</p> |
||||
|
</div> |
||||
|
{php} |
||||
|
$stats_raw = explode(',', $vo['desc']); |
||||
|
$stats_list = []; |
||||
|
foreach ($stats_raw as $item) { |
||||
|
$parts = explode(';', $item); |
||||
|
if (count($parts) === 3) { |
||||
|
$stats_list[] = ['num' => $parts[0], 'unit' => $parts[1], 'text' => $parts[2]]; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<ul class="ab-intro__stats"> |
||||
|
{volist name="stats_list" id="stat"} |
||||
|
<li> |
||||
|
<strong><span class="counter">{$stat.num}</span><span class="ab-intro__stats-unit">{$stat.unit}</span></strong> |
||||
|
<span>{$stat.text}</span> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_history" item="vo" field="*"} |
||||
|
<section class="ab-history" id="history" data-header-dark style="background-image: url({$vo.thumbnail.url ?? ''})"> |
||||
|
<div class="ab-history__head section__wrap"> |
||||
|
<h2 class="ab-history__title">{$vo.title}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="ab-history__swiper swiper section__wrap"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="9999" mainField="id,title,sub_title,content,thumbnail" sort="sort desc" subField="" onlyData="2"} |
||||
|
<article class="swiper-slide ab-history__slide"> |
||||
|
<time class="ab-history__year" datetime="2025">{$case_top.sub_title}</time> |
||||
|
<div class="ab-history__dot" aria-hidden="true"></div> |
||||
|
<h3 class="ab-history__slide-title">{$case_top.title}</h3> |
||||
|
<a class="ab-history__more" href="{:getMuiLangUrl('/about-history.html')}#year-{$case_top.sub_title}"> |
||||
|
<span>Learn more</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" width="16.502" height="6.661" fill="none" aria-hidden="true"> |
||||
|
<path d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="currentColor" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
<div class="ab-history__media"> |
||||
|
<img src="{$case_top.thumbnail.url ?? ''}" alt="" width="400" height="260" loading="lazy" /> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/hcTaglib:content} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="ab-history__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
{hcTaglib:category id="$ui_about_culture" item="vo" field="*"} |
||||
|
<section class="ab-culture" id="culture"> |
||||
|
<div class="ab-culture__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="900" /> |
||||
|
</div> |
||||
|
<div class="ab-culture__inner section__wrap"> |
||||
|
<h2 class="ab-culture__title">{$vo.title}</h2> |
||||
|
{php} |
||||
|
$culture_raw = explode('#', $vo['description']); |
||||
|
$culture_list = []; |
||||
|
foreach ($culture_raw as $item) { |
||||
|
$parts = explode(';', $item); |
||||
|
if (count($parts) === 3) { |
||||
|
$culture_list[] = ['zh' => $parts[0], 'en' => $parts[1], 'text' => $parts[2]]; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="ab-culture__list"> |
||||
|
{volist name="culture_list" id="culture"} |
||||
|
<div class="ab-culture__item"> |
||||
|
<div class="ab-culture__label"> |
||||
|
<span class="ab-culture__label-zh">{$culture.zh}</span> |
||||
|
<span class="ab-culture__label-en">{$culture.en}</span> |
||||
|
</div> |
||||
|
<p class="ab-culture__text">{$culture.text|raw}</p> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_global" item="vo" field="*"} |
||||
|
<section class="ab-global section__wrap" id="global" data-header-dark> |
||||
|
<h2 class="ab-global__title">{$vo.title}</h2> |
||||
|
{php} |
||||
|
$global_raw = explode(',', $vo['description']); |
||||
|
$global_list = []; |
||||
|
foreach ($global_raw as $item) { |
||||
|
$parts = explode(';', $item, 3); |
||||
|
if (count($parts) >= 2) { |
||||
|
$desc = isset($parts[2]) ? str_replace(';', '<br>', $parts[2]) : ''; |
||||
|
$global_list[] = ['num' => $parts[0], 'unit' => $parts[1], 'desc' => $desc]; |
||||
|
} |
||||
|
} |
||||
|
$global_left = array_slice($global_list, 0, 3); |
||||
|
$global_right = array_slice($global_list, 3); |
||||
|
{/php} |
||||
|
<div class="ab-global__layout"> |
||||
|
<ul class="ab-global__side ab-global__side--left"> |
||||
|
{volist name="global_left" id="item"} |
||||
|
<li> |
||||
|
<strong><span class="counter">{$item.num}</span><span>{$item.unit}</span></strong> |
||||
|
{if $item.desc}<span class="ab-global__side-desc">{$item.desc|raw}</span>{/if} |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
<div class="ab-global__visual"> |
||||
|
<canvas id="earth-canvas" class="ab-global__earth"></canvas> |
||||
|
</div> |
||||
|
<ul class="ab-global__side ab-global__side--right"> |
||||
|
{volist name="global_right" id="item"} |
||||
|
<li> |
||||
|
<strong><span class="counter">{$item.num}</span><span>{$item.unit}</span></strong> |
||||
|
{if $item.desc}<span class="ab-global__side-desc">{$item.desc|raw}</span>{/if} |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_members" item="vo" field="*"} |
||||
|
<section class="ab-members" id="members"> |
||||
|
<div class="ab-members__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="900" /> |
||||
|
</div> |
||||
|
<div class="ab-members__inner section__wrap"> |
||||
|
<h2 class="ab-members__title">{$vo.title}</h2> |
||||
|
<div class="ab-members__card"> |
||||
|
<div class="ab-members__panels-swiper swiper"> |
||||
|
<div class="ab-members__panels swiper-wrapper"> |
||||
|
{php}$member_idx = 0;{/php} |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="50" mainField="id,url,title,sub_title,content,thumbnail" sort="sort asc" subField="" onlyData="2"} |
||||
|
<div class="ab-members__panel swiper-slide" id="ab-member-panel-{$case_top.id}" data-index="{$member_idx}"> |
||||
|
<div class="ab-members__content"> |
||||
|
<div> |
||||
|
<h3 class="ab-members__name">{$case_top.title}</h3> |
||||
|
<p class="ab-members__desc"> |
||||
|
{$case_top.content|strip_tags} |
||||
|
</p> |
||||
|
</div> |
||||
|
<a target="_blank" class="s-btn s-btn--outline s-btn--pill ab-members__more" href="{$case_top.url ?? '#'}">Explore more</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
{php}$member_idx++;{/php} |
||||
|
{/hcTaglib:content} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="ab-members__logos" role="tablist" aria-label="Group members"> |
||||
|
{php}$member_idx = 0;{/php} |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="50" mainField="id,title,sub_title,content,thumbnail" sort="sort asc" subField="" onlyData="2"} |
||||
|
<button type="button" class="ab-members__logo{if $member_idx == 0} is-active{/if}" id="ab-member-tab-{$case_top.id}" |
||||
|
data-index="{$member_idx}" |
||||
|
role="tab" aria-controls="ab-member-panel-{$case_top.id}" aria-selected="{if $member_idx == 0}true{else}false{/if}"> |
||||
|
<img src="{$case_top.thumbnail.url ?? ''}" alt="{$case_top.title}" width="160" height="60" /> |
||||
|
</button> |
||||
|
{php}$member_idx++;{/php} |
||||
|
{/hcTaglib:content} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_honors" item="vo" field="*"} |
||||
|
<section class="ab-honors section__wrap" id="honors" data-header-dark> |
||||
|
<div class="ab-honors__head"> |
||||
|
<h2 class="ab-honors__title">{$vo.title}</h2> |
||||
|
<p class="ab-honors__desc">{$vo.description}</p> |
||||
|
</div> |
||||
|
<div class="ab-honors__body"> |
||||
|
<ul class="ab-honors__list"> |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="999" mainField="id,url,title,sub_title,content,thumbnail" sort="sort asc" subField="" onlyData="2"} |
||||
|
<li class="ab-honors__item"> |
||||
|
<span class="ab-honors__name">{$case_top.title}</span> |
||||
|
<a class="ab-honors__view" href="javascript:;"> |
||||
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"> |
||||
|
<g id="eye"> |
||||
|
<path d="M12.0019 15.5799C10.0219 15.5799 8.42188 13.9799 8.42188 11.9999C8.42188 10.0199 10.0219 8.41992 12.0019 8.41992C13.9819 8.41992 15.5819 10.0199 15.5819 11.9999C15.5819 13.9799 13.9819 15.5799 12.0019 15.5799Z" fill-rule="nonzero" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" /> |
||||
|
<path d="M21.1098 14.5907C22.0098 13.1807 22.0098 10.8107 21.1098 9.4007C18.8198 5.8007 15.5298 3.7207 11.9998 3.7207C8.46984 3.7207 5.17984 5.8007 2.88984 9.4007C1.98984 10.8107 1.98984 13.1807 2.88984 14.5907C5.17984 18.1907 8.46984 20.2707 11.9998 20.2707C15.5298 20.2707 18.8198 18.1907 21.1098 14.5907Z" fill-rule="nonzero" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" /> |
||||
|
</g> |
||||
|
</svg> |
||||
|
|
||||
|
<span>View certificate</span> |
||||
|
<span class="ab-honors__pop" aria-hidden="true"> |
||||
|
<img class="ab-honors__cert-img" src="{$case_top.thumbnail.url ?? ''}" alt="Honor certificate" /> |
||||
|
</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/hcTaglib:content} |
||||
|
</ul> |
||||
|
<button type="button" class="ab-honors__more"> |
||||
|
<span>Show more</span> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2011.2728%206.90918'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='11.272827'%20height='6.909180'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='矢量%202'%20d='M0.636353%200.636272L5.63635%205.63627L10.6364%200.63623'%20stroke='rgb(102,102,102)'%20stroke-width='1.800000'%20/%3e%3c/svg%3e" alt="" width="12" height="6" /> |
||||
|
</button> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_csr" item="vo" field="*"} |
||||
|
<section class="ab-csr" id="csr"> |
||||
|
<div class="ab-csr__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
<div class="ab-csr__inner section__wrap"> |
||||
|
<h2 class="ab-csr__title">{$vo.title}</h2> |
||||
|
<div class="ab-csr__content"> |
||||
|
<p class="ab-csr__desc"> |
||||
|
{$vo.description} |
||||
|
</p> |
||||
|
<a class="s-btn s-btn--light s-btn--pill" href="{$csr_report_href}">Social Responsibility Report</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
|
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
<script src="/themes/dist_static/js/lib/three-r128.min.js"></script> |
||||
|
<script src="/themes/dist_static/js/lib/three-128-orbitControls.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,150 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/announce.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/announce.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-announce" data-header-dark data-nav="服务支持"> |
||||
|
<div class="a-page section__wrap"> |
||||
|
<div class="a-head"> |
||||
|
<h1 class="a-head__title">{$current_cate.title}</h1> |
||||
|
<p class="a-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
|
||||
|
<div class="a-toolbar"> |
||||
|
{php} |
||||
|
$filter_cid = (string)input('cid', ''); |
||||
|
$filter_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($filter_cid === '') { |
||||
|
$filter_cid = $filter_all_id; |
||||
|
} |
||||
|
$filter_keywords = (string)input('keywords', ''); |
||||
|
$filter_is_all = ($filter_cid === $filter_all_id); |
||||
|
$filter_label = 'Filter by product'; |
||||
|
if (!$filter_is_all && !empty($sub_cates)) { |
||||
|
foreach ($sub_cates as $sc) { |
||||
|
if ((string)($sc['id'] ?? '') === $filter_cid) { |
||||
|
$filter_label = $sc['title'] ?? $filter_label; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="a-filter__group"> |
||||
|
<button type="button" class="a-filter{if !$filter_is_all} is-selected{/if}" aria-haspopup="listbox" aria-expanded="false" data-filter-trigger> |
||||
|
<span>{$filter_label}</span> |
||||
|
<svg class="a-filter__chevron" viewBox="0 0 11.2728 6.90918" width="11" height="7" fill="none" aria-hidden="true"> |
||||
|
<path d="M0.636353 0.636272L5.63635 5.63627L10.6364 0.63623" stroke="currentColor" stroke-width="1.8" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="a-filter__dropdown" data-filter-dropdown hidden> |
||||
|
<button type="button" class="a-filter__dropdown-item{if $filter_is_all} is-active{/if}" data-tab="{$current_cate.id}" data-filter-clear>All</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php}$vo_id = (string)($vo['id'] ?? '');{/php} |
||||
|
<button type="button" class="a-filter__dropdown-item{if $filter_cid == $vo_id} is-active{/if}" data-tab="{$vo.id}">{$vo.title}</button> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$filter_keywords}" placeholder="Search notice keywords" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">Search</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="a-grid"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="8" item="vo"} |
||||
|
<a class="a-card" href="{$vo.url ?? ''}" target="_blank"> |
||||
|
<time class="a-card__date" datetime="{$vo.publish_time}">{$vo.publish_time}</time> |
||||
|
<h2 class="a-card__title">{$vo.title}</h2> |
||||
|
<span class="a-card__link"> |
||||
|
<span>Explore more</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
</a> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = 'No matching notices'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,228 @@ |
|||||
|
<!doctype html> |
||||
|
<html lang="en"> |
||||
|
{php} |
||||
|
// var_dump($current_cate); |
||||
|
$current_cate_id = $current_cate['id'] ?? ''; |
||||
|
//exit(); |
||||
|
{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon" /> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement; |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920; |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16; |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14; |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width; |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN; |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE; |
||||
|
h.style.fontSize = size + "px"; |
||||
|
} |
||||
|
setRootFontSize(); |
||||
|
var resizeRaf = 0; |
||||
|
window.addEventListener("resize", function () { |
||||
|
if (resizeRaf) return; |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0; |
||||
|
setRootFontSize(); |
||||
|
}); |
||||
|
}); |
||||
|
})(); |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> |
||||
|
<link |
||||
|
href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" |
||||
|
rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" |
||||
|
crossorigin="anonymous" |
||||
|
/> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/category.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/category.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-category" data-header-dark data-nav="产品"> |
||||
|
{php}$ui_product = uiId('product');{/php} |
||||
|
<div class="c-page section__wrap"> |
||||
|
<nav class="c-breadcrumb" aria-label="Breadcrumb"> |
||||
|
<a class="c-breadcrumb__link" href="{:getMuiLangUrl('/')}">Home</a> |
||||
|
<span class="c-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
|
||||
|
{hcTaglib:category id="$ui_product" item="vo" field="*"} |
||||
|
<a class="c-breadcrumb__link" href="{:getMuiLangUrl($vo.alias)}">{$vo.title}</a> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
<span class="c-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
<span class="c-breadcrumb__current" data-breadcrumb-current>Industrial control products</span> |
||||
|
</nav> |
||||
|
|
||||
|
<div class="c-layout"> |
||||
|
<aside class="c-sidebar" aria-label="Product categories" data-lenis-prevent> |
||||
|
<ul class="c-sidebar__list" data-category-nav> |
||||
|
<!-- 获取所有一级分类 --> |
||||
|
{hcTaglib:subcategory pid="$ui_product" item="vo" sort="" key="key_top"} |
||||
|
{php} |
||||
|
$sub_cate_id = $vo['id']; |
||||
|
$need_show_sub_content = (int)($vo['need_show_sub_content'] ?? 0); |
||||
|
{/php} |
||||
|
{hcTaglib:subcategory pid="$sub_cate_id" onlyData="1"} |
||||
|
{/hcTaglib:subcategory} |
||||
|
{php} |
||||
|
$level2_list = $hc_subcategory ?? []; |
||||
|
$has_level2 = !empty($level2_list); |
||||
|
{/php} |
||||
|
<li class="c-sidebar__item {if $key_top==1}is-active{/if}{if !$has_level2} is-leaf{/if}" data-category-item="product-control-{$vo.id}"> |
||||
|
|
||||
|
<button type="button" class="c-sidebar__trigger" data-category-id="product-control-{$vo.id}" data-category-name="{$vo.title}" aria-expanded="{if $key_top==1}true{else /}false{/if}"> |
||||
|
<span>{$vo.title}</span> |
||||
|
{if $has_level2} |
||||
|
<span class="c-sidebar__chevron" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
{/if} |
||||
|
</button> |
||||
|
|
||||
|
{if $has_level2} |
||||
|
<ul class="c-sidebar__subs"> |
||||
|
{volist name="level2_list" id="vo_sub" key="key_sub"} |
||||
|
<li> |
||||
|
<button type="button" class="c-sidebar__sub" data-category-id="product-control-{$vo.id}" data-sub-id="product-plc-{$vo_sub.id}">{$vo_sub.title}</button> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
{/if} |
||||
|
|
||||
|
</li> |
||||
|
{/hcTaglib:subcategory} |
||||
|
</ul> |
||||
|
</aside> |
||||
|
|
||||
|
<div class="c-main"> |
||||
|
{hcTaglib:subcategory pid="$ui_product" item="vo" sort="" key="key_top"} |
||||
|
{php} |
||||
|
$sub_cate_id = $vo['id']; |
||||
|
$need_show_sub_content = (int)($vo['need_show_sub_content'] ?? 0); |
||||
|
{/php} |
||||
|
{hcTaglib:subcategory pid="$sub_cate_id" onlyData="1"} |
||||
|
{/hcTaglib:subcategory} |
||||
|
{php} |
||||
|
$level2_list = $hc_subcategory ?? []; |
||||
|
$has_level2 = !empty($level2_list); |
||||
|
{/php} |
||||
|
|
||||
|
<div class="c-panel" data-category-panel="product-control-{$vo.id}" {if $key_top!=1}hidden{/if}> |
||||
|
<div class="c-grid" data-product-grid> |
||||
|
{if $has_level2} |
||||
|
{volist name="level2_list" id="vo_sub" key="key_sub"} |
||||
|
{hcTaglib:contentPage2 cid="$vo_sub.id" mainField="id,category_id,title,sub_title,thumbnail" subField="" name="hc_content" limit="100" item="content_sub22" sort="sort asc"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
<article class="s-product-card" data-sub="product-plc-{$vo_sub.id}"> |
||||
|
<a class="s-product-card__link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<div class="s-product-card__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" alt="{$vo_content.title}" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="s-product-card__foot"> |
||||
|
<h3 class="s-product-card__name">{$vo_content.title}</h3> |
||||
|
<span class="s-product-card__arrow" aria-hidden="true"> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2012.2529%2011.314'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.252930'%20height='11.313965'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M5.18202%201.41422L6.59622%200L12.2531%205.65686L12.2529%205.65702L10.8389%207.07108L6.59608%2011.3139L5.18186%209.89966L8.4245%206.65702L-0%206.65702L0%204.657L8.42482%204.65702L5.18202%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" |
||||
|
alt="" |
||||
|
width="12" |
||||
|
height="11" |
||||
|
/> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
{/volist} |
||||
|
{else /} |
||||
|
<!-- 仅一级分类:直接按一级 id 取产品 --> |
||||
|
{hcTaglib:contentPage2 cid="$vo.id" mainField="id,category_id,title,sub_title,thumbnail" subField="" name="hc_content" limit="100" item="content_sub22" sort="sort asc"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
<article class="s-product-card"> |
||||
|
<a class="s-product-card__link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<div class="s-product-card__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" alt="{$vo_content.title}" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="s-product-card__foot"> |
||||
|
<h3 class="s-product-card__name">{$vo_content.title}</h3> |
||||
|
<span class="s-product-card__arrow" aria-hidden="true"> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2012.2529%2011.314'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.252930'%20height='11.313965'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M5.18202%201.41422L6.59622%200L12.2531%205.65686L12.2529%205.65702L10.8389%207.07108L6.59608%2011.3139L5.18186%209.89966L8.4245%206.65702L-0%206.65702L0%204.657L8.42482%204.65702L5.18202%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" |
||||
|
alt="" |
||||
|
width="12" |
||||
|
height="11" |
||||
|
/> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
{/if} |
||||
|
</div> |
||||
|
|
||||
|
<div class="c-empty" data-product-empty hidden> |
||||
|
<p class="c-empty__text">No products</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{/hcTaglib:subcategory} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script |
||||
|
src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous" |
||||
|
></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,8 @@ |
|||||
|
{php} |
||||
|
if (!isset($empty_text) || $empty_text === '') { |
||||
|
$empty_text = 'No related content'; |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="s-empty" role="status"> |
||||
|
<p class="s-empty__text">{$empty_text}</p> |
||||
|
</div> |
||||
@ -0,0 +1,206 @@ |
|||||
|
<div class="mask" id="mask"> |
||||
|
<header class="mask-header"> |
||||
|
<a href="{:getMuiLangUrl('/')}" class="mask-header__logo" aria-label="RAYNEN Technology"> |
||||
|
<img src="{hcTaglib:setting name='dark_logo' type='2' /}" alt="RAYNEN Technology" width="252" height="26" /> |
||||
|
</a> |
||||
|
<div class="mask-header__actions"> |
||||
|
<button class="mask-header__icon-btn lang" type="button" aria-label="Switch language"> |
||||
|
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32.000000" height="32.000000" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="矢量 10" |
||||
|
d="M19.746 28.3C19.392 27.626 19.014 26.646 19.222 26.06C19.2708 25.8903 19.3486 25.7304 19.4519 25.5872C19.5551 25.4441 19.6824 25.3198 19.828 25.22C20.21 24.908 20.734 24.482 21.15 23.402C21.31 22.984 21.416 22.564 21.516 22.16C21.884 20.69 22.016 20.464 23.082 20.586C23.882 20.682 24.378 21.066 24.952 21.512C25.516 21.95 26.158 22.414 27.04 22.566C26.2295 23.9294 25.1741 25.1314 23.927 26.1115C22.6798 27.0915 21.2624 27.8328 19.746 28.298M4.972 22.588C5.902 22.476 6.918 22.152 7.644 21.36C8.446 20.484 8.452 19.34 8.456 18.424C8.462 17.174 8.532 16.83 9.164 16.594C10.028 16.274 10.42 16.58 11.232 17.3C11.708 17.724 12.248 18.204 12.966 18.424C13.812 18.684 14.826 18.564 15.674 18.098C16.52 17.638 17.148 16.856 17.414 15.928L17.42 15.928L17.428 15.898L17.436 15.874C17.446 15.842 17.446 15.814 17.456 15.782C17.518 15.564 17.562 15.344 17.59 15.126C17.604 15.028 17.61 14.94 17.616 14.846C17.622 14.77 17.632 14.694 17.636 14.62C17.6617 14.1266 17.6524 13.632 17.608 13.14C17.5897 12.9224 17.5777 12.7043 17.572 12.486C17.5671 12.2843 17.6176 12.085 17.718 11.91C17.894 11.826 18.362 11.742 18.684 11.686C19.578 11.528 20.672 11.328 21.332 10.552L21.342 10.546L21.34 10.546C21.38 10.498 21.422 10.458 21.458 10.406C22.574 8.834 22.506 7.208 21.282 6.164C21.1849 6.08469 21.0841 6.00994 20.98 5.94C20.26 5.44 19.952 5.086 20.162 4.436C20.224 4.24 20.292 4.07 20.358 3.916C22.8457 4.81129 24.9968 6.45204 26.5179 8.61455C28.039 10.7771 28.8562 13.3561 28.858 16C28.858 17.548 28.568 19.026 28.068 20.4C27.9135 20.4466 27.7547 20.4774 27.594 20.492C27.154 20.492 26.834 20.262 26.266 19.818C25.578 19.284 24.722 18.622 23.332 18.458C20.336 18.102 19.77 20.318 19.438 21.638C19.354 21.976 19.272 22.318 19.148 22.634C18.938 23.182 18.764 23.324 18.474 23.56C18.098 23.868 17.582 24.288 17.206 25.34C16.786 26.506 17.168 27.812 17.586 28.748C17.066 28.814 16.538 28.858 16 28.858C13.7766 28.857 11.5915 28.2786 9.65872 27.1796C7.72594 26.0805 6.11169 24.4983 4.974 22.588M15.998 3.142C16.778 3.142 17.536 3.222 18.276 3.356C18.2199 3.49487 18.1685 3.63562 18.122 3.778C17.388 6.052 19.172 7.292 19.756 7.698L19.89 7.792C20.02 7.904 20.352 8.202 19.77 9.076C19.562 9.254 19.35 9.286 18.83 9.31C18.134 9.344 17.084 9.394 16.152 10.43L16.148 10.436L16.146 10.438L16.134 10.448C16.114 10.47 16.102 10.494 16.084 10.516C15.59 11.096 15.45 11.73 15.434 12.352C15.4195 12.7589 15.4289 13.1662 15.462 13.572C15.488 14.002 15.512 14.414 15.476 14.78C15.4534 14.9575 15.4186 15.1332 15.372 15.306C15.3192 15.4999 15.2272 15.6809 15.1016 15.8377C14.9761 15.9946 14.8196 16.124 14.642 16.218C14.302 16.406 13.888 16.468 13.598 16.378C13.324 16.292 12.998 16.004 12.652 15.698C11.804 14.944 10.52 13.804 8.416 14.586C6.328 15.366 6.32 17.198 6.314 18.412C6.31 19.048 6.306 19.648 6.064 19.912C5.616 20.402 4.698 20.506 3.964 20.488C3.42378 19.0533 3.14602 17.5331 3.144 16C3.144 13.7432 3.738 11.5261 4.86631 9.57158C5.99462 7.61705 7.61749 5.99393 9.57184 4.86531C11.5262 3.7367 13.7432 3.14235 16 3.142M16 1C7.728 1 1 7.728 1 16C1 24.272 7.728 31 16 31C24.272 31 31 24.272 31 16C31 7.728 24.272 1 16 1Z" |
||||
|
fill="currentColor" |
||||
|
fill-rule="nonzero" |
||||
|
/> |
||||
|
<path |
||||
|
id="矢量 10" |
||||
|
d="M16 0C24.8235 0 32 7.17653 32 16C32 24.8235 24.8235 32 16 32C7.17653 32 0 24.8235 0 16C0 7.17653 7.17653 0 16 0ZM1 16C1 7.728 7.728 1 16 1C24.272 1 31 7.728 31 16C31 24.272 24.272 31 16 31C7.728 31 1 24.272 1 16Z" |
||||
|
fill="currentColor" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<a href="{:getMuiLangUrl('/search.html')}" class="mask-header__icon-btn search" aria-label="Search"> |
||||
|
<svg viewBox="0 0 32.9434 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32.943359" height="32.000000" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="矢量 3" |
||||
|
d="M22.7394 24.9684C20.3451 26.8783 17.3108 28.0198 14.0099 28.0198C6.27256 28.0198 0 21.7474 0 14.0099C0 6.27246 6.27256 0 14.0099 0C21.7473 0 28.0198 6.27246 28.0198 14.0099C28.0198 16.9923 27.088 19.757 25.4995 22.0287L32.944 28.9999L29.7711 32L22.7394 24.9684ZM23.8675 14.0099C23.8675 8.01334 20.0063 4.15222 14.0099 4.15222C8.01354 4.15222 4.15232 8.01334 4.15232 14.0099C4.15232 20.0065 8.01354 23.8676 14.0099 23.8676C20.0063 23.8676 23.8675 20.0065 23.8675 14.0099Z" |
||||
|
fill="currentColor" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</a> |
||||
|
<button class="mask-header__icon-btn mask-header__icon-btn--close close" type="button" aria-expanded="false" aria-controls="mask" aria-label="Close menu"> |
||||
|
<svg class="nav-toggle-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> |
||||
|
<rect class="nav-toggle-icon__bar nav-toggle-icon__bar--top" x="4" y="6" width="16" height="2" rx="1" /> |
||||
|
<rect class="nav-toggle-icon__bar nav-toggle-icon__bar--mid" x="4" y="11" width="16" height="2" rx="1" /> |
||||
|
<rect class="nav-toggle-icon__bar nav-toggle-icon__bar--bot" x="4" y="16" width="16" height="2" rx="1" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
</header> |
||||
|
<div class="mask-content"> |
||||
|
<nav class="mask-nav" aria-label="Mobile navigation"> |
||||
|
<ul class="mask-nav__list"> |
||||
|
{php} |
||||
|
$ui_nav_header = uiId('nav_header'); |
||||
|
$ui_solution = uiId('solution'); |
||||
|
{/php} |
||||
|
{hcTaglib:nav cid="$ui_nav_header" max-level="2" item="vo" name="hc_mask_nav" sort="sort asc"} |
||||
|
{php} |
||||
|
$mask_title = $vo['title'] ?? ''; |
||||
|
$mask_href = $vo['href'] ?? ''; |
||||
|
$mask_cid = (int)($vo['category_id'] ?? 0); |
||||
|
$mask_children = $vo['children'] ?? []; |
||||
|
$mask_is_solution = ($mask_cid === $ui_solution); |
||||
|
{/php} |
||||
|
{if $mask_is_solution} |
||||
|
<!-- 解决方案:一级可继续展开二级(栏目树) --> |
||||
|
<li class="mask-nav__item mask-nav__item--expandable" data-expanded="false"> |
||||
|
<button class="mask-nav__link mask-nav__toggle" type="button" aria-expanded="false"> |
||||
|
<span>{$mask_title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__icon" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M12 5v14" /> |
||||
|
<path d="M5 12h14" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="mask-nav__sublist-wrapper"> |
||||
|
<ul class="mask-nav__sublist"> |
||||
|
{hcTaglib:allSubCategory pid="$ui_solution" item="sol" sort=""} |
||||
|
{php} |
||||
|
$sol_children = $sol['children'] ?? []; |
||||
|
$sol_has_children = !empty($sol_children); |
||||
|
$sol_href = $sol['alias'] ?? ''; |
||||
|
{/php} |
||||
|
{if $sol_has_children} |
||||
|
<li class="mask-nav__subitem mask-nav__subitem--expandable" data-expanded="false"> |
||||
|
<button class="mask-nav__sublink mask-nav__toggle" type="button" aria-expanded="false"> |
||||
|
<span>{$sol.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__icon" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M12 5v14" /> |
||||
|
<path d="M5 12h14" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="mask-nav__sublist-wrapper"> |
||||
|
<ul class="mask-nav__sublist mask-nav__sublist--l2"> |
||||
|
{volist name="sol_children" id="sol2"} |
||||
|
<li class="mask-nav__subitem"> |
||||
|
<a href="{$sol2.alias}" class="mask-nav__sublink"> |
||||
|
<span>{$sol2.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__arrow" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="m9 18 6-6-6-6" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</li> |
||||
|
{else /} |
||||
|
<li class="mask-nav__subitem"> |
||||
|
<a href="{$sol_href}" class="mask-nav__sublink"> |
||||
|
<span>{$sol.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__arrow" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="m9 18 6-6-6-6" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/if} |
||||
|
{/hcTaglib:allSubCategory} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</li> |
||||
|
{elseif condition="!empty($mask_children)" /} |
||||
|
<li class="mask-nav__item mask-nav__item--expandable" data-expanded="false"> |
||||
|
<button class="mask-nav__link mask-nav__toggle" type="button" aria-expanded="false"> |
||||
|
<span>{$mask_title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__icon" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M12 5v14" /> |
||||
|
<path d="M5 12h14" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="mask-nav__sublist-wrapper"> |
||||
|
<ul class="mask-nav__sublist"> |
||||
|
{volist name="mask_children" id="child"} |
||||
|
<li class="mask-nav__subitem"> |
||||
|
<a href="{$child.href ?? ''}" class="mask-nav__sublink"> |
||||
|
<span>{$child.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__arrow" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="m9 18 6-6-6-6" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</li> |
||||
|
{else /} |
||||
|
<li class="mask-nav__item"> |
||||
|
<a href="{$mask_href}" class="mask-nav__link">{$mask_title}</a> |
||||
|
</li> |
||||
|
{/if} |
||||
|
{/hcTaglib:nav} |
||||
|
</ul> |
||||
|
</nav> |
||||
|
</div> |
||||
|
</div> |
||||
@ -0,0 +1,307 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/contact.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/contact.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-contact" data-header-dark> |
||||
|
<section class="c-intro section__wrap"> |
||||
|
<h1 class="c-intro__title"> |
||||
|
<span>{$current_cate.sub_title}<br/>{$current_cate.desc}</span> |
||||
|
</h1> |
||||
|
<div class="c-intro__hotline"> |
||||
|
<div class="c-intro__hotline-label"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32.000000'%20height='32.000000'%20fill='none'%3e%3crect%20id='Linear%20/%20Call%20/%20Incoming%20Call%20Rounded'%20width='32.000000'%20height='32.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3cpath%20id='Vector'%20d='M0%204.26667L4.26667%200M1.06667%200L4.26667%200L4.26667%203.2'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-width='1.500000'%20transform='matrix(-1,0,0,-1,23.4668,12.7998)'%20/%3e%3cpath%20id='Vector'%20d='M13.9069%208.87071C12.9635%207.18033%2010.5929%206.9807%209.10712%208.46651C8.21432%209.35931%207.51962%2010.453%207.47379%2011.6621C7.39663%2013.6974%207.91173%2017.154%2011.379%2020.6212C14.8463%2024.0885%2018.3028%2024.6036%2020.3382%2024.5265C21.5472%2024.4806%2022.6409%2023.7859%2023.5338%2022.8931C25.0196%2021.4073%2024.8199%2019.0367%2023.1295%2018.0934L21.8891%2017.4011C20.7696%2016.7763%2019.3011%2017.0271%2018.3171%2018.0111C18.3171%2018.0111%2017.1236%2019.2046%2014.9596%2017.0406C12.7956%2014.8767%2013.9892%2013.6831%2013.9892%2013.6831C14.9731%2012.6991%2015.2239%2011.2306%2014.5992%2010.1112L13.9069%208.87071Z'%20fill-rule='evenodd'%20stroke='rgb(239,67,53)'%20stroke-width='1.500000'%20/%3e%3c/svg%3e" alt="" width="19" height="19" /> |
||||
|
<span>Hotline</span> |
||||
|
</div> |
||||
|
<a class="c-intro__phone" href="tel:400-0898-188">{hcTaglib:setting name="company_phone" type="1" /}</a> |
||||
|
<p class="c-intro__hours">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<section class="c-banner" aria-label="Service shortcuts"> |
||||
|
<div class="c-banner__media" aria-hidden="true"> |
||||
|
<img src="{$current_cate.thumbnail.url ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
<div class="c-banner__cards section__wrap"> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/download.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">Download Center</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%3e%3crect%20id='容器%20279'%20width='48.000000'%20height='48.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='download--02'%3e%3cpath%20id='矢量%20486'%20d='M33.3333%2018.667L44%2018.667L44%2044.0003L4%2044.0003L4%2018.667L14.6667%2018.667'%20fill-rule='nonzero'%20stroke='rgb(0,0,0)'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='矢量%20487'%20d='M32%2028L24%2036L16%2028M24%204L24%2036'%20fill-rule='nonzero'%20stroke='rgb(239,67,53)'%20stroke-width='2.000000'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">Get product documentation</p> |
||||
|
</a> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/faq.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">FAQ</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='Question_and_answer'%3e%3cg%20id='question-and-answer'%3e%3cpath%20id='矢量%20484'%20d='M16.6667%2046L10.8%2037.2L4.93333%2037.2C3.32%2037.2%202%2035.88%202%2034.2667L2%2019.6C2%2017.9867%203.32%2016.6667%204.93333%2016.6667L26.9333%2016.6667C28.5467%2016.6667%2029.8667%2017.9867%2029.8667%2019.6L29.8667%2034.2667C29.8667%2035.88%2028.5467%2037.2%2026.9333%2037.2L16.6667%2037.2M35.7333%2025.4667L38.6667%2019.6L43.0667%2019.6C44.68%2019.6%2046%2018.28%2046%2016.6667L46%204.93333C46%203.32%2044.68%202%2043.0667%202L25.4667%202C23.8533%202%2022.5333%203.32%2022.5333%204.93333L22.5333%2016.6667M34.2667%2019.6L29.8667%2019.6M34.296%2013C34.296%2011.372%2034.5307%2010.9027%2035.5133%2010.3307C36.232%209.92%2036.9213%209.31867%2036.9213%208.10133C36.9213%206.54667%2035.7333%205.66667%2034.2813%205.66667C32.8293%205.66667%2031.6267%206.708%2031.6267%208.10133'%20fill-rule='nonzero'%20stroke='rgb(0,0,0)'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='矢量%20485'%20d='M17.3995%2026.9332C17.3995%2027.7399%2016.7395%2028.3999%2015.9328%2028.3999C15.1261%2028.3999%2014.4661%2027.7399%2014.4661%2026.9332C14.4661%2026.1265%2015.1261%2025.4665%2015.9328%2025.4665C16.7395%2025.4665%2017.3995%2026.1265%2017.3995%2026.9332ZM23.2661%2025.4665C22.4595%2025.4665%2021.7995%2026.1265%2021.7995%2026.9332C21.7995%2027.7399%2022.4595%2028.3999%2023.2661%2028.3999C24.0728%2028.3999%2024.7328%2027.7399%2024.7328%2026.9332C24.7328%2026.1265%2024.0728%2025.4665%2023.2661%2025.4665ZM8.59948%2025.4665C7.79281%2025.4665%207.13281%2026.1265%207.13281%2026.9332C7.13281%2027.7399%207.79281%2028.3999%208.59948%2028.3999C9.40615%2028.3999%2010.0661%2027.7399%2010.0661%2026.9332C10.0661%2026.1265%209.40615%2025.4665%208.59948%2025.4665ZM34.2661%2016.1239C34.7795%2016.1239%2035.1901%2015.7132%2035.1901%2015.2145C35.1901%2014.7159%2034.7795%2014.2905%2034.2661%2014.2905C33.7528%2014.2905%2033.3568%2014.7012%2033.3568%2015.2145C33.3568%2015.7279%2033.7675%2016.1239%2034.2661%2016.1239Z'%20fill='rgb(239,67,53)'%20fill-rule='nonzero'%20/%3e%3c/g%3e%3crect%20id='Transparent_Rectangle'%20width='48.000000'%20height='48.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">Find the answers you need</p> |
||||
|
</a> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/video.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">Video Tutorials</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='vuesax/linear/play-circle'%3e%3cg%20id='play-circle'%3e%3cpath%20id='Vector'%20d='M23.9395%2044C12.8938%2044%203.93945%2035.0457%203.93945%2024C3.93945%2012.9543%2012.8938%204%2023.9395%204C34.9852%204%2043.9395%2012.9543%2043.9395%2024C43.9395%2035.0457%2034.9852%2044%2023.9395%2044Z'%20stroke='rgb(41,45,50)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20d='M17.4805%2021.1202C17.4805%2016.9602%2020.4205%2015.2602%2024.0205%2017.3402L26.9205%2019.0202L29.8205%2020.7002C33.4205%2022.7803%2033.4205%2026.1802%2029.8205%2028.2603L26.9205%2029.9403L24.0205%2031.6203C20.4205%2033.7002%2017.4805%2032.0003%2017.4805%2027.8402L17.4805%2024.4602L17.4805%2021.1202Z'%20fill-rule='nonzero'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20opacity='0'%20/%3e%3c/g%3e%3c/g%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">Watch training videos</p> |
||||
|
</a> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/announce.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">Product Notices</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%3e%3crect%20id='容器%20280'%20width='48.000000'%20height='48.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3cpath%20id='Vector'%20d='M4%2028.091C4%2032.1719%206.07692%2034.2124%2010.2308%2034.2124L13.2036%2034.2124C13.9774%2034.2124%2014.7511%2034.4324%2015.4027%2034.8325L21.4706%2038.5534C26.724%2041.7741%2031%2039.4336%2031%2033.3522L31%2014.6478C31%208.56641%2026.7036%206.22587%2021.4706%209.44662L15.4027%2013.1875C14.7308%2013.5876%2013.9774%2013.8076%2013.2036%2013.8076L10.2308%2013.8076C6.07692%2013.8076%204%2015.8481%204%2019.9291L4%2028.091Z'%20fill-rule='nonzero'%20stroke='rgb(41,45,50)'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20d='M0%200L8%200'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20transform='matrix(0.866025,-0.5,0.5,0.866025,36.5352,15.001)'%20/%3e%3cpath%20id='Vector'%20d='M36%2024L44%2024'%20stroke='rgb(41,45,50)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20d='M0%200L8%200'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20transform='matrix(0.866025,0.5,-0.5,0.866025,36.5352,33)'%20/%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">Stay up to date on products</p> |
||||
|
</a> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<section class="c-form-section section__wrap" id="form"> |
||||
|
<h2 class="c-form-section__title"> |
||||
|
<span>Fill in the information below</span> |
||||
|
<span>and we will reply promptly</span> |
||||
|
</h2> |
||||
|
|
||||
|
<form class="c-form section-contact-form" action="#" method="post"> |
||||
|
<div class="c-form__grid"> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">Name *</span> |
||||
|
<input class="c-field__input" type="text" name="name" placeholder="Enter your name" autocomplete="name" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">Phone *</span> |
||||
|
<input class="c-field__input" type="tel" name="phone" placeholder="Enter your phone number" autocomplete="tel" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">Company *</span> |
||||
|
<input class="c-field__input" type="text" name="company" placeholder="Enter your company name" autocomplete="organization" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">Email *</span> |
||||
|
<input class="c-field__input" type="email" name="email" placeholder="Enter your email" autocomplete="email" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">Industry *</span> |
||||
|
<select class="c-field__input c-field__select" name="industry"> |
||||
|
<option value="" disabled selected>Select an industry</option> |
||||
|
<option value="Packaging machinery">Packaging machinery</option> |
||||
|
<option value="Machine tools">Machine tools</option> |
||||
|
<option value="3C electronics">3C electronics</option> |
||||
|
<option value="Other">Other</option> |
||||
|
</select> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">Business type *</span> |
||||
|
<select class="c-field__input c-field__select" name="bizType"> |
||||
|
<option value="" disabled selected>Select a business type</option> |
||||
|
<option value="Product inquiry">Product inquiry</option> |
||||
|
<option value="Technical support">Technical support</option> |
||||
|
<option value="Business cooperation">Business cooperation</option> |
||||
|
<option value="Other">Other</option> |
||||
|
</select> |
||||
|
</label> |
||||
|
<label class="c-field c-field--full"> |
||||
|
<span class="c-field__label">Inquiry description</span> |
||||
|
<input class="c-field__input" type="text" name="content" placeholder="Enter your inquiry" /> |
||||
|
</label> |
||||
|
</div> |
||||
|
|
||||
|
<label class="c-form__agree"> |
||||
|
<input type="checkbox" name="agree" /> |
||||
|
<span>I have read and agree to the Privacy Policy</span> |
||||
|
</label> |
||||
|
|
||||
|
<button class="c-form__submit" type="submit">Submit</button> |
||||
|
</form> |
||||
|
</section> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
<script> |
||||
|
$(function () { |
||||
|
var $form = $('.section-contact-form'); |
||||
|
var $submitBtn = $form.find('.c-form__submit'); |
||||
|
var submitting = false; // 防重复提交标志 |
||||
|
|
||||
|
$form.on('submit', function (e) { |
||||
|
e.preventDefault(); |
||||
|
e.stopPropagation(); |
||||
|
if (submitting) return false; |
||||
|
|
||||
|
// 表单验证 |
||||
|
var name = $form.find('[name="name"]').val().trim(); |
||||
|
var phone = $form.find('[name="phone"]').val().trim(); |
||||
|
var company = $form.find('[name="company"]').val().trim(); |
||||
|
var email = $form.find('[name="email"]').val().trim(); |
||||
|
var industry = $form.find('[name="industry"]').val(); |
||||
|
var bizType = $form.find('[name="bizType"]').val(); |
||||
|
var agree = $form.find('[name="agree"]').prop('checked'); |
||||
|
|
||||
|
if (!name) { alert(t("contact.name_required")); return; } |
||||
|
if (!phone) { alert(t("contact.phone_required")); return; } |
||||
|
if (!company) { alert(t("contact.company_required")); return; } |
||||
|
if (!email) { alert(t("contact.email_required")); return; } |
||||
|
if (!industry) { alert('Please select an industry'); return; } |
||||
|
if (!bizType) { alert('Please select a business type'); return; } |
||||
|
if (!agree) { alert('Please read and agree to the Privacy Policy'); return; } |
||||
|
|
||||
|
// 收集表单数据(字段映射到数据库 hc_inquiry 表) |
||||
|
var content = $form.find('[name="content"]').val().trim(); |
||||
|
var data = { |
||||
|
contacts_name: name, // 联系人姓名 |
||||
|
phone: phone, // 联系人手机号 |
||||
|
company_name: company, // 客户名称 |
||||
|
email: email, // 邮箱 |
||||
|
telphone: bizType, // 固定电话字段存放业务类型 |
||||
|
explain: industry, // 询盘类型(所属行业) |
||||
|
content: content, // 询盘内容(咨询描述) |
||||
|
referer: 'website' // 询盘来源 |
||||
|
}; |
||||
|
|
||||
|
// 禁用提交按钮,防止重复提交 |
||||
|
submitting = true; |
||||
|
$submitBtn.prop("disabled", true).text(t("contact.submitting")); |
||||
|
|
||||
|
// 发送请求 |
||||
|
$.ajax({ |
||||
|
url: '/inquiry/save', |
||||
|
type: 'POST', |
||||
|
contentType: 'application/json', |
||||
|
data: JSON.stringify(data), |
||||
|
success: function (res) { |
||||
|
if (res.code === 0 || res.code === 200) { |
||||
|
$form[0].reset(); |
||||
|
showFormToast(t("contact.success")); |
||||
|
} else { |
||||
|
alert(res.msg || t("contact.fail")); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
alert(t("contact.network_error")); |
||||
|
}, |
||||
|
complete: function () { |
||||
|
submitting = false; |
||||
|
$submitBtn.prop("disabled", false).text(t("contact.submit")); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
return false; |
||||
|
}); |
||||
|
|
||||
|
// 表单提交成功提示 |
||||
|
var $toast = null; |
||||
|
var toastTimer = null; |
||||
|
function showFormToast(msg) { |
||||
|
if (!$toast) { |
||||
|
$toast = $( |
||||
|
'<div class="form-toast">' + |
||||
|
' <svg viewBox="0 0 24 24" width="22" height="22" fill="none" xmlns="http://www.w3.org/2000/svg">' + |
||||
|
' <circle cx="12" cy="12" r="10.5" stroke="currentColor" stroke-width="1.5"/>' + |
||||
|
' <path d="M7.5 12.5L10.5 15.5L16.5 9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>' + |
||||
|
' </svg>' + |
||||
|
' <span class="form-toast__text"></span>' + |
||||
|
'</div>' |
||||
|
); |
||||
|
$('body').append($toast); |
||||
|
} |
||||
|
$toast.find('.form-toast__text').text(msg); |
||||
|
$toast.addClass('form-toast--show'); |
||||
|
clearTimeout(toastTimer); |
||||
|
toastTimer = setTimeout(function () { |
||||
|
$toast.removeClass('form-toast--show'); |
||||
|
}, 3000); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
<style> |
||||
|
.form-toast { |
||||
|
position: fixed; |
||||
|
left: 50%; |
||||
|
top: 40px; |
||||
|
transform: translate(-50%, -16px); |
||||
|
z-index: 9999; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
gap: 10px; |
||||
|
padding: 14px 24px; |
||||
|
border-radius: 8px; |
||||
|
background: #fff; |
||||
|
color: var(--color-primary); |
||||
|
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); |
||||
|
font-size: 15px; |
||||
|
opacity: 0; |
||||
|
visibility: hidden; |
||||
|
pointer-events: none; |
||||
|
transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s; |
||||
|
} |
||||
|
.form-toast--show { |
||||
|
opacity: 1; |
||||
|
visibility: visible; |
||||
|
transform: translate(-50%, 0); |
||||
|
} |
||||
|
.form-toast__text { |
||||
|
color: var(--color-text); |
||||
|
} |
||||
|
</style> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,163 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
{php}$download_keywords = input('keywords', '');{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/download.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/download.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-download" data-header-dark data-nav="服务支持"> |
||||
|
<div class="d-page section__wrap"> |
||||
|
<div class="d-head"> |
||||
|
<h1 class="d-head__title">{$current_cate.title}</h1> |
||||
|
<p class="d-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
<div class="d-toolbar"> |
||||
|
<div class="d-tabs" role="tablist" aria-label="Resource categories"> |
||||
|
{php} |
||||
|
$download_cid = (string)input('cid', ''); |
||||
|
$download_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($download_cid === '') { |
||||
|
$download_cid = $download_all_id; |
||||
|
} |
||||
|
$download_keywords = (string)input('keywords', ''); |
||||
|
{/php} |
||||
|
<button type="button" class="d-tabs__item{if $download_cid == $download_all_id} is-active{/if}" role="tab" data-tab="{$current_cate.id}" aria-selected="{if $download_cid == $download_all_id}true{else /}false{/if}">All</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php} |
||||
|
$count = getCategoryChildrenCount($vo['id']); |
||||
|
$vo_id = (string)($vo['id'] ?? ''); |
||||
|
$group_active = false; |
||||
|
$group_label = $vo['title'] ?? ''; |
||||
|
if ($count > 0) { |
||||
|
$group_children = (new \app\model\Category())->where('parent_id', $vo['id'])->field('id,title')->select()->toArray(); |
||||
|
foreach ($group_children as $gc) { |
||||
|
if ((string)($gc['id'] ?? '') === $download_cid) { |
||||
|
$group_active = true; |
||||
|
$group_label = $gc['title'] ?? $group_label; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
{if $count > 0} |
||||
|
<div class="d-tabs__group"> |
||||
|
<button type="button" class="d-tabs__item{if $group_active} is-active{/if}" role="tab" aria-selected="{if $group_active}true{else /}false{/if}" aria-expanded="false" data-dropdown-trigger data-tab="{$vo.id}"> |
||||
|
<span>{$group_label}</span> |
||||
|
<svg class="d-tabs__chevron" viewBox="0 0 11.2728 6.90918" width="11" height="7" fill="none" aria-hidden="true"> |
||||
|
<path d="M0.636353 0.636272L5.63635 5.63627L10.6364 0.63623" stroke="currentColor" stroke-width="1.8" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="d-tabs__dropdown" data-dropdown hidden> |
||||
|
{hcTaglib:subcategory pid="$vo.id" item="child" sort=""} |
||||
|
<button type="button" class="d-tabs__dropdown-item{if $download_cid == $child['id']} is-active{/if}" data-tab="{$child.id}">{$child.title}</button> |
||||
|
{/hcTaglib:subcategory} |
||||
|
</div> |
||||
|
</div> |
||||
|
{else} |
||||
|
<button type="button" class="d-tabs__item{if $download_cid == $vo_id} is-active{/if}" role="tab" aria-selected="{if $download_cid == $vo_id}true{else /}false{/if}" data-tab="{$vo.id}">{$vo.title}</button> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$download_keywords}" placeholder="Search files to download" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">Search</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
<div class="d-list"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="12" item="vo" sort="sort desc"} |
||||
|
{php}$dl_file = $vo['url'] ?? ($vo['thumbnail']['url'] ?? '');{/php} |
||||
|
<div class="d-item"> |
||||
|
<a class="d-item__main" href="{$dl_file}" target="_blank" rel="noopener" title="Preview"> |
||||
|
<img class="d-item__pdf" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32.000000'%20height='32.000000'%20fill='none'%3e%3crect%20id='PDF%201'%20width='32.000000'%20height='32.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3cpath%20id='矢量%20508'%20d='M28.1766%2028.9602C28.1766%2029.3602%2028.0164%2029.7441%2027.7285%2030.032C27.4402%2030.3199%2027.0566%2030.4801%2026.6562%2030.4801L5.32852%2030.4801C4.92852%2030.4801%204.52852%2030.3199%204.25664%2030.032C3.96875%2029.7437%203.80859%2029.3602%203.80859%2028.9602L3.80859%201.51992C3.80859%201.11992%203.96836%200.719922%204.25664%200.448047C4.52852%200.160156%204.92891%200%205.32852%200L18.4168%200C18.8168%200%2019.2168%200.160156%2019.5047%200.448047L27.7445%208.68828C28.0324%208.97617%2028.1926%209.36016%2028.1926%209.77617L28.1926%2028.9602L28.1766%2028.9602Z'%20fill='rgb(235,236,240)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20509'%20d='M28.1766%2028.96L28.1766%2030.4799C28.1766%2030.8799%2028.0164%2031.2799%2027.7285%2031.5518C27.4402%2031.84%2027.0566%2031.9998%2026.6562%2031.9998L5.32852%2031.9998C4.48047%2031.9998%203.80859%2031.3119%203.80859%2030.4799L3.80859%2028.96C3.80859%2029.36%203.96836%2029.7439%204.25664%2030.0318C4.54453%2030.3197%204.92852%2030.4799%205.32852%2030.4799L26.6566%2030.4799C27.5047%2030.4799%2028.1766%2029.792%2028.1766%2028.96L28.1766%2028.96Z'%20fill='rgb(193,199,208)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20510'%20d='M3.80781%2016.7682L3.80781%2013.7119L0.751953%2016.7682L3.80781%2016.7682ZM28.1758%2016.7682L28.2078%2013.7119L31.2477%2016.7682L28.1758%2016.7682L28.1758%2016.7682Z'%20fill='rgb(211,0,0)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20511'%20d='M28.1762%209.77617L28.1762%209.98398L19.9359%209.98398C19.0879%209.98398%2018.416%209.29609%2018.416%208.46406L18.416%200C18.816%200%2019.216%200.160156%2019.5039%200.448047L27.7602%208.68828C28.032%208.97617%2028.1922%209.36016%2028.1762%209.77617Z'%20fill='rgb(193,199,208)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20512'%20d='M15.7164%2019.0972L14.4629%2019.0972L14.4629%2023.5655L15.6941%2023.5655C17.0926%2023.5655%2017.8484%2022.7776%2017.8484%2021.2577C17.8484%2019.9351%2017.157%2019.1147%2015.7164%2019.0972ZM8.59219%2019.0995L6.79883%2019.0995L6.79883%2020.9983L8.59219%2020.9983C9.32695%2020.9983%209.79141%2020.7464%209.79141%2020.0362C9.79141%2019.4573%209.43555%2019.0995%208.59219%2019.0995L8.59219%2019.0995Z'%20fill='rgb(255,29,29)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20513'%20d='M0.767578%2016.7681L0.767578%2024.3681C0.767578%2024.7841%200.927344%2025.1681%201.21562%2025.456C1.4875%2025.7442%201.8875%2025.904%202.2875%2025.904L29.7117%2025.904C30.5438%2025.904%2031.2316%2025.2321%2031.2316%2024.3841L31.2316%2016.7681L0.767578%2016.7681ZM8.72617%2022.3454L6.79844%2022.3454L6.79844%2024.9103L5.05469%2024.9103L5.05469%2017.7618L8.75352%2017.7618C10.4156%2017.7618%2011.5207%2018.6021%2011.5207%2020.0087C11.5207%2021.4153%2010.4797%2022.3454%208.72617%2022.3454L8.72617%2022.3454ZM15.9223%2024.9103L12.7277%2024.9103L12.7277%2017.7618L15.959%2017.7618C18.3676%2017.7618%2019.6855%2019.3251%2019.6855%2021.211C19.6855%2023.4993%2018.0027%2024.9103%2015.9223%2024.9103ZM26.9953%2019.1419L22.8473%2019.1419L22.8473%2020.7677L26.7164%2020.7677L26.7164%2022.1579L22.8473%2022.1579L22.8473%2024.9099L21.1125%2024.9099L21.1125%2017.7614L26.9953%2017.7614L26.9953%2019.1415L26.9953%2019.1419Z'%20fill='rgb(239,67,53)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20514'%20d='M8.75313%2017.7617L5.05469%2017.7617L5.05469%2024.9102L6.79844%2024.9102L6.79844%2022.3453L8.72617%2022.3453C10.4797%2022.3453%2011.5207%2021.4703%2011.5207%2020.0086C11.5207%2018.5469%2010.4156%2017.7617%208.75352%2017.7617L8.75313%2017.7617ZM8.59141%2020.9984L6.79805%2020.9984L6.79805%2019.0996L8.59141%2019.0996C9.43477%2019.0996%209.79063%2019.4574%209.79063%2020.0363C9.79063%2020.7461%209.32578%2020.9984%208.59141%2020.9984L8.59141%2020.9984ZM15.959%2017.7617L12.7277%2017.7617L12.7277%2024.9102L15.9223%2024.9102C18.0027%2024.9102%2019.6855%2023.4992%2019.6855%2021.2109C19.6855%2019.325%2018.368%2017.7617%2015.959%2017.7617ZM15.6934%2023.5656L14.4621%2023.5656L14.4621%2019.0973L15.7156%2019.0973C17.1559%2019.1152%2017.8477%2019.9355%2017.8477%2021.2578C17.8477%2022.7777%2017.0918%2023.5656%2015.6934%2023.5656ZM21.1125%2024.9102L22.8473%2024.9102L22.8473%2022.1582L26.7164%2022.1582L26.7164%2020.768L22.8473%2020.768L22.8473%2019.1422L26.9953%2019.1422L26.9953%2017.7617L21.1125%2017.7617L21.1125%2024.9102Z'%20fill='rgb(255,255,255)'%20fill-rule='nonzero'%20/%3e%3c/svg%3e" alt="" width="32" height="32" /> |
||||
|
<span class="d-item__name">{$vo.title}</span> |
||||
|
</a> |
||||
|
<a class="d-item__action" href="{$dl_file}" download="{$vo.title}"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='容器%20520'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='download--02'%3e%3cpath%20id='矢量%20486'%20d='M16.6667%209.33301L22%209.33301L22%2021.9997L2%2021.9997L2%209.33301L7.33333%209.33301'%20fill-rule='nonzero'%20stroke='rgb(46,53,58)'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='矢量%20487'%20d='M16%2014L12%2018L8%2014M12%202L12%2018'%20fill-rule='nonzero'%20stroke='rgb(239,67,53)'%20stroke-width='1.500000'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<span>Download</span> |
||||
|
</a> |
||||
|
</div> |
||||
|
{/hcTaglib:contentPage} |
||||
|
|
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = 'No matching resources'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,135 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/faq.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/faq.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-faq" data-header-dark data-nav="服务支持"> |
||||
|
<div class="f-page section__wrap"> |
||||
|
<div class="f-head"> |
||||
|
<h1 class="f-head__title">{$current_cate.title}</h1> |
||||
|
<p class="f-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
|
||||
|
<div class="f-toolbar"> |
||||
|
{php} |
||||
|
$filter_cid = (string)input('cid', ''); |
||||
|
$filter_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($filter_cid === '') { |
||||
|
$filter_cid = $filter_all_id; |
||||
|
} |
||||
|
$filter_keywords = (string)input('keywords', ''); |
||||
|
{/php} |
||||
|
<div class="f-tabs" role="tablist" aria-label="FAQ categories"> |
||||
|
<button type="button" class="f-tabs__item{if $filter_cid == $filter_all_id} is-active{/if}" role="tab" data-tab="{$current_cate.id}" aria-selected="{if $filter_cid == $filter_all_id}true{else /}false{/if}">All</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php}$vo_id = (string)($vo['id'] ?? '');{/php} |
||||
|
<button type="button" class="f-tabs__item{if $filter_cid == $vo_id} is-active{/if}" role="tab" data-tab="{$vo.id}" aria-selected="{if $filter_cid == $vo_id}true{else /}false{/if}">{$vo.title}</button> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$filter_keywords}" placeholder="Search FAQ keywords" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">Search</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="f-list"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="10" item="vo"} |
||||
|
<div class="f-item"> |
||||
|
<button type="button" class="f-item__trigger" aria-expanded="true"> |
||||
|
<span class="f-item__q"> |
||||
|
<span class="f-item__dot" aria-hidden="true"></span> |
||||
|
<span class="f-item__title">{$vo.title}</span> |
||||
|
</span> |
||||
|
<span class="f-item__icon" aria-hidden="true"></span> |
||||
|
</button> |
||||
|
<div class="f-item__panel"> |
||||
|
<p class="f-item__a"> |
||||
|
{$vo.content|strip_tags} |
||||
|
</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = 'No matching FAQs'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,288 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/investment.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/investment.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-investment" data-nav="投资者关系"> |
||||
|
<section class="iv-hero"> |
||||
|
<div class="iv-hero__title section__wrap" data-header-dark> |
||||
|
<h1> |
||||
|
<span>{$current_cate.content|raw}</span> |
||||
|
</h1> |
||||
|
</div> |
||||
|
<div class="iv-hero__media" aria-hidden="true"> |
||||
|
<img src="{$current_cate.thumbnail.url ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{php} |
||||
|
$ui_invest_info = uiId('invest_info'); |
||||
|
$ui_invest_announce = uiId('invest_announce'); |
||||
|
$ui_invest_stock = uiId('invest_stock'); |
||||
|
$ui_invest_learn = uiId('invest_learn'); |
||||
|
$ui_invest_hotline = uiId('invest_hotline'); |
||||
|
{/php} |
||||
|
{hcTaglib:category id="$ui_invest_info" item="vo" field="*"} |
||||
|
{php} |
||||
|
$descStr = $vo['description'] ?? ''; |
||||
|
$infoList = []; |
||||
|
$pairs = explode('#', $descStr); |
||||
|
foreach ($pairs as $pair) { |
||||
|
$parts = explode(';', $pair, 2); |
||||
|
if (count($parts) === 2) { |
||||
|
$infoList[] = ['label' => trim($parts[0]), 'value' => trim($parts[1])]; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<section class="iv-info section__wrap" id="info" data-header-dark> |
||||
|
<h2 class="iv-info__title">{$vo.title}</h2> |
||||
|
<div class="iv-info__grid"> |
||||
|
{volist name="infoList" id="info" key="k"} |
||||
|
<div class="iv-info__item{if condition='$k == count($infoList)'} iv-info__item--full{/if}"> |
||||
|
<span class="iv-info__label">{$info.label}</span> |
||||
|
<strong class="iv-info__value">{$info.value}</strong> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
{hcTaglib:category id="$ui_invest_announce" item="vo" field="*"} |
||||
|
<section class="iv-announce section__wrap" id="announce" data-header-dark> |
||||
|
<div class="iv-announce__head"> |
||||
|
<h2 class="iv-announce__title">{$vo.title}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="iv-announce__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{hcTaglib:contentPage cid="$ui_invest_announce" mainField="*" subField="*" name="hc_content" limit="12" item="vo"} |
||||
|
<article class="swiper-slide iv-announce__card"> |
||||
|
<time class="iv-announce__date" datetime="{$vo.publish_time|date='Y-m-d'}">{$vo.publish_time|date='Y-m-d'}</time> |
||||
|
<h3 class="iv-announce__name">{$vo.title}</h3> |
||||
|
<a class="iv-announce__link" href="{$vo.url ?? ''}" target="_blank"> |
||||
|
<span>View details</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="iv-announce__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
{hcTaglib:category id="$ui_invest_stock" item="vo" field="*"} |
||||
|
<section class="iv-stock section__wrap" id="stock" data-header-dark> |
||||
|
<h2 class="iv-stock__title">{$vo.title}</h2> |
||||
|
<div class="iv-stock__body"> |
||||
|
<div class="iv-stock__data"> |
||||
|
<p class="iv-stock__code">Stock code: {$stockInfo.code}</p> |
||||
|
<div class="iv-stock__quote" data-stock-quote data-stock-code="603933"> |
||||
|
<span class="iv-stock__price" id="stock-price" data-stock="price" style="{$priceColor}">{$stockInfo.price}</span> |
||||
|
<span class="iv-stock__unit" data-stock="unit" style="{$priceColor}">Yuan</span> |
||||
|
<span class="iv-stock__change" id="stock-change" data-stock="change" style="{$priceColor}">{$stockInfo.change} {$stockInfo.changePercent}</span> |
||||
|
</div> |
||||
|
<ul class="iv-stock__metrics"> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">High (Yuan)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-high" data-stock="high">{$stockInfo.high}</strong> |
||||
|
</li> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">Low (Yuan)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-low" data-stock="low">{$stockInfo.low}</strong> |
||||
|
</li> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">Volume (10k lots)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-volume" data-stock="volume">{$stockInfo.volume}</strong> |
||||
|
</li> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">Turnover (CNY 10k)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-amount" data-stock="amount">{$stockInfo.amount}</strong> |
||||
|
</li> |
||||
|
</ul> |
||||
|
<p class="iv-stock__note" id="stock-time" data-stock="time">As of {$stockInfo.updateTime}* Quotes delayed by 15 minutes or more.</p> |
||||
|
</div> |
||||
|
<div class="iv-stock__chart"> |
||||
|
<img id="stock-chart" data-stock="chart" src="https://image.sinajs.cn/newchart/min/n/sh603933.gif" alt="RAYNEN intraday chart" width="720" height="450" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_invest_learn" item="vo" field="*"} |
||||
|
<section class="iv-learn section__wrap" id="learn" data-header-dark> |
||||
|
<h2 class="iv-learn__title">{$vo.title}</h2> |
||||
|
<div class="iv-learn__body"> |
||||
|
<ul class="iv-learn__list"> |
||||
|
{hcTaglib:contentPage cid="$ui_invest_learn" mainField="*" subField="*" name="hc_content" limit="12" item="vo"} |
||||
|
<a class="iv-learn__item" href="{$vo.url ?? ''}" target="_blank"> |
||||
|
<time class="iv-learn__date" datetime="{$vo.publish_time|date='Y-m-d'}">{$vo.publish_time|date='Y-m-d'}</time> |
||||
|
<h3 class="iv-learn__name">{$vo.title}</h3> |
||||
|
<span class="iv-learn__link"> |
||||
|
<span>Explore more</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
</a> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</ul> |
||||
|
<button type="button" class="iv-learn__more" aria-label="Show more"> |
||||
|
<span class="iv-learn__more-icon iv-learn__more-icon--up" aria-hidden="true"> |
||||
|
<svg viewBox="0 0 11.2734 6.90918" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="11.273438" height="6.909180" fill="none"> |
||||
|
<path id="矢量 2" d="M0.636719 0.636272L5.63672 5.63627L10.6368 0.63623" stroke="currentColor" stroke-width="1.800000" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
<span class="iv-learn__more-icon iv-learn__more-icon--down" aria-hidden="true"> |
||||
|
<svg viewBox="0 0 11.2734 6.90918" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="11.273438" height="6.909180" fill="none"> |
||||
|
<path id="矢量 2" d="M0.636719 0.636272L5.63672 5.63627L10.6368 0.63623" stroke="currentColor" stroke-width="1.800000" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
</button> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_invest_hotline" item="vo" field="*"} |
||||
|
<section class="iv-hotline" id="hotline"> |
||||
|
<div class="iv-hotline__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="800" /> |
||||
|
</div> |
||||
|
<div class="iv-hotline__inner section__wrap"> |
||||
|
<h2 class="iv-hotline__title">{$vo.title}</h2> |
||||
|
<ul class="iv-hotline__list"> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='location'%3e%3cpath%20id='Vector'%20d='M11.9989%2013.4299C10.2758%2013.4299%208.87891%2012.0331%208.87891%2010.3099C8.87891%208.58681%2010.2758%207.18994%2011.9989%207.18994C13.722%207.18994%2015.1189%208.58681%2015.1189%2010.3099C15.1189%2012.0331%2013.722%2013.4299%2011.9989%2013.4299Z'%20stroke='rgb(255,255,255)'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M20.3817%208.5C21.5317%2013.58%2018.3717%2017.88%2015.6017%2020.54C13.5917%2022.48%2010.4117%2022.48%208.39166%2020.54C5.63166%2017.88%202.47166%2013.57%203.62166%208.49C5.59166%20-0.169998%2018.4217%20-0.159997%2020.3817%208.5Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20opacity='0'%20transform='matrix(-1,-1.22465e-16,1.22465e-16,-1,24,24)'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" |
||||
|
height="24" /> |
||||
|
<span class="iv-hotline__label">Address</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value">{hcTaglib:setting name="company_address" type="1" /}</p> |
||||
|
</li> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADg0lEQVR4Ae3gAZAkSZIkSRKLqpm7R0REZmZmVlVVVVV3d3d3d/fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMdHd3d3dXV1VVVVVmZkZGRIS7m5kKz0xmV3d1d3dPz8zMzMxMovjPhXgA28eBzwIeDNwKfI6kXZ4P2x8NvBXw18BvS/oZnhfimWw/GPgt4DhwK/DSwF9LehmeD9sfDbwV8NLAceBW4GMk/TTPhngm20/nireR9Ne23wb4SeCrJX0ML4Tt9wY+C3gw8NmSPocrEIDttwZ+CnhvSd/DM9n+KuCjgdeR9Ns8gO3jwHFJtwLYfjDwVcBbA28j6acBBGD7q4H3knSCB7B9HPgrrngZSbs8k+2fAt4a+GvgbSTdavs48FcAkh4CIADbvwUg6XV4LrZfG/gt4LMlfQ7PZPvBwGsDn8UVryPpVtuvDfwW8DqSflsAtr8beC1JD+H5sH0R+G5JH8Nzsf1g4K+Av5b0OgC2LwLfLeljBGD7s4HPAk5I2uUBbH8X8N7A60j6bZ4P2x8NfBVwQtKu7b8CbpX0NgKw/WDg6cBHS/oansn2ewPfBXy2pM/hBbB9HPgu4GMk3Wr7owEkfbV4Jtu/BTxY0kN4JtvvDXwX8NGSvoZ/PcQz2X5t4LeAj5b0NTyT7d8CXhp4HUl/zb8O4gFs/xTw2sDLSLoVwPaDgd/iiteRdCsvOsQD2H4w8FfALvAyknYBbD8Y+C2ueBtJfw1g+7WBjwL+GvgeSbfynBDPxfZLA38F/Lak1+GZbD8Y+C3gOPDZwHHgs4FbgQcDtwLvI+m3eTbE82H7vYHvAr5a0sfwTLYfDHwX8Npc8dmSPsf2g4HfAh4MfLakz+EKxAtg+7OBzwK+WtLH8AC23xu4VdJv8wC2vwr4aOCvgdeRtCteCNufDXwW8NfA20i6lX+B7fcGvgr4bkkfI/4Ftj8a+CrgVuB1JN3Kv8D204HflvQ+4kVg+6WBnwIeDHw18DWSbuX5sP1g4OnAe0v6HvEisv1g4LOA9wZuBT4b+B1Jt/JMtt8b+CpgV9JDAMS/ku3XBj4LeG2u+GuueDBwHLgVeB1JtwKIfyPbDwbeGngtrngG8NuSfppnQ/zn4h8BWVcuKBEKB/4AAAAASUVORK5CYII=" alt="" width="24" |
||||
|
height="24" /> |
||||
|
<span class="iv-hotline__label">{$vo.title}</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value"> |
||||
|
<a href="">{$vo.description}</a> |
||||
|
</p> |
||||
|
</li> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='printer'%3e%3cpath%20id='Vector'%20d='M16.75%207L16.75%205C16.75%203%2016%202%2013.75%202L10.25%202C8%202%207.25%203%207.25%205L7.25%207L16.75%207Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M16%2019C16%2021%2015%2022%2013%2022L11%2022C9%2022%208%2021%208%2019L8%2015L16%2015L16%2019Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M21%2015C21%2017%2020%2018%2018%2018L16%2018L16%2015L8%2015L8%2018L6%2018C4%2018%203%2017%203%2015L3%2010C3%208%204%207%206%207L18%207C20%207%2021%208%2021%2010L21%2015Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M17%2015L15.79%2015L7%2015'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M7%2011L10%2011'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M24%200L0%200L0%2024L24%2024L24%200ZM1%2023L1%201L23%201L23%2023L1%2023Z'%20opacity='0'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<span class="iv-hotline__label">Fax</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value">{$vo.desc}</p> |
||||
|
</li> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='sms-tracking'%3e%3cpath%20id='Vector'%20d='M2%208.5C2%205%204%203.5%207%203.5L17%203.5C20%203.5%2022%205%2022%208.5L22%2015.5C22%2019%2020%2020.5%2017%2020.5L7%2020.5'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M17%209L13.87%2011.5C12.84%2012.32%2011.15%2012.32%2010.12%2011.5L7%209'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M2%2016.5L8%2016.5'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M2%2012.5L5%2012.5'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M24%200L0%200L0%2024L24%2024L24%200ZM1%2023L1%201L23%201L23%2023L1%2023Z'%20opacity='0'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<span class="iv-hotline__label">Email</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value"> |
||||
|
<a href="mailto:investor@raynen.cn">{hcTaglib:setting name="company_email" type="1" /}</a> |
||||
|
</p> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,217 @@ |
|||||
|
<!doctype html> |
||||
|
<html lang="en"> |
||||
|
{php} // TDK设置 ================================= START |
||||
|
$tdk_title = $hc_content['seo_title'] ?? ''; |
||||
|
if(empty($tdk_title)){ |
||||
|
$tdk_title = $hc_content['title'] ?? 'Search results'; |
||||
|
} |
||||
|
$tdk_description = $hc_content['seo_description'] ?? ''; |
||||
|
if(empty($tdk_description)){ |
||||
|
$tdk_description = $hc_content['sub_title'] ?? ''; |
||||
|
} |
||||
|
$tdk_keywords = $hc_content['seo_keywords'] ?? ''; |
||||
|
if(empty($tdk_keywords)){ |
||||
|
$tdk_keywords = $hc_content['sub_title'] ?? ''; |
||||
|
} |
||||
|
|
||||
|
$create_time_str = $hc_content['create_time'] ?? ''; |
||||
|
$hc_content_tmp_news = $hc_content; |
||||
|
// dd($hc_content); |
||||
|
// dd($create_time_int); |
||||
|
// TDK设置 ================================= END {/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>{$tdk_title}</title> |
||||
|
<meta name="keywords" content="{$tdk_keywords}" /> |
||||
|
<meta name="description" content="{$tdk_description}" /> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon" /> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement; |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920; |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16; |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14; |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width; |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN; |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE; |
||||
|
h.style.fontSize = size + "px"; |
||||
|
} |
||||
|
setRootFontSize(); |
||||
|
var resizeRaf = 0; |
||||
|
window.addEventListener("resize", function () { |
||||
|
if (resizeRaf) return; |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0; |
||||
|
setRootFontSize(); |
||||
|
}); |
||||
|
}); |
||||
|
})(); |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> |
||||
|
<link |
||||
|
href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" |
||||
|
rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" |
||||
|
crossorigin="anonymous" |
||||
|
/> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/news-detail.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/news2.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/news-detail.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-news-detail" data-header-dark data-nav="新闻动态"> |
||||
|
<div class="nd-page"> |
||||
|
<div class="nd-layout"> |
||||
|
<nav class="nd-breadcrumb" aria-label="Breadcrumb"> |
||||
|
<a class="nd-breadcrumb__link" href="{:getMuiLangUrl('/')}">Home</a> |
||||
|
<span class="nd-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
<!-- 获取父级分类 --> |
||||
|
{php} |
||||
|
$parent_cate_url = ''; |
||||
|
{/php} |
||||
|
{hcTaglib:category id="$current_cate['parent_id']" item="vo" field="*"} |
||||
|
<a class="nd-breadcrumb__link" href="{$vo.alias}">{$vo.title}</a> |
||||
|
{php} |
||||
|
$parent_cate_url = $vo['alias']; |
||||
|
{/php} |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{if $current_cate['id'] != uiId('news')} |
||||
|
<span class="nd-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
<span class="nd-breadcrumb__current">{$current_cate['title']}</span> |
||||
|
{/if} |
||||
|
|
||||
|
</nav> |
||||
|
|
||||
|
<a class="nd-back" href="javascript:history.back();" aria-label="Back"> |
||||
|
<span class="nd-back__icon" aria-hidden="true"> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2014.0703%2011.3135'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14.070312'%20height='11.313477'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M6.9994%201.41422L8.41362%200L12.656%204.2424L12.6561%204.2423L14.0703%205.65652L14.0702%205.65662L14.0705%205.65686L12.6563%207.07108L12.656%207.07082L8.41346%2011.3134L6.99924%209.89916L10.3126%206.5858L0%206.5858L0%204.5858L10.171%204.5858L6.9994%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" |
||||
|
alt="" |
||||
|
width="14" |
||||
|
height="11" |
||||
|
/> |
||||
|
</span> |
||||
|
<span class="nd-back__text">Back</span> |
||||
|
</a> |
||||
|
|
||||
|
<article class="nd-article"> |
||||
|
<header class="nd-article__header"> |
||||
|
<h1 class="nd-article__title">{$hc_content_tmp_news['title']}</h1> |
||||
|
<time class="nd-article__date" datetime="{$create_time_str}">{:date('Y-m-d',strtotime($create_time_str)) ?? ''}</time> |
||||
|
</header> |
||||
|
|
||||
|
<div class="nd-richtext"> |
||||
|
{$hc_content_tmp_news['content']|raw} |
||||
|
</div> |
||||
|
|
||||
|
<nav class="nd-pager" aria-label="Previous and next articles"> |
||||
|
{php} |
||||
|
// 与 HcTaglib::tagPreContent / tagNextContent 一致,只查相邻一篇 |
||||
|
$id = (int)request()->param('id'); |
||||
|
$cid = (int)request()->param('cid'); |
||||
|
if ($cid <= 0) { |
||||
|
$cid = (int)($current_cate['id'] ?? ($hc_content['category_id'] ?? 0)); |
||||
|
} |
||||
|
$sellerId = (int)($hc_content['seller_id'] ?? 1); |
||||
|
$siteId = (int)($current_cate['website_id'] ?? 1); |
||||
|
$lang = (string)($current_cate['lang'] ?? ($hc_content['lang'] ?? 'zh')); |
||||
|
$preContent = \app\service\ContentService::getPreContent([ |
||||
|
'id' => $id, |
||||
|
'cid' => $cid, |
||||
|
'seller_id' => $sellerId, |
||||
|
'website_id' => $siteId, |
||||
|
'lang' => $lang, |
||||
|
]); |
||||
|
$nextContent = \app\service\ContentService::getNextContent([ |
||||
|
'id' => $id, |
||||
|
'cid' => $cid, |
||||
|
'seller_id' => $sellerId, |
||||
|
'website_id' => $siteId, |
||||
|
'lang' => $lang, |
||||
|
]); |
||||
|
$preId = 0; |
||||
|
$preTitle = ''; |
||||
|
$preCid = $cid; |
||||
|
if (!empty($preContent)) { |
||||
|
$preId = (int)$preContent['id']; |
||||
|
$preTitle = $preContent['title']; |
||||
|
} |
||||
|
$nextId = 0; |
||||
|
$nextTitle = ''; |
||||
|
$nextCid = $cid; |
||||
|
if (!empty($nextContent)) { |
||||
|
$nextId = (int)$nextContent['id']; |
||||
|
$nextTitle = $nextContent['title']; |
||||
|
} |
||||
|
{/php} |
||||
|
{if condition="empty($preId)"} |
||||
|
<a class="nd-pager__item nd-pager__item--prev" href="javascript:;"> |
||||
|
<span class="nd-pager__label" title="None">Previous: None</span> |
||||
|
</a> |
||||
|
{else /} |
||||
|
<a class="nd-pager__item nd-pager__item--prev" href="{:hcUrl('Detail/index',['id'=>$preId,'cid'=>$preCid])}"> |
||||
|
<span class="nd-pager__label" title="{$preTitle}">Previous: {$preTitle}</span> |
||||
|
</a> |
||||
|
{/if} |
||||
|
{if condition="empty($nextId)"} |
||||
|
<a class="nd-pager__item nd-pager__item--next" href="javascript:;"> |
||||
|
<span class="nd-pager__label" title="None">Next: None</span> |
||||
|
</a> |
||||
|
{else /} |
||||
|
<a class="nd-pager__item nd-pager__item--next" href="{:hcUrl('Detail/index',['id'=>$nextId,'cid'=>$nextCid])}"> |
||||
|
<span class="nd-pager__label" title="{$nextTitle}">Next: {$nextTitle}</span> |
||||
|
</a> |
||||
|
{/if} |
||||
|
</nav> |
||||
|
|
||||
|
</article> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script |
||||
|
src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous" |
||||
|
></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,281 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
{php} |
||||
|
$current_cate_id = $current_cate['id'] ?? ''; |
||||
|
// var_dump($current_cate);exit; |
||||
|
{/php} |
||||
|
|
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}" /> |
||||
|
<meta name="description" content="{$current_cate.seo_description}" /> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
|
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/news.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/news2.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/news.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-news" data-header-dark data-nav="新闻动态"> |
||||
|
{php}$news_root_id = uiId('news');{/php} |
||||
|
{hcTaglib:category id="$news_root_id" item="vo" field="id,title,alias"} |
||||
|
{php} |
||||
|
$news_cate_info = $vo; |
||||
|
$news_cate_info_alias = $vo['alias'] ?? ''; |
||||
|
{/php} |
||||
|
{/hcTaglib:category} |
||||
|
<div class="n-page section__wrap"> |
||||
|
<div class="n-head"> |
||||
|
<h1 class="n-head__title"> |
||||
|
<span>Learn about RAYNEN</span> |
||||
|
<span>News</span> |
||||
|
</h1> |
||||
|
<div class="n-tabs" role="tablist" aria-label="News categories"> |
||||
|
{php} |
||||
|
$news_active_cat = (string)input('cat', ''); |
||||
|
if ($news_active_cat === '' || $news_active_cat === 'all') { |
||||
|
$news_active_cat = (string)($current_cate_id ?: ($news_cate_info['id'] ?? '')); |
||||
|
} |
||||
|
$news_all_cat = (string)($news_cate_info['id'] ?? ''); |
||||
|
$news_video_id = (string)uiId('news_video'); |
||||
|
$is_news_video = ($news_video_id !== '' && $news_video_id !== '0' && $news_active_cat === $news_video_id); |
||||
|
{/php} |
||||
|
<a href="{:getMuiLangUrl($news_cate_info_alias)}?cat={$news_cate_info['id']}" class="n-tabs__item{if $news_active_cat == $news_all_cat} is-active{/if}" role="tab" aria-selected="{if $news_active_cat == $news_all_cat}true{else /}false{/if}" data-cat="{$news_cate_info['id']}">All</a> |
||||
|
{hcTaglib:subcategory pid="$news_cate_info['id']" item="vo" sort=""} |
||||
|
<a href="{:getMuiLangUrl($vo.alias)}?cat={$vo['id']}" class="n-tabs__item{if $news_active_cat == $vo['id']} is-active{/if}" role="tab" aria-selected="{if $news_active_cat == $vo['id']}true{else /}false{/if}" data-cat="{$vo.id}">{$vo.title}</a> |
||||
|
{/hcTaglib:subcategory} |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{hcTaglib:contentPage2 cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,content,description,create_time,is_top" subField="" name="hc_featured" limit="100" item="content_sub22" isTop="1"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
{php} |
||||
|
$news_has_featured = false; |
||||
|
if (!empty($hc_featured)) { |
||||
|
if (is_object($hc_featured) && method_exists($hc_featured, 'isEmpty')) { |
||||
|
$news_has_featured = !$hc_featured->isEmpty(); |
||||
|
} elseif (is_countable($hc_featured)) { |
||||
|
$news_has_featured = count($hc_featured) > 0; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
{if $news_has_featured && !$is_news_video} |
||||
|
<article class="n-featured"> |
||||
|
<div class="n-featured__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{volist name="hc_featured" id="vo_content"} |
||||
|
{php} |
||||
|
$content = $vo_content['content'] ?? ''; // 富文本 |
||||
|
$description = $vo_content['description'] ?? ''; // 描述 |
||||
|
$title = $vo_content['title'] ?? ''; // 标题 |
||||
|
$create_time_str = $vo_content['publish_time'] ?? $vo_content['create_time']; |
||||
|
{/php} |
||||
|
<div class="swiper-slide n-featured__slide" data-category="company"> |
||||
|
<div class="n-featured__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" width="720" height="480" alt="{$vo_content.title}" /> |
||||
|
</div> |
||||
|
<div class="n-featured__body"> |
||||
|
<div class="n-featured__content"> |
||||
|
<time class="n-featured__date" datetime="{$create_time_str}">{:date('Y-m-d',strtotime($create_time_str)) ?? ''}</time> |
||||
|
<h2 class="n-featured__title">{$title}</h2> |
||||
|
<p class="n-featured__desc"> |
||||
|
{$description|raw} |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="n-featured__foot"> |
||||
|
<a class="n-link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<span>Explore more</span> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2016.502%206.66113'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16.501953'%20height='6.661133'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='箭头%202'%20d='M0%202.83057L16%202.83057L16%203.83057L0%203.83057L0%202.83057ZM15.2929%203.33057L12.818%200.855693C12.62%200.657703%2012.62%200.346575%2012.818%200.148586C13.016%20-0.0494041%2013.3271%20-0.0494046%2013.5251%200.148585L16.3536%202.97701C16.5515%203.175%2016.5515%203.48613%2016.3536%203.68412L13.5251%206.51255C13.3271%206.71054%2013.016%206.71054%2012.818%206.51255C12.62%206.31456%2012.62%206.00343%2012.818%205.80544L15.2929%203.33057Z'%20fill='rgb(102,102,102)'%20fill-rule='nonzero'%20/%3e%3c/svg%3e" |
||||
|
alt="" width="16" height="7" /> |
||||
|
</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="n-featured__nav"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" |
||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" |
||||
|
customFrame="#000000"> |
||||
|
<path id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" |
||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" |
||||
|
customFrame="#000000"> |
||||
|
<path id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/if} |
||||
|
|
||||
|
<div class="n-grid{if $is_news_video} n-grid--video{/if}"> |
||||
|
|
||||
|
{hcTaglib:contentPage2 cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,cover,content,description,create_time,publish_time,is_top" subField="" name="hc_content" limit="6" item="content_sub22" isTop="222"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
|
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
{php} |
||||
|
$content = $vo_content['content'] ?? ''; |
||||
|
$description = $vo_content['description'] ?? ''; |
||||
|
$create_time_str = $vo_content['publish_time'] ?? $vo_content['create_time']; |
||||
|
{/php} |
||||
|
|
||||
|
{if $is_news_video} |
||||
|
<button type="button" class="n-v-card" data-video-src="{$vo_content['cover']['url'] ?? ''}"> |
||||
|
<div class="n-v-card__media"> |
||||
|
<img class="n-v-card__cover" src="{$vo_content['thumbnail']['url'] ?? ''}" alt="" width="400" height="225" loading="lazy" /> |
||||
|
{notempty name="description"} |
||||
|
<span class="n-v-card__duration">{$description}</span> |
||||
|
{/notempty} |
||||
|
<span class="n-v-card__play" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2013.5386%2016'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13.538574'%20height='16.000000'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='多边形%201'%20d='M8.86093%201.45695L15.1085%2012.0297C15.5024%2012.6963%2015.0219%2013.5384%2014.2476%2013.5384L1.75245%2013.5384C0.978149%2013.5384%200.497614%2012.6963%200.891523%2012.0297L7.13907%201.45695C7.52614%200.801924%208.47387%200.801924%208.86093%201.45695Z'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20transform='matrix(0,1,-1,0,13.5386,0)'%20/%3e%3c/svg%3e" alt="" width="14" height="16" /> |
||||
|
</span> |
||||
|
</div> |
||||
|
<h3 class="n-v-card__title">{$vo_content.title}</h3> |
||||
|
<time class="n-v-card__date" datetime="{$create_time_str}">{$create_time_str|date='Y-m-d'}</time> |
||||
|
</button> |
||||
|
{else /} |
||||
|
{php} |
||||
|
$is_item_video = ($news_video_id !== '' && $news_video_id !== '0' && (string)($vo_content['category_id'] ?? '') === $news_video_id); |
||||
|
{/php} |
||||
|
<article class="n-card{if $is_item_video} n-card--video{/if}" data-category="{if $is_item_video}video{else /}insight{/if}"{if $is_item_video} data-video-src="{$vo_content['cover']['url'] ?? ''}"{/if}> |
||||
|
<div class="n-card__top"> |
||||
|
<time class="n-card__date" datetime="{$create_time_str}">{:date('Y-m-d',strtotime($create_time_str)) ?? ''}</time> |
||||
|
<h3 class="n-card__title">{$vo_content.title}</h3> |
||||
|
{if !$is_item_video} |
||||
|
<a class="n-link n-link--sm" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<span>Explore more</span> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2016.502%206.66113'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16.501953'%20height='6.661133'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='箭头%202'%20d='M0%202.83057L16%202.83057L16%203.83057L0%203.83057L0%202.83057ZM15.2929%203.33057L12.818%200.855693C12.62%200.657703%2012.62%200.346575%2012.818%200.148586C13.016%20-0.0494041%2013.3271%20-0.0494046%2013.5251%200.148585L16.3536%202.97701C16.5515%203.175%2016.5515%203.48613%2016.3536%203.68412L13.5251%206.51255C13.3271%206.71054%2013.016%206.71054%2012.818%206.51255C12.62%206.31456%2012.62%206.00343%2012.818%205.80544L15.2929%203.33057Z'%20fill='rgb(102,102,102)'%20fill-rule='nonzero'%20/%3e%3c/svg%3e" |
||||
|
alt="" width="16" height="7" /> |
||||
|
</a> |
||||
|
{/if} |
||||
|
</div> |
||||
|
<div class="n-card__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" alt="" loading="lazy" /> |
||||
|
{if $is_item_video} |
||||
|
{notempty name="description"} |
||||
|
<span class="n-card__duration">{$description}</span> |
||||
|
{/notempty} |
||||
|
<span class="n-card__play" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2013.5386%2016'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13.538574'%20height='16.000000'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='多边形%201'%20d='M8.86093%201.45695L15.1085%2012.0297C15.5024%2012.6963%2015.0219%2013.5384%2014.2476%2013.5384L1.75245%2013.5384C0.978149%2013.5384%200.497614%2012.6963%200.891523%2012.0297L7.13907%201.45695C7.52614%200.801924%208.47387%200.801924%208.86093%201.45695Z'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20transform='matrix(0,1,-1,0,13.5386,0)'%20/%3e%3c/svg%3e" alt="" width="14" height="16" /> |
||||
|
</span> |
||||
|
{/if} |
||||
|
</div> |
||||
|
</article> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = $is_news_video ? 'No matching videos' : 'No matching news'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
<!-- 分页 --> |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
|
||||
|
<div class="n-v-modal" id="n-v-modal" hidden> |
||||
|
<div class="n-v-modal__backdrop" data-n-v-modal-close></div> |
||||
|
<div class="n-v-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="n-v-modal-title"> |
||||
|
<div class="n-v-modal__head"> |
||||
|
<h2 class="n-v-modal__title" id="n-v-modal-title">Video</h2> |
||||
|
<button type="button" class="n-v-modal__close" data-n-v-modal-close aria-label="Close"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cpath%20d='M1.5%201.5L14.5%2014.5M14.5%201.5L1.5%2014.5'%20stroke='%23fff'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3c/svg%3e" alt="" width="16" height="16" aria-hidden="true" /> |
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="n-v-modal__body"> |
||||
|
<video class="n-v-modal__video" id="n-v-modal-video" controls playsinline></video> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
|
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,484 @@ |
|||||
|
<!doctype html> |
||||
|
<html lang="en"> |
||||
|
{php} |
||||
|
// var_dump($hc_content);exit; |
||||
|
// 基本信息 |
||||
|
$id = $hc_content['id'] ?? ''; |
||||
|
$category_id = $hc_content['category_id'] ?? ''; |
||||
|
$sub_category_ids = $hc_content['sub_category_ids'] ?? ''; |
||||
|
$module_id = $hc_content['module_id'] ?? ''; |
||||
|
$lang = $hc_content['lang'] ?? ''; |
||||
|
$main_id = $hc_content['main_id'] ?? ''; |
||||
|
$title = $hc_content['title'] ?? ''; |
||||
|
$sub_title = $hc_content['sub_title'] ?? ''; |
||||
|
$description = $hc_content['description'] ?? ''; |
||||
|
$content = $hc_content['content'] ?? ''; |
||||
|
$cover = $hc_content['cover'] ?? ''; |
||||
|
$hits = $hc_content['hits'] ?? ''; |
||||
|
$admin_id = $hc_content['admin_id'] ?? ''; |
||||
|
$author = $hc_content['author'] ?? ''; |
||||
|
$status = $hc_content['status'] ?? ''; |
||||
|
$check_status = $hc_content['check_status'] ?? ''; |
||||
|
$url = $hc_content['url'] ?? ''; |
||||
|
$publish_time = $hc_content['publish_time'] ?? ''; |
||||
|
$is_top = $hc_content['is_top'] ?? ''; |
||||
|
$top_time = $hc_content['top_time'] ?? ''; |
||||
|
$is_recommend = $hc_content['is_recommend'] ?? ''; |
||||
|
$sort = $hc_content['sort'] ?? ''; |
||||
|
$detail_tpl = $hc_content['detail_tpl'] ?? ''; |
||||
|
$seo_title = $hc_content['seo_title'] ?? ''; |
||||
|
$seo_keyword = $hc_content['seo_keyword'] ?? ''; |
||||
|
$seo_description = $hc_content['seo_description'] ?? ''; |
||||
|
$version = $hc_content['version'] ?? ''; |
||||
|
$show_version = $hc_content['show_version'] ?? ''; |
||||
|
$is_del = $hc_content['is_del'] ?? ''; |
||||
|
$del_user_id = $hc_content['del_user_id'] ?? ''; |
||||
|
$delete_time = $hc_content['delete_time'] ?? ''; |
||||
|
$create_time = $hc_content['create_time'] ?? ''; |
||||
|
$update_time = $hc_content['update_time'] ?? ''; |
||||
|
$tag = $hc_content['tag'] ?? []; |
||||
|
|
||||
|
// 缩略图 |
||||
|
$thumbnail = (array)($hc_content['thumbnail'] ?? []); |
||||
|
$thumbnail_id = $thumbnail['id'] ?? ''; |
||||
|
$thumbnail_name = $thumbnail['name'] ?? ''; |
||||
|
$thumbnail_url = $thumbnail['url'] ?? ''; |
||||
|
$thumbnail_type = $thumbnail['type'] ?? ''; |
||||
|
$thumbnail_description = $thumbnail['description'] ?? ''; |
||||
|
|
||||
|
// 扩展内容 |
||||
|
$main_content = $hc_content['main_content'] ?? []; |
||||
|
$main_content_id = $main_content['id'] ?? ''; |
||||
|
$rich_text_two = $main_content['rich_text_two'] ?? ''; |
||||
|
$pic_many_one = $main_content['pic_many_one'] ?? []; // 产品介绍多图 |
||||
|
$pic_many = $main_content['pic_many'] ?? []; // 规格参数展示图集 |
||||
|
$rich_text_three = $main_content['rich_text_three'] ?? ''; // 规格参数第一个富文本框 |
||||
|
$rich_text_four = $main_content['rich_text_four'] ?? ''; |
||||
|
$rich_text_five = $main_content['rich_text_five'] ?? ''; |
||||
|
$rich_text_six = $main_content['rich_text_six'] ?? ''; |
||||
|
$rich_text_seven = $main_content['rich_text_seven'] ?? ''; |
||||
|
$resource_download_names = $main_content['resource_download_names'] ?? ''; // 下载文件自定义名称 |
||||
|
$atlas = $main_content['atlas'] ?? []; |
||||
|
$file = $main_content['file'] ?? ''; |
||||
|
$content_desc = $main_content['content_desc'] ?? ''; |
||||
|
$mc_lang = $main_content['lang'] ?? ''; |
||||
|
$lang_pid = $main_content['lang_pid'] ?? ''; |
||||
|
$sub_id = $main_content['sub_id'] ?? ''; |
||||
|
$mc_create_time = $main_content['create_time'] ?? ''; |
||||
|
$mc_update_time = $main_content['update_time'] ?? ''; |
||||
|
|
||||
|
// 资源图片 |
||||
|
$resource_pic = (array)($main_content['resource_pic'] ?? []); |
||||
|
$resource_pic_id = $resource_pic['id'] ?? ''; |
||||
|
$resource_pic_name = $resource_pic['name'] ?? ''; |
||||
|
$resource_pic_url = $resource_pic['url'] ?? ''; |
||||
|
$resource_pic_type = $resource_pic['type'] ?? ''; |
||||
|
$resource_pic_description = $resource_pic['description'] ?? ''; |
||||
|
$resource_pic_children = $resource_pic['children'] ?? []; |
||||
|
|
||||
|
// 资源下载 |
||||
|
$resource_download = $main_content['resource_download'] ?? []; |
||||
|
{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>{$title} - RAYNEN</title> |
||||
|
<meta name="keywords" content="{$seo_keyword}" /> |
||||
|
<meta name="description" content="{$seo_description}" /> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon" /> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement; |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920; |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16; |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14; |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width; |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN; |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE; |
||||
|
h.style.fontSize = size + "px"; |
||||
|
} |
||||
|
setRootFontSize(); |
||||
|
var resizeRaf = 0; |
||||
|
window.addEventListener("resize", function () { |
||||
|
if (resizeRaf) return; |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0; |
||||
|
setRootFontSize(); |
||||
|
}); |
||||
|
}); |
||||
|
})(); |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> |
||||
|
<link |
||||
|
href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" |
||||
|
rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" |
||||
|
crossorigin="anonymous" |
||||
|
/> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /> |
||||
|
|
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/product.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/product.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- header --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<nav class="p-subnav" aria-label="Product navigation" data-p-subnav aria-hidden="true"> |
||||
|
<div class="p-subnav__inner section__wrap"> |
||||
|
<p class="p-subnav__title">{$title}</p> |
||||
|
<div class="p-subnav__links" role="list"> |
||||
|
<a class="p-subnav__link is-active" href="#p-intro" data-p-nav="p-intro" role="listitem">Overview</a> |
||||
|
<a class="p-subnav__link" href="#p-spec" data-p-nav="p-spec" role="listitem">Specifications</a> |
||||
|
<a class="p-subnav__link" href="#p-download" data-p-nav="p-download" role="listitem">Downloads</a> |
||||
|
<a class="p-subnav__link" href="#p-related" data-p-nav="p-related" role="listitem">Related products</a> |
||||
|
</div> |
||||
|
<a class="p-subnav__cta {if empty($content)}hidden{/if}" href="#p-spec" data-selection-trigger>View selection table</a> |
||||
|
</div> |
||||
|
</nav> |
||||
|
|
||||
|
<main class="main-product" data-header-dark data-nav="产品"> |
||||
|
<section class="p-hero section__wrap"> |
||||
|
<div class="p-hero__inner"> |
||||
|
<h1 class="section__title">{$title}</h1> |
||||
|
<a class="s-btn s-btn--light s-btn--pill {if empty($content)}hidden{/if}" href="javascript:;" data-selection-trigger>View selection table</a> |
||||
|
<div class="p-hero__media"> |
||||
|
<div class="p-hero__mark" aria-hidden="true">{$sub_title}</div> |
||||
|
<img src="{:deal_image_url($thumbnail_url)}" width="434" height="601" alt="{$thumbnail_name}" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 产品介绍 --> |
||||
|
<section class="p-intro section__wrap" id="p-intro"> |
||||
|
<div class="p-intro__inner"> |
||||
|
<div class="p-intro__visual"> |
||||
|
<div class="p-intro__gallery swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{volist name="pic_many_one" id="vo" key="key"} |
||||
|
<div class="swiper-slide"> |
||||
|
<img src="{:deal_image_url($vo['url'] ?? '')}" width="200" height="514" alt="Product image" /> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="p-intro__gallery-nav"> |
||||
|
<div class="p-intro__gallery-pagination"></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- 产品介绍,产品优势,产品特性 --> |
||||
|
<div class="p-intro__content"> |
||||
|
{$rich_text_two|raw} |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 规格参数 , 如果第一个富文本没有内容,则整个规格参数都不显示--> |
||||
|
<section class="p-spec section__wrap" id="p-spec" {if empty($rich_text_three)}style="display: none"{/if}> |
||||
|
<div class="p-spec__inner"> |
||||
|
<h2 class="section__title">Specifications</h2> |
||||
|
|
||||
|
<div class="p-spec__models" {if empty($pic_many)}style="display: none"{/if}> |
||||
|
<span class="p-spec__models-label">Models</span> |
||||
|
<div class="p-spec__tabs nav" role="tablist" aria-label="Models"> |
||||
|
<!-- 规格参数,产品型号 --> |
||||
|
{php} |
||||
|
$total_standard_num = 0; |
||||
|
{/php} |
||||
|
|
||||
|
{volist name="pic_many" id="vo" key="key"} |
||||
|
<button |
||||
|
type="button" |
||||
|
class="p-spec__tab nav-link {if $key==1}active{/if}" |
||||
|
id="p-spec-tab-{$key}" |
||||
|
data-bs-toggle="tab" |
||||
|
data-bs-target="#p-spec-panel-{$key}" |
||||
|
role="tab" |
||||
|
aria-controls="p-spec-panel-{$key}" |
||||
|
aria-selected="{if $key==1}true{else /}false{/if}" |
||||
|
> |
||||
|
<span class="p-spec__tab-media"> |
||||
|
<img src="{:deal_image_url($vo['url'] ?? '')}" width="80" height="111" alt="" /> |
||||
|
</span> |
||||
|
<span class="p-spec__tab-name">{$vo.description}</span> |
||||
|
</button> |
||||
|
{php} |
||||
|
$total_standard_num++; |
||||
|
{/php} |
||||
|
|
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="p-spec__body tab-content"> |
||||
|
{volist name="pic_many" id="vo" key="key"} |
||||
|
<div |
||||
|
class="tab-pane fade {if $key==1}show active{/if}" |
||||
|
id="p-spec-panel-{$key}" |
||||
|
role="tabpanel" |
||||
|
aria-labelledby="p-spec-tab-{$key}" |
||||
|
tabindex="0" |
||||
|
> |
||||
|
{switch $key} |
||||
|
{case 1}{$rich_text_three|raw}{/case} |
||||
|
{case 2}{$rich_text_four|raw}{/case} |
||||
|
{case 3}{$rich_text_five|raw}{/case} |
||||
|
{case 4}{$rich_text_six|raw}{/case} |
||||
|
{case 5}{$rich_text_seven|raw}{/case} |
||||
|
{default /}No matching content |
||||
|
{/switch} |
||||
|
</div> |
||||
|
{/volist} |
||||
|
|
||||
|
{if $total_standard_num == 0} |
||||
|
<!-- 无型号 tabs 时仅展示第一个富文本 --> |
||||
|
{$rich_text_three|raw} |
||||
|
{/if} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 资料下载 --> |
||||
|
<!-- 处理下载资料名称 --> |
||||
|
{php} |
||||
|
// 1. 直接按照 %% 分割 |
||||
|
$mainArray = explode("%%", $resource_download_names); |
||||
|
$download_names = []; |
||||
|
// 2. 遍历并拆分 |
||||
|
foreach ($mainArray as $item) { |
||||
|
if (trim($item) !== '' && !empty($item)) { |
||||
|
$download_names[] = explode("##", trim($item)); |
||||
|
} |
||||
|
} |
||||
|
// 文件匹配 |
||||
|
$map = [ |
||||
|
'png' => 'Image', |
||||
|
'jpg' => 'Image', |
||||
|
'jpeg' => 'Image', |
||||
|
'pdf' => 'PDF', |
||||
|
'doc' => 'DOC', |
||||
|
'docx' => 'DOC', |
||||
|
'zip' => 'Archive', |
||||
|
'7z' => 'Archive', |
||||
|
'rar' => 'Archive', |
||||
|
]; |
||||
|
|
||||
|
{/php} |
||||
|
<section class="p-download section__wrap" id="p-download"> |
||||
|
<div class="p-download__inner"> |
||||
|
<div class="p-download__visual"> |
||||
|
<img src="{:deal_image_url($resource_pic['url'] ?? '')}" width="354" height="447" alt="Downloads preview" /> |
||||
|
</div> |
||||
|
<div class="p-download__content"> |
||||
|
<h2 class="section__title">Downloads</h2> |
||||
|
<ul class="p-download__list"> |
||||
|
{volist name="resource_download" id="one_resource" key="key"} |
||||
|
{php} |
||||
|
$downloadUrl = $one_resource['url'] ?? ''; |
||||
|
$nameTmp = $download_names[$key-1][0] ?? ($one_resource['name'] ?? 'File-'.$key); |
||||
|
$descTmp = $download_names[$key-1][1] ?? ('Description-'.$key); |
||||
|
$dateTmp = $download_names[$key-1][2] ?? ('Date-'.$key); |
||||
|
$ext = strtolower(pathinfo($one_resource['url'], PATHINFO_EXTENSION)); |
||||
|
$file_type_name = $map[$ext] ?? 'Unknown file'; |
||||
|
// 下载文件名与页面展示名一致(展示名未带扩展名时补充) |
||||
|
$download_name = ($ext !== '' && strtolower(pathinfo($nameTmp, PATHINFO_EXTENSION)) === $ext) ? $nameTmp : rtrim($nameTmp, '.') . '.' . $ext; |
||||
|
{/php} |
||||
|
<li class="p-download__item"> |
||||
|
<div class="p-download__info"> |
||||
|
<h3 class="p-download__name"> |
||||
|
<a href="{$downloadUrl}" target="_blank" rel="noopener" title="Preview">{$nameTmp}</a> |
||||
|
</h3> |
||||
|
<p class="p-download__meta"> |
||||
|
<span>{$descTmp}</span> |
||||
|
<span class="p-download__meta-divider"></span> |
||||
|
<time datetime="2025-10-11">{$dateTmp}</time> |
||||
|
</p> |
||||
|
</div> |
||||
|
<a |
||||
|
class="p-download__link" |
||||
|
href="{$downloadUrl}" |
||||
|
download="{$download_name}" |
||||
|
> |
||||
|
<svg |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" |
||||
|
width="24.000000" |
||||
|
height="24.000000" |
||||
|
fill="none" |
||||
|
customFrame="#000000" |
||||
|
> |
||||
|
<g id="frame"> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M16.4405 8.8999C20.0405 9.2099 21.5105 11.0599 21.5105 15.1099L21.5105 15.2399C21.5105 19.7099 19.7205 21.4999 15.2505 21.4999L8.74047 21.4999C4.27047 21.4999 2.48047 19.7099 2.48047 15.2399L2.48047 15.1099C2.48047 11.0899 3.93047 9.2399 7.47047 8.9099" |
||||
|
fill-rule="nonzero" |
||||
|
stroke="rgb(102,102,102)" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
stroke-width="1.500000" |
||||
|
/> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M0 0L12.88 0" |
||||
|
stroke="rgb(102,102,102)" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
stroke-width="1.500000" |
||||
|
transform="matrix(0,1,-1,0,12,2)" |
||||
|
/> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M15.3504 12.6499L12.0004 15.9999L8.65039 12.6499" |
||||
|
fill-rule="nonzero" |
||||
|
stroke="rgb(102,102,102)" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
stroke-width="1.500000" |
||||
|
/> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M24 0L0 0L0 24L24 24L24 0ZM1 23L1 1L23 1L23 23L1 23Z" |
||||
|
opacity="0" |
||||
|
fill="rgb(102,102,102)" |
||||
|
fill-rule="evenodd" |
||||
|
transform="matrix(-1,-1.22465e-16,1.22465e-16,-1,24,24)" |
||||
|
/> |
||||
|
</g> |
||||
|
</svg> |
||||
|
<span>Download {$file_type_name}</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
|
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 相关产品 --> |
||||
|
<section class="p-related section__wrap" id="p-related"> |
||||
|
<div class="p-related__inner"> |
||||
|
<div class="p-related__header"> |
||||
|
<h2 class="section__title">Related products</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="p-related__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
|
||||
|
{hcTaglib:contentPage2 cid="$category_id" mainField="id,category_id,title,sub_title,thumbnail" subField="" name="hc_content" limit="30" item="content_sub22" sort="sort asc"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
|
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
<article class="swiper-slide p-related__card"> |
||||
|
<a class="p-related__link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<div class="p-related__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" width="100" height="206" alt="" /> |
||||
|
</div> |
||||
|
<div class="p-related__foot"> |
||||
|
<h3 class="p-related__name">{$vo_content.title}</h3> |
||||
|
<span class="p-related__arrow" aria-hidden="true"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
<!-- <div class="p-related__pagination swiper-pagination"></div> --> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script |
||||
|
src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous" |
||||
|
></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
|
||||
|
<div class="p-selection-modal" id="p-selection-modal" data-selection-modal hidden> |
||||
|
<div class="p-selection-modal__overlay" data-selection-close></div> |
||||
|
<div class="p-selection-modal__dialog" role="dialog" aria-modal="true" aria-label="Selection table"> |
||||
|
<div class="p-selection-modal__head"> |
||||
|
<h2 class="p-selection-modal__title">Selection table</h2> |
||||
|
<button type="button" class="p-selection-modal__close" aria-label="Close" data-selection-close> |
||||
|
<svg |
||||
|
viewBox="0 0 24 24" |
||||
|
width="24" |
||||
|
height="24" |
||||
|
fill="none" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M6 6L18 18M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="p-selection-modal__body"> |
||||
|
<div class="p-selection-modal__table-wrap" data-lenis-prevent> |
||||
|
{$content|raw} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,192 @@ |
|||||
|
|
||||
|
|
||||
|
{php} |
||||
|
dd('此页面废弃'); |
||||
|
{/php} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/search.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/search.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-search" data-header-dark> |
||||
|
<div class="sr-page section__wrap"> |
||||
|
<div class="sr-hero"> |
||||
|
<h1 class="sr-hero__title">Search</h1> |
||||
|
<form class="s-search sr-search" action="/search.html" method="get" role="search"> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="q" value="{$keywords}" placeholder="Search what you want to know" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">Search</button> |
||||
|
</form> |
||||
|
<div class="sr-hot"> |
||||
|
<span class="sr-hot__label">Popular searches:</span> |
||||
|
<div class="sr-hot__list"> |
||||
|
<button type="button" class="sr-hot__tag" data-keyword="HMI">HMI</button> |
||||
|
<button type="button" class="sr-hot__tag" data-keyword="Servo systems">Servo systems</button> |
||||
|
<button type="button" class="sr-hot__tag" data-keyword="Textile products">Textile products</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="sr-tabs" role="tablist" aria-label="Result categories"> |
||||
|
<button type="button" class="sr-tabs__item is-active" role="tab" aria-selected="true" data-type="all"> |
||||
|
All ( <span data-count="all">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="product"> |
||||
|
Products ( <span data-count="product">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="solution"> |
||||
|
Solutions ( <span data-count="solution">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="news"> |
||||
|
News ( <span data-count="news">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="faq"> |
||||
|
FAQ ( <span data-count="faq">0</span> ) |
||||
|
</button> |
||||
|
</div> |
||||
|
|
||||
|
<div class="sr-list"> |
||||
|
{volist name="list" id="vo"} |
||||
|
{php} |
||||
|
$sr_date = ''; |
||||
|
$sr_time = $vo['publish_time'] ?? ($vo['create_time'] ?? ''); |
||||
|
if (!empty($sr_time)) { |
||||
|
$sr_date = is_numeric($sr_time) ? date('Y-m-d', (int)$sr_time) : $sr_time; |
||||
|
} |
||||
|
$sr_cid = $vo['category_id'] ?? ($vo['category'][0]['id'] ?? 0); |
||||
|
$sr_thumb = is_array($vo['thumbnail'] ?? null) ? ($vo['thumbnail']['url'] ?? '') : ''; |
||||
|
$sr_url = hcUrl('detail/index', ['id' => $vo['id'], 'cid' => $sr_cid]); |
||||
|
$sr_cate_title = $vo['category'][0]['title'] ?? ''; |
||||
|
$sr_type = 'other'; |
||||
|
if (mb_strpos($sr_cate_title, '产品') !== false) { |
||||
|
$sr_type = 'product'; |
||||
|
} elseif (mb_strpos($sr_cate_title, '解决方案') !== false || mb_strpos($sr_cate_title, '方案') !== false) { |
||||
|
$sr_type = 'solution'; |
||||
|
} elseif (mb_strpos($sr_cate_title, '新闻') !== false) { |
||||
|
$sr_type = 'news'; |
||||
|
} elseif (mb_strpos($sr_cate_title, '常见问题') !== false || mb_strpos($sr_cate_title, 'FAQ') !== false || mb_strpos($sr_cate_title, '问题') !== false) { |
||||
|
$sr_type = 'faq'; |
||||
|
} |
||||
|
{/php} |
||||
|
<article class="sr-item" data-type="{$sr_type}" data-keywords="{$vo.title}"> |
||||
|
<a class="sr-item__media" href="{$sr_url}"> |
||||
|
<img src="{$sr_thumb}" alt="" width="300" height="200" loading="lazy" /> |
||||
|
</a> |
||||
|
<div class="sr-item__body"> |
||||
|
<div class="sr-item__main"> |
||||
|
<div class="sr-item__meta"> |
||||
|
<span class="sr-item__type">{if !empty($vo['category'][0]['title'])}{$vo.category.0.title}{else /}Content{/if}</span> |
||||
|
<span class="sr-item__sep" aria-hidden="true"></span> |
||||
|
<time class="sr-item__date" datetime="{$sr_date}">{$sr_date}</time> |
||||
|
</div> |
||||
|
<h2 class="sr-item__title"> |
||||
|
<a href="{$sr_url}">{$vo.title}</a> |
||||
|
</h2> |
||||
|
{notempty name="vo.description"} |
||||
|
<p class="sr-item__desc">{$vo.description}</p> |
||||
|
{/notempty} |
||||
|
</div> |
||||
|
<a class="sr-item__more" href="{$sr_url}"> |
||||
|
<span>Explore more</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
|
||||
|
</a> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
|
||||
|
<div class="s-empty sr-tabs-empty" hidden> |
||||
|
<p class="s-empty__text">No results in this category</p> |
||||
|
</div> |
||||
|
|
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($list ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = 'No matching results. Try another keyword'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$list_page|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,259 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate['seo_title']}</title> |
||||
|
<meta name="keywords" content="{$current_cate['seo_keywords']}"> |
||||
|
<meta name="description" content="{$current_cate['seo_description']}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
|
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/solution.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/solution.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-solution" data-nav="解决方案"> |
||||
|
{if !empty($sub_cates[0])} |
||||
|
<section class="sl-hero"> |
||||
|
<div class="sl-hero__intro section__wrap" data-header-dark> |
||||
|
<h1 class="sl-hero__title">{$sub_cates[0]['title'] ?? ''}</h1> |
||||
|
<p class="sl-hero__desc"> |
||||
|
{$sub_cates[0]['description'] ?? ''} |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="sl-hero__media" aria-hidden="true"> |
||||
|
<img src="{$sub_cates[0]['thumbnail']['url'] ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[1])} |
||||
|
<section class="sl-adv section__wrap" id="adv" data-header-dark> |
||||
|
<h2 class="sl-adv__title">{$sub_cates[1]['title'] ?? ''}</h2> |
||||
|
<ul class="sl-adv__list"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[1]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<li class="sl-adv__item"> |
||||
|
<h3 class="sl-adv__name">{$vo['title'] ?? ''}</h3> |
||||
|
<p class="sl-adv__text">{$vo['description'] ?? ''}</p> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[2])} |
||||
|
<section class="sl-arch section__wrap" id="arch" data-header-dark> |
||||
|
<h2 class="sl-arch__title">{$sub_cates[2]['title'] ?? ''}</h2> |
||||
|
<div class="sl-arch__panel"> |
||||
|
<img src="{$sub_cates[2]['thumbnail']['url'] ?? ''}" alt="{$sub_cates[2]['description'] ?? ''}" width="1630" height="650" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[3])} |
||||
|
<section class="sl-core section__wrap" id="core" data-header-dark> |
||||
|
<div class="sl-core__head"> |
||||
|
<h2 class="sl-core__title">{$sub_cates[3]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-core__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getMixContentBySolutionName($current_cate['title'],$sub_cates[3]['id'],$seller_id, 6); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<article class="swiper-slide sl-core__card"> |
||||
|
<!-- TODO vo.source -> solution:商品 category:文章--> |
||||
|
<a class="sl-core__card-link" href=""> |
||||
|
<div class="sl-core__card-media"> |
||||
|
<img src="{$vo['thumbnail'] ?? ''}" alt="{$vo['title'] ?? ''}" width="528" height="330" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="sl-core__card-foot"> |
||||
|
<h3 class="sl-core__card-name">{$vo['title'] ?? ''}</h3> |
||||
|
<span class="sl-core__card-arrow" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2012.2529%2011.314'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.252930'%20height='11.313965'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M5.18202%201.41422L6.59622%200L12.2531%205.65686L12.2529%205.65702L10.8389%207.07108L6.59608%2011.3139L5.18186%209.89966L8.4245%206.65702L-0%206.65702L0%204.657L8.42482%204.65702L5.18202%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="12" height="11" /> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-core__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[4])} |
||||
|
<section class="sl-clients section__wrap" id="clients" data-header-dark> |
||||
|
<h2 class="sl-clients__title">{$sub_cates[4]['title'] ?? ''}</h2> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[4]['id'], $seller_id, 20, 'sort asc', ['thumbnail', 'category']); |
||||
|
$clients_marquee = is_array($contents) && count($contents) > 5; |
||||
|
{/php} |
||||
|
<div class="sl-clients__viewport{if $clients_marquee} is-marquee{/if}"> |
||||
|
<div class="sl-clients__grid"> |
||||
|
{volist name="contents" id="vo"} |
||||
|
<div class="sl-clients__item"><img src="{$vo['thumbnail']['url'] ?? ''}" alt="" width="252" height="160" loading="lazy" /></div> |
||||
|
{/volist} |
||||
|
{if $clients_marquee} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<div class="sl-clients__item" aria-hidden="true"><img src="{$vo['thumbnail']['url'] ?? ''}" alt="" width="252" height="160" loading="lazy" /></div> |
||||
|
{/volist} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[5])} |
||||
|
<section class="sl-cases section__wrap" id="cases" data-header-dark> |
||||
|
<h2 class="sl-cases__title">{$sub_cates[5]['title'] ?? ''}</h2> |
||||
|
<div class="sl-cases__body"> |
||||
|
<div class="sl-cases__stage" aria-hidden="true"> |
||||
|
<div class="sl-cases__media-swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[5]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<div class="swiper-slide sl-cases__card"> |
||||
|
<img src="{$vo['thumbnail']['url'] ?? ''}" alt="" width="650" height="457" /> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-cases__copy"> |
||||
|
<div class="sl-cases__content-swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[5]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<article class="swiper-slide sl-cases__panel"> |
||||
|
<h3 class="sl-cases__name">{$vo['title'] ?? ''}</h3> |
||||
|
<p class="sl-cases__sub-name">{$vo['sub_title'] ?? ''}</p> |
||||
|
<p class="sl-cases__desc">{$vo['description'] ?? ''}</p> |
||||
|
<div class="sl-cases__tags"> |
||||
|
{php}$descArr = explode(',',$vo['seo_description']);{/php} |
||||
|
{if !empty($descArr)} |
||||
|
{volist name="descArr" id="vv"} |
||||
|
<span>{$vv}</span> |
||||
|
{/volist} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-cases__nav"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="sl-cases__pager" aria-live="polite"> |
||||
|
<span class="sl-cases__pager-current">1</span> |
||||
|
<span class="sl-cases__pager-sep">/</span> |
||||
|
<span class="sl-cases__pager-total">4</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
|
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,281 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
{php} |
||||
|
$current_cate_id = $current_cate['id'] ?? 0; |
||||
|
{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate['seo_title']}</title> |
||||
|
<meta name="keywords" content="{$current_cate['seo_keywords']}"> |
||||
|
<meta name="description" content="{$current_cate['seo_description']}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/solution2.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/solution2.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-solution2" data-nav="解决方案"> |
||||
|
|
||||
|
{if !empty($sub_cates[0])} |
||||
|
<section class="sl2-hero"> |
||||
|
<div class="sl2-hero__intro section__wrap" data-header-dark> |
||||
|
<h1 class="sl2-hero__title">{$sub_cates[0]['title'] ?? ''}</h1> |
||||
|
<p class="sl2-hero__desc"> |
||||
|
{$sub_cates[0]['description'] ?? ''} |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="sl2-hero__media" aria-hidden="true"> |
||||
|
<img src="{$sub_cates[0]['thumbnail']['url'] ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
|
||||
|
{if !empty($sub_cates[1])} |
||||
|
<section class="sl2-adv section__wrap" id="adv" data-header-dark> |
||||
|
<h2 class="sl2-adv__title">{$sub_cates[1]['title'] ?? ''}</h2> |
||||
|
<ul class="sl2-adv__list"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[1]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<li class="sl2-adv__item"> |
||||
|
<span class="sl2-adv__icon" aria-hidden="true"> |
||||
|
<img style="height: 48px;width: 48px;" src="{$vo['thumbnail']['url'] ?? ''}"> |
||||
|
</span> |
||||
|
<h3 class="sl2-adv__name">{$vo.title ?? ''}</h3> |
||||
|
<p class="sl2-adv__text">{$vo.description ?? ''}</p> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[2])} |
||||
|
<section class="sl2-arch section__wrap" id="arch" data-header-dark> |
||||
|
<h2 class="sl2-arch__title">{$sub_cates[2]['title'] ?? ''}</h2> |
||||
|
<div class="sl2-arch__panel"> |
||||
|
<img src="{$sub_cates[2]['thumbnail']['url'] ?? ''}" alt="{$sub_cates[2]['description'] ?? ''}" width="1630" height="650" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[3])} |
||||
|
<section class="sl2-core section__wrap" id="core" data-header-dark> |
||||
|
<div class="sl2-core__head"> |
||||
|
<h2 class="sl2-core__title">{$sub_cates[3]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-core__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$products = getArticlesBySolutionName($current_cate['title'],$seller_id,6); |
||||
|
{/php} |
||||
|
{volist name="products" id="vo"} |
||||
|
<article class="swiper-slide sl2-core__slide"> |
||||
|
<div class="sl2-core__content"> |
||||
|
<h3 class="sl2-core__name">{$vo.title ?? ''}</h3> |
||||
|
<p class="sl2-core__desc">{$vo.description ?? ''}</p> |
||||
|
<a class="s-btn s-btn--primary s-btn--pill" href="{:hcUrl('detail/index',['id'=>$vo['id'],'cid'=>$vo['category_id']])}">Explore more</a> |
||||
|
</div> |
||||
|
<div class="sl2-core__media"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="{$vo.title ?? ''}" width="520" height="520" |
||||
|
loading="lazy" /> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
<div class="sl2-core__pagination"></div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[4])} |
||||
|
<!-- 应用场景 --> |
||||
|
<!-- <section class="sl2-scene section__wrap" id="scene" data-header-dark> |
||||
|
<div class="sl2-scene__head"> |
||||
|
<h2 class="sl2-scene__title">{$sub_cates[4]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-scene__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[4]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<article class="swiper-slide sl2-scene__slide sl2-scene__slide--detail"> |
||||
|
<img class="sl2-scene__bg" src="{$vo.thumbnail.url ?? ''}" alt="" width="960" |
||||
|
height="560" loading="lazy" /> |
||||
|
<div class="sl2-scene__label">{$vo['title'] ?? ''}</div> |
||||
|
<div class="sl2-scene__panel"> |
||||
|
<h3 class="sl2-scene__name">{$vo['title'] ?? ''}</h3> |
||||
|
<p class="sl2-scene__desc"> |
||||
|
{$vo.description ?? ''} |
||||
|
</p> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-scene__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> --> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[5])} |
||||
|
<!-- 其他解决方案 --> |
||||
|
<section class="sl2-more section__wrap" id="more" data-header-dark> |
||||
|
<div class="sl2-more__head"> |
||||
|
<h2 class="sl2-more__title">{$sub_cates[5]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="sl2-more__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php}$others = getOtherCategoryCategoryId($current_cate['id'],$seller_id,5);{/php} |
||||
|
{volist name="others" id="vo"} |
||||
|
<article class="swiper-slide sl2-more__slide"> |
||||
|
<a class="sl2-more__card" href="{$vo.alias ?? ''}"> |
||||
|
<div class="sl2-more__media"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="400" height="300" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="sl2-more__body"> |
||||
|
<h3 class="sl2-more__name">{$vo.title ?? ''}</h3> |
||||
|
<span class="sl2-more__link"> |
||||
|
<span>Explore more</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-more__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="Previous"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="Next"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,166 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/video.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/video.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-video" data-header-dark data-nav="服务支持"> |
||||
|
<div class="v-page section__wrap"> |
||||
|
<div class="v-head"> |
||||
|
<h1 class="v-head__title">{$current_cate.title}</h1> |
||||
|
<p class="v-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
|
||||
|
<div class="v-toolbar"> |
||||
|
{php} |
||||
|
$filter_cid = (string)input('cid', ''); |
||||
|
$filter_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($filter_cid === '') { |
||||
|
$filter_cid = $filter_all_id; |
||||
|
} |
||||
|
$filter_keywords = (string)input('keywords', ''); |
||||
|
$filter_is_all = ($filter_cid === $filter_all_id); |
||||
|
$filter_label = 'Filter by product'; |
||||
|
if (!$filter_is_all && !empty($sub_cates)) { |
||||
|
foreach ($sub_cates as $sc) { |
||||
|
if ((string)($sc['id'] ?? '') === $filter_cid) { |
||||
|
$filter_label = $sc['title'] ?? $filter_label; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="v-filter__group"> |
||||
|
<button type="button" class="v-filter{if !$filter_is_all} is-selected{/if}" aria-haspopup="listbox" aria-expanded="false" data-filter-trigger> |
||||
|
<span>{$filter_label}</span> |
||||
|
<svg class="v-filter__chevron" viewBox="0 0 11.2728 6.90918" width="11" height="7" fill="none" aria-hidden="true"> |
||||
|
<path d="M0.636353 0.636272L5.63635 5.63627L10.6364 0.63623" stroke="currentColor" stroke-width="1.8" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="v-filter__dropdown" data-filter-dropdown hidden> |
||||
|
<button type="button" class="v-filter__dropdown-item{if $filter_is_all} is-active{/if}" data-tab="{$current_cate.id}" data-filter-clear>All</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php}$vo_id = (string)($vo['id'] ?? '');{/php} |
||||
|
<button type="button" data-tab="{$vo.id}" class="v-filter__dropdown-item{if $filter_cid == $vo_id} is-active{/if}">{$vo.title}</button> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$filter_keywords}" placeholder="Search video keywords" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">Search</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="v-grid"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="12" item="vo"} |
||||
|
<button type="button" class="v-card" data-video-src="{$vo.cover.url ?? ''}"> |
||||
|
<div class="v-card__media"> |
||||
|
<img class="v-card__cover" src="{$vo.thumbnail.url ?? ''}" alt="" width="400" height="225" |
||||
|
loading="lazy" /> |
||||
|
<span class="v-card__duration">{$vo.description}</span> |
||||
|
<span class="v-card__play" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2013.5386%2016'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13.538574'%20height='16.000000'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='多边形%201'%20d='M8.86093%201.45695L15.1085%2012.0297C15.5024%2012.6963%2015.0219%2013.5384%2014.2476%2013.5384L1.75245%2013.5384C0.978149%2013.5384%200.497614%2012.6963%200.891523%2012.0297L7.13907%201.45695C7.52614%200.801924%208.47387%200.801924%208.86093%201.45695Z'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20transform='matrix(0,1,-1,0,13.5386,0)'%20/%3e%3c/svg%3e" alt="" width="14" height="16" /> |
||||
|
</span> |
||||
|
</div> |
||||
|
<h2 class="v-card__title">{$vo.title}</h2> |
||||
|
<time class="v-card__date" datetime="{$vo.publish_time}">{$vo.publish_time|date='Y-m-d'}</time> |
||||
|
</button> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = 'No matching videos'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
|
||||
|
<div class="v-modal" id="v-modal" hidden> |
||||
|
<div class="v-modal__backdrop" data-v-modal-close></div> |
||||
|
<div class="v-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="v-modal-title"> |
||||
|
<div class="v-modal__head"> |
||||
|
<h2 class="v-modal__title" id="v-modal-title">Video</h2> |
||||
|
<button type="button" class="v-modal__close" data-v-modal-close aria-label="Close"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cpath%20d='M1.5%201.5L14.5%2014.5M14.5%201.5L1.5%2014.5'%20stroke='%23fff'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3c/svg%3e" alt="" width="16" height="16" aria-hidden="true" /> |
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="v-modal__body"> |
||||
|
<video class="v-modal__video" id="v-modal-video" controls playsinline></video> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,119 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/about-history.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/about-history.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-about-history" data-header-dark data-nav="关于睿能"> |
||||
|
{php} |
||||
|
$ui_about_history = uiId('about_history'); |
||||
|
$seller_id = (int)($seller_id ?? 1); |
||||
|
$history_items = getContentByCategory($ui_about_history, $seller_id, 9999, 'sort desc', []); |
||||
|
if (!is_array($history_items)) { |
||||
|
$history_items = []; |
||||
|
} |
||||
|
usort($history_items, function ($a, $b) { |
||||
|
return (int)($b['sub_title'] ?? 0) - (int)($a['sub_title'] ?? 0); |
||||
|
}); |
||||
|
foreach ($history_items as &$history_item) { |
||||
|
if (!empty($history_item['content'])) { |
||||
|
$history_item['content'] = htmlspecialchars_decode($history_item['content']); |
||||
|
} |
||||
|
} |
||||
|
unset($history_item); |
||||
|
{/php} |
||||
|
<div class="ah-page section__wrap"> |
||||
|
<div class="ah-layout" data-ah-spy> |
||||
|
<nav class="ah-nav__years" aria-label="年份导航"> |
||||
|
{volist name="history_items" id="item" key="hk"} |
||||
|
{php}$year = trim((string)($item['sub_title'] ?? ''));{/php} |
||||
|
{if $year !== ''} |
||||
|
<a class="ah-nav__item{if $hk == 1} is-active{/if}" href="#year-{$year}" data-year="{$year}"> |
||||
|
<span class="ah-nav__year">{$year}</span> |
||||
|
</a> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
</nav> |
||||
|
<div class="ah-nav__rail" aria-hidden="true"> |
||||
|
<span class="ah-nav__indicator"></span> |
||||
|
</div> |
||||
|
<div class="ah-content"> |
||||
|
{volist name="history_items" id="item"} |
||||
|
{php}$year = trim((string)($item['sub_title'] ?? ''));{/php} |
||||
|
{if $year !== ''} |
||||
|
<section class="ah-block" id="year-{$year}" data-year="{$year}"> |
||||
|
<div class="ah-richtext"> |
||||
|
{$item.content|raw} |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
|
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,354 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/about.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/earth.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/about.css"> |
||||
|
</head> |
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-about" data-nav="{$current_cate.title}"> |
||||
|
<section class="ab-hero"> |
||||
|
<div class="ab-hero__title section__wrap" data-header-dark> |
||||
|
<h1> |
||||
|
<span>{$current_cate.content|raw}</span> |
||||
|
</h1> |
||||
|
</div> |
||||
|
<div class="ab-hero__media" aria-hidden="true"> |
||||
|
<video src="{$current_cate.description}" muted autoplay loop playsinline width="1920" height="720"></video> |
||||
|
</div> |
||||
|
</section> |
||||
|
{php} |
||||
|
$ui_about_intro = uiId('about_intro'); |
||||
|
$ui_about_history = uiId('about_history'); |
||||
|
$ui_about_culture = uiId('about_culture'); |
||||
|
$ui_about_global = uiId('about_global'); |
||||
|
$ui_about_members = uiId('about_members'); |
||||
|
$ui_about_honors = uiId('about_honors'); |
||||
|
$ui_about_csr = uiId('about_csr'); |
||||
|
$ui_download_csr = uiId('download_csr'); |
||||
|
$csr_report_href = getMuiLangUrl('/download.html'); |
||||
|
if ($ui_download_csr > 0) { |
||||
|
$csr_report_href .= '?cid=' . $ui_download_csr; |
||||
|
} |
||||
|
{/php} |
||||
|
{hcTaglib:category id="$ui_about_intro" item="vo" field="*"} |
||||
|
<section class="ab-intro section__wrap" id="intro" data-header-dark> |
||||
|
<h2 class="ab-intro__title">{$vo.title}</h2> |
||||
|
<div class="ab-intro__body"> |
||||
|
<div class="ab-intro__texts"> |
||||
|
<p>{:nl2br($vo.description)}</p> |
||||
|
</div> |
||||
|
{php} |
||||
|
$stats_raw = explode(',', $vo['desc']); |
||||
|
$stats_list = []; |
||||
|
foreach ($stats_raw as $item) { |
||||
|
$parts = explode(';', $item); |
||||
|
if (count($parts) === 3) { |
||||
|
$stats_list[] = ['num' => $parts[0], 'unit' => $parts[1], 'text' => $parts[2]]; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<ul class="ab-intro__stats"> |
||||
|
{volist name="stats_list" id="stat"} |
||||
|
<li> |
||||
|
<strong><span class="counter">{$stat.num}</span><span class="ab-intro__stats-unit">{$stat.unit}</span></strong> |
||||
|
<span>{$stat.text}</span> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_history" item="vo" field="*"} |
||||
|
<section class="ab-history" id="history" data-header-dark style="background-image: url({$vo.thumbnail.url ?? ''})"> |
||||
|
<div class="ab-history__head section__wrap"> |
||||
|
<h2 class="ab-history__title">{$vo.title}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="ab-history__swiper swiper section__wrap"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="9999" mainField="id,title,sub_title,content,thumbnail" sort="sort desc" subField="" onlyData="2"} |
||||
|
<article class="swiper-slide ab-history__slide"> |
||||
|
<time class="ab-history__year" datetime="2025">{$case_top.sub_title}<span>年</span></time> |
||||
|
<div class="ab-history__dot" aria-hidden="true"></div> |
||||
|
<h3 class="ab-history__slide-title">{$case_top.title}</h3> |
||||
|
<a class="ab-history__more" href="{:getMuiLangUrl('/about-history.html')}#year-{$case_top.sub_title}"> |
||||
|
<span>了解更多</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" width="16.502" height="6.661" fill="none" aria-hidden="true"> |
||||
|
<path d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="currentColor" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
<div class="ab-history__media"> |
||||
|
<img src="{$case_top.thumbnail.url ?? ''}" alt="" width="400" height="260" loading="lazy" /> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/hcTaglib:content} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="ab-history__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
{hcTaglib:category id="$ui_about_culture" item="vo" field="*"} |
||||
|
<section class="ab-culture" id="culture"> |
||||
|
<div class="ab-culture__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="900" /> |
||||
|
</div> |
||||
|
<div class="ab-culture__inner section__wrap"> |
||||
|
<h2 class="ab-culture__title">{$vo.title}</h2> |
||||
|
{php} |
||||
|
$culture_raw = explode('#', $vo['description']); |
||||
|
$culture_list = []; |
||||
|
foreach ($culture_raw as $item) { |
||||
|
$parts = explode(';', $item); |
||||
|
if (count($parts) === 3) { |
||||
|
$culture_list[] = ['zh' => $parts[0], 'en' => $parts[1], 'text' => $parts[2]]; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="ab-culture__list"> |
||||
|
{volist name="culture_list" id="culture"} |
||||
|
<div class="ab-culture__item"> |
||||
|
<div class="ab-culture__label"> |
||||
|
<span class="ab-culture__label-zh">{$culture.zh}</span> |
||||
|
<span class="ab-culture__label-en">{$culture.en}</span> |
||||
|
</div> |
||||
|
<p class="ab-culture__text">{$culture.text|raw}</p> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_global" item="vo" field="*"} |
||||
|
<section class="ab-global section__wrap" id="global" data-header-dark> |
||||
|
<h2 class="ab-global__title">{$vo.title}</h2> |
||||
|
{php} |
||||
|
$global_raw = explode(',', $vo['description']); |
||||
|
$global_list = []; |
||||
|
foreach ($global_raw as $item) { |
||||
|
$parts = explode(';', $item, 3); |
||||
|
if (count($parts) >= 2) { |
||||
|
$desc = isset($parts[2]) ? str_replace(';', '<br>', $parts[2]) : ''; |
||||
|
$global_list[] = ['num' => $parts[0], 'unit' => $parts[1], 'desc' => $desc]; |
||||
|
} |
||||
|
} |
||||
|
$global_left = array_slice($global_list, 0, 3); |
||||
|
$global_right = array_slice($global_list, 3); |
||||
|
{/php} |
||||
|
<div class="ab-global__layout"> |
||||
|
<ul class="ab-global__side ab-global__side--left"> |
||||
|
{volist name="global_left" id="item"} |
||||
|
<li> |
||||
|
<strong><span class="counter">{$item.num}</span><span>{$item.unit}</span></strong> |
||||
|
{if $item.desc}<span class="ab-global__side-desc">{$item.desc|raw}</span>{/if} |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
<div class="ab-global__visual"> |
||||
|
<canvas id="earth-canvas" class="ab-global__earth"></canvas> |
||||
|
</div> |
||||
|
<ul class="ab-global__side ab-global__side--right"> |
||||
|
{volist name="global_right" id="item"} |
||||
|
<li> |
||||
|
<strong><span class="counter">{$item.num}</span><span>{$item.unit}</span></strong> |
||||
|
{if $item.desc}<span class="ab-global__side-desc">{$item.desc|raw}</span>{/if} |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_members" item="vo" field="*"} |
||||
|
<section class="ab-members" id="members"> |
||||
|
<div class="ab-members__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="900" /> |
||||
|
</div> |
||||
|
<div class="ab-members__inner section__wrap"> |
||||
|
<h2 class="ab-members__title">{$vo.title}</h2> |
||||
|
<div class="ab-members__card"> |
||||
|
<div class="ab-members__panels-swiper swiper"> |
||||
|
<div class="ab-members__panels swiper-wrapper"> |
||||
|
{php}$member_idx = 0;{/php} |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="50" mainField="id,url,title,sub_title,content,thumbnail" sort="sort asc" subField="" onlyData="2"} |
||||
|
<div class="ab-members__panel swiper-slide" id="ab-member-panel-{$case_top.id}" data-index="{$member_idx}"> |
||||
|
<div class="ab-members__content"> |
||||
|
<div> |
||||
|
<h3 class="ab-members__name">{$case_top.title}</h3> |
||||
|
<p class="ab-members__desc"> |
||||
|
{$case_top.content|strip_tags} |
||||
|
</p> |
||||
|
</div> |
||||
|
<a target="_blank" class="s-btn s-btn--outline s-btn--pill ab-members__more" href="{$case_top.url ?? '#'}">探索更多</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
{php}$member_idx++;{/php} |
||||
|
{/hcTaglib:content} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="ab-members__logos" role="tablist" aria-label="集团成员"> |
||||
|
{php}$member_idx = 0;{/php} |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="50" mainField="id,title,sub_title,content,thumbnail" sort="sort asc" subField="" onlyData="2"} |
||||
|
<button type="button" class="ab-members__logo{if $member_idx == 0} is-active{/if}" id="ab-member-tab-{$case_top.id}" |
||||
|
data-index="{$member_idx}" |
||||
|
role="tab" aria-controls="ab-member-panel-{$case_top.id}" aria-selected="{if $member_idx == 0}true{else}false{/if}"> |
||||
|
<img src="{$case_top.thumbnail.url ?? ''}" alt="{$case_top.title}" width="160" height="60" /> |
||||
|
</button> |
||||
|
{php}$member_idx++;{/php} |
||||
|
{/hcTaglib:content} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_honors" item="vo" field="*"} |
||||
|
<section class="ab-honors section__wrap" id="honors" data-header-dark> |
||||
|
<div class="ab-honors__head"> |
||||
|
<h2 class="ab-honors__title">{$vo.title}</h2> |
||||
|
<p class="ab-honors__desc">{$vo.description}</p> |
||||
|
</div> |
||||
|
<div class="ab-honors__body"> |
||||
|
<ul class="ab-honors__list"> |
||||
|
{hcTaglib:content cid="$vo.id" moduleId="1" name="contentList" item="case_top" limit="999" mainField="id,url,title,sub_title,content,thumbnail" sort="sort asc" subField="" onlyData="2"} |
||||
|
<li class="ab-honors__item"> |
||||
|
<span class="ab-honors__name">{$case_top.title}</span> |
||||
|
<a class="ab-honors__view" href="javascript:;"> |
||||
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"> |
||||
|
<g id="eye"> |
||||
|
<path d="M12.0019 15.5799C10.0219 15.5799 8.42188 13.9799 8.42188 11.9999C8.42188 10.0199 10.0219 8.41992 12.0019 8.41992C13.9819 8.41992 15.5819 10.0199 15.5819 11.9999C15.5819 13.9799 13.9819 15.5799 12.0019 15.5799Z" fill-rule="nonzero" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" /> |
||||
|
<path d="M21.1098 14.5907C22.0098 13.1807 22.0098 10.8107 21.1098 9.4007C18.8198 5.8007 15.5298 3.7207 11.9998 3.7207C8.46984 3.7207 5.17984 5.8007 2.88984 9.4007C1.98984 10.8107 1.98984 13.1807 2.88984 14.5907C5.17984 18.1907 8.46984 20.2707 11.9998 20.2707C15.5298 20.2707 18.8198 18.1907 21.1098 14.5907Z" fill-rule="nonzero" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" /> |
||||
|
</g> |
||||
|
</svg> |
||||
|
|
||||
|
<span>查看证书</span> |
||||
|
<span class="ab-honors__pop" aria-hidden="true"> |
||||
|
<img class="ab-honors__cert-img" src="{$case_top.thumbnail.url ?? ''}" alt="荣誉证书" /> |
||||
|
</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/hcTaglib:content} |
||||
|
</ul> |
||||
|
<button type="button" class="ab-honors__more"> |
||||
|
<span>展开更多</span> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2011.2728%206.90918'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='11.272827'%20height='6.909180'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='矢量%202'%20d='M0.636353%200.636272L5.63635%205.63627L10.6364%200.63623'%20stroke='rgb(102,102,102)'%20stroke-width='1.800000'%20/%3e%3c/svg%3e" alt="" width="12" height="6" /> |
||||
|
</button> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_about_csr" item="vo" field="*"} |
||||
|
<section class="ab-csr" id="csr"> |
||||
|
<div class="ab-csr__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
<div class="ab-csr__inner section__wrap"> |
||||
|
<h2 class="ab-csr__title">{$vo.title}</h2> |
||||
|
<div class="ab-csr__content"> |
||||
|
<p class="ab-csr__desc"> |
||||
|
{$vo.description} |
||||
|
</p> |
||||
|
<a class="s-btn s-btn--light s-btn--pill" href="{$csr_report_href}">社会责任报告</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
|
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
<script src="/themes/dist_static/js/lib/three-r128.min.js"></script> |
||||
|
<script src="/themes/dist_static/js/lib/three-128-orbitControls.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,150 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/announce.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/announce.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-announce" data-header-dark data-nav="服务支持"> |
||||
|
<div class="a-page section__wrap"> |
||||
|
<div class="a-head"> |
||||
|
<h1 class="a-head__title">{$current_cate.title}</h1> |
||||
|
<p class="a-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
|
||||
|
<div class="a-toolbar"> |
||||
|
{php} |
||||
|
$filter_cid = (string)input('cid', ''); |
||||
|
$filter_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($filter_cid === '') { |
||||
|
$filter_cid = $filter_all_id; |
||||
|
} |
||||
|
$filter_keywords = (string)input('keywords', ''); |
||||
|
$filter_is_all = ($filter_cid === $filter_all_id); |
||||
|
$filter_label = '按产品筛选'; |
||||
|
if (!$filter_is_all && !empty($sub_cates)) { |
||||
|
foreach ($sub_cates as $sc) { |
||||
|
if ((string)($sc['id'] ?? '') === $filter_cid) { |
||||
|
$filter_label = $sc['title'] ?? $filter_label; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="a-filter__group"> |
||||
|
<button type="button" class="a-filter{if !$filter_is_all} is-selected{/if}" aria-haspopup="listbox" aria-expanded="false" data-filter-trigger> |
||||
|
<span>{$filter_label}</span> |
||||
|
<svg class="a-filter__chevron" viewBox="0 0 11.2728 6.90918" width="11" height="7" fill="none" aria-hidden="true"> |
||||
|
<path d="M0.636353 0.636272L5.63635 5.63627L10.6364 0.63623" stroke="currentColor" stroke-width="1.8" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="a-filter__dropdown" data-filter-dropdown hidden> |
||||
|
<button type="button" class="a-filter__dropdown-item{if $filter_is_all} is-active{/if}" data-tab="{$current_cate.id}" data-filter-clear>全部</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php}$vo_id = (string)($vo['id'] ?? '');{/php} |
||||
|
<button type="button" class="a-filter__dropdown-item{if $filter_cid == $vo_id} is-active{/if}" data-tab="{$vo.id}">{$vo.title}</button> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$filter_keywords}" placeholder="请输入您想搜索公告的关键词" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">搜索</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="a-grid"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="8" item="vo"} |
||||
|
<a class="a-card" href="{$vo.url ?? ''}" target="_blank"> |
||||
|
<time class="a-card__date" datetime="{$vo.publish_time}">{$vo.publish_time}</time> |
||||
|
<h2 class="a-card__title">{$vo.title}</h2> |
||||
|
<span class="a-card__link"> |
||||
|
<span>探索更多</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
</a> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = '暂无相关公告'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,228 @@ |
|||||
|
<!doctype html> |
||||
|
<html lang="zh-CN"> |
||||
|
{php} |
||||
|
// var_dump($current_cate); |
||||
|
$current_cate_id = $current_cate['id'] ?? ''; |
||||
|
//exit(); |
||||
|
{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon" /> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement; |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920; |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16; |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14; |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width; |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN; |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE; |
||||
|
h.style.fontSize = size + "px"; |
||||
|
} |
||||
|
setRootFontSize(); |
||||
|
var resizeRaf = 0; |
||||
|
window.addEventListener("resize", function () { |
||||
|
if (resizeRaf) return; |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0; |
||||
|
setRootFontSize(); |
||||
|
}); |
||||
|
}); |
||||
|
})(); |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> |
||||
|
<link |
||||
|
href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" |
||||
|
rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" |
||||
|
crossorigin="anonymous" |
||||
|
/> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/category.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/category.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-category" data-header-dark data-nav="产品"> |
||||
|
{php}$ui_product = uiId('product');{/php} |
||||
|
<div class="c-page section__wrap"> |
||||
|
<nav class="c-breadcrumb" aria-label="面包屑"> |
||||
|
<a class="c-breadcrumb__link" href="{:getMuiLangUrl('/')}">首页</a> |
||||
|
<span class="c-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
|
||||
|
{hcTaglib:category id="$ui_product" item="vo" field="*"} |
||||
|
<a class="c-breadcrumb__link" href="{$vo.alias}">{$vo.title}</a> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
<span class="c-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
<span class="c-breadcrumb__current" data-breadcrumb-current>工业控制产品</span> |
||||
|
</nav> |
||||
|
|
||||
|
<div class="c-layout"> |
||||
|
<aside class="c-sidebar" aria-label="产品分类" data-lenis-prevent> |
||||
|
<ul class="c-sidebar__list" data-category-nav> |
||||
|
<!-- 获取所有一级分类 --> |
||||
|
{hcTaglib:subcategory pid="$ui_product" item="vo" sort="" key="key_top"} |
||||
|
{php} |
||||
|
$sub_cate_id = $vo['id']; |
||||
|
$need_show_sub_content = (int)($vo['need_show_sub_content'] ?? 0); |
||||
|
{/php} |
||||
|
{hcTaglib:subcategory pid="$sub_cate_id" onlyData="1"} |
||||
|
{/hcTaglib:subcategory} |
||||
|
{php} |
||||
|
$level2_list = $hc_subcategory ?? []; |
||||
|
$has_level2 = !empty($level2_list); |
||||
|
{/php} |
||||
|
<li class="c-sidebar__item {if $key_top==1}is-active{/if}{if !$has_level2} is-leaf{/if}" data-category-item="product-control-{$vo.id}"> |
||||
|
|
||||
|
<button type="button" class="c-sidebar__trigger" data-category-id="product-control-{$vo.id}" data-category-name="{$vo.title}" aria-expanded="{if $key_top==1}true{else /}false{/if}"> |
||||
|
<span>{$vo.title}</span> |
||||
|
{if $has_level2} |
||||
|
<span class="c-sidebar__chevron" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
{/if} |
||||
|
</button> |
||||
|
|
||||
|
{if $has_level2} |
||||
|
<ul class="c-sidebar__subs"> |
||||
|
{volist name="level2_list" id="vo_sub" key="key_sub"} |
||||
|
<li> |
||||
|
<button type="button" class="c-sidebar__sub" data-category-id="product-control-{$vo.id}" data-sub-id="product-plc-{$vo_sub.id}">{$vo_sub.title}</button> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
{/if} |
||||
|
|
||||
|
</li> |
||||
|
{/hcTaglib:subcategory} |
||||
|
</ul> |
||||
|
</aside> |
||||
|
|
||||
|
<div class="c-main"> |
||||
|
{hcTaglib:subcategory pid="$ui_product" item="vo" sort="" key="key_top"} |
||||
|
{php} |
||||
|
$sub_cate_id = $vo['id']; |
||||
|
$need_show_sub_content = (int)($vo['need_show_sub_content'] ?? 0); |
||||
|
{/php} |
||||
|
{hcTaglib:subcategory pid="$sub_cate_id" onlyData="1"} |
||||
|
{/hcTaglib:subcategory} |
||||
|
{php} |
||||
|
$level2_list = $hc_subcategory ?? []; |
||||
|
$has_level2 = !empty($level2_list); |
||||
|
{/php} |
||||
|
|
||||
|
<div class="c-panel" data-category-panel="product-control-{$vo.id}" {if $key_top!=1}hidden{/if}> |
||||
|
<div class="c-grid" data-product-grid> |
||||
|
{if $has_level2} |
||||
|
{volist name="level2_list" id="vo_sub" key="key_sub"} |
||||
|
{hcTaglib:contentPage2 cid="$vo_sub.id" mainField="id,category_id,title,sub_title,thumbnail" subField="" name="hc_content" limit="100" item="content_sub22" sort="sort asc"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
<article class="s-product-card" data-sub="product-plc-{$vo_sub.id}"> |
||||
|
<a class="s-product-card__link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<div class="s-product-card__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" alt="{$vo_content.title}" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="s-product-card__foot"> |
||||
|
<h3 class="s-product-card__name">{$vo_content.title}</h3> |
||||
|
<span class="s-product-card__arrow" aria-hidden="true"> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2012.2529%2011.314'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.252930'%20height='11.313965'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M5.18202%201.41422L6.59622%200L12.2531%205.65686L12.2529%205.65702L10.8389%207.07108L6.59608%2011.3139L5.18186%209.89966L8.4245%206.65702L-0%206.65702L0%204.657L8.42482%204.65702L5.18202%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" |
||||
|
alt="" |
||||
|
width="12" |
||||
|
height="11" |
||||
|
/> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
{/volist} |
||||
|
{else /} |
||||
|
<!-- 仅一级分类:直接按一级 id 取产品 --> |
||||
|
{hcTaglib:contentPage2 cid="$vo.id" mainField="id,category_id,title,sub_title,thumbnail" subField="" name="hc_content" limit="100" item="content_sub22" sort="sort asc"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
<article class="s-product-card"> |
||||
|
<a class="s-product-card__link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<div class="s-product-card__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" alt="{$vo_content.title}" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="s-product-card__foot"> |
||||
|
<h3 class="s-product-card__name">{$vo_content.title}</h3> |
||||
|
<span class="s-product-card__arrow" aria-hidden="true"> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2012.2529%2011.314'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.252930'%20height='11.313965'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M5.18202%201.41422L6.59622%200L12.2531%205.65686L12.2529%205.65702L10.8389%207.07108L6.59608%2011.3139L5.18186%209.89966L8.4245%206.65702L-0%206.65702L0%204.657L8.42482%204.65702L5.18202%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" |
||||
|
alt="" |
||||
|
width="12" |
||||
|
height="11" |
||||
|
/> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
{/if} |
||||
|
</div> |
||||
|
|
||||
|
<div class="c-empty" data-product-empty hidden> |
||||
|
<p class="c-empty__text">暂无产品</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{/hcTaglib:subcategory} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script |
||||
|
src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous" |
||||
|
></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,8 @@ |
|||||
|
{php} |
||||
|
if (!isset($empty_text) || $empty_text === '') { |
||||
|
$empty_text = '暂无相关内容'; |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="s-empty" role="status"> |
||||
|
<p class="s-empty__text">{$empty_text}</p> |
||||
|
</div> |
||||
@ -0,0 +1,206 @@ |
|||||
|
<div class="mask" id="mask"> |
||||
|
<header class="mask-header"> |
||||
|
<a href="{:getMuiLangUrl('/')}" class="mask-header__logo" aria-label="睿能科技"> |
||||
|
<img src="{hcTaglib:setting name='dark_logo' type='2' /}" alt="RAYNEN 睿能科技" width="252" height="26" /> |
||||
|
</a> |
||||
|
<div class="mask-header__actions"> |
||||
|
<button class="mask-header__icon-btn lang" type="button" aria-label="切换语言"> |
||||
|
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32.000000" height="32.000000" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="矢量 10" |
||||
|
d="M19.746 28.3C19.392 27.626 19.014 26.646 19.222 26.06C19.2708 25.8903 19.3486 25.7304 19.4519 25.5872C19.5551 25.4441 19.6824 25.3198 19.828 25.22C20.21 24.908 20.734 24.482 21.15 23.402C21.31 22.984 21.416 22.564 21.516 22.16C21.884 20.69 22.016 20.464 23.082 20.586C23.882 20.682 24.378 21.066 24.952 21.512C25.516 21.95 26.158 22.414 27.04 22.566C26.2295 23.9294 25.1741 25.1314 23.927 26.1115C22.6798 27.0915 21.2624 27.8328 19.746 28.298M4.972 22.588C5.902 22.476 6.918 22.152 7.644 21.36C8.446 20.484 8.452 19.34 8.456 18.424C8.462 17.174 8.532 16.83 9.164 16.594C10.028 16.274 10.42 16.58 11.232 17.3C11.708 17.724 12.248 18.204 12.966 18.424C13.812 18.684 14.826 18.564 15.674 18.098C16.52 17.638 17.148 16.856 17.414 15.928L17.42 15.928L17.428 15.898L17.436 15.874C17.446 15.842 17.446 15.814 17.456 15.782C17.518 15.564 17.562 15.344 17.59 15.126C17.604 15.028 17.61 14.94 17.616 14.846C17.622 14.77 17.632 14.694 17.636 14.62C17.6617 14.1266 17.6524 13.632 17.608 13.14C17.5897 12.9224 17.5777 12.7043 17.572 12.486C17.5671 12.2843 17.6176 12.085 17.718 11.91C17.894 11.826 18.362 11.742 18.684 11.686C19.578 11.528 20.672 11.328 21.332 10.552L21.342 10.546L21.34 10.546C21.38 10.498 21.422 10.458 21.458 10.406C22.574 8.834 22.506 7.208 21.282 6.164C21.1849 6.08469 21.0841 6.00994 20.98 5.94C20.26 5.44 19.952 5.086 20.162 4.436C20.224 4.24 20.292 4.07 20.358 3.916C22.8457 4.81129 24.9968 6.45204 26.5179 8.61455C28.039 10.7771 28.8562 13.3561 28.858 16C28.858 17.548 28.568 19.026 28.068 20.4C27.9135 20.4466 27.7547 20.4774 27.594 20.492C27.154 20.492 26.834 20.262 26.266 19.818C25.578 19.284 24.722 18.622 23.332 18.458C20.336 18.102 19.77 20.318 19.438 21.638C19.354 21.976 19.272 22.318 19.148 22.634C18.938 23.182 18.764 23.324 18.474 23.56C18.098 23.868 17.582 24.288 17.206 25.34C16.786 26.506 17.168 27.812 17.586 28.748C17.066 28.814 16.538 28.858 16 28.858C13.7766 28.857 11.5915 28.2786 9.65872 27.1796C7.72594 26.0805 6.11169 24.4983 4.974 22.588M15.998 3.142C16.778 3.142 17.536 3.222 18.276 3.356C18.2199 3.49487 18.1685 3.63562 18.122 3.778C17.388 6.052 19.172 7.292 19.756 7.698L19.89 7.792C20.02 7.904 20.352 8.202 19.77 9.076C19.562 9.254 19.35 9.286 18.83 9.31C18.134 9.344 17.084 9.394 16.152 10.43L16.148 10.436L16.146 10.438L16.134 10.448C16.114 10.47 16.102 10.494 16.084 10.516C15.59 11.096 15.45 11.73 15.434 12.352C15.4195 12.7589 15.4289 13.1662 15.462 13.572C15.488 14.002 15.512 14.414 15.476 14.78C15.4534 14.9575 15.4186 15.1332 15.372 15.306C15.3192 15.4999 15.2272 15.6809 15.1016 15.8377C14.9761 15.9946 14.8196 16.124 14.642 16.218C14.302 16.406 13.888 16.468 13.598 16.378C13.324 16.292 12.998 16.004 12.652 15.698C11.804 14.944 10.52 13.804 8.416 14.586C6.328 15.366 6.32 17.198 6.314 18.412C6.31 19.048 6.306 19.648 6.064 19.912C5.616 20.402 4.698 20.506 3.964 20.488C3.42378 19.0533 3.14602 17.5331 3.144 16C3.144 13.7432 3.738 11.5261 4.86631 9.57158C5.99462 7.61705 7.61749 5.99393 9.57184 4.86531C11.5262 3.7367 13.7432 3.14235 16 3.142M16 1C7.728 1 1 7.728 1 16C1 24.272 7.728 31 16 31C24.272 31 31 24.272 31 16C31 7.728 24.272 1 16 1Z" |
||||
|
fill="currentColor" |
||||
|
fill-rule="nonzero" |
||||
|
/> |
||||
|
<path |
||||
|
id="矢量 10" |
||||
|
d="M16 0C24.8235 0 32 7.17653 32 16C32 24.8235 24.8235 32 16 32C7.17653 32 0 24.8235 0 16C0 7.17653 7.17653 0 16 0ZM1 16C1 7.728 7.728 1 16 1C24.272 1 31 7.728 31 16C31 24.272 24.272 31 16 31C7.728 31 1 24.272 1 16Z" |
||||
|
fill="currentColor" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<a href="{:getMuiLangUrl('/search.html')}" class="mask-header__icon-btn search" aria-label="搜索"> |
||||
|
<svg viewBox="0 0 32.9434 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32.943359" height="32.000000" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="矢量 3" |
||||
|
d="M22.7394 24.9684C20.3451 26.8783 17.3108 28.0198 14.0099 28.0198C6.27256 28.0198 0 21.7474 0 14.0099C0 6.27246 6.27256 0 14.0099 0C21.7473 0 28.0198 6.27246 28.0198 14.0099C28.0198 16.9923 27.088 19.757 25.4995 22.0287L32.944 28.9999L29.7711 32L22.7394 24.9684ZM23.8675 14.0099C23.8675 8.01334 20.0063 4.15222 14.0099 4.15222C8.01354 4.15222 4.15232 8.01334 4.15232 14.0099C4.15232 20.0065 8.01354 23.8676 14.0099 23.8676C20.0063 23.8676 23.8675 20.0065 23.8675 14.0099Z" |
||||
|
fill="currentColor" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</a> |
||||
|
<button class="mask-header__icon-btn mask-header__icon-btn--close close" type="button" aria-expanded="false" aria-controls="mask" aria-label="关闭导航菜单"> |
||||
|
<svg class="nav-toggle-icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> |
||||
|
<rect class="nav-toggle-icon__bar nav-toggle-icon__bar--top" x="4" y="6" width="16" height="2" rx="1" /> |
||||
|
<rect class="nav-toggle-icon__bar nav-toggle-icon__bar--mid" x="4" y="11" width="16" height="2" rx="1" /> |
||||
|
<rect class="nav-toggle-icon__bar nav-toggle-icon__bar--bot" x="4" y="16" width="16" height="2" rx="1" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
</header> |
||||
|
<div class="mask-content"> |
||||
|
<nav class="mask-nav" aria-label="移动导航"> |
||||
|
<ul class="mask-nav__list"> |
||||
|
{php} |
||||
|
$ui_nav_header = uiId('nav_header'); |
||||
|
$ui_solution = uiId('solution'); |
||||
|
{/php} |
||||
|
{hcTaglib:nav cid="$ui_nav_header" max-level="2" item="vo" name="hc_mask_nav" sort="sort asc"} |
||||
|
{php} |
||||
|
$mask_title = $vo['title'] ?? ''; |
||||
|
$mask_href = $vo['href'] ?? ''; |
||||
|
$mask_cid = (int)($vo['category_id'] ?? 0); |
||||
|
$mask_children = $vo['children'] ?? []; |
||||
|
$mask_is_solution = ($mask_cid === $ui_solution); |
||||
|
{/php} |
||||
|
{if $mask_is_solution} |
||||
|
<!-- 解决方案:一级可继续展开二级(栏目树) --> |
||||
|
<li class="mask-nav__item mask-nav__item--expandable" data-expanded="false"> |
||||
|
<button class="mask-nav__link mask-nav__toggle" type="button" aria-expanded="false"> |
||||
|
<span>{$mask_title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__icon" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M12 5v14" /> |
||||
|
<path d="M5 12h14" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="mask-nav__sublist-wrapper"> |
||||
|
<ul class="mask-nav__sublist"> |
||||
|
{hcTaglib:allSubCategory pid="$ui_solution" item="sol" sort=""} |
||||
|
{php} |
||||
|
$sol_children = $sol['children'] ?? []; |
||||
|
$sol_has_children = !empty($sol_children); |
||||
|
$sol_href = $sol['alias'] ?? ''; |
||||
|
{/php} |
||||
|
{if $sol_has_children} |
||||
|
<li class="mask-nav__subitem mask-nav__subitem--expandable" data-expanded="false"> |
||||
|
<button class="mask-nav__sublink mask-nav__toggle" type="button" aria-expanded="false"> |
||||
|
<span>{$sol.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__icon" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M12 5v14" /> |
||||
|
<path d="M5 12h14" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="mask-nav__sublist-wrapper"> |
||||
|
<ul class="mask-nav__sublist mask-nav__sublist--l2"> |
||||
|
{volist name="sol_children" id="sol2"} |
||||
|
<li class="mask-nav__subitem"> |
||||
|
<a href="{$sol2.alias}" class="mask-nav__sublink"> |
||||
|
<span>{$sol2.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__arrow" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="m9 18 6-6-6-6" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</li> |
||||
|
{else /} |
||||
|
<li class="mask-nav__subitem"> |
||||
|
<a href="{$sol_href}" class="mask-nav__sublink"> |
||||
|
<span>{$sol.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__arrow" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="m9 18 6-6-6-6" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/if} |
||||
|
{/hcTaglib:allSubCategory} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</li> |
||||
|
{elseif condition="!empty($mask_children)" /} |
||||
|
<li class="mask-nav__item mask-nav__item--expandable" data-expanded="false"> |
||||
|
<button class="mask-nav__link mask-nav__toggle" type="button" aria-expanded="false"> |
||||
|
<span>{$mask_title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__icon" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M12 5v14" /> |
||||
|
<path d="M5 12h14" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="mask-nav__sublist-wrapper"> |
||||
|
<ul class="mask-nav__sublist"> |
||||
|
{volist name="mask_children" id="child"} |
||||
|
<li class="mask-nav__subitem"> |
||||
|
<a href="{$child.href ?? ''}" class="mask-nav__sublink"> |
||||
|
<span>{$child.title}</span> |
||||
|
<svg |
||||
|
class="mask-nav__arrow" |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
fill="none" |
||||
|
stroke="currentColor" |
||||
|
stroke-width="2" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="m9 18 6-6-6-6" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</div> |
||||
|
</li> |
||||
|
{else /} |
||||
|
<li class="mask-nav__item"> |
||||
|
<a href="{$mask_href}" class="mask-nav__link">{$mask_title}</a> |
||||
|
</li> |
||||
|
{/if} |
||||
|
{/hcTaglib:nav} |
||||
|
</ul> |
||||
|
</nav> |
||||
|
</div> |
||||
|
</div> |
||||
@ -0,0 +1,307 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/contact.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/contact.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-contact" data-header-dark> |
||||
|
<section class="c-intro section__wrap"> |
||||
|
<h1 class="c-intro__title"> |
||||
|
<span>{$current_cate.sub_title}<br/>{$current_cate.desc}</span> |
||||
|
</h1> |
||||
|
<div class="c-intro__hotline"> |
||||
|
<div class="c-intro__hotline-label"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32.000000'%20height='32.000000'%20fill='none'%3e%3crect%20id='Linear%20/%20Call%20/%20Incoming%20Call%20Rounded'%20width='32.000000'%20height='32.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3cpath%20id='Vector'%20d='M0%204.26667L4.26667%200M1.06667%200L4.26667%200L4.26667%203.2'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-width='1.500000'%20transform='matrix(-1,0,0,-1,23.4668,12.7998)'%20/%3e%3cpath%20id='Vector'%20d='M13.9069%208.87071C12.9635%207.18033%2010.5929%206.9807%209.10712%208.46651C8.21432%209.35931%207.51962%2010.453%207.47379%2011.6621C7.39663%2013.6974%207.91173%2017.154%2011.379%2020.6212C14.8463%2024.0885%2018.3028%2024.6036%2020.3382%2024.5265C21.5472%2024.4806%2022.6409%2023.7859%2023.5338%2022.8931C25.0196%2021.4073%2024.8199%2019.0367%2023.1295%2018.0934L21.8891%2017.4011C20.7696%2016.7763%2019.3011%2017.0271%2018.3171%2018.0111C18.3171%2018.0111%2017.1236%2019.2046%2014.9596%2017.0406C12.7956%2014.8767%2013.9892%2013.6831%2013.9892%2013.6831C14.9731%2012.6991%2015.2239%2011.2306%2014.5992%2010.1112L13.9069%208.87071Z'%20fill-rule='evenodd'%20stroke='rgb(239,67,53)'%20stroke-width='1.500000'%20/%3e%3c/svg%3e" alt="" width="19" height="19" /> |
||||
|
<span>客服热线</span> |
||||
|
</div> |
||||
|
<a class="c-intro__phone" href="tel:400-0898-188">{hcTaglib:setting name="company_phone" type="1" /}</a> |
||||
|
<p class="c-intro__hours">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<section class="c-banner" aria-label="服务入口"> |
||||
|
<div class="c-banner__media" aria-hidden="true"> |
||||
|
<img src="{$current_cate.thumbnail.url ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
<div class="c-banner__cards section__wrap"> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/download.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">下载中心</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%3e%3crect%20id='容器%20279'%20width='48.000000'%20height='48.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='download--02'%3e%3cpath%20id='矢量%20486'%20d='M33.3333%2018.667L44%2018.667L44%2044.0003L4%2044.0003L4%2018.667L14.6667%2018.667'%20fill-rule='nonzero'%20stroke='rgb(0,0,0)'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='矢量%20487'%20d='M32%2028L24%2036L16%2028M24%204L24%2036'%20fill-rule='nonzero'%20stroke='rgb(239,67,53)'%20stroke-width='2.000000'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">获取产品相关资料</p> |
||||
|
</a> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/faq.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">常见问题</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='Question_and_answer'%3e%3cg%20id='question-and-answer'%3e%3cpath%20id='矢量%20484'%20d='M16.6667%2046L10.8%2037.2L4.93333%2037.2C3.32%2037.2%202%2035.88%202%2034.2667L2%2019.6C2%2017.9867%203.32%2016.6667%204.93333%2016.6667L26.9333%2016.6667C28.5467%2016.6667%2029.8667%2017.9867%2029.8667%2019.6L29.8667%2034.2667C29.8667%2035.88%2028.5467%2037.2%2026.9333%2037.2L16.6667%2037.2M35.7333%2025.4667L38.6667%2019.6L43.0667%2019.6C44.68%2019.6%2046%2018.28%2046%2016.6667L46%204.93333C46%203.32%2044.68%202%2043.0667%202L25.4667%202C23.8533%202%2022.5333%203.32%2022.5333%204.93333L22.5333%2016.6667M34.2667%2019.6L29.8667%2019.6M34.296%2013C34.296%2011.372%2034.5307%2010.9027%2035.5133%2010.3307C36.232%209.92%2036.9213%209.31867%2036.9213%208.10133C36.9213%206.54667%2035.7333%205.66667%2034.2813%205.66667C32.8293%205.66667%2031.6267%206.708%2031.6267%208.10133'%20fill-rule='nonzero'%20stroke='rgb(0,0,0)'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='矢量%20485'%20d='M17.3995%2026.9332C17.3995%2027.7399%2016.7395%2028.3999%2015.9328%2028.3999C15.1261%2028.3999%2014.4661%2027.7399%2014.4661%2026.9332C14.4661%2026.1265%2015.1261%2025.4665%2015.9328%2025.4665C16.7395%2025.4665%2017.3995%2026.1265%2017.3995%2026.9332ZM23.2661%2025.4665C22.4595%2025.4665%2021.7995%2026.1265%2021.7995%2026.9332C21.7995%2027.7399%2022.4595%2028.3999%2023.2661%2028.3999C24.0728%2028.3999%2024.7328%2027.7399%2024.7328%2026.9332C24.7328%2026.1265%2024.0728%2025.4665%2023.2661%2025.4665ZM8.59948%2025.4665C7.79281%2025.4665%207.13281%2026.1265%207.13281%2026.9332C7.13281%2027.7399%207.79281%2028.3999%208.59948%2028.3999C9.40615%2028.3999%2010.0661%2027.7399%2010.0661%2026.9332C10.0661%2026.1265%209.40615%2025.4665%208.59948%2025.4665ZM34.2661%2016.1239C34.7795%2016.1239%2035.1901%2015.7132%2035.1901%2015.2145C35.1901%2014.7159%2034.7795%2014.2905%2034.2661%2014.2905C33.7528%2014.2905%2033.3568%2014.7012%2033.3568%2015.2145C33.3568%2015.7279%2033.7675%2016.1239%2034.2661%2016.1239Z'%20fill='rgb(239,67,53)'%20fill-rule='nonzero'%20/%3e%3c/g%3e%3crect%20id='Transparent_Rectangle'%20width='48.000000'%20height='48.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">在这里,寻找想要的答案</p> |
||||
|
</a> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/video.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">视频教程</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='vuesax/linear/play-circle'%3e%3cg%20id='play-circle'%3e%3cpath%20id='Vector'%20d='M23.9395%2044C12.8938%2044%203.93945%2035.0457%203.93945%2024C3.93945%2012.9543%2012.8938%204%2023.9395%204C34.9852%204%2043.9395%2012.9543%2043.9395%2024C43.9395%2035.0457%2034.9852%2044%2023.9395%2044Z'%20stroke='rgb(41,45,50)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20d='M17.4805%2021.1202C17.4805%2016.9602%2020.4205%2015.2602%2024.0205%2017.3402L26.9205%2019.0202L29.8205%2020.7002C33.4205%2022.7803%2033.4205%2026.1802%2029.8205%2028.2603L26.9205%2029.9403L24.0205%2031.6203C20.4205%2033.7002%2017.4805%2032.0003%2017.4805%2027.8402L17.4805%2024.4602L17.4805%2021.1202Z'%20fill-rule='nonzero'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20opacity='0'%20/%3e%3c/g%3e%3c/g%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">提供相关视频进行培训</p> |
||||
|
</a> |
||||
|
<a class="c-card" href="{:getMuiLangUrl('/announce.html')}"> |
||||
|
<div class="c-card__head"> |
||||
|
<span class="c-card__title">产品公告</span> |
||||
|
<img class="c-card__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2048%2048'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='48.000000'%20height='48.000000'%20fill='none'%3e%3crect%20id='容器%20280'%20width='48.000000'%20height='48.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3cpath%20id='Vector'%20d='M4%2028.091C4%2032.1719%206.07692%2034.2124%2010.2308%2034.2124L13.2036%2034.2124C13.9774%2034.2124%2014.7511%2034.4324%2015.4027%2034.8325L21.4706%2038.5534C26.724%2041.7741%2031%2039.4336%2031%2033.3522L31%2014.6478C31%208.56641%2026.7036%206.22587%2021.4706%209.44662L15.4027%2013.1875C14.7308%2013.5876%2013.9774%2013.8076%2013.2036%2013.8076L10.2308%2013.8076C6.07692%2013.8076%204%2015.8481%204%2019.9291L4%2028.091Z'%20fill-rule='nonzero'%20stroke='rgb(41,45,50)'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20d='M0%200L8%200'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20transform='matrix(0.866025,-0.5,0.5,0.866025,36.5352,15.001)'%20/%3e%3cpath%20id='Vector'%20d='M36%2024L44%2024'%20stroke='rgb(41,45,50)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20/%3e%3cpath%20id='Vector'%20d='M0%200L8%200'%20stroke='rgb(239,67,53)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='2.000000'%20transform='matrix(0.866025,0.5,-0.5,0.866025,36.5352,33)'%20/%3e%3c/svg%3e" alt="" width="48" height="48" /> |
||||
|
</div> |
||||
|
<p class="c-card__desc">了解产品最新动态</p> |
||||
|
</a> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<section class="c-form-section section__wrap" id="form"> |
||||
|
<h2 class="c-form-section__title"> |
||||
|
<span>填写以下信息我们</span> |
||||
|
<span>第一时间回复</span> |
||||
|
</h2> |
||||
|
|
||||
|
<form class="c-form section-contact-form" action="#" method="post"> |
||||
|
<div class="c-form__grid"> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">姓名 *</span> |
||||
|
<input class="c-field__input" type="text" name="name" placeholder="请输入姓名" autocomplete="name" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">手机 *</span> |
||||
|
<input class="c-field__input" type="tel" name="phone" placeholder="请输入手机" autocomplete="tel" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">公司 *</span> |
||||
|
<input class="c-field__input" type="text" name="company" placeholder="请输入公司名称" autocomplete="organization" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">邮箱 *</span> |
||||
|
<input class="c-field__input" type="email" name="email" placeholder="请输入邮箱" autocomplete="email" /> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">所属行业 *</span> |
||||
|
<select class="c-field__input c-field__select" name="industry"> |
||||
|
<option value="" disabled selected>请选择所属行业</option> |
||||
|
<option value="包装机械">包装机械</option> |
||||
|
<option value="机床">机床</option> |
||||
|
<option value="3C电子">3C电子</option> |
||||
|
<option value="其他">其他</option> |
||||
|
</select> |
||||
|
</label> |
||||
|
<label class="c-field"> |
||||
|
<span class="c-field__label">业务类型 *</span> |
||||
|
<select class="c-field__input c-field__select" name="bizType"> |
||||
|
<option value="" disabled selected>请选择业务类型</option> |
||||
|
<option value="产品咨询">产品咨询</option> |
||||
|
<option value="技术支持">技术支持</option> |
||||
|
<option value="商务合作">商务合作</option> |
||||
|
<option value="其他">其他</option> |
||||
|
</select> |
||||
|
</label> |
||||
|
<label class="c-field c-field--full"> |
||||
|
<span class="c-field__label">咨询描述</span> |
||||
|
<input class="c-field__input" type="text" name="content" placeholder="请输入咨询描述" /> |
||||
|
</label> |
||||
|
</div> |
||||
|
|
||||
|
<label class="c-form__agree"> |
||||
|
<input type="checkbox" name="agree" /> |
||||
|
<span>我已阅读并同意《隐私条款》</span> |
||||
|
</label> |
||||
|
|
||||
|
<button class="c-form__submit" type="submit">提交</button> |
||||
|
</form> |
||||
|
</section> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
<script> |
||||
|
$(function () { |
||||
|
var $form = $('.section-contact-form'); |
||||
|
var $submitBtn = $form.find('.c-form__submit'); |
||||
|
var submitting = false; // 防重复提交标志 |
||||
|
|
||||
|
$form.on('submit', function (e) { |
||||
|
e.preventDefault(); |
||||
|
e.stopPropagation(); |
||||
|
if (submitting) return false; |
||||
|
|
||||
|
// 表单验证 |
||||
|
var name = $form.find('[name="name"]').val().trim(); |
||||
|
var phone = $form.find('[name="phone"]').val().trim(); |
||||
|
var company = $form.find('[name="company"]').val().trim(); |
||||
|
var email = $form.find('[name="email"]').val().trim(); |
||||
|
var industry = $form.find('[name="industry"]').val(); |
||||
|
var bizType = $form.find('[name="bizType"]').val(); |
||||
|
var agree = $form.find('[name="agree"]').prop('checked'); |
||||
|
|
||||
|
if (!name) { alert('请输入姓名'); return; } |
||||
|
if (!phone) { alert('请输入手机号'); return; } |
||||
|
if (!company) { alert('请输入公司名称'); return; } |
||||
|
if (!email) { alert('请输入邮箱'); return; } |
||||
|
if (!industry) { alert('请选择所属行业'); return; } |
||||
|
if (!bizType) { alert('请选择业务类型'); return; } |
||||
|
if (!agree) { alert('请阅读并同意《隐私条款》'); return; } |
||||
|
|
||||
|
// 收集表单数据(字段映射到数据库 hc_inquiry 表) |
||||
|
var content = $form.find('[name="content"]').val().trim(); |
||||
|
var data = { |
||||
|
contacts_name: name, // 联系人姓名 |
||||
|
phone: phone, // 联系人手机号 |
||||
|
company_name: company, // 客户名称 |
||||
|
email: email, // 邮箱 |
||||
|
telphone: bizType, // 固定电话字段存放业务类型 |
||||
|
explain: industry, // 询盘类型(所属行业) |
||||
|
content: content, // 询盘内容(咨询描述) |
||||
|
referer: 'website' // 询盘来源 |
||||
|
}; |
||||
|
|
||||
|
// 禁用提交按钮,防止重复提交 |
||||
|
submitting = true; |
||||
|
$submitBtn.prop('disabled', true).text('提交中...'); |
||||
|
|
||||
|
// 发送请求 |
||||
|
$.ajax({ |
||||
|
url: '/inquiry/save', |
||||
|
type: 'POST', |
||||
|
contentType: 'application/json', |
||||
|
data: JSON.stringify(data), |
||||
|
success: function (res) { |
||||
|
if (res.code === 0 || res.code === 200) { |
||||
|
$form[0].reset(); |
||||
|
showFormToast('提交成功,我们会尽快与您联系!'); |
||||
|
} else { |
||||
|
alert(res.msg || '提交失败,请稍后重试'); |
||||
|
} |
||||
|
}, |
||||
|
error: function () { |
||||
|
alert('网络错误,请稍后重试'); |
||||
|
}, |
||||
|
complete: function () { |
||||
|
submitting = false; |
||||
|
$submitBtn.prop('disabled', false).text('提交'); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
return false; |
||||
|
}); |
||||
|
|
||||
|
// 表单提交成功提示 |
||||
|
var $toast = null; |
||||
|
var toastTimer = null; |
||||
|
function showFormToast(msg) { |
||||
|
if (!$toast) { |
||||
|
$toast = $( |
||||
|
'<div class="form-toast">' + |
||||
|
' <svg viewBox="0 0 24 24" width="22" height="22" fill="none" xmlns="http://www.w3.org/2000/svg">' + |
||||
|
' <circle cx="12" cy="12" r="10.5" stroke="currentColor" stroke-width="1.5"/>' + |
||||
|
' <path d="M7.5 12.5L10.5 15.5L16.5 9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>' + |
||||
|
' </svg>' + |
||||
|
' <span class="form-toast__text"></span>' + |
||||
|
'</div>' |
||||
|
); |
||||
|
$('body').append($toast); |
||||
|
} |
||||
|
$toast.find('.form-toast__text').text(msg); |
||||
|
$toast.addClass('form-toast--show'); |
||||
|
clearTimeout(toastTimer); |
||||
|
toastTimer = setTimeout(function () { |
||||
|
$toast.removeClass('form-toast--show'); |
||||
|
}, 3000); |
||||
|
} |
||||
|
}); |
||||
|
</script> |
||||
|
<style> |
||||
|
.form-toast { |
||||
|
position: fixed; |
||||
|
left: 50%; |
||||
|
top: 40px; |
||||
|
transform: translate(-50%, -16px); |
||||
|
z-index: 9999; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
gap: 10px; |
||||
|
padding: 14px 24px; |
||||
|
border-radius: 8px; |
||||
|
background: #fff; |
||||
|
color: var(--color-primary); |
||||
|
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); |
||||
|
font-size: 15px; |
||||
|
opacity: 0; |
||||
|
visibility: hidden; |
||||
|
pointer-events: none; |
||||
|
transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s; |
||||
|
} |
||||
|
.form-toast--show { |
||||
|
opacity: 1; |
||||
|
visibility: visible; |
||||
|
transform: translate(-50%, 0); |
||||
|
} |
||||
|
.form-toast__text { |
||||
|
color: var(--color-text); |
||||
|
} |
||||
|
</style> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,163 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
{php}$download_keywords = input('keywords', '');{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/download.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/download.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-download" data-header-dark data-nav="服务支持"> |
||||
|
<div class="d-page section__wrap"> |
||||
|
<div class="d-head"> |
||||
|
<h1 class="d-head__title">{$current_cate.title}</h1> |
||||
|
<p class="d-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
<div class="d-toolbar"> |
||||
|
<div class="d-tabs" role="tablist" aria-label="资料分类"> |
||||
|
{php} |
||||
|
$download_cid = (string)input('cid', ''); |
||||
|
$download_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($download_cid === '') { |
||||
|
$download_cid = $download_all_id; |
||||
|
} |
||||
|
$download_keywords = (string)input('keywords', ''); |
||||
|
{/php} |
||||
|
<button type="button" class="d-tabs__item{if $download_cid == $download_all_id} is-active{/if}" role="tab" data-tab="{$current_cate.id}" aria-selected="{if $download_cid == $download_all_id}true{else /}false{/if}">全部</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php} |
||||
|
$count = getCategoryChildrenCount($vo['id']); |
||||
|
$vo_id = (string)($vo['id'] ?? ''); |
||||
|
$group_active = false; |
||||
|
$group_label = $vo['title'] ?? ''; |
||||
|
if ($count > 0) { |
||||
|
$group_children = (new \app\model\Category())->where('parent_id', $vo['id'])->field('id,title')->select()->toArray(); |
||||
|
foreach ($group_children as $gc) { |
||||
|
if ((string)($gc['id'] ?? '') === $download_cid) { |
||||
|
$group_active = true; |
||||
|
$group_label = $gc['title'] ?? $group_label; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
{if $count > 0} |
||||
|
<div class="d-tabs__group"> |
||||
|
<button type="button" class="d-tabs__item{if $group_active} is-active{/if}" role="tab" aria-selected="{if $group_active}true{else /}false{/if}" aria-expanded="false" data-dropdown-trigger data-tab="{$vo.id}"> |
||||
|
<span>{$group_label}</span> |
||||
|
<svg class="d-tabs__chevron" viewBox="0 0 11.2728 6.90918" width="11" height="7" fill="none" aria-hidden="true"> |
||||
|
<path d="M0.636353 0.636272L5.63635 5.63627L10.6364 0.63623" stroke="currentColor" stroke-width="1.8" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="d-tabs__dropdown" data-dropdown hidden> |
||||
|
{hcTaglib:subcategory pid="$vo.id" item="child" sort=""} |
||||
|
<button type="button" class="d-tabs__dropdown-item{if $download_cid == $child['id']} is-active{/if}" data-tab="{$child.id}">{$child.title}</button> |
||||
|
{/hcTaglib:subcategory} |
||||
|
</div> |
||||
|
</div> |
||||
|
{else} |
||||
|
<button type="button" class="d-tabs__item{if $download_cid == $vo_id} is-active{/if}" role="tab" aria-selected="{if $download_cid == $vo_id}true{else /}false{/if}" data-tab="{$vo.id}">{$vo.title}</button> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$download_keywords}" placeholder="请输入您想下载的文件" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">搜索</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
<div class="d-list"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="12" item="vo" sort="sort desc"} |
||||
|
{php}$dl_file = $vo['url'] ?? ($vo['thumbnail']['url'] ?? '');{/php} |
||||
|
<div class="d-item"> |
||||
|
<a class="d-item__main" href="{$dl_file}" target="_blank" rel="noopener" title="预览"> |
||||
|
<img class="d-item__pdf" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32.000000'%20height='32.000000'%20fill='none'%3e%3crect%20id='PDF%201'%20width='32.000000'%20height='32.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3cpath%20id='矢量%20508'%20d='M28.1766%2028.9602C28.1766%2029.3602%2028.0164%2029.7441%2027.7285%2030.032C27.4402%2030.3199%2027.0566%2030.4801%2026.6562%2030.4801L5.32852%2030.4801C4.92852%2030.4801%204.52852%2030.3199%204.25664%2030.032C3.96875%2029.7437%203.80859%2029.3602%203.80859%2028.9602L3.80859%201.51992C3.80859%201.11992%203.96836%200.719922%204.25664%200.448047C4.52852%200.160156%204.92891%200%205.32852%200L18.4168%200C18.8168%200%2019.2168%200.160156%2019.5047%200.448047L27.7445%208.68828C28.0324%208.97617%2028.1926%209.36016%2028.1926%209.77617L28.1926%2028.9602L28.1766%2028.9602Z'%20fill='rgb(235,236,240)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20509'%20d='M28.1766%2028.96L28.1766%2030.4799C28.1766%2030.8799%2028.0164%2031.2799%2027.7285%2031.5518C27.4402%2031.84%2027.0566%2031.9998%2026.6562%2031.9998L5.32852%2031.9998C4.48047%2031.9998%203.80859%2031.3119%203.80859%2030.4799L3.80859%2028.96C3.80859%2029.36%203.96836%2029.7439%204.25664%2030.0318C4.54453%2030.3197%204.92852%2030.4799%205.32852%2030.4799L26.6566%2030.4799C27.5047%2030.4799%2028.1766%2029.792%2028.1766%2028.96L28.1766%2028.96Z'%20fill='rgb(193,199,208)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20510'%20d='M3.80781%2016.7682L3.80781%2013.7119L0.751953%2016.7682L3.80781%2016.7682ZM28.1758%2016.7682L28.2078%2013.7119L31.2477%2016.7682L28.1758%2016.7682L28.1758%2016.7682Z'%20fill='rgb(211,0,0)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20511'%20d='M28.1762%209.77617L28.1762%209.98398L19.9359%209.98398C19.0879%209.98398%2018.416%209.29609%2018.416%208.46406L18.416%200C18.816%200%2019.216%200.160156%2019.5039%200.448047L27.7602%208.68828C28.032%208.97617%2028.1922%209.36016%2028.1762%209.77617Z'%20fill='rgb(193,199,208)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20512'%20d='M15.7164%2019.0972L14.4629%2019.0972L14.4629%2023.5655L15.6941%2023.5655C17.0926%2023.5655%2017.8484%2022.7776%2017.8484%2021.2577C17.8484%2019.9351%2017.157%2019.1147%2015.7164%2019.0972ZM8.59219%2019.0995L6.79883%2019.0995L6.79883%2020.9983L8.59219%2020.9983C9.32695%2020.9983%209.79141%2020.7464%209.79141%2020.0362C9.79141%2019.4573%209.43555%2019.0995%208.59219%2019.0995L8.59219%2019.0995Z'%20fill='rgb(255,29,29)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20513'%20d='M0.767578%2016.7681L0.767578%2024.3681C0.767578%2024.7841%200.927344%2025.1681%201.21562%2025.456C1.4875%2025.7442%201.8875%2025.904%202.2875%2025.904L29.7117%2025.904C30.5438%2025.904%2031.2316%2025.2321%2031.2316%2024.3841L31.2316%2016.7681L0.767578%2016.7681ZM8.72617%2022.3454L6.79844%2022.3454L6.79844%2024.9103L5.05469%2024.9103L5.05469%2017.7618L8.75352%2017.7618C10.4156%2017.7618%2011.5207%2018.6021%2011.5207%2020.0087C11.5207%2021.4153%2010.4797%2022.3454%208.72617%2022.3454L8.72617%2022.3454ZM15.9223%2024.9103L12.7277%2024.9103L12.7277%2017.7618L15.959%2017.7618C18.3676%2017.7618%2019.6855%2019.3251%2019.6855%2021.211C19.6855%2023.4993%2018.0027%2024.9103%2015.9223%2024.9103ZM26.9953%2019.1419L22.8473%2019.1419L22.8473%2020.7677L26.7164%2020.7677L26.7164%2022.1579L22.8473%2022.1579L22.8473%2024.9099L21.1125%2024.9099L21.1125%2017.7614L26.9953%2017.7614L26.9953%2019.1415L26.9953%2019.1419Z'%20fill='rgb(239,67,53)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='矢量%20514'%20d='M8.75313%2017.7617L5.05469%2017.7617L5.05469%2024.9102L6.79844%2024.9102L6.79844%2022.3453L8.72617%2022.3453C10.4797%2022.3453%2011.5207%2021.4703%2011.5207%2020.0086C11.5207%2018.5469%2010.4156%2017.7617%208.75352%2017.7617L8.75313%2017.7617ZM8.59141%2020.9984L6.79805%2020.9984L6.79805%2019.0996L8.59141%2019.0996C9.43477%2019.0996%209.79063%2019.4574%209.79063%2020.0363C9.79063%2020.7461%209.32578%2020.9984%208.59141%2020.9984L8.59141%2020.9984ZM15.959%2017.7617L12.7277%2017.7617L12.7277%2024.9102L15.9223%2024.9102C18.0027%2024.9102%2019.6855%2023.4992%2019.6855%2021.2109C19.6855%2019.325%2018.368%2017.7617%2015.959%2017.7617ZM15.6934%2023.5656L14.4621%2023.5656L14.4621%2019.0973L15.7156%2019.0973C17.1559%2019.1152%2017.8477%2019.9355%2017.8477%2021.2578C17.8477%2022.7777%2017.0918%2023.5656%2015.6934%2023.5656ZM21.1125%2024.9102L22.8473%2024.9102L22.8473%2022.1582L26.7164%2022.1582L26.7164%2020.768L22.8473%2020.768L22.8473%2019.1422L26.9953%2019.1422L26.9953%2017.7617L21.1125%2017.7617L21.1125%2024.9102Z'%20fill='rgb(255,255,255)'%20fill-rule='nonzero'%20/%3e%3c/svg%3e" alt="" width="32" height="32" /> |
||||
|
<span class="d-item__name">{$vo.title}</span> |
||||
|
</a> |
||||
|
<a class="d-item__action" href="{$dl_file}" download="{$vo.title}"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='容器%20520'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='download--02'%3e%3cpath%20id='矢量%20486'%20d='M16.6667%209.33301L22%209.33301L22%2021.9997L2%2021.9997L2%209.33301L7.33333%209.33301'%20fill-rule='nonzero'%20stroke='rgb(46,53,58)'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='矢量%20487'%20d='M16%2014L12%2018L8%2014M12%202L12%2018'%20fill-rule='nonzero'%20stroke='rgb(239,67,53)'%20stroke-width='1.500000'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<span>立即下载</span> |
||||
|
</a> |
||||
|
</div> |
||||
|
{/hcTaglib:contentPage} |
||||
|
|
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = '暂无相关资料'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,135 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/faq.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/faq.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-faq" data-header-dark data-nav="服务支持"> |
||||
|
<div class="f-page section__wrap"> |
||||
|
<div class="f-head"> |
||||
|
<h1 class="f-head__title">{$current_cate.title}</h1> |
||||
|
<p class="f-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
|
||||
|
<div class="f-toolbar"> |
||||
|
{php} |
||||
|
$filter_cid = (string)input('cid', ''); |
||||
|
$filter_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($filter_cid === '') { |
||||
|
$filter_cid = $filter_all_id; |
||||
|
} |
||||
|
$filter_keywords = (string)input('keywords', ''); |
||||
|
{/php} |
||||
|
<div class="f-tabs" role="tablist" aria-label="问题分类"> |
||||
|
<button type="button" class="f-tabs__item{if $filter_cid == $filter_all_id} is-active{/if}" role="tab" data-tab="{$current_cate.id}" aria-selected="{if $filter_cid == $filter_all_id}true{else /}false{/if}">全部</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php}$vo_id = (string)($vo['id'] ?? '');{/php} |
||||
|
<button type="button" class="f-tabs__item{if $filter_cid == $vo_id} is-active{/if}" role="tab" data-tab="{$vo.id}" aria-selected="{if $filter_cid == $vo_id}true{else /}false{/if}">{$vo.title}</button> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$filter_keywords}" placeholder="请输入您想搜索问题的关键词" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">搜索</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="f-list"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="10" item="vo"} |
||||
|
<div class="f-item"> |
||||
|
<button type="button" class="f-item__trigger" aria-expanded="true"> |
||||
|
<span class="f-item__q"> |
||||
|
<span class="f-item__dot" aria-hidden="true"></span> |
||||
|
<span class="f-item__title">{$vo.title}</span> |
||||
|
</span> |
||||
|
<span class="f-item__icon" aria-hidden="true"></span> |
||||
|
</button> |
||||
|
<div class="f-item__panel"> |
||||
|
<p class="f-item__a"> |
||||
|
{$vo.content|strip_tags} |
||||
|
</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = '暂无相关问题'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,288 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/investment.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/investment.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-investment" data-nav="投资者关系"> |
||||
|
<section class="iv-hero"> |
||||
|
<div class="iv-hero__title section__wrap" data-header-dark> |
||||
|
<h1> |
||||
|
<span>{$current_cate.content|raw}</span> |
||||
|
</h1> |
||||
|
</div> |
||||
|
<div class="iv-hero__media" aria-hidden="true"> |
||||
|
<img src="{$current_cate.thumbnail.url ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{php} |
||||
|
$ui_invest_info = uiId('invest_info'); |
||||
|
$ui_invest_announce = uiId('invest_announce'); |
||||
|
$ui_invest_stock = uiId('invest_stock'); |
||||
|
$ui_invest_learn = uiId('invest_learn'); |
||||
|
$ui_invest_hotline = uiId('invest_hotline'); |
||||
|
{/php} |
||||
|
{hcTaglib:category id="$ui_invest_info" item="vo" field="*"} |
||||
|
{php} |
||||
|
$descStr = $vo['description'] ?? ''; |
||||
|
$infoList = []; |
||||
|
$pairs = explode('#', $descStr); |
||||
|
foreach ($pairs as $pair) { |
||||
|
$parts = explode(';', $pair, 2); |
||||
|
if (count($parts) === 2) { |
||||
|
$infoList[] = ['label' => trim($parts[0]), 'value' => trim($parts[1])]; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<section class="iv-info section__wrap" id="info" data-header-dark> |
||||
|
<h2 class="iv-info__title">{$vo.title}</h2> |
||||
|
<div class="iv-info__grid"> |
||||
|
{volist name="infoList" id="info" key="k"} |
||||
|
<div class="iv-info__item{if condition='$k == count($infoList)'} iv-info__item--full{/if}"> |
||||
|
<span class="iv-info__label">{$info.label}</span> |
||||
|
<strong class="iv-info__value">{$info.value}</strong> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
{hcTaglib:category id="$ui_invest_announce" item="vo" field="*"} |
||||
|
<section class="iv-announce section__wrap" id="announce" data-header-dark> |
||||
|
<div class="iv-announce__head"> |
||||
|
<h2 class="iv-announce__title">{$vo.title}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="iv-announce__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{hcTaglib:contentPage cid="$ui_invest_announce" mainField="*" subField="*" name="hc_content" limit="12" item="vo"} |
||||
|
<article class="swiper-slide iv-announce__card"> |
||||
|
<time class="iv-announce__date" datetime="{$vo.publish_time|date='Y-m-d'}">{$vo.publish_time|date='Y-m-d'}</time> |
||||
|
<h3 class="iv-announce__name">{$vo.title}</h3> |
||||
|
<a class="iv-announce__link" href="{$vo.url ?? ''}" target="_blank"> |
||||
|
<span>查看详情</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="iv-announce__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
{hcTaglib:category id="$ui_invest_stock" item="vo" field="*"} |
||||
|
<section class="iv-stock section__wrap" id="stock" data-header-dark> |
||||
|
<h2 class="iv-stock__title">{$vo.title}</h2> |
||||
|
<div class="iv-stock__body"> |
||||
|
<div class="iv-stock__data"> |
||||
|
<p class="iv-stock__code">股票代码:{$stockInfo.code}</p> |
||||
|
<div class="iv-stock__quote" data-stock-quote data-stock-code="603933"> |
||||
|
<span class="iv-stock__price" id="stock-price" data-stock="price" style="{$priceColor}">{$stockInfo.price}</span> |
||||
|
<span class="iv-stock__unit" data-stock="unit" style="{$priceColor}">元</span> |
||||
|
<span class="iv-stock__change" id="stock-change" data-stock="change" style="{$priceColor}">{$stockInfo.change} {$stockInfo.changePercent}</span> |
||||
|
</div> |
||||
|
<ul class="iv-stock__metrics"> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">最高(元)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-high" data-stock="high">{$stockInfo.high}</strong> |
||||
|
</li> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">最低(元)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-low" data-stock="low">{$stockInfo.low}</strong> |
||||
|
</li> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">成交量(万手)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-volume" data-stock="volume">{$stockInfo.volume}</strong> |
||||
|
</li> |
||||
|
<li> |
||||
|
<span class="iv-stock__metric-label">成交额(万元)</span> |
||||
|
<strong class="iv-stock__metric-value" id="stock-amount" data-stock="amount">{$stockInfo.amount}</strong> |
||||
|
</li> |
||||
|
</ul> |
||||
|
<p class="iv-stock__note" id="stock-time" data-stock="time">截止 {$stockInfo.updateTime}*报价有十五分钟或以上延迟。</p> |
||||
|
</div> |
||||
|
<div class="iv-stock__chart"> |
||||
|
<img id="stock-chart" data-stock="chart" src="https://image.sinajs.cn/newchart/min/n/sh603933.gif" alt="睿能科技分时走势图" width="720" height="450" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_invest_learn" item="vo" field="*"} |
||||
|
<section class="iv-learn section__wrap" id="learn" data-header-dark> |
||||
|
<h2 class="iv-learn__title">{$vo.title}</h2> |
||||
|
<div class="iv-learn__body"> |
||||
|
<ul class="iv-learn__list"> |
||||
|
{hcTaglib:contentPage cid="$ui_invest_learn" mainField="*" subField="*" name="hc_content" limit="12" item="vo"} |
||||
|
<a class="iv-learn__item" href="{$vo.url ?? ''}" target="_blank"> |
||||
|
<time class="iv-learn__date" datetime="{$vo.publish_time|date='Y-m-d'}">{$vo.publish_time|date='Y-m-d'}</time> |
||||
|
<h3 class="iv-learn__name">{$vo.title}</h3> |
||||
|
<span class="iv-learn__link"> |
||||
|
<span>探索更多</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
</a> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</ul> |
||||
|
<button type="button" class="iv-learn__more" aria-label="展开更多"> |
||||
|
<span class="iv-learn__more-icon iv-learn__more-icon--up" aria-hidden="true"> |
||||
|
<svg viewBox="0 0 11.2734 6.90918" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="11.273438" height="6.909180" fill="none"> |
||||
|
<path id="矢量 2" d="M0.636719 0.636272L5.63672 5.63627L10.6368 0.63623" stroke="currentColor" stroke-width="1.800000" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
<span class="iv-learn__more-icon iv-learn__more-icon--down" aria-hidden="true"> |
||||
|
<svg viewBox="0 0 11.2734 6.90918" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="11.273438" height="6.909180" fill="none"> |
||||
|
<path id="矢量 2" d="M0.636719 0.636272L5.63672 5.63627L10.6368 0.63623" stroke="currentColor" stroke-width="1.800000" /> |
||||
|
</svg> |
||||
|
|
||||
|
</span> |
||||
|
</button> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{hcTaglib:category id="$ui_invest_hotline" item="vo" field="*"} |
||||
|
<section class="iv-hotline" id="hotline"> |
||||
|
<div class="iv-hotline__bg" aria-hidden="true"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="1920" height="800" /> |
||||
|
</div> |
||||
|
<div class="iv-hotline__inner section__wrap"> |
||||
|
<h2 class="iv-hotline__title">{$vo.title}</h2> |
||||
|
<ul class="iv-hotline__list"> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='location'%3e%3cpath%20id='Vector'%20d='M11.9989%2013.4299C10.2758%2013.4299%208.87891%2012.0331%208.87891%2010.3099C8.87891%208.58681%2010.2758%207.18994%2011.9989%207.18994C13.722%207.18994%2015.1189%208.58681%2015.1189%2010.3099C15.1189%2012.0331%2013.722%2013.4299%2011.9989%2013.4299Z'%20stroke='rgb(255,255,255)'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M20.3817%208.5C21.5317%2013.58%2018.3717%2017.88%2015.6017%2020.54C13.5917%2022.48%2010.4117%2022.48%208.39166%2020.54C5.63166%2017.88%202.47166%2013.57%203.62166%208.49C5.59166%20-0.169998%2018.4217%20-0.159997%2020.3817%208.5Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20opacity='0'%20transform='matrix(-1,-1.22465e-16,1.22465e-16,-1,24,24)'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" |
||||
|
height="24" /> |
||||
|
<span class="iv-hotline__label">地址</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value">{hcTaglib:setting name="company_address" type="1" /}</p> |
||||
|
</li> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADg0lEQVR4Ae3gAZAkSZIkSRKLqpm7R0REZmZmVlVVVVV3d3d3d/fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMdHd3d3dXV1VVVVVmZkZGRIS7m5kKz0xmV3d1d3dPz8zMzMxMovjPhXgA28eBzwIeDNwKfI6kXZ4P2x8NvBXw18BvS/oZnhfimWw/GPgt4DhwK/DSwF9LehmeD9sfDbwV8NLAceBW4GMk/TTPhngm20/nireR9Ne23wb4SeCrJX0ML4Tt9wY+C3gw8NmSPocrEIDttwZ+CnhvSd/DM9n+KuCjgdeR9Ns8gO3jwHFJtwLYfjDwVcBbA28j6acBBGD7q4H3knSCB7B9HPgrrngZSbs8k+2fAt4a+GvgbSTdavs48FcAkh4CIADbvwUg6XV4LrZfG/gt4LMlfQ7PZPvBwGsDn8UVryPpVtuvDfwW8DqSflsAtr8beC1JD+H5sH0R+G5JH8Nzsf1g4K+Av5b0OgC2LwLfLeljBGD7s4HPAk5I2uUBbH8X8N7A60j6bZ4P2x8NfBVwQtKu7b8CbpX0NgKw/WDg6cBHS/oansn2ewPfBXy2pM/hBbB9HPgu4GMk3Wr7owEkfbV4Jtu/BTxY0kN4JtvvDXwX8NGSvoZ/PcQz2X5t4LeAj5b0NTyT7d8CXhp4HUl/zb8O4gFs/xTw2sDLSLoVwPaDgd/iiteRdCsvOsQD2H4w8FfALvAyknYBbD8Y+C2ueBtJfw1g+7WBjwL+GvgeSbfynBDPxfZLA38F/Lak1+GZbD8Y+C3gOPDZwHHgs4FbgQcDtwLvI+m3eTbE82H7vYHvAr5a0sfwTLYfDHwX8Npc8dmSPsf2g4HfAh4MfLakz+EKxAtg+7OBzwK+WtLH8AC23xu4VdJv8wC2vwr4aOCvgdeRtCteCNufDXwW8NfA20i6lX+B7fcGvgr4bkkfI/4Ftj8a+CrgVuB1JN3Kv8D204HflvQ+4kVg+6WBnwIeDHw18DWSbuX5sP1g4OnAe0v6HvEisv1g4LOA9wZuBT4b+B1Jt/JMtt8b+CpgV9JDAMS/ku3XBj4LeG2u+GuueDBwHLgVeB1JtwKIfyPbDwbeGngtrngG8NuSfppnQ/zn4h8BWVcuKBEKB/4AAAAASUVORK5CYII=" alt="" width="24" |
||||
|
height="24" /> |
||||
|
<span class="iv-hotline__label">{$vo.title}</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value"> |
||||
|
<a href="">{$vo.description}</a> |
||||
|
</p> |
||||
|
</li> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='printer'%3e%3cpath%20id='Vector'%20d='M16.75%207L16.75%205C16.75%203%2016%202%2013.75%202L10.25%202C8%202%207.25%203%207.25%205L7.25%207L16.75%207Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M16%2019C16%2021%2015%2022%2013%2022L11%2022C9%2022%208%2021%208%2019L8%2015L16%2015L16%2019Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M21%2015C21%2017%2020%2018%2018%2018L16%2018L16%2015L8%2015L8%2018L6%2018C4%2018%203%2017%203%2015L3%2010C3%208%204%207%206%207L18%207C20%207%2021%208%2021%2010L21%2015Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M17%2015L15.79%2015L7%2015'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M7%2011L10%2011'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M24%200L0%200L0%2024L24%2024L24%200ZM1%2023L1%201L23%201L23%2023L1%2023Z'%20opacity='0'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<span class="iv-hotline__label">传真</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value">{$vo.desc}</p> |
||||
|
</li> |
||||
|
<li class="iv-hotline__item"> |
||||
|
<div class="iv-hotline__row"> |
||||
|
<img class="iv-hotline__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%20customFrame='%23000000'%3e%3cg%20id='sms-tracking'%3e%3cpath%20id='Vector'%20d='M2%208.5C2%205%204%203.5%207%203.5L17%203.5C20%203.5%2022%205%2022%208.5L22%2015.5C22%2019%2020%2020.5%2017%2020.5L7%2020.5'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M17%209L13.87%2011.5C12.84%2012.32%2011.15%2012.32%2010.12%2011.5L7%209'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M2%2016.5L8%2016.5'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M2%2012.5L5%2012.5'%20stroke='rgb(255,255,255)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.500000'%20/%3e%3cpath%20id='Vector'%20d='M24%200L0%200L0%2024L24%2024L24%200ZM1%2023L1%201L23%201L23%2023L1%2023Z'%20opacity='0'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<span class="iv-hotline__label">邮箱</span> |
||||
|
</div> |
||||
|
<p class="iv-hotline__value"> |
||||
|
<a href="mailto:investor@raynen.cn">{hcTaglib:setting name="company_email" type="1" /}</a> |
||||
|
</p> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/hcTaglib:category} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,217 @@ |
|||||
|
<!doctype html> |
||||
|
<html lang="zh-CN"> |
||||
|
{php} // TDK设置 ================================= START |
||||
|
$tdk_title = $hc_content['seo_title'] ?? ''; |
||||
|
if(empty($tdk_title)){ |
||||
|
$tdk_title = $hc_content['title'] ?? '搜索结果'; |
||||
|
} |
||||
|
$tdk_description = $hc_content['seo_description'] ?? ''; |
||||
|
if(empty($tdk_description)){ |
||||
|
$tdk_description = $hc_content['sub_title'] ?? ''; |
||||
|
} |
||||
|
$tdk_keywords = $hc_content['seo_keywords'] ?? ''; |
||||
|
if(empty($tdk_keywords)){ |
||||
|
$tdk_keywords = $hc_content['sub_title'] ?? ''; |
||||
|
} |
||||
|
|
||||
|
$create_time_str = $hc_content['create_time'] ?? ''; |
||||
|
$hc_content_tmp_news = $hc_content; |
||||
|
// dd($hc_content); |
||||
|
// dd($create_time_int); |
||||
|
// TDK设置 ================================= END {/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>{$tdk_title}</title> |
||||
|
<meta name="keywords" content="{$tdk_keywords}" /> |
||||
|
<meta name="description" content="{$tdk_description}" /> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon" /> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement; |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920; |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16; |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14; |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width; |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN; |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE; |
||||
|
h.style.fontSize = size + "px"; |
||||
|
} |
||||
|
setRootFontSize(); |
||||
|
var resizeRaf = 0; |
||||
|
window.addEventListener("resize", function () { |
||||
|
if (resizeRaf) return; |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0; |
||||
|
setRootFontSize(); |
||||
|
}); |
||||
|
}); |
||||
|
})(); |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> |
||||
|
<link |
||||
|
href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" |
||||
|
rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" |
||||
|
crossorigin="anonymous" |
||||
|
/> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/news-detail.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/news2.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/news-detail.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-news-detail" data-header-dark data-nav="新闻动态"> |
||||
|
<div class="nd-page"> |
||||
|
<div class="nd-layout"> |
||||
|
<nav class="nd-breadcrumb" aria-label="面包屑"> |
||||
|
<a class="nd-breadcrumb__link" href="{:getMuiLangUrl('/')}">首页</a> |
||||
|
<span class="nd-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
<!-- 获取父级分类 --> |
||||
|
{php} |
||||
|
$parent_cate_url = ''; |
||||
|
{/php} |
||||
|
{hcTaglib:category id="$current_cate['parent_id']" item="vo" field="*"} |
||||
|
<a class="nd-breadcrumb__link" href="{$vo.alias}">{$vo.title}</a> |
||||
|
{php} |
||||
|
$parent_cate_url = $vo['alias']; |
||||
|
{/php} |
||||
|
{/hcTaglib:category} |
||||
|
|
||||
|
{if $current_cate['id'] != uiId('news')} |
||||
|
<span class="nd-breadcrumb__sep" aria-hidden="true"> |
||||
|
<svg viewBox="-1 -1 8.59082 13.0605" xmlns="http://www.w3.org/2000/svg" fill="none"> |
||||
|
<path d="M0 4.12464e-05L5 5.00004L10 0" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0,-1,1,0,0.530273,10.5303)" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
<span class="nd-breadcrumb__current">{$current_cate['title']}</span> |
||||
|
{/if} |
||||
|
|
||||
|
</nav> |
||||
|
|
||||
|
<a class="nd-back" href="javascript:history.back();" aria-label="返回上一级"> |
||||
|
<span class="nd-back__icon" aria-hidden="true"> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2014.0703%2011.3135'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14.070312'%20height='11.313477'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M6.9994%201.41422L8.41362%200L12.656%204.2424L12.6561%204.2423L14.0703%205.65652L14.0702%205.65662L14.0705%205.65686L12.6563%207.07108L12.656%207.07082L8.41346%2011.3134L6.99924%209.89916L10.3126%206.5858L0%206.5858L0%204.5858L10.171%204.5858L6.9994%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" |
||||
|
alt="" |
||||
|
width="14" |
||||
|
height="11" |
||||
|
/> |
||||
|
</span> |
||||
|
<span class="nd-back__text">Back</span> |
||||
|
</a> |
||||
|
|
||||
|
<article class="nd-article"> |
||||
|
<header class="nd-article__header"> |
||||
|
<h1 class="nd-article__title">{$hc_content_tmp_news['title']}</h1> |
||||
|
<time class="nd-article__date" datetime="{$create_time_str}">{:date('Y-m-d',strtotime($create_time_str)) ?? ''}</time> |
||||
|
</header> |
||||
|
|
||||
|
<div class="nd-richtext"> |
||||
|
{$hc_content_tmp_news['content']|raw} |
||||
|
</div> |
||||
|
|
||||
|
<nav class="nd-pager" aria-label="上下篇"> |
||||
|
{php} |
||||
|
// 与 HcTaglib::tagPreContent / tagNextContent 一致,只查相邻一篇 |
||||
|
$id = (int)request()->param('id'); |
||||
|
$cid = (int)request()->param('cid'); |
||||
|
if ($cid <= 0) { |
||||
|
$cid = (int)($current_cate['id'] ?? ($hc_content['category_id'] ?? 0)); |
||||
|
} |
||||
|
$sellerId = (int)($hc_content['seller_id'] ?? 1); |
||||
|
$siteId = (int)($current_cate['website_id'] ?? 1); |
||||
|
$lang = (string)($current_cate['lang'] ?? ($hc_content['lang'] ?? 'zh')); |
||||
|
$preContent = \app\service\ContentService::getPreContent([ |
||||
|
'id' => $id, |
||||
|
'cid' => $cid, |
||||
|
'seller_id' => $sellerId, |
||||
|
'website_id' => $siteId, |
||||
|
'lang' => $lang, |
||||
|
]); |
||||
|
$nextContent = \app\service\ContentService::getNextContent([ |
||||
|
'id' => $id, |
||||
|
'cid' => $cid, |
||||
|
'seller_id' => $sellerId, |
||||
|
'website_id' => $siteId, |
||||
|
'lang' => $lang, |
||||
|
]); |
||||
|
$preId = 0; |
||||
|
$preTitle = ''; |
||||
|
$preCid = $cid; |
||||
|
if (!empty($preContent)) { |
||||
|
$preId = (int)$preContent['id']; |
||||
|
$preTitle = $preContent['title']; |
||||
|
} |
||||
|
$nextId = 0; |
||||
|
$nextTitle = ''; |
||||
|
$nextCid = $cid; |
||||
|
if (!empty($nextContent)) { |
||||
|
$nextId = (int)$nextContent['id']; |
||||
|
$nextTitle = $nextContent['title']; |
||||
|
} |
||||
|
{/php} |
||||
|
{if condition="empty($preId)"} |
||||
|
<a class="nd-pager__item nd-pager__item--prev" href="javascript:;"> |
||||
|
<span class="nd-pager__label" title="没有了">上一篇:没有了</span> |
||||
|
</a> |
||||
|
{else /} |
||||
|
<a class="nd-pager__item nd-pager__item--prev" href="{:hcUrl('Detail/index',['id'=>$preId,'cid'=>$preCid])}"> |
||||
|
<span class="nd-pager__label" title="{$preTitle}">上一篇:{$preTitle}</span> |
||||
|
</a> |
||||
|
{/if} |
||||
|
{if condition="empty($nextId)"} |
||||
|
<a class="nd-pager__item nd-pager__item--next" href="javascript:;"> |
||||
|
<span class="nd-pager__label" title="没有了">下一篇:没有了</span> |
||||
|
</a> |
||||
|
{else /} |
||||
|
<a class="nd-pager__item nd-pager__item--next" href="{:hcUrl('Detail/index',['id'=>$nextId,'cid'=>$nextCid])}"> |
||||
|
<span class="nd-pager__label" title="{$nextTitle}">下一篇:{$nextTitle}</span> |
||||
|
</a> |
||||
|
{/if} |
||||
|
</nav> |
||||
|
|
||||
|
</article> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script |
||||
|
src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous" |
||||
|
></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,281 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
{php} |
||||
|
$current_cate_id = $current_cate['id'] ?? ''; |
||||
|
// var_dump($current_cate);exit; |
||||
|
{/php} |
||||
|
|
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}" /> |
||||
|
<meta name="description" content="{$current_cate.seo_description}" /> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
|
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/news.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/news2.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/news.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-news" data-header-dark data-nav="新闻动态"> |
||||
|
{php}$news_root_id = uiId('news');{/php} |
||||
|
{hcTaglib:category id="$news_root_id" item="vo" field="id,title,alias"} |
||||
|
{php} |
||||
|
$news_cate_info = $vo; |
||||
|
$news_cate_info_alias = $vo['alias'] ?? ''; |
||||
|
{/php} |
||||
|
{/hcTaglib:category} |
||||
|
<div class="n-page section__wrap"> |
||||
|
<div class="n-head"> |
||||
|
<h1 class="n-head__title"> |
||||
|
<span>了解睿能科技</span> |
||||
|
<span>新闻动态</span> |
||||
|
</h1> |
||||
|
<div class="n-tabs" role="tablist" aria-label="新闻分类"> |
||||
|
{php} |
||||
|
$news_active_cat = (string)input('cat', ''); |
||||
|
if ($news_active_cat === '' || $news_active_cat === 'all') { |
||||
|
$news_active_cat = (string)($current_cate_id ?: ($news_cate_info['id'] ?? '')); |
||||
|
} |
||||
|
$news_all_cat = (string)($news_cate_info['id'] ?? ''); |
||||
|
$news_video_id = (string)uiId('news_video'); |
||||
|
$is_news_video = ($news_video_id !== '' && $news_video_id !== '0' && $news_active_cat === $news_video_id); |
||||
|
{/php} |
||||
|
<a href="{$news_cate_info_alias}?cat={$news_cate_info['id']}" class="n-tabs__item{if $news_active_cat == $news_all_cat} is-active{/if}" role="tab" aria-selected="{if $news_active_cat == $news_all_cat}true{else /}false{/if}" data-cat="{$news_cate_info['id']}">全部</a> |
||||
|
{hcTaglib:subcategory pid="$news_cate_info['id']" item="vo" sort=""} |
||||
|
<a href="{$vo.alias}?cat={$vo['id']}" class="n-tabs__item{if $news_active_cat == $vo['id']} is-active{/if}" role="tab" aria-selected="{if $news_active_cat == $vo['id']}true{else /}false{/if}" data-cat="{$vo.id}">{$vo.title}</a> |
||||
|
{/hcTaglib:subcategory} |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{hcTaglib:contentPage2 cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,content,description,create_time,is_top" subField="" name="hc_featured" limit="100" item="content_sub22" isTop="1"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
{php} |
||||
|
$news_has_featured = false; |
||||
|
if (!empty($hc_featured)) { |
||||
|
if (is_object($hc_featured) && method_exists($hc_featured, 'isEmpty')) { |
||||
|
$news_has_featured = !$hc_featured->isEmpty(); |
||||
|
} elseif (is_countable($hc_featured)) { |
||||
|
$news_has_featured = count($hc_featured) > 0; |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
{if $news_has_featured && !$is_news_video} |
||||
|
<article class="n-featured"> |
||||
|
<div class="n-featured__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{volist name="hc_featured" id="vo_content"} |
||||
|
{php} |
||||
|
$content = $vo_content['content'] ?? ''; // 富文本 |
||||
|
$description = $vo_content['description'] ?? ''; // 描述 |
||||
|
$title = $vo_content['title'] ?? ''; // 标题 |
||||
|
$create_time_str = $vo_content['publish_time'] ?? $vo_content['create_time']; |
||||
|
{/php} |
||||
|
<div class="swiper-slide n-featured__slide" data-category="company"> |
||||
|
<div class="n-featured__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" width="720" height="480" alt="{$vo_content.title}" /> |
||||
|
</div> |
||||
|
<div class="n-featured__body"> |
||||
|
<div class="n-featured__content"> |
||||
|
<time class="n-featured__date" datetime="{$create_time_str}">{:date('Y-m-d',strtotime($create_time_str)) ?? ''}</time> |
||||
|
<h2 class="n-featured__title">{$title}</h2> |
||||
|
<p class="n-featured__desc"> |
||||
|
{$description|raw} |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="n-featured__foot"> |
||||
|
<a class="n-link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<span>探索更多</span> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2016.502%206.66113'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16.501953'%20height='6.661133'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='箭头%202'%20d='M0%202.83057L16%202.83057L16%203.83057L0%203.83057L0%202.83057ZM15.2929%203.33057L12.818%200.855693C12.62%200.657703%2012.62%200.346575%2012.818%200.148586C13.016%20-0.0494041%2013.3271%20-0.0494046%2013.5251%200.148585L16.3536%202.97701C16.5515%203.175%2016.5515%203.48613%2016.3536%203.68412L13.5251%206.51255C13.3271%206.71054%2013.016%206.71054%2012.818%206.51255C12.62%206.31456%2012.62%206.00343%2012.818%205.80544L15.2929%203.33057Z'%20fill='rgb(102,102,102)'%20fill-rule='nonzero'%20/%3e%3c/svg%3e" |
||||
|
alt="" width="16" height="7" /> |
||||
|
</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="n-featured__nav"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一条"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" |
||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" |
||||
|
customFrame="#000000"> |
||||
|
<path id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一条"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" |
||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" |
||||
|
customFrame="#000000"> |
||||
|
<path id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/if} |
||||
|
|
||||
|
<div class="n-grid{if $is_news_video} n-grid--video{/if}"> |
||||
|
|
||||
|
{hcTaglib:contentPage2 cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,cover,content,description,create_time,publish_time,is_top" subField="" name="hc_content" limit="6" item="content_sub22" isTop="222"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
|
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
{php} |
||||
|
$content = $vo_content['content'] ?? ''; |
||||
|
$description = $vo_content['description'] ?? ''; |
||||
|
$create_time_str = $vo_content['publish_time'] ?? $vo_content['create_time']; |
||||
|
{/php} |
||||
|
|
||||
|
{if $is_news_video} |
||||
|
<button type="button" class="n-v-card" data-video-src="{$vo_content['cover']['url'] ?? ''}"> |
||||
|
<div class="n-v-card__media"> |
||||
|
<img class="n-v-card__cover" src="{$vo_content['thumbnail']['url'] ?? ''}" alt="" width="400" height="225" loading="lazy" /> |
||||
|
{notempty name="description"} |
||||
|
<span class="n-v-card__duration">{$description}</span> |
||||
|
{/notempty} |
||||
|
<span class="n-v-card__play" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2013.5386%2016'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13.538574'%20height='16.000000'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='多边形%201'%20d='M8.86093%201.45695L15.1085%2012.0297C15.5024%2012.6963%2015.0219%2013.5384%2014.2476%2013.5384L1.75245%2013.5384C0.978149%2013.5384%200.497614%2012.6963%200.891523%2012.0297L7.13907%201.45695C7.52614%200.801924%208.47387%200.801924%208.86093%201.45695Z'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20transform='matrix(0,1,-1,0,13.5386,0)'%20/%3e%3c/svg%3e" alt="" width="14" height="16" /> |
||||
|
</span> |
||||
|
</div> |
||||
|
<h3 class="n-v-card__title">{$vo_content.title}</h3> |
||||
|
<time class="n-v-card__date" datetime="{$create_time_str}">{$create_time_str|date='Y-m-d'}</time> |
||||
|
</button> |
||||
|
{else /} |
||||
|
{php} |
||||
|
$is_item_video = ($news_video_id !== '' && $news_video_id !== '0' && (string)($vo_content['category_id'] ?? '') === $news_video_id); |
||||
|
{/php} |
||||
|
<article class="n-card{if $is_item_video} n-card--video{/if}" data-category="{if $is_item_video}video{else /}insight{/if}"{if $is_item_video} data-video-src="{$vo_content['cover']['url'] ?? ''}"{/if}> |
||||
|
<div class="n-card__top"> |
||||
|
<time class="n-card__date" datetime="{$create_time_str}">{:date('Y-m-d',strtotime($create_time_str)) ?? ''}</time> |
||||
|
<h3 class="n-card__title">{$vo_content.title}</h3> |
||||
|
{if !$is_item_video} |
||||
|
<a class="n-link n-link--sm" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<span>探索更多</span> |
||||
|
<img |
||||
|
src="data:image/svg+xml,%3csvg%20viewBox='0%200%2016.502%206.66113'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16.501953'%20height='6.661133'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='箭头%202'%20d='M0%202.83057L16%202.83057L16%203.83057L0%203.83057L0%202.83057ZM15.2929%203.33057L12.818%200.855693C12.62%200.657703%2012.62%200.346575%2012.818%200.148586C13.016%20-0.0494041%2013.3271%20-0.0494046%2013.5251%200.148585L16.3536%202.97701C16.5515%203.175%2016.5515%203.48613%2016.3536%203.68412L13.5251%206.51255C13.3271%206.71054%2013.016%206.71054%2012.818%206.51255C12.62%206.31456%2012.62%206.00343%2012.818%205.80544L15.2929%203.33057Z'%20fill='rgb(102,102,102)'%20fill-rule='nonzero'%20/%3e%3c/svg%3e" |
||||
|
alt="" width="16" height="7" /> |
||||
|
</a> |
||||
|
{/if} |
||||
|
</div> |
||||
|
<div class="n-card__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" alt="" loading="lazy" /> |
||||
|
{if $is_item_video} |
||||
|
{notempty name="description"} |
||||
|
<span class="n-card__duration">{$description}</span> |
||||
|
{/notempty} |
||||
|
<span class="n-card__play" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2013.5386%2016'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13.538574'%20height='16.000000'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='多边形%201'%20d='M8.86093%201.45695L15.1085%2012.0297C15.5024%2012.6963%2015.0219%2013.5384%2014.2476%2013.5384L1.75245%2013.5384C0.978149%2013.5384%200.497614%2012.6963%200.891523%2012.0297L7.13907%201.45695C7.52614%200.801924%208.47387%200.801924%208.86093%201.45695Z'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20transform='matrix(0,1,-1,0,13.5386,0)'%20/%3e%3c/svg%3e" alt="" width="14" height="16" /> |
||||
|
</span> |
||||
|
{/if} |
||||
|
</div> |
||||
|
</article> |
||||
|
{/if} |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = $is_news_video ? '暂无相关视频' : '暂无相关新闻'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
<!-- 分页 --> |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
|
||||
|
<div class="n-v-modal" id="n-v-modal" hidden> |
||||
|
<div class="n-v-modal__backdrop" data-n-v-modal-close></div> |
||||
|
<div class="n-v-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="n-v-modal-title"> |
||||
|
<div class="n-v-modal__head"> |
||||
|
<h2 class="n-v-modal__title" id="n-v-modal-title">视频播放</h2> |
||||
|
<button type="button" class="n-v-modal__close" data-n-v-modal-close aria-label="关闭"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cpath%20d='M1.5%201.5L14.5%2014.5M14.5%201.5L1.5%2014.5'%20stroke='%23fff'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3c/svg%3e" alt="" width="16" height="16" aria-hidden="true" /> |
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="n-v-modal__body"> |
||||
|
<video class="n-v-modal__video" id="n-v-modal-video" controls playsinline></video> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
|
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,484 @@ |
|||||
|
<!doctype html> |
||||
|
<html lang="zh-CN"> |
||||
|
{php} |
||||
|
// var_dump($hc_content);exit; |
||||
|
// 基本信息 |
||||
|
$id = $hc_content['id'] ?? ''; |
||||
|
$category_id = $hc_content['category_id'] ?? ''; |
||||
|
$sub_category_ids = $hc_content['sub_category_ids'] ?? ''; |
||||
|
$module_id = $hc_content['module_id'] ?? ''; |
||||
|
$lang = $hc_content['lang'] ?? ''; |
||||
|
$main_id = $hc_content['main_id'] ?? ''; |
||||
|
$title = $hc_content['title'] ?? ''; |
||||
|
$sub_title = $hc_content['sub_title'] ?? ''; |
||||
|
$description = $hc_content['description'] ?? ''; |
||||
|
$content = $hc_content['content'] ?? ''; |
||||
|
$cover = $hc_content['cover'] ?? ''; |
||||
|
$hits = $hc_content['hits'] ?? ''; |
||||
|
$admin_id = $hc_content['admin_id'] ?? ''; |
||||
|
$author = $hc_content['author'] ?? ''; |
||||
|
$status = $hc_content['status'] ?? ''; |
||||
|
$check_status = $hc_content['check_status'] ?? ''; |
||||
|
$url = $hc_content['url'] ?? ''; |
||||
|
$publish_time = $hc_content['publish_time'] ?? ''; |
||||
|
$is_top = $hc_content['is_top'] ?? ''; |
||||
|
$top_time = $hc_content['top_time'] ?? ''; |
||||
|
$is_recommend = $hc_content['is_recommend'] ?? ''; |
||||
|
$sort = $hc_content['sort'] ?? ''; |
||||
|
$detail_tpl = $hc_content['detail_tpl'] ?? ''; |
||||
|
$seo_title = $hc_content['seo_title'] ?? ''; |
||||
|
$seo_keyword = $hc_content['seo_keyword'] ?? ''; |
||||
|
$seo_description = $hc_content['seo_description'] ?? ''; |
||||
|
$version = $hc_content['version'] ?? ''; |
||||
|
$show_version = $hc_content['show_version'] ?? ''; |
||||
|
$is_del = $hc_content['is_del'] ?? ''; |
||||
|
$del_user_id = $hc_content['del_user_id'] ?? ''; |
||||
|
$delete_time = $hc_content['delete_time'] ?? ''; |
||||
|
$create_time = $hc_content['create_time'] ?? ''; |
||||
|
$update_time = $hc_content['update_time'] ?? ''; |
||||
|
$tag = $hc_content['tag'] ?? []; |
||||
|
|
||||
|
// 缩略图 |
||||
|
$thumbnail = (array)($hc_content['thumbnail'] ?? []); |
||||
|
$thumbnail_id = $thumbnail['id'] ?? ''; |
||||
|
$thumbnail_name = $thumbnail['name'] ?? ''; |
||||
|
$thumbnail_url = $thumbnail['url'] ?? ''; |
||||
|
$thumbnail_type = $thumbnail['type'] ?? ''; |
||||
|
$thumbnail_description = $thumbnail['description'] ?? ''; |
||||
|
|
||||
|
// 扩展内容 |
||||
|
$main_content = $hc_content['main_content'] ?? []; |
||||
|
$main_content_id = $main_content['id'] ?? ''; |
||||
|
$rich_text_two = $main_content['rich_text_two'] ?? ''; |
||||
|
$pic_many_one = $main_content['pic_many_one'] ?? []; // 产品介绍多图 |
||||
|
$pic_many = $main_content['pic_many'] ?? []; // 规格参数展示图集 |
||||
|
$rich_text_three = $main_content['rich_text_three'] ?? ''; // 规格参数第一个富文本框 |
||||
|
$rich_text_four = $main_content['rich_text_four'] ?? ''; |
||||
|
$rich_text_five = $main_content['rich_text_five'] ?? ''; |
||||
|
$rich_text_six = $main_content['rich_text_six'] ?? ''; |
||||
|
$rich_text_seven = $main_content['rich_text_seven'] ?? ''; |
||||
|
$resource_download_names = $main_content['resource_download_names'] ?? ''; // 下载文件自定义名称 |
||||
|
$atlas = $main_content['atlas'] ?? []; |
||||
|
$file = $main_content['file'] ?? ''; |
||||
|
$content_desc = $main_content['content_desc'] ?? ''; |
||||
|
$mc_lang = $main_content['lang'] ?? ''; |
||||
|
$lang_pid = $main_content['lang_pid'] ?? ''; |
||||
|
$sub_id = $main_content['sub_id'] ?? ''; |
||||
|
$mc_create_time = $main_content['create_time'] ?? ''; |
||||
|
$mc_update_time = $main_content['update_time'] ?? ''; |
||||
|
|
||||
|
// 资源图片 |
||||
|
$resource_pic = (array)($main_content['resource_pic'] ?? []); |
||||
|
$resource_pic_id = $resource_pic['id'] ?? ''; |
||||
|
$resource_pic_name = $resource_pic['name'] ?? ''; |
||||
|
$resource_pic_url = $resource_pic['url'] ?? ''; |
||||
|
$resource_pic_type = $resource_pic['type'] ?? ''; |
||||
|
$resource_pic_description = $resource_pic['description'] ?? ''; |
||||
|
$resource_pic_children = $resource_pic['children'] ?? []; |
||||
|
|
||||
|
// 资源下载 |
||||
|
$resource_download = $main_content['resource_download'] ?? []; |
||||
|
{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
||||
|
<title>{$title} - 睿能科技</title> |
||||
|
<meta name="keywords" content="{$seo_keyword}" /> |
||||
|
<meta name="description" content="{$seo_description}" /> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon" /> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement; |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920; |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16; |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14; |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width; |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN; |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE; |
||||
|
h.style.fontSize = size + "px"; |
||||
|
} |
||||
|
setRootFontSize(); |
||||
|
var resizeRaf = 0; |
||||
|
window.addEventListener("resize", function () { |
||||
|
if (resizeRaf) return; |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0; |
||||
|
setRootFontSize(); |
||||
|
}); |
||||
|
}); |
||||
|
})(); |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" /> |
||||
|
<link |
||||
|
href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" |
||||
|
rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" |
||||
|
crossorigin="anonymous" |
||||
|
/> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css" /> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /> |
||||
|
|
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/product.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css" /> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/product.css" /> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- header --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<nav class="p-subnav" aria-label="产品导航" data-p-subnav aria-hidden="true"> |
||||
|
<div class="p-subnav__inner section__wrap"> |
||||
|
<p class="p-subnav__title">{$title}</p> |
||||
|
<div class="p-subnav__links" role="list"> |
||||
|
<a class="p-subnav__link is-active" href="#p-intro" data-p-nav="p-intro" role="listitem">产品概况</a> |
||||
|
<a class="p-subnav__link" href="#p-spec" data-p-nav="p-spec" role="listitem">规格参数</a> |
||||
|
<a class="p-subnav__link" href="#p-download" data-p-nav="p-download" role="listitem">资料下载</a> |
||||
|
<a class="p-subnav__link" href="#p-related" data-p-nav="p-related" role="listitem">相关产品</a> |
||||
|
</div> |
||||
|
<a class="p-subnav__cta {if empty($content)}hidden{/if}" href="#p-spec" data-selection-trigger>查看选型表</a> |
||||
|
</div> |
||||
|
</nav> |
||||
|
|
||||
|
<main class="main-product" data-header-dark data-nav="产品"> |
||||
|
<section class="p-hero section__wrap"> |
||||
|
<div class="p-hero__inner"> |
||||
|
<h1 class="section__title">{$title}</h1> |
||||
|
<a class="s-btn s-btn--light s-btn--pill {if empty($content)}hidden{/if}" href="javascript:;" data-selection-trigger>查看选型表</a> |
||||
|
<div class="p-hero__media"> |
||||
|
<div class="p-hero__mark" aria-hidden="true">{$sub_title}</div> |
||||
|
<img src="{:deal_image_url($thumbnail_url)}" width="434" height="601" alt="{$thumbnail_name}" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 产品介绍 --> |
||||
|
<section class="p-intro section__wrap" id="p-intro"> |
||||
|
<div class="p-intro__inner"> |
||||
|
<div class="p-intro__visual"> |
||||
|
<div class="p-intro__gallery swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{volist name="pic_many_one" id="vo" key="key"} |
||||
|
<div class="swiper-slide"> |
||||
|
<img src="{:deal_image_url($vo['url'] ?? '')}" width="200" height="514" alt="RA3产品图" /> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="p-intro__gallery-nav"> |
||||
|
<div class="p-intro__gallery-pagination"></div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- 产品介绍,产品优势,产品特性 --> |
||||
|
<div class="p-intro__content"> |
||||
|
{$rich_text_two|raw} |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 规格参数 , 如果第一个富文本没有内容,则整个规格参数都不显示--> |
||||
|
<section class="p-spec section__wrap" id="p-spec" {if empty($rich_text_three)}style="display: none"{/if}> |
||||
|
<div class="p-spec__inner"> |
||||
|
<h2 class="section__title">规格参数</h2> |
||||
|
|
||||
|
<div class="p-spec__models" {if empty($pic_many)}style="display: none"{/if}> |
||||
|
<span class="p-spec__models-label">产品型号</span> |
||||
|
<div class="p-spec__tabs nav" role="tablist" aria-label="产品型号"> |
||||
|
<!-- 规格参数,产品型号 --> |
||||
|
{php} |
||||
|
$total_standard_num = 0; |
||||
|
{/php} |
||||
|
|
||||
|
{volist name="pic_many" id="vo" key="key"} |
||||
|
<button |
||||
|
type="button" |
||||
|
class="p-spec__tab nav-link {if $key==1}active{/if}" |
||||
|
id="p-spec-tab-{$key}" |
||||
|
data-bs-toggle="tab" |
||||
|
data-bs-target="#p-spec-panel-{$key}" |
||||
|
role="tab" |
||||
|
aria-controls="p-spec-panel-{$key}" |
||||
|
aria-selected="{if $key==1}true{else /}false{/if}" |
||||
|
> |
||||
|
<span class="p-spec__tab-media"> |
||||
|
<img src="{:deal_image_url($vo['url'] ?? '')}" width="80" height="111" alt="" /> |
||||
|
</span> |
||||
|
<span class="p-spec__tab-name">{$vo.description}</span> |
||||
|
</button> |
||||
|
{php} |
||||
|
$total_standard_num++; |
||||
|
{/php} |
||||
|
|
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="p-spec__body tab-content"> |
||||
|
{volist name="pic_many" id="vo" key="key"} |
||||
|
<div |
||||
|
class="tab-pane fade {if $key==1}show active{/if}" |
||||
|
id="p-spec-panel-{$key}" |
||||
|
role="tabpanel" |
||||
|
aria-labelledby="p-spec-tab-{$key}" |
||||
|
tabindex="0" |
||||
|
> |
||||
|
{switch $key} |
||||
|
{case 1}{$rich_text_three|raw}{/case} |
||||
|
{case 2}{$rich_text_four|raw}{/case} |
||||
|
{case 3}{$rich_text_five|raw}{/case} |
||||
|
{case 4}{$rich_text_six|raw}{/case} |
||||
|
{case 5}{$rich_text_seven|raw}{/case} |
||||
|
{default /}暂无匹配内容 |
||||
|
{/switch} |
||||
|
</div> |
||||
|
{/volist} |
||||
|
|
||||
|
{if $total_standard_num == 0} |
||||
|
<!-- 无型号 tabs 时仅展示第一个富文本 --> |
||||
|
{$rich_text_three|raw} |
||||
|
{/if} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 资料下载 --> |
||||
|
<!-- 处理下载资料名称 --> |
||||
|
{php} |
||||
|
// 1. 直接按照 %% 分割 |
||||
|
$mainArray = explode("%%", $resource_download_names); |
||||
|
$download_names = []; |
||||
|
// 2. 遍历并拆分 |
||||
|
foreach ($mainArray as $item) { |
||||
|
if (trim($item) !== '' && !empty($item)) { |
||||
|
$download_names[] = explode("##", trim($item)); |
||||
|
} |
||||
|
} |
||||
|
// 文件匹配 |
||||
|
$map = [ |
||||
|
'png' => '图片', |
||||
|
'jpg' => '图片', |
||||
|
'jpeg' => '图片', |
||||
|
'pdf' => 'PDF', |
||||
|
'doc' => 'DOC', |
||||
|
'docx' => 'DOC', |
||||
|
'zip' => '压缩包', |
||||
|
'7z' => '压缩包', |
||||
|
'rar' => '压缩包', |
||||
|
]; |
||||
|
|
||||
|
{/php} |
||||
|
<section class="p-download section__wrap" id="p-download"> |
||||
|
<div class="p-download__inner"> |
||||
|
<div class="p-download__visual"> |
||||
|
<img src="{:deal_image_url($resource_pic['url'] ?? '')}" width="354" height="447" alt="RA3资料示意" /> |
||||
|
</div> |
||||
|
<div class="p-download__content"> |
||||
|
<h2 class="section__title">资料下载</h2> |
||||
|
<ul class="p-download__list"> |
||||
|
{volist name="resource_download" id="one_resource" key="key"} |
||||
|
{php} |
||||
|
$downloadUrl = $one_resource['url'] ?? ''; |
||||
|
$nameTmp = $download_names[$key-1][0] ?? ($one_resource['name'] ?? '文件-'.$key); |
||||
|
$descTmp = $download_names[$key-1][1] ?? ('描述-'.$key); |
||||
|
$dateTmp = $download_names[$key-1][2] ?? ('日期-'.$key); |
||||
|
$ext = strtolower(pathinfo($one_resource['url'], PATHINFO_EXTENSION)); |
||||
|
$file_type_name = $map[$ext] ?? '未知文件'; |
||||
|
// 下载文件名与页面展示名一致(展示名未带扩展名时补充) |
||||
|
$download_name = ($ext !== '' && strtolower(pathinfo($nameTmp, PATHINFO_EXTENSION)) === $ext) ? $nameTmp : rtrim($nameTmp, '.') . '.' . $ext; |
||||
|
{/php} |
||||
|
<li class="p-download__item"> |
||||
|
<div class="p-download__info"> |
||||
|
<h3 class="p-download__name"> |
||||
|
<a href="{$downloadUrl}" target="_blank" rel="noopener" title="预览">{$nameTmp}</a> |
||||
|
</h3> |
||||
|
<p class="p-download__meta"> |
||||
|
<span>{$descTmp}</span> |
||||
|
<span class="p-download__meta-divider"></span> |
||||
|
<time datetime="2025-10-11">{$dateTmp}</time> |
||||
|
</p> |
||||
|
</div> |
||||
|
<a |
||||
|
class="p-download__link" |
||||
|
href="{$downloadUrl}" |
||||
|
download="{$download_name}" |
||||
|
> |
||||
|
<svg |
||||
|
viewBox="0 0 24 24" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" |
||||
|
width="24.000000" |
||||
|
height="24.000000" |
||||
|
fill="none" |
||||
|
customFrame="#000000" |
||||
|
> |
||||
|
<g id="frame"> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M16.4405 8.8999C20.0405 9.2099 21.5105 11.0599 21.5105 15.1099L21.5105 15.2399C21.5105 19.7099 19.7205 21.4999 15.2505 21.4999L8.74047 21.4999C4.27047 21.4999 2.48047 19.7099 2.48047 15.2399L2.48047 15.1099C2.48047 11.0899 3.93047 9.2399 7.47047 8.9099" |
||||
|
fill-rule="nonzero" |
||||
|
stroke="rgb(102,102,102)" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
stroke-width="1.500000" |
||||
|
/> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M0 0L12.88 0" |
||||
|
stroke="rgb(102,102,102)" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
stroke-width="1.500000" |
||||
|
transform="matrix(0,1,-1,0,12,2)" |
||||
|
/> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M15.3504 12.6499L12.0004 15.9999L8.65039 12.6499" |
||||
|
fill-rule="nonzero" |
||||
|
stroke="rgb(102,102,102)" |
||||
|
stroke-linecap="round" |
||||
|
stroke-linejoin="round" |
||||
|
stroke-width="1.500000" |
||||
|
/> |
||||
|
<path |
||||
|
id="Vector" |
||||
|
d="M24 0L0 0L0 24L24 24L24 0ZM1 23L1 1L23 1L23 23L1 23Z" |
||||
|
opacity="0" |
||||
|
fill="rgb(102,102,102)" |
||||
|
fill-rule="evenodd" |
||||
|
transform="matrix(-1,-1.22465e-16,1.22465e-16,-1,24,24)" |
||||
|
/> |
||||
|
</g> |
||||
|
</svg> |
||||
|
<span>下载{$file_type_name}</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
|
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
|
||||
|
<!-- 相关产品 --> |
||||
|
<section class="p-related section__wrap" id="p-related"> |
||||
|
<div class="p-related__inner"> |
||||
|
<div class="p-related__header"> |
||||
|
<h2 class="section__title">相关产品</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="p-related__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
|
||||
|
{hcTaglib:contentPage2 cid="$category_id" mainField="id,category_id,title,sub_title,thumbnail" subField="" name="hc_content" limit="30" item="content_sub22" sort="sort asc"} |
||||
|
{/hcTaglib:contentPage2} |
||||
|
|
||||
|
{volist name="hc_content" id="vo_content"} |
||||
|
<article class="swiper-slide p-related__card"> |
||||
|
<a class="p-related__link" href="{:hcUrl('detail/index',['id'=>$vo_content['id'],'cid'=>$vo_content['category_id']])}"> |
||||
|
<div class="p-related__media"> |
||||
|
<img src="{$vo_content['thumbnail']['url'] ?? ''}" width="100" height="206" alt="" /> |
||||
|
</div> |
||||
|
<div class="p-related__foot"> |
||||
|
<h3 class="p-related__name">{$vo_content.title}</h3> |
||||
|
<span class="p-related__arrow" aria-hidden="true"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path |
||||
|
id="合并" |
||||
|
d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" |
||||
|
fill="rgb(239,67,53)" |
||||
|
fill-rule="evenodd" |
||||
|
/> |
||||
|
</svg> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
|
||||
|
</div> |
||||
|
<!-- <div class="p-related__pagination swiper-pagination"></div> --> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script |
||||
|
src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" |
||||
|
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" |
||||
|
crossorigin="anonymous" |
||||
|
></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
|
||||
|
<div class="p-selection-modal" id="p-selection-modal" data-selection-modal hidden> |
||||
|
<div class="p-selection-modal__overlay" data-selection-close></div> |
||||
|
<div class="p-selection-modal__dialog" role="dialog" aria-modal="true" aria-label="选型表"> |
||||
|
<div class="p-selection-modal__head"> |
||||
|
<h2 class="p-selection-modal__title">选型表</h2> |
||||
|
<button type="button" class="p-selection-modal__close" aria-label="关闭" data-selection-close> |
||||
|
<svg |
||||
|
viewBox="0 0 24 24" |
||||
|
width="24" |
||||
|
height="24" |
||||
|
fill="none" |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
aria-hidden="true" |
||||
|
> |
||||
|
<path d="M6 6L18 18M18 6L6 18" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="p-selection-modal__body"> |
||||
|
<div class="p-selection-modal__table-wrap" data-lenis-prevent> |
||||
|
{$content|raw} |
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,192 @@ |
|||||
|
|
||||
|
|
||||
|
{php} |
||||
|
dd('此页面废弃'); |
||||
|
{/php} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/search.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/search.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-search" data-header-dark> |
||||
|
<div class="sr-page section__wrap"> |
||||
|
<div class="sr-hero"> |
||||
|
<h1 class="sr-hero__title">搜索</h1> |
||||
|
<form class="s-search sr-search" action="/search.html" method="get" role="search"> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="q" value="{$keywords}" placeholder="请输入您想了解的内容" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">搜索</button> |
||||
|
</form> |
||||
|
<div class="sr-hot"> |
||||
|
<span class="sr-hot__label">热门搜索:</span> |
||||
|
<div class="sr-hot__list"> |
||||
|
<button type="button" class="sr-hot__tag" data-keyword="HMI">HMI</button> |
||||
|
<button type="button" class="sr-hot__tag" data-keyword="伺服系统">伺服系统</button> |
||||
|
<button type="button" class="sr-hot__tag" data-keyword="纺织行业产品">纺织行业产品</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="sr-tabs" role="tablist" aria-label="结果分类"> |
||||
|
<button type="button" class="sr-tabs__item is-active" role="tab" aria-selected="true" data-type="all"> |
||||
|
全部 ( <span data-count="all">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="product"> |
||||
|
产品 ( <span data-count="product">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="solution"> |
||||
|
解决方案 ( <span data-count="solution">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="news"> |
||||
|
新闻 ( <span data-count="news">0</span> ) |
||||
|
</button> |
||||
|
<button type="button" class="sr-tabs__item" role="tab" aria-selected="false" data-type="faq"> |
||||
|
常见问题 ( <span data-count="faq">0</span> ) |
||||
|
</button> |
||||
|
</div> |
||||
|
|
||||
|
<div class="sr-list"> |
||||
|
{volist name="list" id="vo"} |
||||
|
{php} |
||||
|
$sr_date = ''; |
||||
|
$sr_time = $vo['publish_time'] ?? ($vo['create_time'] ?? ''); |
||||
|
if (!empty($sr_time)) { |
||||
|
$sr_date = is_numeric($sr_time) ? date('Y-m-d', (int)$sr_time) : $sr_time; |
||||
|
} |
||||
|
$sr_cid = $vo['category_id'] ?? ($vo['category'][0]['id'] ?? 0); |
||||
|
$sr_thumb = is_array($vo['thumbnail'] ?? null) ? ($vo['thumbnail']['url'] ?? '') : ''; |
||||
|
$sr_url = hcUrl('detail/index', ['id' => $vo['id'], 'cid' => $sr_cid]); |
||||
|
$sr_cate_title = $vo['category'][0]['title'] ?? ''; |
||||
|
$sr_type = 'other'; |
||||
|
if (mb_strpos($sr_cate_title, '产品') !== false) { |
||||
|
$sr_type = 'product'; |
||||
|
} elseif (mb_strpos($sr_cate_title, '解决方案') !== false || mb_strpos($sr_cate_title, '方案') !== false) { |
||||
|
$sr_type = 'solution'; |
||||
|
} elseif (mb_strpos($sr_cate_title, '新闻') !== false) { |
||||
|
$sr_type = 'news'; |
||||
|
} elseif (mb_strpos($sr_cate_title, '常见问题') !== false || mb_strpos($sr_cate_title, 'FAQ') !== false || mb_strpos($sr_cate_title, '问题') !== false) { |
||||
|
$sr_type = 'faq'; |
||||
|
} |
||||
|
{/php} |
||||
|
<article class="sr-item" data-type="{$sr_type}" data-keywords="{$vo.title}"> |
||||
|
<a class="sr-item__media" href="{$sr_url}"> |
||||
|
<img src="{$sr_thumb}" alt="" width="300" height="200" loading="lazy" /> |
||||
|
</a> |
||||
|
<div class="sr-item__body"> |
||||
|
<div class="sr-item__main"> |
||||
|
<div class="sr-item__meta"> |
||||
|
<span class="sr-item__type">{if !empty($vo['category'][0]['title'])}{$vo.category.0.title}{else /}内容{/if}</span> |
||||
|
<span class="sr-item__sep" aria-hidden="true"></span> |
||||
|
<time class="sr-item__date" datetime="{$sr_date}">{$sr_date}</time> |
||||
|
</div> |
||||
|
<h2 class="sr-item__title"> |
||||
|
<a href="{$sr_url}">{$vo.title}</a> |
||||
|
</h2> |
||||
|
{notempty name="vo.description"} |
||||
|
<p class="sr-item__desc">{$vo.description}</p> |
||||
|
{/notempty} |
||||
|
</div> |
||||
|
<a class="sr-item__more" href="{$sr_url}"> |
||||
|
<span>探索更多</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
|
||||
|
</a> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
|
||||
|
<div class="s-empty sr-tabs-empty" hidden> |
||||
|
<p class="s-empty__text">当前分类下暂无结果</p> |
||||
|
</div> |
||||
|
|
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($list ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = '未找到相关结果,请尝试其他关键词'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$list_page|raw} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,259 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate['seo_title']}</title> |
||||
|
<meta name="keywords" content="{$current_cate['seo_keywords']}"> |
||||
|
<meta name="description" content="{$current_cate['seo_description']}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
|
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/solution.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/solution.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-solution" data-nav="解决方案"> |
||||
|
{if !empty($sub_cates[0])} |
||||
|
<section class="sl-hero"> |
||||
|
<div class="sl-hero__intro section__wrap" data-header-dark> |
||||
|
<h1 class="sl-hero__title">{$sub_cates[0]['title'] ?? ''}</h1> |
||||
|
<p class="sl-hero__desc"> |
||||
|
{$sub_cates[0]['description'] ?? ''} |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="sl-hero__media" aria-hidden="true"> |
||||
|
<img src="{$sub_cates[0]['thumbnail']['url'] ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[1])} |
||||
|
<section class="sl-adv section__wrap" id="adv" data-header-dark> |
||||
|
<h2 class="sl-adv__title">{$sub_cates[1]['title'] ?? ''}</h2> |
||||
|
<ul class="sl-adv__list"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[1]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<li class="sl-adv__item"> |
||||
|
<h3 class="sl-adv__name">{$vo['title'] ?? ''}</h3> |
||||
|
<p class="sl-adv__text">{$vo['description'] ?? ''}</p> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[2])} |
||||
|
<section class="sl-arch section__wrap" id="arch" data-header-dark> |
||||
|
<h2 class="sl-arch__title">{$sub_cates[2]['title'] ?? ''}</h2> |
||||
|
<div class="sl-arch__panel"> |
||||
|
<img src="{$sub_cates[2]['thumbnail']['url'] ?? ''}" alt="{$sub_cates[2]['description'] ?? ''}" width="1630" height="650" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[3])} |
||||
|
<section class="sl-core section__wrap" id="core" data-header-dark> |
||||
|
<div class="sl-core__head"> |
||||
|
<h2 class="sl-core__title">{$sub_cates[3]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-core__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getMixContentBySolutionName($current_cate['title'],$sub_cates[3]['id'],$seller_id, 6); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<article class="swiper-slide sl-core__card"> |
||||
|
<!-- TODO vo.source -> solution:商品 category:文章--> |
||||
|
<a class="sl-core__card-link" href=""> |
||||
|
<div class="sl-core__card-media"> |
||||
|
<img src="{$vo['thumbnail'] ?? ''}" alt="{$vo['title'] ?? ''}" width="528" height="330" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="sl-core__card-foot"> |
||||
|
<h3 class="sl-core__card-name">{$vo['title'] ?? ''}</h3> |
||||
|
<span class="sl-core__card-arrow" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2012.2529%2011.314'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.252930'%20height='11.313965'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='合并'%20d='M5.18202%201.41422L6.59622%200L12.2531%205.65686L12.2529%205.65702L10.8389%207.07108L6.59608%2011.3139L5.18186%209.89966L8.4245%206.65702L-0%206.65702L0%204.657L8.42482%204.65702L5.18202%201.41422Z'%20fill='rgb(239,67,53)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="12" height="11" /> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-core__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[4])} |
||||
|
<section class="sl-clients section__wrap" id="clients" data-header-dark> |
||||
|
<h2 class="sl-clients__title">{$sub_cates[4]['title'] ?? ''}</h2> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[4]['id'], $seller_id, 20, 'sort asc', ['thumbnail', 'category']); |
||||
|
$clients_marquee = is_array($contents) && count($contents) > 5; |
||||
|
{/php} |
||||
|
<div class="sl-clients__viewport{if $clients_marquee} is-marquee{/if}"> |
||||
|
<div class="sl-clients__grid"> |
||||
|
{volist name="contents" id="vo"} |
||||
|
<div class="sl-clients__item"><img src="{$vo['thumbnail']['url'] ?? ''}" alt="" width="252" height="160" loading="lazy" /></div> |
||||
|
{/volist} |
||||
|
{if $clients_marquee} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<div class="sl-clients__item" aria-hidden="true"><img src="{$vo['thumbnail']['url'] ?? ''}" alt="" width="252" height="160" loading="lazy" /></div> |
||||
|
{/volist} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[5])} |
||||
|
<section class="sl-cases section__wrap" id="cases" data-header-dark> |
||||
|
<h2 class="sl-cases__title">{$sub_cates[5]['title'] ?? ''}</h2> |
||||
|
<div class="sl-cases__body"> |
||||
|
<div class="sl-cases__stage" aria-hidden="true"> |
||||
|
<div class="sl-cases__media-swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[5]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<div class="swiper-slide sl-cases__card"> |
||||
|
<img src="{$vo['thumbnail']['url'] ?? ''}" alt="" width="650" height="457" /> |
||||
|
</div> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-cases__copy"> |
||||
|
<div class="sl-cases__content-swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[5]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<article class="swiper-slide sl-cases__panel"> |
||||
|
<h3 class="sl-cases__name">{$vo['title'] ?? ''}</h3> |
||||
|
<p class="sl-cases__sub-name">{$vo['sub_title'] ?? ''}</p> |
||||
|
<p class="sl-cases__desc">{$vo['description'] ?? ''}</p> |
||||
|
<div class="sl-cases__tags"> |
||||
|
{php}$descArr = explode(',',$vo['seo_description']);{/php} |
||||
|
{if !empty($descArr)} |
||||
|
{volist name="descArr" id="vv"} |
||||
|
<span>{$vv}</span> |
||||
|
{/volist} |
||||
|
{/if} |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl-cases__nav"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="sl-cases__pager" aria-live="polite"> |
||||
|
<span class="sl-cases__pager-current">1</span> |
||||
|
<span class="sl-cases__pager-sep">/</span> |
||||
|
<span class="sl-cases__pager-total">4</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
|
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,280 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
{php} |
||||
|
$current_cate_id = $current_cate['id'] ?? 0; |
||||
|
{/php} |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate['seo_title']}</title> |
||||
|
<meta name="keywords" content="{$current_cate['seo_keywords']}"> |
||||
|
<meta name="description" content="{$current_cate['seo_description']}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/solution2.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/solution2.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
<main class="main-solution2" data-nav="解决方案"> |
||||
|
|
||||
|
{if !empty($sub_cates[0])} |
||||
|
<section class="sl2-hero"> |
||||
|
<div class="sl2-hero__intro section__wrap" data-header-dark> |
||||
|
<h1 class="sl2-hero__title">{$sub_cates[0]['title'] ?? ''}</h1> |
||||
|
<p class="sl2-hero__desc"> |
||||
|
{$sub_cates[0]['description'] ?? ''} |
||||
|
</p> |
||||
|
</div> |
||||
|
<div class="sl2-hero__media" aria-hidden="true"> |
||||
|
<img src="{$sub_cates[0]['thumbnail']['url'] ?? ''}" alt="" width="1920" height="720" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
|
||||
|
{if !empty($sub_cates[1])} |
||||
|
<section class="sl2-adv section__wrap" id="adv" data-header-dark> |
||||
|
<h2 class="sl2-adv__title">{$sub_cates[1]['title'] ?? ''}</h2> |
||||
|
<ul class="sl2-adv__list"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[1]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<li class="sl2-adv__item"> |
||||
|
<span class="sl2-adv__icon" aria-hidden="true"> |
||||
|
<img style="height: 48px;width: 48px;" src="{$vo['thumbnail']['url'] ?? ''}"> |
||||
|
</span> |
||||
|
<h3 class="sl2-adv__name">{$vo.title ?? ''}</h3> |
||||
|
<p class="sl2-adv__text">{$vo.description ?? ''}</p> |
||||
|
</li> |
||||
|
{/volist} |
||||
|
</ul> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[2])} |
||||
|
<section class="sl2-arch section__wrap" id="arch" data-header-dark> |
||||
|
<h2 class="sl2-arch__title">{$sub_cates[2]['title'] ?? ''}</h2> |
||||
|
<div class="sl2-arch__panel"> |
||||
|
<img src="{$sub_cates[2]['thumbnail']['url'] ?? ''}" alt="{$sub_cates[2]['description'] ?? ''}" width="1630" height="650" /> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[3])} |
||||
|
<section class="sl2-core section__wrap" id="core" data-header-dark> |
||||
|
<div class="sl2-core__head"> |
||||
|
<h2 class="sl2-core__title">{$sub_cates[3]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-core__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$products = getArticlesBySolutionName($current_cate['title'],$seller_id,6); |
||||
|
{/php} |
||||
|
{volist name="products" id="vo"} |
||||
|
<article class="swiper-slide sl2-core__slide"> |
||||
|
<div class="sl2-core__content"> |
||||
|
<h3 class="sl2-core__name">{$vo.title ?? ''}</h3> |
||||
|
<p class="sl2-core__desc">{$vo.description ?? ''}</p> |
||||
|
<a class="s-btn s-btn--primary s-btn--pill" href="{:hcUrl('detail/index',['id'=>$vo['id'],'cid'=>$vo['category_id']])}">探索更多</a> |
||||
|
</div> |
||||
|
<div class="sl2-core__media"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="{$vo.title ?? ''}" width="520" height="520" |
||||
|
loading="lazy" /> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
<div class="sl2-core__pagination"></div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[4])} |
||||
|
<!-- <section class="sl2-scene section__wrap" id="scene" data-header-dark> |
||||
|
<div class="sl2-scene__head"> |
||||
|
<h2 class="sl2-scene__title">{$sub_cates[4]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-scene__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php} |
||||
|
$contents = getContentByCategory($sub_cates[4]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']); |
||||
|
{/php} |
||||
|
{volist name="contents" id="vo"} |
||||
|
<article class="swiper-slide sl2-scene__slide sl2-scene__slide--detail"> |
||||
|
<img class="sl2-scene__bg" src="{$vo.thumbnail.url ?? ''}" alt="" width="960" |
||||
|
height="560" loading="lazy" /> |
||||
|
<div class="sl2-scene__label">{$vo['title'] ?? ''}</div> |
||||
|
<div class="sl2-scene__panel"> |
||||
|
<h3 class="sl2-scene__name">{$vo['title'] ?? ''}</h3> |
||||
|
<p class="sl2-scene__desc"> |
||||
|
{$vo.description ?? ''} |
||||
|
</p> |
||||
|
</div> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-scene__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> --> |
||||
|
{/if} |
||||
|
{if !empty($sub_cates[5])} |
||||
|
<!-- 其他解决方案 --> |
||||
|
<section class="sl2-more section__wrap" id="more" data-header-dark> |
||||
|
<div class="sl2-more__head"> |
||||
|
<h2 class="sl2-more__title">{$sub_cates[5]['title'] ?? ''}</h2> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="sl2-more__swiper swiper"> |
||||
|
<div class="swiper-wrapper"> |
||||
|
{php}$others = getOtherCategoryCategoryId($current_cate['id'],$seller_id,5);{/php} |
||||
|
{volist name="others" id="vo"} |
||||
|
<article class="swiper-slide sl2-more__slide"> |
||||
|
<a class="sl2-more__card" href="{$vo.alias ?? ''}"> |
||||
|
<div class="sl2-more__media"> |
||||
|
<img src="{$vo.thumbnail.url ?? ''}" alt="" width="400" height="300" loading="lazy" /> |
||||
|
</div> |
||||
|
<div class="sl2-more__body"> |
||||
|
<h3 class="sl2-more__name">{$vo.title ?? ''}</h3> |
||||
|
<span class="sl2-more__link"> |
||||
|
<span>探索更多</span> |
||||
|
<svg viewBox="0 0 16.502 6.66113" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16.501953" height="6.661133" fill="none" customFrame="#000000"> |
||||
|
<path id="箭头 2" d="M0 2.83057L16 2.83057L16 3.83057L0 3.83057L0 2.83057ZM15.2929 3.33057L12.818 0.855693C12.62 0.657703 12.62 0.346575 12.818 0.148586C13.016 -0.0494041 13.3271 -0.0494046 13.5251 0.148585L16.3536 2.97701C16.5515 3.175 16.5515 3.48613 16.3536 3.68412L13.5251 6.51255C13.3271 6.71054 13.016 6.71054 12.818 6.51255C12.62 6.31456 12.62 6.00343 12.818 5.80544L15.2929 3.33057Z" fill="rgb(102,102,102)" fill-rule="nonzero" /> |
||||
|
</svg> |
||||
|
</span> |
||||
|
</div> |
||||
|
</a> |
||||
|
</article> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sl2-more__arrows-mobile"> |
||||
|
<div class="s-arrows"> |
||||
|
<button type="button" class="s-arrows__prev" aria-label="上一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
<button type="button" class="s-arrows__next" aria-label="下一项"> |
||||
|
<svg viewBox="0 0 12.2529 11.314" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12.252930" height="11.313965" fill="none" customFrame="#000000"> |
||||
|
<path id="合并" d="M5.18202 1.41422L6.59622 0L12.2531 5.65686L12.2529 5.65702L10.8389 7.07108L6.59608 11.3139L5.18186 9.89966L8.4245 6.65702L-0 6.65702L0 4.657L8.42482 4.65702L5.18202 1.41422Z" fill="rgb(239,67,53)" fill-rule="evenodd" /> |
||||
|
</svg> |
||||
|
|
||||
|
</button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</section> |
||||
|
{/if} |
||||
|
</main> |
||||
|
|
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
@ -0,0 +1,166 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh-CN"> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>{$current_cate.seo_title}</title> |
||||
|
<meta name="keywords" content="{$current_cate.seo_keywords}"> |
||||
|
<meta name="description" content="{$current_cate.seo_description}"> |
||||
|
<!-- 公共CSS 自动被打包进页面 --> |
||||
|
<link rel="icon" href="./favicon.ico" type="image/x-icon"> |
||||
|
<script> |
||||
|
// 设计稿 1920px 宽度下 1rem = 16Px;放在 head 里避免刷新时 rem 闪动 |
||||
|
(function () { |
||||
|
var h = document.documentElement |
||||
|
// 设计稿宽度 |
||||
|
var DESIGN_WIDTH = 1920 |
||||
|
// 设计稿1rem = 16Px |
||||
|
var REM_AT_DESIGN = 16 |
||||
|
// 最小字体大小-限制, 同时注意所有的box的大小也有了最小限制 |
||||
|
var MIN_ROOT_FONT_SIZE = 14 |
||||
|
function setRootFontSize() { |
||||
|
// 当前屏幕可视宽度(每次计算都取最新值) |
||||
|
var W = h.getBoundingClientRect().width |
||||
|
var size = (W / DESIGN_WIDTH) * REM_AT_DESIGN |
||||
|
if (size < MIN_ROOT_FONT_SIZE) size = MIN_ROOT_FONT_SIZE |
||||
|
h.style.fontSize = size + 'px' |
||||
|
} |
||||
|
setRootFontSize() |
||||
|
var resizeRaf = 0 |
||||
|
window.addEventListener('resize', function () { |
||||
|
if (resizeRaf) return |
||||
|
resizeRaf = requestAnimationFrame(function () { |
||||
|
resizeRaf = 0 |
||||
|
setRootFontSize() |
||||
|
}) |
||||
|
}) |
||||
|
})() |
||||
|
</script> |
||||
|
<link rel="stylesheet" href="https://unpkg.com/lenis@1.3.23/dist/lenis.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"> |
||||
|
<link href="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" |
||||
|
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.css"> |
||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> |
||||
|
<script type="module" crossorigin src="/themes/dist_static/static/js/video.js"></script> |
||||
|
<link rel="modulepreload" crossorigin href="/themes/dist_static/static/js/common.js"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/common.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/pagination.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/empty.css"> |
||||
|
<link rel="stylesheet" crossorigin href="/themes/dist_static/static/css/video.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<!-- 引入公共头部 --> |
||||
|
<!-- header --> |
||||
|
{include file="components/header"} |
||||
|
|
||||
|
<main class="main-video" data-header-dark data-nav="服务支持"> |
||||
|
<div class="v-page section__wrap"> |
||||
|
<div class="v-head"> |
||||
|
<h1 class="v-head__title">{$current_cate.title}</h1> |
||||
|
<p class="v-head__desc">{$current_cate.description}</p> |
||||
|
</div> |
||||
|
|
||||
|
<div class="v-toolbar"> |
||||
|
{php} |
||||
|
$filter_cid = (string)input('cid', ''); |
||||
|
$filter_all_id = (string)($current_cate['id'] ?? ''); |
||||
|
if ($filter_cid === '') { |
||||
|
$filter_cid = $filter_all_id; |
||||
|
} |
||||
|
$filter_keywords = (string)input('keywords', ''); |
||||
|
$filter_is_all = ($filter_cid === $filter_all_id); |
||||
|
$filter_label = '按产品筛选'; |
||||
|
if (!$filter_is_all && !empty($sub_cates)) { |
||||
|
foreach ($sub_cates as $sc) { |
||||
|
if ((string)($sc['id'] ?? '') === $filter_cid) { |
||||
|
$filter_label = $sc['title'] ?? $filter_label; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
{/php} |
||||
|
<div class="v-filter__group"> |
||||
|
<button type="button" class="v-filter{if !$filter_is_all} is-selected{/if}" aria-haspopup="listbox" aria-expanded="false" data-filter-trigger> |
||||
|
<span>{$filter_label}</span> |
||||
|
<svg class="v-filter__chevron" viewBox="0 0 11.2728 6.90918" width="11" height="7" fill="none" aria-hidden="true"> |
||||
|
<path d="M0.636353 0.636272L5.63635 5.63627L10.6364 0.63623" stroke="currentColor" stroke-width="1.8" /> |
||||
|
</svg> |
||||
|
</button> |
||||
|
<div class="v-filter__dropdown" data-filter-dropdown hidden> |
||||
|
<button type="button" class="v-filter__dropdown-item{if $filter_is_all} is-active{/if}" data-tab="{$current_cate.id}" data-filter-clear>全部</button> |
||||
|
{volist name="sub_cates" id="vo"} |
||||
|
{php}$vo_id = (string)($vo['id'] ?? '');{/php} |
||||
|
<button type="button" data-tab="{$vo.id}" class="v-filter__dropdown-item{if $filter_cid == $vo_id} is-active{/if}">{$vo.title}</button> |
||||
|
{/volist} |
||||
|
</div> |
||||
|
</div> |
||||
|
<form class="s-search" role="search" data-tab-search> |
||||
|
<img class="s-search__icon" src="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='24.000000'%20height='24.000000'%20fill='none'%3e%3crect%20id='搜索'%20width='24.000000'%20height='24.000000'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='矢量%203'%20d='M15.8481%2017.1208C14.4808%2018.2114%2012.7482%2018.8633%2010.8633%2018.8633C6.44506%2018.8633%202.86328%2015.2816%202.86328%2010.8633C2.86328%206.445%206.44506%202.86328%2010.8633%202.86328C15.2815%202.86328%2018.8633%206.445%2018.8633%2010.8633C18.8633%2012.7482%2018.2114%2014.4808%2017.1208%2015.8481L21.136%2019.8633L19.8633%2021.136L15.8481%2017.1208ZM17.0632%2010.8633C17.0632%207.43908%2014.2874%204.66326%2010.8633%204.66326C7.4392%204.66326%204.66332%207.43908%204.66332%2010.8633C4.66332%2014.2875%207.4392%2017.0633%2010.8633%2017.0633C14.2874%2017.0633%2017.0632%2014.2875%2017.0632%2010.8633Z'%20fill='rgb(175,181,185)'%20fill-rule='evenodd'%20/%3e%3c/svg%3e" alt="" width="24" height="24" /> |
||||
|
<input class="s-search__input" type="search" name="keywords" value="{$filter_keywords}" placeholder="请输入您想搜索视频的关键词" autocomplete="off" /> |
||||
|
<button class="s-search__btn" type="submit">搜索</button> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="v-grid"> |
||||
|
{hcTaglib:contentPage mainField="*" subField="*" name="hc_content" limit="12" item="vo"} |
||||
|
<button type="button" class="v-card" data-video-src="{$vo.cover.url ?? ''}"> |
||||
|
<div class="v-card__media"> |
||||
|
<img class="v-card__cover" src="{$vo.thumbnail.url ?? ''}" alt="" width="400" height="225" |
||||
|
loading="lazy" /> |
||||
|
<span class="v-card__duration">{$vo.description}</span> |
||||
|
<span class="v-card__play" aria-hidden="true"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20viewBox='0%200%2013.5386%2016'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13.538574'%20height='16.000000'%20fill='none'%20customFrame='%23000000'%3e%3cpath%20id='多边形%201'%20d='M8.86093%201.45695L15.1085%2012.0297C15.5024%2012.6963%2015.0219%2013.5384%2014.2476%2013.5384L1.75245%2013.5384C0.978149%2013.5384%200.497614%2012.6963%200.891523%2012.0297L7.13907%201.45695C7.52614%200.801924%208.47387%200.801924%208.86093%201.45695Z'%20fill='rgb(255,255,255)'%20fill-rule='evenodd'%20transform='matrix(0,1,-1,0,13.5386,0)'%20/%3e%3c/svg%3e" alt="" width="14" height="16" /> |
||||
|
</span> |
||||
|
</div> |
||||
|
<h2 class="v-card__title">{$vo.title}</h2> |
||||
|
<time class="v-card__date" datetime="{$vo.publish_time}">{$vo.publish_time|date='Y-m-d'}</time> |
||||
|
</button> |
||||
|
{/hcTaglib:contentPage} |
||||
|
</div> |
||||
|
{php} |
||||
|
$list_empty = isHcListEmpty($hc_content ?? null); |
||||
|
if ($list_empty) { |
||||
|
$empty_text = '暂无相关视频'; |
||||
|
} |
||||
|
{/php} |
||||
|
{if $list_empty} |
||||
|
{include file="components/empty"} |
||||
|
{else /} |
||||
|
{$hc_content|raw} |
||||
|
{/if} |
||||
|
|
||||
|
<div class="v-modal" id="v-modal" hidden> |
||||
|
<div class="v-modal__backdrop" data-v-modal-close></div> |
||||
|
<div class="v-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="v-modal-title"> |
||||
|
<div class="v-modal__head"> |
||||
|
<h2 class="v-modal__title" id="v-modal-title">视频播放</h2> |
||||
|
<button type="button" class="v-modal__close" data-v-modal-close aria-label="关闭"> |
||||
|
<img src="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cpath%20d='M1.5%201.5L14.5%2014.5M14.5%201.5L1.5%2014.5'%20stroke='%23fff'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3c/svg%3e" alt="" width="16" height="16" aria-hidden="true" /> |
||||
|
</button> |
||||
|
</div> |
||||
|
<div class="v-modal__body"> |
||||
|
<video class="v-modal__video" id="v-modal-video" controls playsinline></video> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</main> |
||||
|
{include file="components/mask"} |
||||
|
<!-- 模块:底部 --> |
||||
|
{include file="components/footer"} |
||||
|
|
||||
|
|
||||
|
<script src="https://unpkg.com/lenis@1.3.23/dist/lenis.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script> |
||||
|
<script src="https://cdn.jsdelivr.net.cn/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> |
||||
|
<script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.min.js"></script> |
||||
|
<script src="https://unpkg.com/counterup2@2.0.2/dist/index.js"></script> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue