diff --git a/.gitea/workflows/dev-ci.yaml b/.gitea/workflows/dev-ci.yaml
new file mode 100644
index 00000000..0960cada
--- /dev/null
+++ b/.gitea/workflows/dev-ci.yaml
@@ -0,0 +1,26 @@
+name: Gitea Actions Official-website
+run-name: Deploy to ${{ inputs.deploy_target }} by @${{ gitea.actor }}
+on:
+ push:
+ branches:
+ - dev
+
+jobs:
+ deploy-dev:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Setup SSH
+ run: |
+ mkdir -p ~/.ssh
+ echo "${{ secrets.SERVER_SSH_KEY }}" > ~/.ssh/id_rsa
+ chmod 600 ~/.ssh/id_rsa
+ ssh-keyscan -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts
+ - name: Deploy application
+ run: |
+ ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} << 'EOF'
+ set -e
+ cd /www/wwwroot/dev.ow.f2b211.com
+
+ # 拉取最新代码
+ git pull --rebase
+ EOF
diff --git a/.gitignore b/.gitignore
index 9991ab61..e3b99a3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,4 +22,4 @@ public/.well-known
/vendor
/.settings
/.buildpath
-/.project
\ No newline at end of file
+/.project
diff --git a/.zed/settings.json b/.zed/settings.json
new file mode 100644
index 00000000..01ed5113
--- /dev/null
+++ b/.zed/settings.json
@@ -0,0 +1,24 @@
+// Folder-specific settings
+//
+// For a full list of overridable settings, and general information on folder-specific settings,
+// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
+{
+ "languages": {
+ "PHP": {
+ "language_servers": ["intelephense","!phpactor"]
+ }
+ },
+ "lsp": {
+ "intelephense": {
+ "initialization_options": {
+ "stubs": [
+ "wordpress",
+ "laravel",
+ "symfony",
+ "codeigniter",
+ "thinkphp"
+ ]
+ }
+ }
+ }
+}
diff --git a/app/admin/controller/v1/BannerItem.php b/app/admin/controller/v1/BannerItem.php
index 3b196d14..8b94cb27 100644
--- a/app/admin/controller/v1/BannerItem.php
+++ b/app/admin/controller/v1/BannerItem.php
@@ -101,6 +101,8 @@ class BannerItem
'rel_prod_cate_id',
'title',
'title_txt_color',
+ 'short_title',
+ 'short_title_txt_color',
'desc',
'desc_txt_color',
'type',
@@ -156,6 +158,8 @@ class BannerItem
'rel_prod_cate_id',
'title',
'title_txt_color',
+ 'short_title',
+ 'short_title_txt_color',
'desc',
'desc_txt_color',
'type',
@@ -208,7 +212,7 @@ class BannerItem
Log::error(sprintf('%s:%s %s', $th->getFile(), $th->getLine(), $th->getMessage()));
return error('操作失败');
}
-
+
return success('操作成功');
}
@@ -240,6 +244,7 @@ class BannerItem
'banner_name' => '分类名称',
'title' => '横幅名称',
'title_txt_color' => '横幅名称字体颜色',
+ 'short_title' => '横幅简称',
'desc' => '描述',
'desc_txt_color' => '描述字体颜色',
'type' => '前台显示类型',
@@ -271,6 +276,7 @@ class BannerItem
'banner.name' => 'banner_name',
'item.title',
'item.title_txt_color',
+ 'item.short_title',
'item.desc',
'item.desc_txt_color',
'item.type',
diff --git a/app/common/model/SysBannerItemBaseModel.php b/app/common/model/SysBannerItemBaseModel.php
index ba6933ee..37237b98 100644
--- a/app/common/model/SysBannerItemBaseModel.php
+++ b/app/common/model/SysBannerItemBaseModel.php
@@ -17,22 +17,24 @@ class SysBannerItemBaseModel extends BaseModel
// 字段信息
protected $schema = [
- 'id' => 'int',
- 'banner_id' => 'int',
- 'title' => 'string',
- 'title_txt_color' => 'string',
- 'desc' => 'string',
- 'desc_txt_color' => 'string',
- 'type' => 'string',
- 'image' => 'string',
- 'extra_image' => 'string',
- 'video' => 'string',
- 'link_to' => 'string',
- 'link' => 'string',
- 'sort' => 'int',
- 'status' => 'int',
- 'created_at' => 'datetime',
- 'updated_at' => 'datetime',
- 'deleted_at' => 'datetime'
+ 'id' => 'int',
+ 'banner_id' => 'int',
+ 'title' => 'string',
+ 'title_txt_color' => 'string',
+ 'short_title' => 'string',
+ 'short_title_txt_color' => 'string',
+ 'desc' => 'string',
+ 'desc_txt_color' => 'string',
+ 'type' => 'string',
+ 'image' => 'string',
+ 'extra_image' => 'string',
+ 'video' => 'string',
+ 'link_to' => 'string',
+ 'link' => 'string',
+ 'sort' => 'int',
+ 'status' => 'int',
+ 'created_at' => 'datetime',
+ 'updated_at' => 'datetime',
+ 'deleted_at' => 'datetime'
];
}
diff --git a/app/index/controller/TopicPowerProdline.php b/app/index/controller/TopicPowerProdline.php
new file mode 100644
index 00000000..df2fa564
--- /dev/null
+++ b/app/index/controller/TopicPowerProdline.php
@@ -0,0 +1,127 @@
+getLanguages();
+ // 输出国家/语言列表
+ if (get_platform() == 'mobile') {
+ View::assign('header_languages', $languages);
+ }
+
+ // 获取当前语言
+ $current_language = $this->getCurrentLanguage($languages);
+ if (!empty($current_language)) {
+ $this->lang_id = $current_language['id'];
+ }
+
+ // 获取产品分类
+ $categorys = $this->getProductCategory($this->lang_id);
+ // 输出产品分类
+ View::assign('header_categorys', $categorys);
+
+ // 获取系统配置
+ $configs = $this->getSysConfig($this->lang_id, ['basic', 'contact', 'media']);
+ $this->basic_config = $configs['basic'];
+ // 输出系统配置
+ View::assign('basic_config', $configs['basic']);
+ View::assign('contact_config', $configs['contact']);
+ View::assign('media_config', $configs['media']);
+
+ // 获取底部导航
+ $footer_navigation = $this->getNavigation('NAV_67f60be43df8d', $this->lang_id);
+ // 输出底部导航
+ View::assign('footer_navigation', $footer_navigation);
+ }
+
+ /**
+ * 专题 - 电力品线首页
+ */
+ public function index()
+ {
+ $banners = SysBannerModel::with([
+ 'items' => function ($query) {
+ $query->withoutField(['sort', 'created_at', 'updated_at', 'deleted_at'])
+ ->order(['sort' => 'asc', 'id' => 'desc'])
+ ->enabled(true);
+ }
+ ])
+ ->atPlatform(request()->from)
+ ->uniqueLabel([
+ 'BANNER_691e729f2428d',
+ 'BANNER_691e732e4ad69',
+ 'BANNER_691e752d2bbe2',
+ 'BANNER_691e75561c4d3',
+ 'BANNER_691e75ec9391c',
+ 'BANNER_691e7616545bf',
+ 'BANNER_691e763fc08f4',
+ 'BANNER_691e765a27eba',
+ 'BANNER_691e76b6af393',
+ ])
+ ->language($this->lang_id)
+ ->enabled(true)
+ ->order(['sort' => 'asc', 'id' => 'desc'])
+ ->select();
+
+ $data = [];
+ if (!$banners->isEmpty()) {
+ $banners_map = [];
+ foreach ($banners as $banner) {
+ $banners_map[$banner->unique_label] = $banner;
+ }
+ // 焦点轮播图
+ $focus_image = data_get($banners_map, 'BANNER_691e729f2428d')?->items->toArray();
+ if (!empty($focus_image)) $data['focus_image'] = $focus_image;
+
+ // 分类
+ $category = data_get($banners_map, 'BANNER_691e732e4ad69')?->items->toArray();
+ if (!empty($category)) $data['category'] = $category;
+
+ // 为什么选择奥睿科相关数据
+ $why_choose = data_get($banners_map, 'BANNER_691e752d2bbe2')?->items->toArray();
+ if (!empty($why_choose)) $data['why_choose'] = $why_choose;
+
+ // 差旅充
+ $travel_charger = data_get($banners_map, 'BANNER_691e75561c4d3')?->items->toArray();
+ if (!empty($travel_charger)) $data['travel_charger'] = $travel_charger;
+
+ // 家居充
+ $home_charger = data_get($banners_map, 'BANNER_691e75ec9391c')?->items->toArray();
+ if (!empty($home_charger)) $data['home_charger'] = $home_charger;
+
+ // 桌面充
+ $desktop_charger = data_get($banners_map, 'BANNER_691e7616545bf')?->items->toArray();
+ if (!empty($desktop_charger)) $data['desktop_charger'] = $desktop_charger;
+
+ // 墙充
+ $wall_charger = data_get($banners_map, 'BANNER_691e763fc08f4')?->items->toArray();
+ if (!empty($wall_charger)) $data['wall_charger'] = $wall_charger;
+
+ // 转换器
+ $converter = data_get($banners_map, 'BANNER_691e765a27eba')?->items->toArray();
+ if (!empty($converter)) $data['converter'] = $converter;
+
+ // 底部介绍
+ $footer_info = data_get($banners_map, 'BANNER_691e76b6af393')?->items->toArray();
+ if (!empty($footer_info)) $data['footer_info'] = $footer_info;
+ }
+ View::assign('data', $data);
+
+ return View::fetch('index');
+ }
+}
diff --git a/app/index/route/route.php b/app/index/route/route.php
index bfb9c03b..52389cb9 100644
--- a/app/index/route/route.php
+++ b/app/index/route/route.php
@@ -105,6 +105,12 @@ Route::group('topic', function () {
// 专题-Nas软件下载页
Route::get('download', 'TopicNas/download');
});
+
+ // 专题 - 电力品线
+ Route::group("power_prodline", function() {
+ // 专题 - 电力品线首页
+ Route::get('index', 'TopicPowerProdline/index');
+ });
});
// 数据迁移
diff --git a/app/index/view/mobile/topic_power_prodline/index.html b/app/index/view/mobile/topic_power_prodline/index.html
new file mode 100644
index 00000000..32876a3b
--- /dev/null
+++ b/app/index/view/mobile/topic_power_prodline/index.html
@@ -0,0 +1,749 @@
+{extend name="public/base" /}
+{block name="style"}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{/block}
+{block name="header"}
+
+{/block}
+{block name="main"}
+
+
+
+ {notempty name="data.focus_image"}
+
+ {volist name="data.focus_image" id="fo"}
+
+
+
+ {/volist}
+
+
+ {/notempty}
+
+
+{notempty name="data.category"}
+
+{/notempty}
+
+{notempty name="data.why_choose"}
+
+ {assign name="why_choose_title" value=":array_shift($data.why_choose)" /}
+
{$why_choose_title.title|default=''}
+
+ {volist name="data.why_choose" id="ch"}
+
+
+
+

+
+
+
+
$ch.title_txt_color])}>{$ch.title}
+

+
+
$ch.short_title_txt_color])}>{$ch.short_title}
+
{$ch.desc|raw}
+
+
+
+ {/volist}
+
+
+{/notempty}
+
+{notempty name="data.travel_charger"}
+
+ {assign name="tc_title" value=":array_shift($data.travel_charger)" /}
+
+
{$tc_title.title|default=''}
+
{$tc_title.short_title|default=''}
+
+
+ {assign name="tc_first_section_lf" value=":array_shift($data.travel_charger)" /}
+ {notempty name="tc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="tc_first_section_lr" value=":array_shift($data.travel_charger)" /}
+ {notempty name="tc_first_section_lr"}
+
+

+
+
+
+ {/notempty}
+
+ {assign name="tc_second_section" value=":array_splice($data.travel_charger, 0, 4)" /}
+ {notempty name="tc_second_section"}
+
+ {assign name="tc_three_section" value=":array_shift($data.travel_charger)" /}
+ {notempty name="tc_three_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+ {/notempty}
+
+{/notempty}
+
+{notempty name="data.home_charger"}
+
+ {assign name="hc_title" value=":array_shift($data.home_charger)" /}
+
+
{$hc_title.title|default=''}
+
{$hc_title.short_title|default=''}
+
+
+ {assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /}
+ {notempty name="hc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="hc_first_section_lr" value=":array_shift($data.home_charger)" /}
+ {notempty name="hc_first_section_lr"}
+
+

+
+
+
+ {/notempty}
+
+ {assign name="hc_second_section" value=":array_splice($data.home_charger, 0, 4)" /}
+ {notempty name="hc_second_section"}
+
+ {/notempty}
+ {assign name="hc_three_section" value=":array_shift($data.home_charger)" /}
+ {notempty name="hc_three_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+{/notempty}
+
+
+ {assign name="dc_title" value=":array_shift($data.desktop_charger)" /}
+
+
{$dc_title.title|default=''}
+
{$dc_title.short_title|default=''}
+
+
+ {assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /}
+ {notempty name="dc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="dc_first_section_lr" value=":array_shift($data.desktop_charger)" /}
+ {notempty name="dc_first_section_lr"}
+
+

+
+
+
+
+ {/notempty}
+
+ {assign name="dc_second_section" value=":array_splice($data.desktop_charger, 0, 2)" /}
+ {notempty name="dc_second_section"}
+
+ {/notempty}
+ {assign name="dc_three_section" value=":array_shift($data.desktop_charger)" /}
+ {notempty name="dc_three_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+
+{notempty name="data.wall_charger"}
+
+ {assign name="wc_title" value=":array_shift($data.wall_charger)" /}
+
+
{$wc_title.title|default=''}
+
{$wc_title.short_title|default=''}
+
+
+ {assign name="wc_first_section_lf" value=":array_shift($data.wall_charger)" /}
+ {notempty name="wc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="wc_first_section_lr" value=":array_shift($data.wall_charger)" /}
+ {notempty name="wc_first_section_lr"}
+
+

+
+
+
+ {/notempty}
+
+ {assign name="wc_more_section" value=":array_shift($data.wall_charger)" /}
+ {notempty name="wc_more_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+{/notempty}
+{notempty name="data.converter"}
+
+
+ {assign name="ct_title" value=":array_shift($data.converter)" /}
+
+
{$ct_title.title|default=''}
+
{$ct_title.short_title|default=''}
+
+ {assign name="ct_more_section" value=":array_pop($data.converter)" /}
+ {assign name="ct_chunk_section" value=":array_chunk($data.converter, 2)" /}
+ {assign name="ct_chunk_section_len" value=":count($ct_chunk_section)" /}
+ {volist name="ct_chunk_section" id="cts" key="k"}
+
+ {assign name="cts_lf" value=":array_shift($cts)" /}
+ {notempty name="cts_lf"}
+
+
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="cts_lr" value=":array_shift($cts)" /}
+ {notempty name="cts_lr"}
+
+

+
+
+
+
+ {/notempty}
+
+ {neq name="k" value="$ct_chunk_section_len"}
+
+ {/neq}
+ {/volist}
+ {notempty name="ct_more_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+{/notempty}
+{notempty name="data.footer_info"}
+
+
+{/notempty}
+
+
+{/block}
+{block name="script"}
+
+{/block}
diff --git a/app/index/view/pc/topic_power_prodline/index.html b/app/index/view/pc/topic_power_prodline/index.html
new file mode 100644
index 00000000..9c832509
--- /dev/null
+++ b/app/index/view/pc/topic_power_prodline/index.html
@@ -0,0 +1,586 @@
+{extend name="public/nas_base" /}
+{block name="style"}
+
+
+
+
+
+
+
+
+
+{/block}
+{block name="header"}
+
+{/block}
+{block name="main"}
+
+
+
+ {notempty name="data.focus_image"}
+
+ {volist name="data.focus_image" id="fo"}
+
+
+
+ {/volist}
+
+
+ {/notempty}
+
+
+{notempty name="data.category"}
+
+{/notempty}
+
+{notempty name="data.why_choose"}
+
+ {assign name="why_choose_title" value=":array_shift($data.why_choose)" /}
+
{$why_choose_title.title|default=''}
+
+ {volist name="data.why_choose" id="ch"}
+
+
+
+

+
+
+
+
$ch.title_txt_color])}>{$ch.title}
+

+
+
$ch.short_title_txt_color])}>{$ch.short_title}
+
{$ch.desc|raw}
+
+
+
+ {/volist}
+
+
+{/notempty}
+
+{notempty name="data.travel_charger"}
+
+ {assign name="tc_title" value=":array_shift($data.travel_charger)" /}
+
+
{$tc_title.title|default=''}
+
{$tc_title.short_title|default=''}
+
+
+ {assign name="tc_first_section_lf" value=":array_shift($data.travel_charger)" /}
+ {notempty name="tc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="tc_first_section_lr" value=":array_shift($data.travel_charger)" /}
+ {notempty name="tc_first_section_lr"}
+
+

+
+
+ {/notempty}
+
+ {assign name="tc_second_section" value=":array_splice($data.travel_charger, 0, 4)" /}
+ {notempty name="tc_second_section"}
+
+ {assign name="tc_three_section" value=":array_shift($data.travel_charger)" /}
+ {notempty name="tc_three_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+ {/notempty}
+
+{/notempty}
+
+{notempty name="data.home_charger"}
+
+ {assign name="hc_title" value=":array_shift($data.home_charger)" /}
+
+
{$hc_title.title|default=''}
+
{$hc_title.short_title|default=''}
+
+
+ {assign name="hc_first_section_lf" value=":array_shift($data.home_charger)" /}
+ {notempty name="hc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="hc_first_section_lr" value=":array_shift($data.home_charger)" /}
+ {notempty name="hc_first_section_lr"}
+
+

+
+
+ {/notempty}
+
+ {assign name="hc_second_section" value=":array_splice($data.home_charger, 0, 4)" /}
+ {notempty name="hc_second_section"}
+
+ {/notempty}
+ {assign name="hc_three_section" value=":array_shift($data.home_charger)" /}
+ {notempty name="hc_three_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+{/notempty}
+
+
+ {assign name="dc_title" value=":array_shift($data.desktop_charger)" /}
+
+
{$dc_title.title|default=''}
+
{$dc_title.short_title|default=''}
+
+
+ {assign name="dc_first_section_lf" value=":array_shift($data.desktop_charger)" /}
+ {notempty name="dc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="dc_first_section_lr" value=":array_shift($data.desktop_charger)" /}
+ {notempty name="dc_first_section_lr"}
+
+

+
+
+
+ {/notempty}
+
+
+ {assign name="dc_second_section" value=":array_splice($data.desktop_charger, 0, 2)" /}
+ {notempty name="dc_second_section"}
+
+ {/notempty}
+ {assign name="dc_three_section" value=":array_shift($data.desktop_charger)" /}
+ {notempty name="dc_three_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+
+{notempty name="data.wall_charger"}
+
+ {assign name="wc_title" value=":array_shift($data.wall_charger)" /}
+
+
{$wc_title.title|default=''}
+
{$wc_title.short_title|default=''}
+
+
+ {assign name="wc_first_section_lf" value=":array_shift($data.wall_charger)" /}
+ {notempty name="wc_first_section_lf"}
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="wc_first_section_lr" value=":array_shift($data.wall_charger)" /}
+ {notempty name="wc_first_section_lr"}
+
+

+
+
+ {/notempty}
+
+ {assign name="wc_more_section" value=":array_shift($data.wall_charger)" /}
+ {notempty name="wc_more_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+{/notempty}
+{notempty name="data.converter"}
+
+
+ {assign name="ct_title" value=":array_shift($data.converter)" /}
+
+
{$ct_title.title|default=''}
+
{$ct_title.short_title|default=''}
+
+ {assign name="ct_more_section" value=":array_pop($data.converter)" /}
+ {assign name="ct_chunk_section" value=":array_chunk($data.converter, 2)" /}
+ {assign name="ct_chunk_section_len" value=":count($ct_chunk_section)" /}
+ {volist name="ct_chunk_section" id="cts" key="k"}
+
+ {assign name="cts_lf" value=":array_shift($cts)" /}
+ {notempty name="cts_lf"}
+
+
+
+
+
+
+

+
+
+ {/notempty}
+ {assign name="cts_lr" value=":array_shift($cts)" /}
+ {notempty name="cts_lr"}
+
+

+
+
+ {/notempty}
+
+ {neq name="k" value="$ct_chunk_section_len"}
+
+ {/neq}
+ {/volist}
+ {notempty name="ct_more_section"}
+
+
+ 查看更多
+
+
+ {/notempty}
+
+{/notempty}
+{notempty name="data.footer_info"}
+
+
+{/notempty}
+
+
+{/block}
+{block name="script"}
+
+{/block}
diff --git a/database/migrations/20241231020620_create_sys_banner_item.php b/database/migrations/20241231020620_create_sys_banner_item.php
index 37fe926f..248d9375 100644
--- a/database/migrations/20241231020620_create_sys_banner_item.php
+++ b/database/migrations/20241231020620_create_sys_banner_item.php
@@ -32,6 +32,8 @@ class CreateSysBannerItem extends Migrator
$table->addColumn('banner_id', 'integer', ['null' => false, 'comment' => '所属Banner ID'])
->addColumn('title', 'string', ['limit' => 256, 'null' => false, 'comment' => '标题'])
->addColumn('title_txt_color', 'string', ['limit' => 7, 'null' => false, 'default' => '', 'comment' => '标题文本颜色'])
+ ->addColumn('short_title', 'string', ['limit' => 255, 'null' => true, 'comment' => 'banner简称'])
+ ->addColumn('short_title_txt_color', 'string', ['limit' => 7, 'null' => true, 'comment' => 'banner简称文本颜色'])
->addColumn('desc', MysqlAdapter::PHINX_TYPE_TEXT, ['null' => true, 'default' => null, 'comment' => '描述'])
->addColumn('desc_txt_color', 'string', ['limit' => 7, 'null' => false, 'default' => '', 'comment' => '描述文本颜色'])
->addColumn('type', 'string', ['limit' => 16, 'null' => false, 'comment' => '类型: image为图片, video为视频'])
diff --git a/public/gitea_webhook.php b/public/gitea_webhook.php
deleted file mode 100644
index b8e2fe11..00000000
--- a/public/gitea_webhook.php
+++ /dev/null
@@ -1,54 +0,0 @@
-&1', $result);
-
- var_export($result);exit;
-} catch (\Throwable $th) {
- var_export($th->getMessage());
-}
\ No newline at end of file
diff --git a/public/static/index/mobile/css/topic_power_prodline/advantage.css b/public/static/index/mobile/css/topic_power_prodline/advantage.css
new file mode 100644
index 00000000..79c71172
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/advantage.css
@@ -0,0 +1,320 @@
+/* 核心模块:固定90%宽度(PC端),优化移动端边距 */
+.advantage-section {
+ width: 90%;
+ margin: 0 auto;
+ padding: 4rem 0 3rem 0;
+ position: relative;
+ z-index: 1;
+ height: auto !important;
+ min-height: auto !important;
+}
+
+/* 标题容器:恢复原有居中样式 */
+.advantage-section__title {
+ font-size: clamp(1.5rem, 3vw, 2rem);
+ font-weight: 700;
+ text-align: center;
+ color: #333;
+ line-height: 1.2;
+ margin-bottom: clamp(1.5rem, 2vw, 2.5rem);
+}
+
+/* 列表容器:强制设置高度相关属性,确保内容正常显示 */
+.advantage-section__list {
+ display: flex;
+ justify-content: center;
+ align-items: flex-start;
+ gap: clamp(0.1rem, 0.3vw, 0.8rem);
+ width: 100% !important;
+ flex-wrap: nowrap;
+ overflow: visible !important; /* 改为visible确保内容显示 */
+ padding: 0 !important;
+ /* 强制设置高度相关属性 */
+ height: auto !important;
+ min-height: 1px !important; /* 确保容器至少有高度 */
+ position: relative !important; /* 建立BFC */
+}
+
+/* 卡片包裹容器:确保为块级元素并继承高度 */
+.advantage-card-wrap {
+ display: block !important;
+ width: 100% !important;
+ height: auto !important;
+ min-height: 1px !important;
+}
+
+/* 卡片核心:高度自适应内容 */
+.advantage-card {
+ flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
+ min-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
+ max-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
+ border-radius: 0.5rem;
+ overflow: hidden;
+ box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1);
+ transition: transform 0.3s ease;
+ cursor: pointer;
+ background: #fff;
+ position: relative;
+ z-index: 1;
+ height: auto !important; /* 高度自适应内容 */
+ display: flex;
+ flex-direction: column;
+}
+
+/* 图片容器:设置为1:1比例 */
+.advantage-card__img {
+ width: 100%;
+ aspect-ratio: 1 / 1; /* 1:1图片比例 */
+ object-fit: cover;
+ background-color: #f9f9f9;
+ display: block;
+ flex-shrink: 0;
+}
+
+/* 文字区域:flex垂直分布,确保标题和描述都垂直居中 */
+.advantage-card__content {
+ width: 100%;
+ padding: clamp(0.3rem, 0.4vw, 0.75rem);
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ flex-grow: 1;
+ gap: 4px;
+}
+
+/* 标题容器:水平居中+内部两端对齐,同时垂直居中 */
+.advantage-card__heading-wrap {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: clamp(0.3rem, 0.5vw, 0.5rem);
+ width: 80%;
+}
+
+/* 卡片标题:居左显示 */
+.advantage-card__heading {
+ font-size: clamp(0.85rem, 1.5vw, 1.4rem);
+ font-weight: 600;
+ color: #333;
+ line-height: 1.3;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+/* 卡片标题右侧箭头:自适应大小,与标题协调 */
+.card-arrow {
+ color: #409eff;
+ transition: transform 0.3s ease;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ /* 箭头大小根据标题字体大小自适应 */
+ width: clamp(1rem, 1.8vw, 1.5rem);
+ height: clamp(1rem, 1.8vw, 1.5rem);
+ font-size: clamp(0.7rem, 1.2vw, 1.1rem);
+ flex-shrink: 0;
+}
+
+/* 卡片hover时箭头动画 */
+.advantage-card:hover .card-arrow {
+ transform: translateX(3px);
+}
+
+/* 描述文字:水平+垂直居中,与标题容器对齐 */
+.advantage-card__description {
+ font-size: clamp(0.6rem, 0.9vw, 0.9rem);
+ color: #78787a;
+ line-height: 1.2;
+ white-space: normal;
+ overflow: hidden;
+ width: 80%;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+
+}
+
+/* 卡片hover效果 */
+.advantage-card:hover {
+ transform: scale(1.03);
+}
+
+/* 箭头容器:自适应尺寸 */
+.arrow {
+ position: relative;
+ /* 箭头尺寸跟随card-arrow自适应 */
+ width: 100%;
+ height: 100%;
+}
+
+/* 箭头线条基础样式:自适应粗细 */
+.arrow::before,
+.arrow::after {
+ content: '';
+ position: absolute;
+ background-color: #fff;
+ border-radius: clamp(0.05rem, 0.1vw, 0.1rem);
+ /* 线条粗细自适应 */
+ height: clamp(0.08rem, 0.15vw, 0.12rem);
+}
+
+/* 右箭头:自适应长度 */
+.arrow-right::before {
+ width: clamp(0.3rem, 0.7vw, 0.55rem);
+ top: 50%;
+ left: 0;
+ transform: translateY(-50%) rotate(45deg);
+ transform-origin: right center;
+}
+
+.arrow-right::after {
+ width: clamp(0.3rem, 0.7vw, 0.55rem);
+ top: 50%;
+ left: 0;
+ transform: translateY(-50%) rotate(-45deg);
+ transform-origin: right center;
+}
+
+/* 左箭头:自适应长度 */
+.arrow-left::before {
+ width: clamp(0.3rem, 0.7vw, 0.55rem);
+ top: 50%;
+ right: 0;
+ transform: translateY(-50%) rotate(-45deg);
+ transform-origin: left center;
+}
+
+.arrow-left::after {
+ width: clamp(0.3rem, 0.7vw, 0.55rem);
+ top: 50%;
+ right: 0;
+ transform: translateY(-50%) rotate(45deg);
+ transform-origin: left center;
+}
+
+/* iPad Pro适配:和移动端一样一行展示2个,最后一个隐藏,字体放大 */
+@media (max-width: 1024px) and (min-width: 768px) {
+ .advantage-section__list {
+ display: block !important;
+ width: 100% !important;
+ height: auto !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ }
+
+ .advantage-card-wrap {
+ width: calc(50% - 7.5px) !important;
+ float: left !important;
+ margin: 0 0 15px 0 !important;
+ height: auto !important;
+ }
+
+ .advantage-card-wrap:nth-child(odd) {
+ margin-right: 15px !important;
+ }
+
+ .advantage-card {
+ width: 100% !important;
+ min-width: 100% !important;
+ max-width: 100% !important;
+ flex: none !important;
+ height: auto !important;
+ display: flex;
+ flex-direction: column;
+ }
+
+ /* 只显示前4个卡片,最后一个隐藏 */
+ .advantage-card-wrap:nth-child(n+5) {
+ display: none !important;
+ }
+
+ .advantage-card__content {
+ width: 100%;
+ flex-grow: 1;
+ padding: clamp(1rem, 3vw, 1.5rem) 0;
+ }
+
+ .advantage-card__img {
+ aspect-ratio: 1 / 1;
+ max-height: 330px;
+ }
+
+ /* 平板端字体放大 */
+ .advantage-card__heading {
+ font-size: clamp(1.1rem, 2vw, 1.6rem);
+ }
+
+ .advantage-card__description {
+ font-size: clamp(0.85rem, 1.3vw, 1.1rem);
+
+ }
+
+ .card-arrow {
+ width: clamp(1.2rem, 2vw, 1.7rem);
+ height: clamp(1.2rem, 2vw, 1.7rem);
+ font-size: clamp(0.9rem, 1.5vw, 1.3rem);
+ }
+}
+
+/* 移动端布局调整:彻底修复高度为0问题 */
+@media (max-width: 767px) {
+ /* 使用block布局+浮动确保高度正常 */
+ .advantage-section__list {
+ display: block !important;
+ width: 100% !important;
+ height: auto !important;
+ overflow: hidden !important;
+ padding: 0 !important;
+ }
+
+ /* 卡片包裹容器:使用浮动实现一行2个 */
+ .advantage-card-wrap {
+ width: calc(50% - 7.5px) !important;
+ float: left !important;
+ margin: 0 0 15px 0 !important;
+ height: auto !important;
+ }
+
+ /* 偶数个卡片添加右边距 */
+ .advantage-card-wrap:nth-child(odd) {
+ margin-right: 15px !important;
+ }
+
+ /* 卡片尺寸调整 */
+ .advantage-card {
+ width: 100% !important;
+ min-width: 100% !important;
+ max-width: 100% !important;
+ flex: none !important;
+ height: auto !important;
+ display: flex;
+ flex-direction: column;
+ }
+
+ /* 只显示前4个卡片 */
+ .advantage-card-wrap:nth-child(n+5) {
+ display: none !important;
+ }
+
+ .advantage-card__img {
+ aspect-ratio: 1 / 1;
+ }
+
+ .advantage-card__content {
+ flex-grow: 1;
+ padding: clamp(1rem, 3vw, 1.5rem) 0; /* 平板端底部内边距稍大 */
+ }
+}
+
+/* 超小屏进一步优化 */
+@media (max-width: 374px) {
+ .advantage-card-wrap {
+ width: calc(50% - 5px) !important;
+ }
+
+ .advantage-card-wrap:nth-child(odd) {
+ margin-right: 10px !important;
+ }
+}
\ No newline at end of file
diff --git a/public/static/index/mobile/css/topic_power_prodline/footer.css b/public/static/index/mobile/css/topic_power_prodline/footer.css
new file mode 100644
index 00000000..2f41ada5
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/footer.css
@@ -0,0 +1,11 @@
+.footer {
+ width: 100%;
+ padding: 3rem 0;
+}
+.footer-img {
+ width: 90%;
+ margin: 0 auto;
+}
+.footer-img img {
+ width: 100%;
+}
diff --git a/public/static/index/mobile/css/topic_power_prodline/index.css b/public/static/index/mobile/css/topic_power_prodline/index.css
new file mode 100644
index 00000000..cf0b7a55
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/index.css
@@ -0,0 +1,75 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+/* 1. 根字体适配:限制最小根字体为14px,从源头避免文字过小 */
+html {
+ /* PC端(≥1024px):1rem=16px(原尺寸) */
+ font-size: 16px;
+}
+
+/* 平板端(768px~1023px):15px→16px(过渡,最小15px) */
+@media (max-width: 1023px) and (min-width: 768px) {
+ html {
+ font-size: calc(15px + (16 - 15) * (100vw - 768px) / (1023 - 768));
+ }
+}
+
+/* 移动端(320px~767px):固定14px(不随屏幕缩小而变小,避免文字<12px) */
+@media (max-width: 767px) {
+ html {
+ font-size: 14px;
+ }
+}
+
+/* 超小屏(≤320px):仍固定14px,彻底杜绝文字过小 */
+@media (max-width: 320px) {
+ html {
+ font-size: 14px;
+ }
+}
+body {
+ background: rgb(242, 243, 245);
+ /* margin:0 !important; */
+}
+a {
+ text-decoration: none;
+ display: block;
+}
+.more {
+ width: 90%;
+ margin: 0 auto;
+ display: flex;
+ justify-content: flex-end;
+ padding-top: clamp(1.5rem, 3vw, 3rem);
+}
+.more-img {
+ background: #000;
+ color: #fff;
+ font-size: clamp(0.6rem, 0.9vw, 0.9rem);
+ border-radius: clamp(0.875rem, 1.5vw, 1.125rem);
+ padding: clamp(0.1rem, 0.3vw, 0.2rem);
+ width: 5rem;
+ display: flex;
+ justify-content: center;
+}
+
+.line {
+ width: 100%;
+ height: clamp(1.5rem, 3vw, 3rem);
+}
+.header {
+ width: 100%;
+ background: #fff;
+ height: 60px;
+}
+.header-img {
+ margin: 0 auto;
+ width: 90%;
+ display: flex;
+ align-items: center;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
diff --git a/public/static/index/mobile/css/topic_power_prodline/mask.css b/public/static/index/mobile/css/topic_power_prodline/mask.css
new file mode 100644
index 00000000..fd28062e
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/mask.css
@@ -0,0 +1,79 @@
+/* 蒙版样式 - 新增触摸事件禁止 */
+.mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.7);
+ display: none;
+ justify-content: center;
+ align-items: center;
+ z-index: 9999;
+ overflow: hidden; /* 阻止蒙版自身滚动 */
+ touch-action: none; /* 禁止触摸行为 */
+ pointer-events: auto; /* 确保蒙版能接收事件 */
+}
+
+/* 蒙版内容容器 - 新增触摸事件传递控制 */
+.mask-content {
+ width: 80%;
+ height: 100%;
+ background: rgb(242, 243, 245);
+ border-radius: 12px;
+ overflow: hidden; /* 内容容器不滚动 */
+ position: relative;
+ animation: popIn 0.3s ease;
+ max-height: 90vh;
+ display: flex;
+ flex-direction: column;
+ pointer-events: auto; /* 确保内容区域能正常交互 */
+}
+
+/* 滚动内容容器 - 保持不变 */
+.mask-scroll-content {
+ flex: 1;
+ overflow-y: auto;
+ padding: 20px;
+ -webkit-overflow-scrolling: touch; /* 移动端顺滑滚动 */
+}
+
+/* 升级:同时禁止 html 和 body 滚动(关键兼容) */
+.no-scroll {
+ overflow: hidden !important;
+ position: fixed !important;
+ width: 100% !important;
+ height: 100% !important;
+}
+
+/* 其他原有样式保持不变 */
+@keyframes popIn {
+ from {
+ transform: scale(0.8);
+ opacity: 0;
+ }
+ to {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+.close-btn {
+ position: absolute;
+ top: 20px;
+ right: 20px;
+ width: 40px;
+ height: 40px;
+ background-color: rgba(0, 0, 0, 0.3);
+ border-radius: 50%;
+ color: #fff;
+ font-size: 20px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+ z-index: 10;
+}
+.close-btn:hover {
+ background-color: #ff4d4f;
+}
diff --git a/public/static/index/mobile/css/topic_power_prodline/nav.css b/public/static/index/mobile/css/topic_power_prodline/nav.css
new file mode 100644
index 00000000..b0d2342d
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/nav.css
@@ -0,0 +1,96 @@
+.nav-box {
+ display: flex;
+ justify-content: space-around;
+ width: 90%;
+ /* 平板/PC端限制最大宽度 */
+ margin: 0 auto;
+ background-color: #fff;
+ border-radius: 3.125rem;
+ /* 50px→3.125rem */
+ box-shadow: 0 0.125rem 0.9375rem rgba(0, 0, 0, 0.05);
+ /* 2px→0.125rem,15px→0.9375rem */
+ position: relative;
+ z-index: 1;
+ padding: 0.625rem 0;
+ /* 10px→0.625rem(原内边距不变) */
+ overflow: visible;
+}
+
+.nav-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 0.625rem;
+ /* 10px→0.625rem */
+ cursor: pointer;
+ padding: 0.625rem 0 1.25rem;
+ /* 10px→0.625rem,20px→1.25rem */
+ position: relative;
+ z-index: 2;
+ flex: 1;
+ min-width: 3rem;
+ /* 48px→3rem(适配14px根字体) */
+ max-width: 5rem;
+ /* 80px→5rem */
+ text-align: center;
+}
+
+.nav-item img {
+ width: 4rem;
+ height: 4rem;
+ /* 60px→3.75rem(16px基准),14px根字体下≈52.5px,仍清晰 */
+ object-fit: contain;
+ border-radius: 0.75rem;
+ /* 12px→0.75rem */
+ position: absolute;
+ top: -3.125rem;
+ /* -50px→-3.125rem(14px根字体下≈43.75px,超出效果不变) */
+ transform: translateY(0.625rem);
+ /* 10px→0.625rem */
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
+}
+
+.nav-item:hover img {
+ transform: translateY(0.3125rem);
+ /* 5px→0.3125rem */
+}
+
+.nav-item:active img {
+ transform: translateY(0.4375rem);
+ /* 7px→0.4375rem */
+ box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.06);
+}
+
+/* 关键:文字单独控制,确保最小12px */
+.nav-item p {
+ margin: 0;
+ /* PC端:15px→0.9375rem(16px根字体) */
+ font-size: 0.9375rem;
+ color: #37373e;
+ font-weight: 500;
+ position: relative;
+ z-index: 3;
+ top: 1.125rem;
+ /* 18px→1.125rem */
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ padding: 0 0.125rem;
+}
+
+/* 平板端文字:14px→0.9375rem(15px根字体下=14px) */
+@media (max-width: 1023px) and (min-width: 768px) {
+ .nav-item p {
+ font-size: 0.9375rem;
+ }
+}
+
+/* 移动端文字:强制12px(用px兜底,避免rem计算后过小) */
+@media (max-width: 767px) {
+ .nav-item p {
+ font-size: 12px;
+ /* 直接用px固定最小尺寸,优先级最高 */
+ font-size: clamp(12px, 0.857rem, 0.9375rem);
+ /* 增强版:最小12px,默认0.857rem(14px根字体下≈12px),最大0.9375rem */
+ }
+}
diff --git a/public/static/index/mobile/css/topic_power_prodline/product.css b/public/static/index/mobile/css/topic_power_prodline/product.css
new file mode 100644
index 00000000..e02139b4
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/product.css
@@ -0,0 +1,184 @@
+.product-box {
+ background: #fff;
+ padding: clamp(1.5rem, 3vw, 3rem) 0;
+ /* 产品块之间留间距 */
+}
+
+.product-title {
+ width: 90%;
+ margin: 0 auto;
+ padding-bottom: clamp(1.5rem, 3vw, 3rem);
+}
+
+.product-title-h2 {
+ font-size: clamp(1.5rem, 3vw, 2.25rem);
+ /* padding-top: clamp(1.5rem, 3vw, 3rem); */
+}
+
+.product-title-p {
+ font-size: clamp(0.875rem, 1.5vw, 1.125rem);
+ color: #646464;
+ margin-top: clamp(0.5rem, 1vw, 0.75rem);
+}
+
+/* 容器布局:两个产品通用 */
+.product-container {
+ display: flex;
+ gap: clamp(0.4rem, 1vw, 0.71rem);
+ margin: 0 auto;
+ width: 90%;
+ align-items: flex-start;
+}
+
+/* 左侧容器:两个产品通用 */
+.product-left {
+ flex: 1.8;
+ position: relative;
+ width: 100%;
+}
+
+.product-img {
+ width: 100%;
+ height: auto;
+ border-radius: 10px;
+ display: block;
+ /* 取消图片底部空隙 */
+}
+
+/* 悬浮图公共样式:两个产品尺寸完全一致(100%宽度) */
+.product-img-hover {
+ position: absolute;
+ width: 100%;
+
+ /* 两个产品悬浮图宽度相同 */
+ z-index: 1;
+}
+
+.product-img-hover img {
+ width: 100%;
+ max-width: 300px;
+ /* 图片尺寸100%,无区别 */
+ height: auto;
+ border-radius: 10px;
+}
+
+/* 第一个产品:悬浮图居中上移(仅定位差异) */
+.product-img-1 {
+ top: -10%;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+/* 第二个产品:悬浮图上右超出(仅定位差异) */
+.product-img-2 {
+ top: -10%;
+ /* 上超出 */
+ transform: none;
+ width: 108%;
+ /* 取消居中 */
+}
+
+/* 右侧容器:两个产品通用 */
+.product-right {
+ flex: 3.2;
+ position: relative;
+ border-radius: 10px;
+ overflow: hidden;
+ width: 100%;
+ background-color: #f5f5f5;
+ align-self: stretch;
+ position: relative;
+}
+
+.right-content {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ transition: opacity 0.3s ease;
+}
+
+.right-video {
+ display: none;
+}
+.video-play-btn {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ background: none;
+ border: none;
+ cursor: pointer;
+ opacity: 0;
+ transition: opacity 0.3s ease;
+ z-index: 2;
+ display: none; /* 默认隐藏 */
+}
+
+/* 播放图标默认显示,暂停图标默认隐藏 */
+.play-icon {
+ display: inline-block;
+}
+.pause-icon {
+ display: none;
+}
+
+/* .paused类时切换图标 */
+.video-play-btn.paused .play-icon {
+ display: none;
+}
+.video-play-btn.paused .pause-icon {
+ display: inline-block;
+}
+
+/* 视频显示时按钮可见 */
+.right-video[playing] ~ .video-play-btn,
+.product-right:hover .video-play-btn {
+ opacity: 1;
+ display: block;
+}
+/* PC端适配:仅微调定位参数,尺寸不变 */
+@media (min-width: 1024px) {
+ .product-container {
+ width: 90%;
+ }
+
+ .product-left {
+ flex: 2;
+ }
+
+ .product-right {
+ flex: 5;
+ }
+
+ /* 宽度保持一致,仅调定位偏移 */
+ .product-img-1 {
+ top: -11%;
+ }
+
+ .product-img-2 {
+ top: -12%;
+ }
+}
+
+/* 超小屏适配:尺寸不变,微调定位 */
+@media (max-width: 375px) {
+ .product-left {
+ flex: 1.5;
+ }
+
+ .product-right {
+ flex: 3.5;
+ }
+
+ /* 宽度仍保持一致 */
+ .product-img-1 {
+ top: -6%;
+ }
+
+ .product-img-2 {
+ top: -8%;
+ }
+}
diff --git a/public/static/index/mobile/css/topic_power_prodline/product_card.css b/public/static/index/mobile/css/topic_power_prodline/product_card.css
new file mode 100644
index 00000000..36753ce6
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/product_card.css
@@ -0,0 +1,206 @@
+.product-card-container2 {
+ display: flex;
+ flex-wrap: nowrap;
+ gap: 10px;
+ align-items: stretch;
+}
+
+/* 产品卡片样式 */
+.product-card2 {
+ box-sizing: border-box;
+ background: rgb(242, 243, 245);
+ border-radius: 8px;
+ cursor: pointer;
+ flex: 1 1 50%;
+ /* 一行2个 */
+ min-width: 180px;
+ /* 保证图片显示 */
+ /* max-width: calc(50% - 10px); */
+ /* 适配gap */
+ height: 240px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
+ display: flex;
+ text-decoration: none;
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
+ overflow: hidden;
+}
+
+/* 核心修改:文字区域相对于父盒子居中,内部内容左对齐 */
+.product-text2 {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ /* 文字区域整体水平居中(相对于product-card1) */
+ justify-content: center;
+ /* 文字区域整体垂直居中(相对于product-card1) */
+ text-align: left;
+ /* 内部文字左对齐 */
+ min-width: 70px;
+ box-sizing: border-box;
+ width: 100%;
+}
+
+/* 内部内容容器:统一承载标题、描述、链接,确保左对齐一致性 */
+.product-text-content2 {
+ width: 100%;
+ /* 继承product-text的宽度,确保左对齐范围完整 */
+ max-width: 280px;
+ /* 新增:限制最大宽度,避免PC端父容器过宽时内容排版松散 */
+}
+
+/* 标题:超出一行显示省略号(左对齐) */
+.product-card-title2 {
+ font-size: clamp(12px, 2vw, 18px);
+ font-weight: 600;
+ color: #333;
+ margin-bottom: 5px;
+ letter-spacing: 0.2px;
+ /* 超出一行省略号核心样式 */
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ /* 基于内部容器左对齐,省略号生效 */
+}
+
+/* 描述:超出2行显示省略号(左对齐) */
+.product-card-desc2 {
+ font-size: clamp(12px, 1.8vw, 14px);
+ color: #656565;
+ margin-bottom: 15px;
+ letter-spacing: 0.1px;
+ /* 超出2行显示省略号核心样式 */
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ white-space: normal;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ /* 基于内部容器左对齐 */
+ line-height: 1.4;
+ /* 优化行高,2行高度适中 */
+}
+
+/* 图片容器:确保移动端显示 */
+.product-card-img2 {
+ flex: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ min-width: 70px;
+ /* 强制保留图片区域,避免被挤压 */
+}
+
+.product-card-img2 img {
+ width: 100%;
+ height: auto;
+ max-height: 144px;
+ min-height: 80px;
+ object-fit: contain;
+ /* 保持图片比例完整,不拉伸 */
+}
+
+/* 链接图标:左对齐(基于内部容器) */
+.product-card-link2 {
+ width: 100%;
+ display: flex;
+ justify-content: flex-start;
+ /* 图标左对齐 */
+}
+
+.product-card-link2 img {
+ width: clamp(60px, 4vw, 76px);
+ margin: 0;
+ /* 清除居中margin */
+}
+
+/* hover效果 */
+.product-card2:hover {
+ transform: scale(1.03);
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
+}
+
+/* 媒体查询:平板端(768px ~ 1023px) */
+@media (max-width: 1023px) and (min-width: 768px) {
+ .product-card2 {
+ height: 224px;
+ min-width: 170px;
+ }
+ .product-text2 {
+ padding-left: 20px;
+ }
+ .product-card-img2 img {
+ max-height: 128px;
+ }
+}
+
+/* 媒体查询:移动端(≤767px) */
+@media (max-width: 767px) {
+ .product-card-box2 {
+ margin-top: 19px;
+ }
+
+ .product-card2 {
+ padding: 0 8px;
+ }
+
+ .product-card-container2 {
+ gap: 8px;
+ }
+
+ .product-card2 {
+ height: 208px;
+ min-width: 160px;
+ }
+
+ .product-card-img2 img {
+ max-height: 120px;
+ min-height: 72px;
+ }
+}
+
+/* 媒体查询:小屏手机(≤375px) */
+@media (max-width: 375px) {
+ .product-card2 {
+ height: 192px;
+ min-width: 140px;
+ }
+
+ /* 强制文字最小12px,保证可读性 */
+ .product-card-title2,
+ .product-card-desc2 {
+ font-size: 12px;
+ }
+
+ .product-card-img2 img {
+ max-height: 104px;
+ min-height: 64px;
+ }
+
+ .product-card2 {
+ padding: 0 5px;
+ }
+
+ .product-card-link2 img {
+ width: 40px;
+ /* 固定图标尺寸,节省空间 */
+ }
+}
+
+/* 媒体查询:超小屏手机(≤320px) */
+@media (max-width: 320px) {
+ .product-card2 {
+ min-width: 120px;
+ }
+
+ .product-text2 {
+ padding: 0 5px;
+ }
+
+ .product-card-img2 {
+ min-width: 60px;
+ /* 缩小图片区域最小宽度,平衡文字空间 */
+ }
+}
diff --git a/public/static/index/mobile/css/topic_power_prodline/product_list.css b/public/static/index/mobile/css/topic_power_prodline/product_list.css
new file mode 100644
index 00000000..2ccc0502
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/product_list.css
@@ -0,0 +1,284 @@
+/* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */
+.product-card-box {
+ width: 90%;
+ margin: clamp(1rem, 2vw, 1.5rem) auto 0;
+ padding: 0;
+}
+
+.product-card-container {
+ width: 100%;
+ margin: 0 auto;
+ display: flex;
+ flex-wrap: nowrap;
+ overflow: visible !important; /* 改为visible,显示所有内容 */
+ padding: 0 clamp(0.2rem, 0.6vw, 0.3rem);
+ height: auto !important; /* 高度自适应内容 */
+}
+
+/* 卡片包裹容器:确保不独占一行 */
+.product-card-wrap {
+ display: contents; /* 让包裹容器不影响布局 */
+ width: 100%;
+}
+
+/* ######################################################################### */
+/* 移动端+平板样式(max-width: 1023px)- 后续修改仅改这里 */
+/* ######################################################################### */
+@media (max-width: 1023px) {
+ /* 卡片容器:移动端+平板特有 - 改为wrap换行,一行2个,高度自适应 */
+ .product-card-container {
+ align-items: flex-start; /* 改为flex-start,避免拉伸 */
+ flex-wrap: wrap !important; /* 强制开启换行 */
+ justify-content: flex-start !important; /* 左对齐 */
+ gap: clamp(0.5rem, 1vw, 1rem) !important; /* 设置间距 */
+ padding: 0 clamp(0.2rem, 0.6vw, 0.3rem) clamp(1rem, 2vw, 1.5rem) !important;
+ height: auto !important; /* 高度自适应内容 */
+ }
+
+ /* 卡片包裹容器:移动端+平板适配 */
+ .product-card-wrap {
+ display: block !important;
+ width: calc(50% - clamp(0.25rem, 0.5vw, 0.5rem)) !important;
+ margin: 0 !important;
+ padding: 0 !important;
+ height: auto !important; /* 高度自适应 */
+ }
+
+ /* 卡片核心:移动端+平板改为一行2个,高度自适应内容 */
+ .product-card {
+ background: rgb(242, 243, 245);
+ border-radius: clamp(0.375rem, 1vw, 0.5rem);
+ cursor: pointer;
+ width: 100% !important; /* 卡片宽度100%,由包裹容器控制 */
+ flex: none;
+ box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem)
+ clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05);
+ margin: 0 !important; /* 移除margin,用gap控制间距 */
+ display: flex;
+ flex-direction: column;
+ height: auto !important; /* 高度自适应内容 */
+ }
+
+ /* 卡片hover效果:移动端+平板特有 */
+ .product-card:hover {
+ transform: scale(clamp(1.01, 1.02, 1.03));
+ transition: transform 0.3s ease;
+ }
+
+ /* 图片容器:移动端+平板固定占比 */
+ .product-card-img {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ flex: 0 0 auto; /* 改为auto,高度自适应 */
+ aspect-ratio: 3 / 2.8; /* 保持图片比例 */
+ margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
+ overflow: hidden;
+ border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
+ }
+
+ /* 产品图片:移动端+平板特有 */
+ .product-card img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ object-position: center;
+ }
+
+ /* 文字容器:移动端+平板高度自适应 */
+ .product-card-text {
+ flex: 1 1 auto; /* 改为flex:1,高度自适应内容 */
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding-left: clamp(0.8rem, 2vw, 1.5rem);
+ padding-right: clamp(0.8rem, 2vw, 1.5rem);
+ height: auto !important; /* 高度自适应 */
+ }
+
+ /* 标题样式:移动端+平板特有,高度自适应 */
+ .product-card-title {
+ font-size: clamp(0.8rem, 1.3vw, 1.2rem);
+ font-weight: 600;
+ color: #333;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: auto !important; /* 移除固定高度 */
+ margin-bottom: clamp(0.2rem, 0.4vw, 0.3rem); /* 添加间距 */
+ line-height: 1.2;
+ }
+
+ /* 描述样式:移动端+平板高度自适应 */
+ .product-card-desc {
+ font-size: clamp(0.7rem, 1.1vw, 0.9rem);
+ color: #656565;
+ word-break: break-word;
+ height: auto !important; /* 移除固定高度 */
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ line-height: 1.4;
+ }
+
+ /* 链接图标容器:移动端+平板高度自适应,添加较小的底部内边距 */
+ .product-card-link {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex: 0 0 auto; /* 改为auto,高度自适应 */
+ padding: clamp(0.5rem, 1vw, 0.8rem); /* 减小上下内边距 */
+ padding-bottom: clamp(1rem, 3vw, 1.5rem); /* 更小的底部内边距(约12px) */
+ padding-left: clamp(0.8rem, 2vw, 1.5rem);
+ height: auto !important; /* 高度自适应 */
+ }
+
+ /* 链接图标:移动端+平板特有 */
+ .product-card-link img {
+ width: clamp(2.5rem, 5vw, 4.5rem);
+ height: auto;
+ object-fit: contain;
+ }
+
+ /* 平板端(768px-1023px)补充样式 */
+ @media (min-width: 768px) and (max-width: 1023px) {
+ .product-card-img {
+ aspect-ratio: 3 / 2.8; /* 保持图片比例 */
+ }
+
+ .product-card-link img {
+ width: clamp(5rem, 4vw, 6rem);
+ }
+
+ /* 平板端字体稍大 */
+ .product-card-title {
+ font-size: clamp(1rem, 1.5vw, 1.4rem);
+ }
+
+ .product-card-desc {
+ font-size: clamp(0.85rem, 1.2vw, 1rem);
+ }
+
+ /* 平板端底部内边距稍大但仍较小 */
+ .product-card-link {
+ padding-bottom: clamp(1rem, 3vw, 1.5rem);
+ }
+ }
+}
+
+/* ######################################################################### */
+/* PC端样式(单独配置,min-width: 1024px)- 后续修改仅改这里 */
+/* ######################################################################### */
+@media (min-width: 1024px) {
+ /* 卡片容器:PC端特有,高度自适应内容 */
+ .product-card-container {
+ align-items: flex-start; /* 改为flex-start,避免拉伸 */
+ height: auto !important; /* 高度自适应内容 */
+ }
+
+ /* 卡片包裹容器:PC端适配 */
+ .product-card-wrap {
+ display: contents;
+ }
+
+ /* 卡片核心:PC端高度自适应内容 */
+ .product-card {
+ background: rgb(242, 243, 245);
+ border-radius: clamp(0.375rem, 1vw, 0.5rem);
+ cursor: pointer;
+ width: calc(25% - clamp(0.3rem, 0.5vw, 0.36rem));
+ flex: none;
+ box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem)
+ clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05);
+ margin: 0 clamp(0.16rem, 0.24vw, 0.2rem);
+ display: flex;
+ flex-direction: column;
+ height: auto !important; /* 高度自适应内容 */
+ }
+
+ /* 卡片hover效果:PC端特有 */
+ .product-card:hover {
+ transform: scale(clamp(1.01, 1.02, 1.03));
+ transition: transform 0.3s ease;
+ }
+
+ /* 图片容器:PC端高度自适应 */
+ .product-card-img {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ flex: 0 0 auto; /* 改为auto,高度自适应 */
+ aspect-ratio: 3 / 2.8; /* 保持图片比例 */
+ margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
+ overflow: hidden;
+ border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
+ }
+
+ /* 产品图片:PC端特有 */
+ .product-card img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ object-position: center;
+ }
+
+ /* 文字容器:PC端高度自适应 */
+ .product-card-text {
+ flex: 1 1 auto; /* 改为flex:1,高度自适应内容 */
+ flex-direction: column;
+ justify-content: center;
+ padding-left: clamp(0.8rem, 2vw, 1.5rem);
+ padding-right: clamp(0.8rem, 2vw, 1.5rem);
+ display: flex; /* 确保flex布局 */
+ height: auto !important; /* 高度自适应 */
+ }
+
+ /* 标题样式:PC端特有,高度自适应 */
+ .product-card-title {
+ font-size: clamp(0.8rem, 1.3vw, 1.2rem);
+ font-weight: 600;
+ color: #333;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: auto !important; /* 高度自适应 */
+ margin-bottom: clamp(0.2rem, 0.4vw, 0.3rem); /* 添加间距 */
+ line-height: 1.2;
+ display: flex;
+ align-items: center;
+ }
+
+ /* 描述样式:PC端高度自适应 */
+ .product-card-desc {
+ font-size: clamp(0.7rem, 1.1vw, 0.9rem);
+ color: #656565;
+ word-break: break-word;
+ height: auto !important; /* 高度自适应 */
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ line-height: 1.4;
+ }
+
+ /* 链接图标容器:PC端高度自适应,添加较小的底部内边距 */
+ .product-card-link {
+ width: 100%;
+ display: flex; /* 确保flex布局 */
+ align-items: center;
+ flex: 0 0 auto; /* 改为auto,高度自适应 */
+ padding-left: clamp(0.8rem, 2vw, 1.5rem);
+ padding-bottom: clamp(1rem, 3vw, 1.5rem) ; /* 更小的底部内边距 */
+ height: auto !important; /* 高度自适应 */
+ }
+
+ /* 链接图标:PC端特有 */
+ .product-card-link img {
+ width: clamp(2.5rem, 5vw, 4.5rem);
+ height: auto;
+ object-fit: contain;
+ }
+}
\ No newline at end of file
diff --git a/public/static/index/mobile/css/topic_power_prodline/swiper.css b/public/static/index/mobile/css/topic_power_prodline/swiper.css
new file mode 100644
index 00000000..ddec1bd3
--- /dev/null
+++ b/public/static/index/mobile/css/topic_power_prodline/swiper.css
@@ -0,0 +1,75 @@
+.swiper-container {
+ padding: 0 !important;
+}
+/* 轮播容器 - 核心:基于视口高度自适应 */
+.auto-swiper-container {
+ width: 100%;
+ /* 关键:高度 = 视口高度的百分比(可调整,如60vh=屏幕高度60%) */
+ margin-bottom: 5.625rem;
+ max-height: 900px;
+ min-height: 300px;
+ position: relative;
+ margin-top:60px;
+
+}
+/* 轮播项 - 填充容器高度 */
+.auto-swiper-slide {
+ width: 100%;
+ /*height: 100%;*/
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+
+/* 图片自适应核心:填充屏幕比例高度,保持比例 */
+.auto-swiper-slide img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain; /* 替换 cover 为 contain,完整显示图片 */
+ display: block;
+
+}
+
+/* 轮播容器保持相对定位 */
+.auto-swiper-container {
+ position: relative;
+ width: 100%;
+}
+
+/* 轮播容器保持相对定位 */
+.auto-swiper-container {
+ position: relative;
+ width: 100%;
+}
+
+/* 指示标容器:居中排列 */
+.swiper-pagination {
+ position: absolute;
+ bottom: 10%; /* 距离底部的距离,可调整 */
+ left: 50%;
+ transform: translateX(-50%);
+ /* width:100%;
+ display: flex; */
+ /* justify-content: center; */
+ z-index: 10;
+}
+
+/* 激活状态:白色长条 */
+.swiper-pagination-bullet-active {
+ background:#fff !important;
+}
+
+/* 未激活状态:黑色透明圆点(可调整透明度) */
+.swiper-pagination-bullet {
+ display: inline-block;
+ width: 16px !important;
+ height: 16px !important;
+ border-radius: 8px;
+ /*background: #555;*/
+ margin: 0 5px;
+ /*opacity: 0.8;*/
+ border: 1px solid #fff;
+ /*cursor: pointer;*/
+}
+
diff --git a/public/static/index/mobile/images/jiant.png b/public/static/index/mobile/images/jiant.png
new file mode 100644
index 00000000..ef08f043
Binary files /dev/null and b/public/static/index/mobile/images/jiant.png differ
diff --git a/public/static/index/mobile/images/ljgd.png b/public/static/index/mobile/images/ljgd.png
new file mode 100644
index 00000000..b55297de
Binary files /dev/null and b/public/static/index/mobile/images/ljgd.png differ
diff --git a/public/static/index/pc/css/topic_power_prodline/advantage.css b/public/static/index/pc/css/topic_power_prodline/advantage.css
new file mode 100644
index 00000000..4731aff1
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/advantage.css
@@ -0,0 +1,267 @@
+/* 核心模块:固定90%宽度(PC端),优化移动端边距 */
+.advantage-section {
+ /* width: 80%; */
+ margin: 0 auto;
+ position: relative;
+ z-index: 1;
+ max-width: 1690px;
+ padding-bottom: 105px;
+ /* padding-left: 115px; */
+
+}
+
+/* 标题容器:恢复原有居中样式 */
+.advantage-section__title {
+ font-size: 50px;
+ font-weight: 700;
+ text-align: center;
+ color: #333;
+ line-height: 1.2;
+ /* margin-bottom: clamp(1.5rem, 2vw, 2.5rem); */
+ padding-top: 55px;
+ padding-bottom: 65px;
+}
+
+/* 列表容器:优化gap,确保移动端5列不溢出 */
+.advantage-section__list {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ /* gap: clamp(0.1rem, 0.3vw, 0.8rem); */
+
+ width: 100%;
+ flex-wrap: nowrap;
+ overflow: hidden;
+ padding: 0 0.1rem;
+}
+
+/* 新增:卡片外层容器(专门控制圆角,避免缩放时丢失) */
+.advantage-card-wrap {
+ flex: 0 0 calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
+ /* min-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5);
+ max-width: calc((100% - 4 * clamp(0.1rem, 0.3vw, 0.8rem)) / 5); */
+ width: 330px;
+ height:470px;
+ border-radius: 0.5rem; /* 外层容器承担圆角 */
+ overflow: hidden; /* 裁剪内部缩放的卡片 */
+ box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1); /* 阴影移到外层,避免缩放时阴影变形 */
+ position: relative;
+ z-index: 1;
+ aspect-ratio: 1 / 1.7;
+}
+
+/* 卡片核心:优化宽高比和尺寸计算 */
+.advantage-card {
+ width: 100%;
+ height: 100%;
+ cursor: pointer;
+ background: #fff;
+ position: relative;
+ z-index: 1;
+ /* 关键修复:添加will-change优化渲染,移除原圆角和阴影(移到外层) */
+ will-change: transform; /* 告知浏览器准备变换,避免圆角渲染异常 */
+ transition: transform 0.3s ease;
+}
+
+.advantage-card__img {
+ width: 100%;
+ height: 72%;
+ /* PC端图片占比提升至72%,文字区域压缩 */
+ object-fit: cover;
+ background-color: #f9f9f9;
+ display: block;
+}
+
+/* 文字区域:flex垂直分布,确保标题和描述都垂直居中 */
+.advantage-card__content {
+ width: 100%;
+ height: 28%;
+ /* PC端文字区域占比降至28% */
+ padding: clamp(0.3rem, 0.4vw, 0.75rem);
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ /* 整体垂直居中 */
+ align-items: center;
+ /* 子元素水平居中(关键) */
+ /* text-align: center; */
+ flex-shrink: 0;
+ gap: 4px;
+ /* 标题和描述之间的垂直间距,避免贴边 */
+}
+
+/* 标题容器:水平居中+内部两端对齐,同时垂直居中 */
+.advantage-card__heading-wrap {
+ display: flex;
+ align-items: center;
+ /* 内部标题和箭头垂直对齐 */
+ justify-content: space-between;
+ /* 文字左、箭头右 */
+ gap: 8px;
+ width: 80%;
+ /* 限制宽度,体现居中效果 */
+ /* 移除底部margin,通过父容器gap控制间距 */
+}
+
+/* 卡片标题:居左显示 */
+.advantage-card__heading {
+ font-size: 30px;
+ /* 比原尺寸放大,PC端更醒目,移动端自适应 */
+ font-weight: 600;
+ color: #333;
+ line-height: 1.3;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+/* 卡片标题右侧箭头:居右显示 */
+.card-arrow {
+ color: #409eff;
+ font-size: clamp(0.7rem, 1vw, 1rem);
+ /* 箭头尺寸跟随标题放大,避免不协调 */
+ transition: transform 0.3s ease;
+ display: inline-block;
+ width: 32px;
+ /* 箭头宽度同步增加 */
+ text-align: center;
+}
+
+/* 卡片hover时箭头动画 */
+.advantage-card:hover .card-arrow {
+ transform: translateX(3px);
+}
+
+/* 描述文字:水平+垂直居中,与标题容器对齐(仅添加最小高度修复对齐问题) */
+.advantage-card__description {
+ font-size: 22px;
+ /* PC端描述文字略放大 */
+ color: #666;
+ line-height: 1.2;
+ /* PC端行高略紧凑 */
+ white-space: normal;
+ overflow: hidden;
+ width: 80%;
+ /* 与标题容器宽度一致 */
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ /* 最多2行,避免高度溢出 */
+ -webkit-box-orient: vertical;
+ /* 核心修复:固定最小高度=2行文字高度,确保1行时也占满空间 */
+ min-height: calc(clamp(0.6rem, 0.9vw, 0.9rem) * 2 * 1.4);
+ /* 确保文字垂直居中 */
+ display: flex;
+ align-items: center;
+ justify-content: left;
+ margin-top:clamp(9px, 0.5vw, 18px)
+}
+
+/* 卡片hover效果(仅保留缩放,阴影移到外层) */
+.advantage-card:hover {
+ transform: scale(1.03);
+ z-index: 10;
+}
+
+/* 外层容器hover时增强阴影(更自然的浮起效果) */
+.advantage-card-wrap:hover {
+ box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.15);
+}
+
+/* 移动端适配 - 核心修改:一行2个,显示2行,隐藏第5个 */
+@media (max-width: 767px) {
+ .advantage-card:active {
+ transform: scale(1.01);
+ }
+
+ .advantage-section {
+ width: 95%;
+ /* 移动端扩大容器宽度 */
+ }
+
+ .advantage-section__list {
+ gap: 0.5rem; /* 优化间距,更美观 */
+ flex-wrap: wrap; /* 允许换行 */
+ overflow: visible; /* 取消溢出隐藏,显示多行 */
+ justify-content: space-between; /* 两端对齐,确保2个卡片均匀分布 */
+ }
+
+ /* 移动端卡片宽度:一行2个 */
+ .advantage-card-wrap {
+ flex: 0 0 calc(50% - 0.25rem); /* 50%宽度减去一半间距,避免溢出 */
+ min-width: calc(50% - 0.25rem);
+ max-width: calc(50% - 0.25rem);
+ aspect-ratio: 1 / 1.8;
+ margin-bottom: 0.5rem; /* 行与行之间的间距 */
+ }
+
+ /* 隐藏第5个卡片 */
+ .advantage-card-wrap:nth-child(5) {
+ display: none;
+ }
+
+ .advantage-card__img {
+ width: 330px;
+ height:330px;
+ /* height: 62%; */
+ /* 移动端图片占比回到62% */
+ }
+
+ .advantage-card__content {
+ /* width: 330px;
+ height:150px; */
+ height: 38%;
+ /* 移动端文字区域占比回到38% */
+ /* padding: 0.2rem 0.15rem;
+ gap: 6px; */
+ /* 移动端间距略大,易读性更好 */
+ }
+
+ /* 移动端标题容器宽度放宽 */
+ .advantage-card__heading-wrap {
+ width: 90%;
+ }
+
+ .advantage-card__description {
+ line-height: 1.2;
+ width: 90%;
+ -webkit-line-clamp: 2;
+ /* 移动端同步添加最小高度 */
+ min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5);
+ }
+
+ /* 移动端箭头和文字尺寸缩小 */
+ .card-arrow {
+ font-size: clamp(0.45rem, 0.7vw, 0.8rem);
+ width: 10px;
+ }
+
+ .advantage-card__heading {
+ font-size: clamp(0.6rem, 1vw, 1rem);
+ }
+
+ .advantage-card__description {
+ font-size: clamp(0.5rem, 0.8vw, 0.8rem);
+ }
+}
+
+/* 超小屏适配 */
+@media (max-width: 374px) {
+ .advantage-section {
+ width: 98%;
+ }
+
+ .advantage-card__heading {
+ font-size: clamp(0.55rem, 0.9vw, 0.9rem);
+ }
+
+ .advantage-card__heading-wrap {
+ width: 95%;
+ gap: 5px;
+ }
+
+ .advantage-card__description {
+ width: 95%;
+ /* 超小屏保持最小高度 */
+ min-height: calc(clamp(0.5rem, 0.8vw, 0.8rem) * 2 * 1.5);
+ }
+}
\ No newline at end of file
diff --git a/public/static/index/pc/css/topic_power_prodline/footer.css b/public/static/index/pc/css/topic_power_prodline/footer.css
new file mode 100644
index 00000000..2f41ada5
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/footer.css
@@ -0,0 +1,11 @@
+.footer {
+ width: 100%;
+ padding: 3rem 0;
+}
+.footer-img {
+ width: 90%;
+ margin: 0 auto;
+}
+.footer-img img {
+ width: 100%;
+}
diff --git a/public/static/index/pc/css/topic_power_prodline/index.css b/public/static/index/pc/css/topic_power_prodline/index.css
new file mode 100644
index 00000000..529bcdb3
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/index.css
@@ -0,0 +1,79 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+/* 1. 根字体适配:限制最小根字体为14px,从源头避免文字过小 */
+html {
+ /* PC端(≥1024px):1rem=16px(原尺寸) */
+ font-size: 16px;
+}
+
+/* 平板端(768px~1023px):15px→16px(过渡,最小15px) */
+@media (max-width: 1023px) and (min-width: 768px) {
+ html {
+ font-size: calc(15px + (16 - 15) * (100vw - 768px) / (1023 - 768));
+ }
+}
+
+/* 移动端(320px~767px):固定14px(不随屏幕缩小而变小,避免文字<12px) */
+@media (max-width: 767px) {
+ html {
+ font-size: 14px;
+ }
+}
+
+/* 超小屏(≤320px):仍固定14px,彻底杜绝文字过小 */
+@media (max-width: 320px) {
+ html {
+ font-size: 14px;
+ }
+}
+body {
+
+ background: #f2f3f5;
+}
+a {
+ text-decoration: none;
+ display: block;
+}
+.more {
+ width: 90%;
+ margin: 0 auto;
+ display: flex;
+ justify-content: flex-end;
+ max-width: 1690px;
+ /* padding: 40px 0; */
+ /* padding-top: clamp(1.5rem, 3vw, 3rem); */
+}
+
+.more-img {
+ background: #000;
+ color: #fff;
+ font-size: clamp(0.6rem, 0.9vw, 0.9rem);
+ border-radius: clamp(0.875rem, 1.5vw, 1.125rem);
+ padding: clamp(0.1rem, 0.3vw, 0.2rem);
+ width: 5rem;
+ display: flex;
+ justify-content: center;
+}
+
+.line {
+ width: 100%;
+ height: clamp(2.5rem, 5vw, 15rem);
+}
+.header {
+ width: 100%;
+ background: #fff;
+ height: 60px;
+}
+.header-img {
+ margin: 0 auto;
+ width: 90%;
+ display: flex;
+ align-items: center;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+
+}
diff --git a/public/static/index/pc/css/topic_power_prodline/mask.css b/public/static/index/pc/css/topic_power_prodline/mask.css
new file mode 100644
index 00000000..d7f34802
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/mask.css
@@ -0,0 +1,91 @@
+/* 蒙版样式 - 新增触摸事件禁止 */
+.mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, 0.7);
+ display: none;
+ justify-content: center;
+ align-items: center;
+ z-index: 99999;
+ overflow: hidden; /* 阻止蒙版自身滚动 */
+ touch-action: none; /* 禁止触摸行为 */
+ pointer-events: auto; /* 确保蒙版能接收事件 */
+ backdrop-filter: blur(8px); /* 模糊半径,可调整(4px-15px为宜) */
+ -webkit-backdrop-filter: blur(8px); /* 兼容Safari */
+}
+
+/* 蒙版内容容器 - 新增触摸事件传递控制 */
+.mask-content {
+ width: 80%;
+ height: 100% !important;
+ padding: 3% 5%;
+ background: rgb(242, 243, 245);
+ border-radius: 12px;
+ overflow: hidden; /* 内容容器不滚动 */
+ position: relative;
+ animation: popIn 0.3s ease;
+ max-height: 90vh;
+ display: flex;
+ flex-direction: column;
+
+ pointer-events: auto; /* 确保内容区域能正常交互 */
+}
+
+/* 内容滚动容器 - 禁止横向滚动,仅纵向滚动 */
+.mask-scroll-content {
+ flex: 1;
+ overflow-y: auto; /* 仅纵向滚动 */
+ overflow-x: hidden !important; /* 强制禁止横向滚动(关键) */
+ width: 100%; /* 确保容器宽度不超出父级 */
+ height: 100%;
+}
+
+/* 关键:图片自适应,不撑开容器 */
+.mask-scroll-content img {
+ max-width: 100% !important; /* 图片最大宽度=容器宽度,不溢出 */
+ height: auto !important; /* 保持图片宽高比,不拉伸 */
+ display: block; /* 消除图片底部多余空白(可选) */
+ object-fit: contain; /* 若图片比例特殊,完整显示图片不裁剪 */
+}
+/* 升级:同时禁止 html 和 body 滚动(关键兼容) */
+.no-scroll {
+ overflow: hidden !important;
+ position: fixed !important;
+ width: 100% !important;
+ height: 100% !important;
+}
+
+/* 其他原有样式保持不变 */
+@keyframes popIn {
+ from {
+ transform: scale(0.8);
+ opacity: 0;
+ }
+ to {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+.close-btn {
+ position: absolute;
+ top: 20px;
+ right: 20px;
+ width: 40px;
+ height: 40px;
+ background-color: rgba(0, 0, 0, 0.3);
+ border-radius: 50%;
+ color: #fff;
+ font-size: 30px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+ z-index: 10;
+}
+.close-btn:hover {
+ background-color: #ff4d4f;
+}
diff --git a/public/static/index/pc/css/topic_power_prodline/nav.css b/public/static/index/pc/css/topic_power_prodline/nav.css
new file mode 100644
index 00000000..666de33e
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/nav.css
@@ -0,0 +1,83 @@
+.nav-box {
+ display: flex;
+ justify-content: space-between; /* 两端对齐,紧贴父容器padding */
+ width: 90%;
+ max-width: 1700px;
+ margin: 0 auto;
+ background-color: #fff;
+ border-radius:70px;
+ box-shadow: 0 0.125rem 0.9375rem rgba(0, 0, 0, 0.05);
+ position: relative;
+ z-index: 1;
+ margin-top: 170px;
+ margin-bottom: 78px;
+ overflow: visible;
+ padding-left: clamp(20px, 12vw, 238px);
+ padding-right: clamp(20px, 12vw, 238px);
+}
+
+.nav-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ cursor: pointer;
+ position: relative;
+ z-index: 2;
+ flex: 0 0 auto; /* 宽度由内容决定 */
+ width: fit-content; /* 关键:宽度等于内容宽度 */
+ padding-bottom: 35px;
+ text-align: center;
+ /* 可选:添加左右内边距,避免内容贴边 */
+ /* padding: 0 0.5rem; */
+}
+
+/* 可选:如果需要第一个和最后一个元素完全贴紧父容器padding,移除它们的左右内边距 */
+.nav-item:first-child {
+ padding-left: 0;
+}
+.nav-item:last-child {
+ padding-right: 0;
+}
+
+.nav-item img {
+ width: 9rem;
+ height:9rem;
+ object-fit: contain;
+ border-radius: 0.75rem;
+ margin-top: -70px;
+ transform: translateY(0.625rem);
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
+}
+
+.nav-item:hover img {
+ transform: translateY(0.3125rem);
+}
+
+.nav-item:active img {
+ transform: translateY(0.4375rem);
+ box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.06);
+}
+
+.nav-item p {
+ margin: 0;
+ font-size: 30px;
+ color: #37373e;
+ font-weight: 500;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+/* 平板端文字 */
+@media (max-width: 1023px) and (min-width: 768px) {
+ .nav-item p {
+ font-size: 0.9375rem;
+ }
+}
+
+/* 移动端文字 */
+@media (max-width: 767px) {
+ .nav-item p {
+ font-size: clamp(12px, 0.857rem, 0.9375rem);
+ }
+}
\ No newline at end of file
diff --git a/public/static/index/pc/css/topic_power_prodline/product.css b/public/static/index/pc/css/topic_power_prodline/product.css
new file mode 100644
index 00000000..cf61220c
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/product.css
@@ -0,0 +1,169 @@
+.product-box {
+ background: #fff;
+ /* padding: clamp(1.5rem, 3vw, 3rem) 0; */
+ /* 产品块之间留间距 */
+}
+
+.product-title {
+ width: 90%;
+ max-width: 1690px;
+ margin: 0 auto;
+
+}
+
+.product-title-h2 {
+ /* 字体大小:小屏最小30px,大屏最大50px,中间按视口宽度自适应 */
+ font-size: clamp(30px, 4vw, 50px);
+ /* 顶部内边距:小屏最小80px,大屏最大160px,自适应缩放 */
+ padding-top: clamp(60px, 10vw, 110px);
+ /* 底部内边距:小屏最小15px,大屏最大30px,自适应缩放 */
+ padding-bottom: clamp(15px, 2vw, 30px);
+ /* 可选:限制最大宽度并居中,优化大屏显示 */
+ max-width: 1690px;
+ margin: 0 auto;
+}
+
+.product-title-p {
+ /* max-width: 1690px; */
+ font-size: clamp(16px, 2vw, 32px);
+ color: #646464;
+ padding-bottom: clamp(40px, 6vw, 110px);
+ /* margin: 0 auto; */
+}
+
+/* 容器布局:两个产品通用 */
+.product-container {
+ display: flex;
+ gap: clamp(0.4rem, 1vw, 0.71rem);
+ margin: 0 auto;
+ width: 90%;
+ align-items: flex-start;
+}
+
+/* 左侧容器:两个产品通用 */
+.product-left {
+ flex: 1.8;
+ position: relative;
+ width: 100%;
+ max-width: 526px;
+ max-height: 680px;
+}
+
+.product-img {
+ width: 100%;
+ height: auto;
+ border-radius: 10px;
+ display: block;
+ max-width: 526px;
+ max-height: 680px;
+ /* 取消图片底部空隙 */
+}
+
+/* 悬浮图公共样式:两个产品尺寸完全一致(100%宽度) */
+.product-img-hover {
+ position: absolute;
+ width: 100%;
+ /* 两个产品悬浮图宽度相同 */
+ z-index: 1;
+}
+
+.product-img-hover img {
+ width: 100%;
+ /* 图片尺寸100%,无区别 */
+ height: auto;
+ /* max-height: 70%; */
+ border-radius: 10px;
+}
+
+/* 第一个产品:悬浮图居中上移(仅定位差异) */
+.product-img-1 {
+ top: -10%;
+ left: 50%;
+ transform: translateX(-50%);
+}
+
+/* 第二个产品:悬浮图上右超出(仅定位差异) */
+.product-img-2 {
+ top: -10%;
+ /* 上超出 */
+ transform: none;
+ width: 108%;
+ /* 取消居中 */
+}
+
+/* 右侧容器:两个产品通用 */
+.product-right {
+ flex: 3.2;
+ position: relative;
+ border-radius: 10px;
+ overflow: hidden;
+ width: 100%;
+ background-color: #f5f5f5;
+ align-self: stretch;
+}
+
+.right-content {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ /* object-position: center; 内容居中显示(默认值) */
+ transition: opacity 0.3s ease;
+}
+
+.right-video {
+ display: none;
+ width: 100%;
+ object-fit: cover;
+}
+
+/* PC端适配:仅微调定位参数,尺寸不变 */
+@media (min-width: 1024px) {
+ .product-container {
+ width: 90%;
+ max-width: 1690px;
+ }
+
+ .product-left {
+ flex: 2;
+ max-width: 526px;
+ max-height: 680px;
+ }
+
+ .product-right {
+ flex: 5;
+ max-width: 1150px;
+ max-height: 680px;
+ }
+
+ /* 宽度保持一致,仅调定位偏移 */
+ .product-img-1 {
+ top: -11%;
+ }
+
+ .product-img-2 {
+ top: -12%;
+ }
+}
+
+/* 超小屏适配:尺寸不变,微调定位 */
+@media (max-width: 375px) {
+ .product-left {
+ flex: 1.5;
+ }
+
+ .product-right {
+ flex: 3.5;
+ }
+
+ /* 宽度仍保持一致 */
+ .product-img-1 {
+ top: -6%;
+ }
+
+ .product-img-2 {
+ top: -8%;
+ }
+}
diff --git a/public/static/index/pc/css/topic_power_prodline/product_card.css b/public/static/index/pc/css/topic_power_prodline/product_card.css
new file mode 100644
index 00000000..f10693b5
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/product_card.css
@@ -0,0 +1,220 @@
+.product-card-container2 {
+ display: flex;
+ flex-wrap: nowrap;
+ gap: 24px;
+ align-items: stretch;
+}
+
+/* 产品卡片样式 */
+.product-card2 {
+ box-sizing: border-box;
+ background: rgb(242, 243, 245);
+ border-radius: 8px;
+ cursor: pointer;
+ flex: 1 1 50%;
+ /* 一行2个 */
+ min-width: 180px;
+ max-width: 836px;
+ max-height:530px;
+ padding: 10px 0;
+ padding-left: clamp(30px, 3vw, 100px); ;
+
+ /* 保证图片显示 */
+ /* max-width: calc(50% - 10px); */
+ /* 适配gap */
+ /* height: 240px; */
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
+ display: flex;
+ text-decoration: none;
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
+ overflow: hidden;
+}
+
+/* 核心修改:文字区域相对于父盒子居中,内部内容左对齐 */
+.product-text2 {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ /* 文字区域整体水平居中(相对于product-card1) */
+ justify-content: center;
+ /* 文字区域整体垂直居中(相对于product-card1) */
+ text-align: left;
+ /* 内部文字左对齐 */
+ min-width: 70px;
+ box-sizing: border-box;
+ width: 100%;
+}
+
+/* 内部内容容器:统一承载标题、描述、链接,确保左对齐一致性 */
+.product-text-content2 {
+ width: 100%;
+ /* 继承product-text的宽度,确保左对齐范围完整 */
+ max-width: 280px;
+ /* 新增:限制最大宽度,避免PC端父容器过宽时内容排版松散 */
+}
+
+/* 标题:超出一行显示省略号(左对齐) */
+.product-card-title2 {
+ font-size:clamp(0.8rem, 1.3vw, 1.9rem);
+ font-weight: 600;
+ color: #333;
+ margin-bottom: 5px;
+ letter-spacing: 0.2px;
+ /* 超出一行省略号核心样式 */
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ /* 基于内部容器左对齐,省略号生效 */
+}
+
+/* 描述:超出2行显示省略号(左对齐) */
+.product-card-desc2 {
+ font-size: clamp(1rem, 1.3vw, 1.5rem);
+ color: #656565;
+ margin-top: clamp(12px,1vw, 15px);
+ margin-bottom: clamp(20px,1vw, 50px);
+ letter-spacing: 0.1px;
+ /* 超出2行显示省略号核心样式 */
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ white-space: normal;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ /* 基于内部容器左对齐 */
+ line-height: 1.4;
+ /* 优化行高,2行高度适中 */
+}
+
+/* 图片容器:确保移动端显示 */
+.product-card-img2 {
+ /* flex: 1; */
+ /* display: flex;
+ justify-content: center;
+ align-items: center;
+ min-width: 70px; */
+ width: 100%;
+ /* flex:1; */
+ /* width:510px ;
+ height: 510px; */
+ max-width: 510px;
+ max-height:510px ;
+ /* 强制保留图片区域,避免被挤压 */
+}
+
+.product-card-img2 img {
+ width: 100%;
+
+ /* object-fit: contain */
+ object-fit: contain;
+ max-width: 510px;
+ max-height: 510px;
+ /* 保持图片比例完整,不拉伸 */
+}
+
+/* 链接图标:左对齐(基于内部容器) */
+.product-card-link2 {
+ width: 100%;
+ display: flex;
+ justify-content: flex-start;
+ /* 图标左对齐 */
+}
+
+.product-card-link2 img {
+ max-width: 111px;
+ max-height: 19px;
+ object-fit: contain;
+ /* 清除居中margin */
+}
+
+/* hover效果 */
+.product-card2:hover {
+ transform: scale(1.03);
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
+}
+
+/* 媒体查询:平板端(768px ~ 1023px) */
+@media (max-width: 1023px) and (min-width: 768px) {
+ .product-card2 {
+ height: 224px;
+ min-width: 170px;
+ }
+ .product-text2 {
+ padding-left: 20px;
+ }
+ .product-card-img2 img {
+ max-height: 128px;
+ }
+}
+
+/* 媒体查询:移动端(≤767px) */
+@media (max-width: 767px) {
+ .product-card-box2 {
+ margin-top: 19px;
+ }
+
+ .product-card2 {
+ padding: 0 8px;
+ }
+
+ .product-card-container2 {
+ gap: 12px;
+ }
+
+ .product-card2 {
+ height: 208px;
+ min-width: 160px;
+ }
+
+ .product-card-img2 img {
+ max-height: 120px;
+ min-height: 72px;
+ }
+}
+
+/* 媒体查询:小屏手机(≤375px) */
+@media (max-width: 375px) {
+ .product-card2 {
+ height: 192px;
+ min-width: 140px;
+ }
+
+ /* 强制文字最小12px,保证可读性 */
+ .product-card-title2,
+ .product-card-desc2 {
+ font-size: 12px;
+ }
+
+ .product-card-img2 img {
+ max-height: 104px;
+ min-height: 64px;
+ }
+
+ .product-card2 {
+ padding: 0 5px;
+ }
+
+ .product-card-link2 img {
+ width: 40px;
+ /* 固定图标尺寸,节省空间 */
+ }
+}
+
+/* 媒体查询:超小屏手机(≤320px) */
+@media (max-width: 320px) {
+ .product-card2 {
+ min-width: 120px;
+ }
+
+ .product-text2 {
+ padding: 0 5px;
+ }
+
+ .product-card-img2 {
+ min-width: 60px;
+ /* 缩小图片区域最小宽度,平衡文字空间 */
+ }
+}
diff --git a/public/static/index/pc/css/topic_power_prodline/product_list.css b/public/static/index/pc/css/topic_power_prodline/product_list.css
new file mode 100644
index 00000000..6c417471
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/product_list.css
@@ -0,0 +1,291 @@
+/* 容器布局:通用基础样式(仅宽度、外边距,不涉及高度) */
+.product-card-box {
+ width: 90%;
+ /* margin: clamp(1rem, 2vw, 1.5rem) auto 0; */
+ margin:0 auto;
+ margin-top: 40px;
+ max-width: 1690px;
+ margin-bottom:45px;
+ max-height: 560px;
+
+}
+
+.product-card-container {
+ width: 100%;
+ margin: 0 auto;
+ display: flex;
+ flex-wrap: nowrap;
+ overflow: hidden;
+ /* 关键修改1:增大间距值(原 clamp(0.3rem, 0.5vw, 0.36rem) → 现在放大2倍左右) */
+ /* gap: clamp(0.6rem, 1vw, 0.8rem); */
+ padding: 0; /* 保持无内边距,避免间距叠加 */
+ max-width: 1690px;
+ max-height: 560px;
+}
+
+/* 新增:外层容器(承载圆角、阴影、尺寸,避免缩放时圆角丢失) */
+.product-card-wrap {
+ /* 原卡片的宽度计算逻辑移到外层 */
+ width: calc(25% - (clamp(0.6rem, 1vw, 0.8rem) * 3 / 4));
+ flex: 1;
+ border-radius: clamp(0.375rem, 1vw, 0.5rem); /* 外层承载圆角 */
+ overflow: hidden; /* 裁剪内层缩放的卡片 */
+ box-shadow: 0 clamp(0.1rem, 0.2vw, 0.125rem) clamp(0.3rem, 0.8vw, 0.5rem) rgba(0, 0, 0, 0.05); /* 外层承载阴影 */
+ position: relative;
+ z-index: 1;
+ max-width: 410px;
+ max-height: 560px;
+}
+
+/* ######################################################################### */
+/* 移动端样式(单独配置,max-width: 1023px)- 后续修改仅改这里 */
+/* ######################################################################### */
+@media (max-width: 1023px) {
+ /* 卡片容器:移动端特有 */
+
+ .product-card-container {
+ align-items: stretch;
+ }
+
+ /* 外层容器移动端适配:宽高比移到外层 */
+ .product-card-wrap {
+ aspect-ratio: 3 / 4.2;
+ }
+
+ /* 卡片核心:移动端调整(移除圆角、阴影,添加will-change) */
+ .product-card {
+ background: rgb(242, 243, 245);
+ cursor: pointer;
+ width: 100%; /* 内层卡片占满外层容器 */
+ height: 100%;
+ flex: none;
+ margin: 0; /* 保持无margin,间距由gap控制 */
+ display: flex;
+ flex-direction: column;
+ will-change: transform; /* 优化渲染,避免圆角异常 */
+ }
+
+ /* 卡片hover效果:移动端特有 */
+ .product-card:hover {
+ transform: scale(clamp(1.01, 1.02, 1.03));
+ transition: transform 0.3s ease;
+ }
+
+ /* 外层容器hover增强阴影(更自然的浮起效果) */
+ .product-card-wrap:hover {
+ box-shadow: 0 clamp(0.2rem, 0.4vw, 0.25rem) clamp(0.5rem, 1vw, 0.8rem) rgba(0, 0, 0, 0.08);
+ }
+
+ /* 图片容器:移动端固定占比 */
+ .product-card-img {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ flex: 0 0 72%;
+ margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
+ overflow: hidden;
+ border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
+ }
+
+ /* 产品图片:移动端特有 */
+ .product-card img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ object-position: center;
+ }
+
+ /* 文字容器:移动端固定占比 */
+ .product-card-text {
+ flex: 0 0 20%;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding-left: clamp(0.8rem, 2vw, 1.5rem);
+ padding-right: clamp(0.8rem, 2vw, 1.5rem);
+ }
+
+ /* 标题样式:移动端特有 */
+ .product-card-title {
+ font-size: clamp(0.8rem, 1.3vw, 1.2rem);
+ font-weight: 600;
+ color: #333;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ height: 35%;
+ line-height: 1.2;
+ }
+
+ /* 描述样式:移动端固定2行高度 */
+ .product-card-desc {
+ font-size: clamp(0.7rem, 1.1vw, 0.9rem);
+ color: #656565;
+ word-break: break-word;
+ height: 65%;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ line-height: 1.4;
+ }
+
+ /* 链接图标容器:移动端固定占比 */
+ .product-card-link {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex: 0 0 10%;
+ padding: clamp(0.8rem, 2vw, 1.5rem);
+ }
+
+ /* 链接图标:移动端特有 */
+ .product-card-link img {
+ width: clamp(2.5rem, 5vw, 4.5rem);
+ height: auto;
+ object-fit: contain;
+ }
+
+ /* 移动端768px以上补充样式 */
+ @media (min-width: 768px) and (max-width: 1023px) {
+ .product-card-img {
+ flex: 0 0 72%;
+ }
+
+ .product-card-link img {
+ width: clamp(5rem, 4vw, 6rem);
+ }
+ }
+}
+
+/* ######################################################################### */
+/* PC端样式(单独配置,min-width: 1024px)- 后续修改仅改这里 */
+/* ######################################################################### */
+@media (min-width: 1024px) {
+ /* 卡片容器:PC端特有(高度自适应) */
+ .product-card-container {
+ align-items: stretch;
+ height: clamp(30vw, 35vw, 480px);
+ /* 关键修改3:PC端同步增大gap间距(与通用容器一致) */
+ gap: clamp(0.6rem, 1vw, 0.8rem);
+ padding: 0;
+ max-width: 1690px;
+ display: flex;
+ justify-content: space-between;
+ }
+
+ /* 外层容器PC端适配:高度占满容器 */
+ .product-card-wrap {
+ height: 100%;
+ max-width: 410px;
+ max-height: 560px;
+ flex:1
+ }
+
+ /* 卡片核心:PC端调整(移除圆角、阴影,添加will-change) */
+ .product-card {
+ background: rgb(242, 243, 245);
+ cursor: pointer;
+ width: 100%; /* 内层卡片占满外层容器 */
+ height: 100%;
+ flex: none;
+ margin: 0; /* 保持无margin */
+ display: flex;
+ flex-direction: column;
+ will-change: transform; /* 优化渲染,避免圆角异常 */
+ max-width: 410px;
+ max-height: 560px;
+ }
+
+ /* 卡片hover效果:PC端特有 */
+ .product-card:hover {
+ transform: scale(clamp(1.01, 1.02, 1.03));
+ transition: transform 0.3s ease;
+ }
+
+ /* 外层容器hover增强阴影 */
+ .product-card-wrap:hover {
+ box-shadow: 0 clamp(0.2rem, 0.4vw, 0.25rem) clamp(0.5rem, 1vw, 0.8rem) rgba(0, 0, 0, 0.08);
+ }
+
+ /* 图片容器:PC端固定占比 */
+ .product-card-img {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ flex: 0 0 72%;
+ margin-bottom: clamp(0.4rem, 0.6vw, 0.5rem);
+ overflow: hidden;
+ border-radius: clamp(0.2rem, 0.4vw, 0.25rem);
+ max-width: 410px;
+ max-height: 350px;
+ }
+
+ /* 产品图片:PC端特有 */
+ .product-card img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ object-position: center;
+ }
+
+ /* 文字容器:PC端固定占比 */
+ .product-card-text {
+ /* flex: 0 0 15%; */
+ display: flex; /* 补充display: flex,原代码遗漏 */
+ flex-direction: column;
+ justify-content: center;
+
+ padding-left: clamp(1.5rem, 2vw, 3rem);
+ }
+
+ /* 标题样式:PC端特有 clamp(0.8rem, 1.3vw, 1.5rem);*/
+ .product-card-title {
+ font-size:clamp(0.8rem, 1.3vw, 1.9rem);
+ font-weight: 600;
+ color: #333;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ line-height: 1.2;
+ display: flex;
+ align-items: center;
+ /* margin-top */
+ }
+
+ /* 描述样式:PC端固定2行高度 clamp(0.7rem, 1.1vw, 0.9rem);*/
+ .product-card-desc {
+ font-size: clamp(1rem, 1.3vw, 1.5rem);
+ color: #656565;
+ word-break: break-word;
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ padding-top:clamp(0.4rem, 3vw, 0.9rem) ;
+ }
+
+ /* 链接图标容器:PC端固定占比 */
+ .product-card-link {
+ width: 100%;
+ flex: 1;
+ padding-left: clamp(1.5rem, 2vw, 3rem);
+ display: flex;
+ align-items: center;
+ /* max-width: 111px;
+ max-height:19px ; */
+ /* 1rem=16px,3.125rem=50px */
+ /* padding-top: clamp(1rem, 2vw, 3.125rem);
+ padding-bottom: clamp(1rem, 5vw, 3.125rem); */
+ }
+
+ /* 链接图标:PC端特有 */
+ .product-card-link img {
+ /* width: clamp(2.5rem, 5vw, 4.5rem); */
+ max-width: 111px;
+ max-height: 19px;
+ object-fit: contain;
+ }
+}
\ No newline at end of file
diff --git a/public/static/index/pc/css/topic_power_prodline/swiper.css b/public/static/index/pc/css/topic_power_prodline/swiper.css
new file mode 100644
index 00000000..a712a8e5
--- /dev/null
+++ b/public/static/index/pc/css/topic_power_prodline/swiper.css
@@ -0,0 +1,72 @@
+
+/* 轮播容器 - 核心:基于视口高度自适应 */
+.auto-swiper-container {
+ width: 100%;
+ /* 关键:高度 = 视口高度的百分比(可调整,如60vh=屏幕高度60%) */
+ margin-bottom: 5.625rem;
+ max-height: 900px;
+ min-height: 300px;
+ position: relative;
+}
+/* 轮播项 - 填充容器高度 */
+.auto-swiper-slide {
+ width: 100%;
+ /*height: 100%;*/
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+}
+
+
+/* 图片自适应核心:填充屏幕比例高度,保持比例 */
+.auto-swiper-slide img {
+ width: 100%;
+ height: 100%;
+ object-fit: contain; /* 替换 cover 为 contain,完整显示图片 */
+ display: block;
+
+}
+
+/* 轮播容器保持相对定位 */
+.auto-swiper-container {
+ position: relative;
+ width: 100%;
+}
+
+/* 轮播容器保持相对定位 */
+.auto-swiper-container {
+ position: relative;
+ width: 100%;
+}
+
+/* 指示标容器:居中排列 */
+.swiper-pagination {
+ position: absolute;
+ bottom: 10%; /* 距离底部的距离,可调整 */
+ left: 50%;
+ transform: translateX(-50%);
+ /* width:100%;
+ display: flex; */
+ /* justify-content: center; */
+ z-index: 10;
+}
+
+/* 激活状态:白色长条 */
+.swiper-pagination-bullet-active {
+ background:#fff !important;
+}
+
+/* 未激活状态:黑色透明圆点(可调整透明度) */
+.swiper-pagination-bullet {
+ display: inline-block;
+ width: 16px !important;
+ height: 16px !important;
+ border-radius: 8px;
+ /*background: #555;*/
+ margin: 0 5px;
+ /*opacity: 0.8;*/
+ border: 1px solid #fff;
+ /*cursor: pointer;*/
+}
+
diff --git a/public/static/index/pc/images/jiant.png b/public/static/index/pc/images/jiant.png
new file mode 100644
index 00000000..ef08f043
Binary files /dev/null and b/public/static/index/pc/images/jiant.png differ
diff --git a/public/static/index/pc/images/ljgd.png b/public/static/index/pc/images/ljgd.png
new file mode 100644
index 00000000..b55297de
Binary files /dev/null and b/public/static/index/pc/images/ljgd.png differ