Browse Source

Merge remote-tracking branch 'origin/master'

master
zhangf@suq.cn 2 weeks ago
parent
commit
fe3c95a3a0
  1. 9
      app/service/ContentService.php
  2. 46
      public/themes/dist_static/static/css/solution.css
  3. 7
      public/themes/dist_static/static/js/solution2.js
  4. 25
      public/themes/website/1/zh/demo/news.html
  5. 22
      public/themes/website/1/zh/demo/solution.html
  6. 2
      public/themes/website/1/zh/demo/solution2.html

9
app/service/ContentService.php

@ -467,8 +467,13 @@ class ContentService {
'check_status' => 3, 'check_status' => 3,
'is_del'=>1, 'is_del'=>1,
]; ];
if($param['isTop'] != 2){
$where['is_top'] = 1;
switch ($param['isTop']) {
case 1:
$where['is_top'] = 1;
break;
case 2:
$where['is_top'] = 2;
break;
} }
if($param['isCommend'] != 2){ if($param['isCommend'] != 2){
$where['is_recommend'] = 1; $where['is_recommend'] = 1;

46
public/themes/dist_static/static/css/solution.css

@ -203,6 +203,9 @@
font-weight: 400; font-weight: 400;
line-height: var(--font-64); line-height: var(--font-64);
} }
.sl-clients__viewport {
width: 100%;
}
.sl-clients__grid { .sl-clients__grid {
display: grid; display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-columns: repeat(5, minmax(0, 1fr));
@ -227,6 +230,34 @@
object-fit: contain; object-fit: contain;
} }
/* 超过 5 个:CSS 横向无缝循环(内容在模板里复制一份) */
.sl-clients__viewport.is-marquee {
overflow: hidden;
container-type: inline-size;
}
.sl-clients__viewport.is-marquee .sl-clients__grid {
display: flex;
width: max-content;
gap: 1.5rem;
animation: sl-clients-marquee 30s linear infinite;
}
.sl-clients__viewport.is-marquee .sl-clients__item {
flex: 0 0 calc((100cqi - 6rem) / 5);
width: calc((100cqi - 6rem) / 5);
}
.sl-clients__viewport.is-marquee:hover .sl-clients__grid {
animation-play-state: paused;
}
@keyframes sl-clients-marquee {
from { transform: translateX(0); }
to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
.sl-clients__viewport.is-marquee .sl-clients__grid {
animation: none;
}
}
.sl-cases { .sl-cases {
position: relative; position: relative;
padding-top: 7.5rem; padding-top: 7.5rem;
@ -418,6 +449,10 @@
.sl-clients__grid { .sl-clients__grid {
grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-columns: repeat(4, minmax(0, 1fr));
} }
.sl-clients__viewport.is-marquee .sl-clients__item {
flex-basis: calc((100cqi - 4.5rem) / 4);
width: calc((100cqi - 4.5rem) / 4);
}
.sl-cases__body { .sl-cases__body {
grid-template-columns: 1fr; grid-template-columns: 1fr;
gap: 40Px; gap: 40Px;
@ -442,6 +477,10 @@
.sl-clients__grid { .sl-clients__grid {
grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-columns: repeat(3, minmax(0, 1fr));
} }
.sl-clients__viewport.is-marquee .sl-clients__item {
flex-basis: calc((100cqi - 3rem) / 3);
width: calc((100cqi - 3rem) / 3);
}
.sl-cases__nav { .sl-cases__nav {
margin-top: 24Px; margin-top: 24Px;
} }
@ -471,6 +510,13 @@
grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12Px; gap: 12Px;
} }
.sl-clients__viewport.is-marquee .sl-clients__grid {
gap: 12Px;
}
.sl-clients__viewport.is-marquee .sl-clients__item {
flex-basis: calc((100cqi - 12Px) / 2);
width: calc((100cqi - 12Px) / 2);
}
.sl-clients__item { .sl-clients__item {
height: 100Px; height: 100Px;
} }

7
public/themes/dist_static/static/js/solution2.js

@ -75,6 +75,13 @@ function initMoreSwiper() {
const root = document.querySelector(".sl2-more"); const root = document.querySelector(".sl2-more");
const el = root?.querySelector(".sl2-more__swiper"); const el = root?.querySelector(".sl2-more__swiper");
if (!root || !el || !window.Swiper) return; if (!root || !el || !window.Swiper) return;
const slideCount = el.querySelectorAll(".swiper-wrapper > .swiper-slide").length;
// 一屏展示 3 条,不超过 3 条时隐藏切换按钮
if (slideCount <= 3) {
root.querySelectorAll(".sl2-more__head .s-arrows, .sl2-more__arrows-mobile").forEach((node) => {
node.style.display = "none";
});
}
new window.Swiper(el, { new window.Swiper(el, {
slidesPerView: 3, slidesPerView: 3,
spaceBetween: 40, spaceBetween: 40,

25
public/themes/website/1/zh/demo/news.html

@ -93,11 +93,16 @@
<article class="n-featured"> <article class="n-featured">
<div class="n-featured__swiper swiper"> <div class="n-featured__swiper swiper">
<div class="swiper-wrapper"> <div class="swiper-wrapper">
{hcTaglib:content cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,content,description,create_time" subField="" name="hc_featured" limit="10" item="vo_content" sort="sort asc"}
{hcTaglib:contentPage2 cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,content,description,create_time" subField="" name="hc_content" limit="100" item="content_sub22" sort="sort asc" isTop="1"}
{/hcTaglib:contentPage2}
{volist name="hc_content" id="vo_content"}
{php} {php}
$content = $vo_content['content'] ?? ''; // 富文本
$description = $vo_content['description'] ?? ''; $description = $vo_content['description'] ?? '';
$title = $vo_content['title'] ?? '';
$title = $vo_content['description'] ?? '';
$create_time_str = $vo_content['create_time'] ?? ''; $create_time_str = $vo_content['create_time'] ?? '';
// dd($vo_content->toArray());exit;
{/php} {/php}
<div class="swiper-slide n-featured__slide" data-category="company"> <div class="swiper-slide n-featured__slide" data-category="company">
<div class="n-featured__media"> <div class="n-featured__media">
@ -121,7 +126,7 @@
</div> </div>
</div> </div>
</div> </div>
{/hcTaglib:content}
{/volist}
</div> </div>
</div> </div>
@ -153,21 +158,19 @@
<div class="n-grid"> <div class="n-grid">
{hcTaglib:contentPage2 cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,content,description,create_time" subField="" name="hc_content" limit="6" item="content_sub22" sort="sort asc"}
{hcTaglib:contentPage2 cid="$current_cate_id" mainField="id,category_id,title,sub_title,thumbnail,content,description,create_time" subField="" name="hc_content" limit="6" item="content_sub22" sort="sort asc" isTop="2"}
{/hcTaglib:contentPage2} {/hcTaglib:contentPage2}
{volist name="hc_content" id="vo_content"} {volist name="hc_content" id="vo_content"}
{php} {php}
$description = $vo_content['description'] ?? '';
$create_time_int = $vo_content['create_time'] ?? '';
$content = $hc_content['content'] ?? '';
$description = $hc_content['description'] ?? '';
$create_time_int = $hc_content['create_time'] ?? '';
$create_time_str = ''; $create_time_str = '';
if(!empty($create_time_int)){ if(!empty($create_time_int)){
if (is_numeric($create_time_int)) {
$create_time_str = date('Y-m-d', (int)$create_time_int);
} else {
$create_time_str = $create_time_int;
}
$create_time_str = date('Y-m-d', $create_time_int);
} }
// dd($hc_content->toArray());exit;
{/php} {/php}
<article class="n-card" data-category="insight"> <article class="n-card" data-category="insight">

22
public/themes/website/1/zh/demo/solution.html

@ -154,13 +154,21 @@
{if !empty($sub_cates[4])} {if !empty($sub_cates[4])}
<section class="sl-clients section__wrap" id="clients" data-header-dark> <section class="sl-clients section__wrap" id="clients" data-header-dark>
<h2 class="sl-clients__title">{$sub_cates[4]['title'] ?? ''}</h2> <h2 class="sl-clients__title">{$sub_cates[4]['title'] ?? ''}</h2>
<div class="sl-clients__grid">
{php}
$contents = getContentByCategory($sub_cates[4]['id'], $seller_id, 6, 'sort asc', ['thumbnail', 'category']);
{/php}
{volist name="contents" id="vo"}
<div class="sl-clients__item"><img src="{$vo['thumbnail']['url'] ?? ''}" alt="" width="252" height="160" loading="lazy" /></div>
{/volist}
{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> </div>
</section> </section>
{/if} {/if}

2
public/themes/website/1/zh/demo/solution2.html

@ -199,7 +199,7 @@ $current_cate_id = $current_cate['id'] ?? 0;
</section> </section>
{/if} {/if}
{if !empty($sub_cates[5])} {if !empty($sub_cates[5])}
<!-- 其他解决方案 -->
<section class="sl2-more section__wrap" id="more" data-header-dark> <section class="sl2-more section__wrap" id="more" data-header-dark>
<div class="sl2-more__head"> <div class="sl2-more__head">
<h2 class="sl2-more__title">{$sub_cates[5]['title'] ?? ''}</h2> <h2 class="sl2-more__title">{$sub_cates[5]['title'] ?? ''}</h2>

Loading…
Cancel
Save