Browse Source

feat(category): 添加子栏目数量获取功能并优化下载页面结构

- 新增 getCategoryChildrenCount 函数用于获取子栏目数量
- 更新下载页面静态资源路径为 /themes/dist_static/
- 将下载页面标题和描述改为动态获取当前分类信息
- 实现分类层级结构的动态渲染和子分类下拉菜单
- 添加条件判断处理无子分类的平级展示逻辑
- 集成 hcTaglib 子分类标签库实现动态分类展示
- 优化页面结构支持无限级分类的数据处理需求
master
zhangf@suq.cn 3 weeks ago
parent
commit
bcaa6c2d2d
  1. 14
      app/common.php
  2. 39
      public/themes/website/1/zh/demo/download.html

14
app/common.php

@ -1600,3 +1600,17 @@ if (!function_exists('getMixContentBySolutionName')) {
} }
} }
if (!function_exists('getCategoryChildrenCount')) {
/**
* 获取子栏目数量(支持无限级)
* @param int $id 栏目ID
* @param array $data 栏目数据(一维数组)
* @return int 子栏目数量
*/
function getCategoryChildrenCount($id)
{
$categoryModel = new \app\model\Category();
return $categoryModel->where('parent_id', $id)->count();
}
}

39
public/themes/website/1/zh/demo/download.html

@ -43,48 +43,47 @@
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> 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/aos@2.3.4/dist/aos.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
<script type="module" crossorigin src="./static/js/download.js"></script>
<link rel="modulepreload" crossorigin href="./static/js/common.js">
<link rel="stylesheet" crossorigin href="./static/css/common.css">
<link rel="stylesheet" crossorigin href="./static/css/download.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/download.css">
</head> </head>
<body> <body>
<!-- 引入公共头部 --> <!-- 引入公共头部 -->
<!-- header --> <!-- header -->
{include file="components/header"} {include file="components/header"}
<main class="main-download" data-header-dark data-nav="服务支持"> <main class="main-download" data-header-dark data-nav="服务支持">
<div class="d-page section__wrap"> <div class="d-page section__wrap">
<div class="d-head"> <div class="d-head">
<h1 class="d-head__title">下载中心</h1>
<p class="d-head__desc">最新企业介绍及产品相关资料</p>
<h1 class="d-head__title">{$current_cate.title}</h1>
<p class="d-head__desc">{$current_cate.description}</p>
</div> </div>
<div class="d-toolbar"> <div class="d-toolbar">
<div class="d-tabs" role="tablist" aria-label="资料分类"> <div class="d-tabs" role="tablist" aria-label="资料分类">
<button type="button" class="d-tabs__item is-active" role="tab" aria-selected="true">全部</button> <button type="button" class="d-tabs__item is-active" role="tab" aria-selected="true">全部</button>
{volist name="sub_cates" id="vo"}
{php}
$count = getCategoryChildrenCount($vo['id']);
{/php}
{if $count > 0}
<div class="d-tabs__group"> <div class="d-tabs__group">
<button type="button" class="d-tabs__item" role="tab" aria-selected="false" aria-expanded="false" data-dropdown-trigger> <button type="button" class="d-tabs__item" role="tab" aria-selected="false" aria-expanded="false" data-dropdown-trigger>
<span>样本手册</span>
<span>{$vo.title}</span>
<svg class="d-tabs__chevron" viewBox="0 0 11.2728 6.90918" width="11" height="7" fill="none" aria-hidden="true"> <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" /> <path d="M0.636353 0.636272L5.63635 5.63627L10.6364 0.63623" stroke="currentColor" stroke-width="1.8" />
</svg> </svg>
</button> </button>
{hcTaglib:subcategory pid="$vo.id" item="child" sort=""}
<div class="d-tabs__dropdown" data-dropdown hidden> <div class="d-tabs__dropdown" data-dropdown hidden>
<button type="button" class="d-tabs__dropdown-item is-active">伺服系统</button>
<button type="button" class="d-tabs__dropdown-item">控制产品</button>
<button type="button" class="d-tabs__dropdown-item">变频/软起</button>
<button type="button" class="d-tabs__dropdown-item">纺织智控</button>
<button type="button" class="d-tabs__dropdown-item">缝制智控</button>
<button type="button" class="d-tabs__dropdown-item">行业样本</button>
<button type="button" class="d-tabs__dropdown-item">物联网产品</button>
<button type="button" class="d-tabs__dropdown-item is-active">{$child.title}</button>
</div> </div>
{/hcTaglib:subcategory}
</div> </div>
<button type="button" class="d-tabs__item" role="tab" aria-selected="false">图纸下载</button>
<button type="button" class="d-tabs__item" role="tab" aria-selected="false">软件下载</button>
<button type="button" class="d-tabs__item" role="tab" aria-selected="false">其他下载</button>
<button type="button" class="d-tabs__item" role="tab" aria-selected="false" data-tab="csr">社会责任报告</button>
{else}
<button type="button" class="d-tabs__item" role="tab" aria-selected="false">{$vo.title}</button>
{/if}
{/volist}
</div> </div>
<form class="s-search" action="#" method="get" role="search" onsubmit="return false;"> <form class="s-search" action="#" method="get" role="search" onsubmit="return false;">
<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" /> <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" />

Loading…
Cancel
Save