feat: 全宽沉浸式购物车
All checks were successful
continuous-integration/drone/push Build is passing

- 去掉侧边栏,全宽沉浸式布局
- 首屏:大卡片分类入口页(渐变图标+hover上浮+逐卡淡入动画)
- 点击后:一级胶囊Tab+返回按钮+二级边框Tab+3列产品卡片
- 产品卡片stagger滑入动画(animation-delay逐卡递增)
- 顶部渐变背景(蓝白渐变)
- JS逻辑完全不变
- 域名搜索功能完整保留
This commit is contained in:
yiqiu
2026-03-23 11:05:55 +08:00
parent 50e8a25c84
commit 0e3b695994
2 changed files with 774 additions and 947 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -13,30 +13,64 @@
</div> </div>
<div class="template"> <div class="template">
<el-container> <el-container>
<aside-menu @getruleslist="getRule"></aside-menu>
<el-container> <el-container>
<top-menu></top-menu> <top-menu></top-menu>
<el-main> <el-main class="immersive-main">
<div class="goods-page"> <div class="goods-page" :class="{'show-products': select_first_obj.id}">
<!-- ========== 状态一:分类入口页 ========== -->
<div class="category-landing" v-show="!select_first_obj.id">
<!-- 顶部说明 --> <!-- 顶部说明 -->
<div v-if="commonData.cart_instruction == 1 && commonData.cart_instruction_content" class="cart-des" <div v-if="commonData.cart_instruction == 1 && commonData.cart_instruction_content" class="cart-des"
v-html="commonData.cart_instruction_content"> v-html="commonData.cart_instruction_content">
</div> </div>
<div class="landing-hero">
<h1 class="landing-title">{{commonData.website_name || '产品中心'}}</h1>
<p class="landing-subtitle">为您提供全球优质的云计算服务</p>
</div>
<div class="category-grid">
<div class="category-card"
v-for="(item, index) in first_group_list" :key="item.id"
:style="{'animation-delay': (index * 0.08) + 's'}"
@click="select_first_obj.id = item.id; selectFirstType(item.id)">
<div class="category-icon" :class="'category-icon-' + (index % 5)">
<svg v-if="index % 5 === 0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" width="36" height="36"><path d="M2 15a7 7 0 0 1 7-7h0a5 5 0 0 1 10 0h0a6 6 0 0 1 3 11H4a5 5 0 0 1-2-4z"/></svg>
<svg v-else-if="index % 5 === 1" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" width="36" height="36"><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
<svg v-else-if="index % 5 === 2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" width="36" height="36"><rect x="2" y="3" width="20" height="14" rx="2"/><path d="M8 21h8M12 17v4"/></svg>
<svg v-else-if="index % 5 === 3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" width="36" height="36"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
<svg v-else viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" width="36" height="36"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg>
</div>
<h2 class="category-name">{{item.name}}</h2>
<div class="category-arrow">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</div>
</div>
</div>
</div>
<!-- ========== 一级分类 · 胶囊 Tab ========== --> <!-- ========== 状态二:产品浏览区 ========== -->
<div class="primary-nav"> <div class="products-view" v-show="select_first_obj.id">
<!-- 一级 Tab 导航 -->
<div class="primary-bar">
<div class="primary-bar-inner">
<div class="primary-back" @click="select_first_obj.id = ''; goodsList = []; second_group_list = [];">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18"><path d="M15 18l-6-6 6-6"/></svg>
</div>
<div class="primary-tabs"> <div class="primary-tabs">
<div class="primary-tab" <div class="primary-tab"
:class="{'primary-tab-active': select_first_obj.id === item.id}" :class="{'primary-tab-active': select_first_obj.id === item.id}"
v-for="item in first_group_list" :key="item.id" v-for="item in first_group_list" :key="item.id"
@click="select_first_obj.id = item.id; selectFirstType(item.id)"> @click="selectFirstType(item.id)">
{{item.name}} {{item.name}}
</div> </div>
</div> </div>
</div> </div>
</div>
<!-- ========== 二级分类 · 底部边框 Tab + 搜索 ========== --> <!-- 二级 Tab + 搜索 -->
<div class="secondary-nav"> <div class="secondary-bar">
<div class="secondary-bar-inner">
<div class="secondary-tabs" v-loading="secondLoading"> <div class="secondary-tabs" v-loading="secondLoading">
<div class="secondary-tab" <div class="secondary-tab"
:class="{'secondary-tab-active': select_second_obj.id === item.id}" :class="{'secondary-tab-active': select_second_obj.id === item.id}"
@@ -45,8 +79,8 @@
{{item.name}} {{item.name}}
</div> </div>
</div> </div>
<div class="secondary-right"> <div class="secondary-right" v-if="!isDomain">
<el-input :placeholder="lang.goods_search_placeholder" v-if="!isDomain" clearable <el-input :placeholder="lang.goods_search_placeholder" clearable
v-model="searchValue" class="search-input" size="small" v-model="searchValue" class="search-input" size="small"
@keyup.enter.native="searchGoods"> @keyup.enter.native="searchGoods">
<el-button slot="append" icon="el-icon-search" @click="searchGoods" <el-button slot="append" icon="el-icon-search" @click="searchGoods"
@@ -54,29 +88,28 @@
</el-input> </el-input>
</div> </div>
</div> </div>
</div>
<!-- 二级描述滚动条 --> <!-- 二级描述 -->
<div class="second-desc" v-if="select_second_obj.description"> <div class="second-desc" v-if="select_second_obj.description">
<scroll-text mode="loop"> <scroll-text mode="loop">
{{select_second_obj.description}} {{select_second_obj.description}}
</scroll-text> </scroll-text>
</div> </div>
<!-- ========== 商品列表区域 ========== --> <!-- 商品列表 -->
<div class="goods-container" v-loading="goodSLoading"> <div class="goods-container" v-loading="goodSLoading">
<template v-if="!isDomain"> <template v-if="!isDomain">
<!-- 空状态 -->
<div class="empty-state" v-if="goodsList.length === 0 && !goodSLoading"> <div class="empty-state" v-if="goodsList.length === 0 && !goodSLoading">
<el-empty :description="lang.no_goods"></el-empty> <el-empty :description="lang.no_goods"></el-empty>
</div> </div>
<!-- 三级产品 · 3列卡片网格 -->
<div v-else class="goods-grid"> <div v-else class="goods-grid">
<div class="product-card" <div class="product-card"
:class="{'product-card-disabled': item.stock_control === 1 && item.qty <= 0}" :class="{'product-card-disabled': item.stock_control === 1 && item.qty <= 0}"
:style="{'animation-delay': (index * 0.06) + 's'}"
v-for="(item,index) in goodsList" :key="index"> v-for="(item,index) in goodsList" :key="index">
<!-- 卡片头部:名称 + 标签 -->
<div class="card-header"> <div class="card-header">
<h3 class="card-title">{{ item.name }}</h3> <h3 class="card-title">{{ item.name }}</h3>
<div class="card-badges"> <div class="card-badges">
@@ -86,7 +119,6 @@
</span> </span>
<span class="badge badge-sold-out" <span class="badge badge-sold-out"
v-if="item.stock_control === 1 && item.qty <= 0"> v-if="item.stock_control === 1 && item.qty <= 0">
<img src="/{$template_catalog_cart}/template/{$themes_cart}/img/sold_out.svg" alt="" class="sold-icon">
{{lang.shoppingCar_tip_text13 || '已售罄'}} {{lang.shoppingCar_tip_text13 || '已售罄'}}
</span> </span>
<span class="badge badge-level" <span class="badge badge-level"
@@ -96,7 +128,6 @@
</div> </div>
</div> </div>
<!-- 活动标签 -->
<div class="card-tags" <div class="card-tags"
v-if="(item.pay_ontrial && item.pay_ontrial?.status === 1) || item.aodun_firewall_product || item.activeList.length > 0 || item.addon_coin === 1"> v-if="(item.pay_ontrial && item.pay_ontrial?.status === 1) || item.aodun_firewall_product || item.activeList.length > 0 || item.addon_coin === 1">
<span class="tag tag-trial" <span class="tag tag-trial"
@@ -120,10 +151,8 @@
</template> </template>
</div> </div>
<!-- 描述 -->
<div class="card-desc" v-html="item.description"></div> <div class="card-desc" v-html="item.description"></div>
<!-- 卡片底部:价格 + 按钮 -->
<div class="card-footer"> <div class="card-footer">
<div class="card-price"> <div class="card-price">
<div class="price-current"> <div class="price-current">
@@ -146,7 +175,7 @@
</div> </div>
</template> </template>
<!-- ====== 域名搜索区域(保持原有功能和结构) ====== --> <!-- ====== 域名搜索区域 ====== -->
<template v-else> <template v-else>
<div class="domain-box"> <div class="domain-box">
<div class="register-type"> <div class="register-type">
@@ -182,12 +211,7 @@
</div> </div>
<div class="batch-btn"> <div class="batch-btn">
<div class="upload-btn" @click="isShowUpload = true"> <div class="upload-btn" @click="isShowUpload = true">
<svg t="1750672276335" class="icon" viewBox="0 0 1024 1024" version="1.1" <svg viewBox="0 0 1024 1024" width="16" height="16"><path d="M938.855808 638.776382l0 270.299169c0 27.41028-22.210861 49.634444-49.621141 49.634444l-754.442728 0c-27.41028 0-49.647747-22.224164-49.647747-49.634444L85.144192 638.776382c0-27.41028 22.224164-49.634444 49.634444-49.634444s49.634444 22.224164 49.634444 49.634444l0 220.664725 655.17384 0L839.58692 638.776382c0-27.41028 22.224164-49.634444 49.634444-49.634444S938.855808 611.366102 938.855808 638.776382zM349.445764 351.817788l112.918769-115.288746 0 429.77837c0 27.411303 22.224164 49.634444 49.634444 49.634444 27.41028 0 49.634444-22.223141 49.634444-49.634444L561.633421 236.534158 674.547073 351.812671c9.722432 9.927093 22.591531 14.904455 35.470863 14.904455 12.524245 0 25.071002-4.716418 34.725896-14.172791 19.583011-19.184945 19.913539-50.608631 0.733711-70.190619L547.478026 80.195483c-9.335622-9.535167-22.116717-14.905478-35.46063-14.905478-13.338796 0-26.120914 5.370311-35.456536 14.900362L278.542924 282.3486c-19.184945 19.588127-18.86465 51.010791 0.722454 70.190619C298.847365 371.724163 330.271052 371.394658 349.445764 351.817788z" fill="var(--color-primary)"/></svg>
xmlns="http://www.w3.org/2000/svg" p-id="10857" width="16" height="16">
<path
d="M938.855808 638.776382l0 270.299169c0 27.41028-22.210861 49.634444-49.621141 49.634444l-754.442728 0c-27.41028 0-49.647747-22.224164-49.647747-49.634444L85.144192 638.776382c0-27.41028 22.224164-49.634444 49.634444-49.634444s49.634444 22.224164 49.634444 49.634444l0 220.664725 655.17384 0L839.58692 638.776382c0-27.41028 22.224164-49.634444 49.634444-49.634444S938.855808 611.366102 938.855808 638.776382zM349.445764 351.817788l112.918769-115.288746 0 429.77837c0 27.411303 22.224164 49.634444 49.634444 49.634444 27.41028 0 49.634444-22.223141 49.634444-49.634444L561.633421 236.534158 674.547073 351.812671c9.722432 9.927093 22.591531 14.904455 35.470863 14.904455 12.524245 0 25.071002-4.716418 34.725896-14.172791 19.583011-19.184945 19.913539-50.608631 0.733711-70.190619L547.478026 80.195483c-9.335622-9.535167-22.116717-14.905478-35.46063-14.905478-13.338796 0-26.120914 5.370311-35.456536 14.900362L278.542924 282.3486c-19.184945 19.588127-18.86465 51.010791 0.722454 70.190619C298.847365 371.724163 330.271052 371.394658 349.445764 351.817788z"
p-id="10858" fill="var(--color-primary)"></path>
</svg>
{{lang.template_text132}} {{lang.template_text132}}
</div> </div>
<el-button @click="batchSearchDomain" type="primary" <el-button @click="batchSearchDomain" type="primary"
@@ -200,8 +224,7 @@
<div class="domain-one-list" v-if="domainList.length !==0" v-loading="isSearching"> <div class="domain-one-list" v-if="domainList.length !==0" v-loading="isSearching">
<div class="search-title"> <div class="search-title">
<span>{{lang.template_text96}}</span> <span>{{lang.template_text96}}</span>
<span class="search-fillter is_select" @click="openFilter"><i <span class="search-fillter is_select" @click="openFilter"><i class="el-icon-search"></i>{{isShowFilrer ? lang.wx_tip15: lang.wx_tip14}}</span>
class="el-icon-search"></i>{{isShowFilrer ? lang.wx_tip15: lang.wx_tip14}}</span>
</div> </div>
<div class="fillter-list" v-if="isShowFilrer && fillterDomainSuffix.length > 0"> <div class="fillter-list" v-if="isShowFilrer && fillterDomainSuffix.length > 0">
<div class="fillter-item" :class="{'is_select':selectFilterSuffix.includes(item)}" <div class="fillter-item" :class="{'is_select':selectFilterSuffix.includes(item)}"
@@ -214,19 +237,13 @@
<div class="item-left"> <div class="item-left">
<span class="domain-name">{{item.name}}</span> <span class="domain-name">{{item.name}}</span>
<span class="domain-status" v-if="item.avail === 0">{{lang.template_text97}}</span> <span class="domain-status" v-if="item.avail === 0">{{lang.template_text97}}</span>
<span class="domain-status" <span class="domain-status" v-if="(item.avail === 1 || item.avail === -2) && item.description">{{item.description}}</span>
v-if="(item.avail === 1 || item.avail === -2) && item.description">{{item.description}}</span>
</div> </div>
<div class="item-right"> <div class="item-right">
<div class="premium-type" v-if="item.type && item.type === 'premium'"> <div class="premium-type" v-if="item.type && item.type === 'premium'">{{lang.template_text98}}</div>
{{lang.template_text98}}
</div>
<el-popover placement="bottom" trigger="hover" v-if="item.avail === 1"> <el-popover placement="bottom" trigger="hover" v-if="item.avail === 1">
<div class="pirce-box" slot="reference" v-loading="item.priceLoading"> <div class="pirce-box" slot="reference" v-loading="item.priceLoading">
<span class="now-price">{{commonData.currency_prefix}}<span <span class="now-price">{{commonData.currency_prefix}}<span style="font-size: 0.18rem; color: var(--color-price-text);">{{item.showPrice}}</span><span style="color: #485169;">/{{lang.common_cloud_text112}}</span></span>
style="font-size: 0.18rem; color: var(--color-price-text);">{{item.showPrice}}
</span><span style="color: #485169;">/{{lang.common_cloud_text112}}</span>
</span>
<i style="margin-left: 0.1rem;color: #F6F7FB;" class="el-icon-arrow-down"></i> <i style="margin-left: 0.1rem;color: #F6F7FB;" class="el-icon-arrow-down"></i>
</div> </div>
<div class="price-list"> <div class="price-list">
@@ -245,9 +262,7 @@
<el-button class="add-btn" type="primary" :plain="isAddCart(item)" <el-button class="add-btn" type="primary" :plain="isAddCart(item)"
:disabled="isAddCart(item)" v-if="item.avail === 1" :disabled="isAddCart(item)" v-if="item.avail === 1"
@click="addCart(item)">{{lang.template_text102}}</el-button> @click="addCart(item)">{{lang.template_text102}}</el-button>
<div class="whois-box" v-if="item.avail === 0" @click="goWhois(item)"> <div class="whois-box" v-if="item.avail === 0" @click="goWhois(item)">{{lang.template_text103}}</div>
{{lang.template_text103}}
</div>
<div v-if="item.avail === -1">{{lang.template_text104}}</div> <div v-if="item.avail === -1">{{lang.template_text104}}</div>
</div> </div>
</div> </div>
@@ -273,19 +288,13 @@
<span class="domain-name">{{item.name}}</span> <span class="domain-name">{{item.name}}</span>
</el-checkbox> </el-checkbox>
<span class="domain-status" v-if="item.avail === 0">{{lang.template_text114}}</span> <span class="domain-status" v-if="item.avail === 0">{{lang.template_text114}}</span>
<span class="domain-status" <span class="domain-status" v-if="(item.avail === 1 || item.avail === -2) && item.description">{{item.description}}</span>
v-if="(item.avail === 1 || item.avail === -2) && item.description">{{item.description}}</span>
</div> </div>
<div class="item-right"> <div class="item-right">
<div class="premium-type" v-if="item.type && item.type === 'premium'"> <div class="premium-type" v-if="item.type && item.type === 'premium'">{{lang.template_text115}}</div>
{{lang.template_text115}}
</div>
<el-popover placement="bottom" trigger="hover" v-if="item.avail === 1"> <el-popover placement="bottom" trigger="hover" v-if="item.avail === 1">
<div class="pirce-box" slot="reference" v-loading="item.priceLoading"> <div class="pirce-box" slot="reference" v-loading="item.priceLoading">
<span class="now-price">{{commonData.currency_prefix}}<span <span class="now-price">{{commonData.currency_prefix}}<span style="font-size: 0.18rem; color: var(--color-price-text);">{{item.showPrice}}</span><span style="color: #485169;">/{{lang.common_cloud_text112}}</span></span>
style="font-size: 0.18rem; color: var(--color-price-text);">{{item.showPrice}}
</span><span style="color: #485169;">/{{lang.common_cloud_text112}}</span>
</span>
<i style="margin-left: 0.1rem;color: #F6F7FB;" class="el-icon-arrow-down"></i> <i style="margin-left: 0.1rem;color: #F6F7FB;" class="el-icon-arrow-down"></i>
</div> </div>
<div class="price-list"> <div class="price-list">
@@ -361,13 +370,9 @@
<div class="car-top"> <div class="car-top">
<span>{{lang.template_text123}}</span> <span>{{lang.template_text123}}</span>
<span class="clear-car" @click="deleteClearCart()"> <span class="clear-car" @click="deleteClearCart()">
<svg t="1750669572885" class="icon" viewBox="0 0 1024 1024" version="1.1" <svg viewBox="0 0 1024 1024" width="16" height="16"><path d="M895.398771 267.822944 671.950695 267.822944 671.950695 100.238145c0-46.261745-37.501958-83.792903-83.790889-83.792903l-167.583792 0c-46.287924 0-83.79391 37.531157-83.79391 83.792903l0 167.584799-223.445056 0c-61.698102 0-111.723535 50.024426-111.723535 111.723535l0 55.860257c0 41.398553 22.522722 77.540227 55.981082 96.841965 0.190299 56.371748-0.120825 280.654522-0.120825 377.979786 3.818059 112.787799 111.723535 111.723535 111.723535 111.723535l307.238966 0 0-0.872958 20.968111 0c2.225187 0.568883 4.557103 0.872958 6.961514 0.872958s4.736326-0.304075 6.961514-0.872958l181.59341 0c2.225187 0.568883 4.557103 0.872958 6.961514 0.872958s4.735319-0.304075 6.960507-0.872958l132.69366 0c0 0 107.902455 1.066278 111.721521-111.532229 0-97.144027-0.310117-320.985791-0.119818-377.298133 33.45836-19.301738 55.983096-55.443412 55.983096-96.842972L1007.1213 379.546479C1007.122306 317.84737 957.096873 267.822944 895.398771 267.822944z" fill="currentColor"/></svg>
xmlns="http://www.w3.org/2000/svg" p-id="9781" width="16" height="16"> {{lang.template_text124}}
<path </span>
d="M895.398771 267.822944 671.950695 267.822944 671.950695 100.238145c0-46.261745-37.501958-83.792903-83.790889-83.792903l-167.583792 0c-46.287924 0-83.79391 37.531157-83.79391 83.792903l0 167.584799-223.445056 0c-61.698102 0-111.723535 50.024426-111.723535 111.723535l0 55.860257c0 41.398553 22.522722 77.540227 55.981082 96.841965 0.190299 56.371748-0.120825 280.654522-0.120825 377.979786 3.818059 112.787799 111.723535 111.723535 111.723535 111.723535l307.238966 0 0-0.872958 20.968111 0c2.225187 0.568883 4.557103 0.872958 6.961514 0.872958s4.736326-0.304075 6.961514-0.872958l181.59341 0c2.225187 0.568883 4.557103 0.872958 6.961514 0.872958s4.735319-0.304075 6.960507-0.872958l132.69366 0c0 0 107.902455 1.066278 111.721521-111.532229 0-97.144027-0.310117-320.985791-0.119818-377.298133 33.45836-19.301738 55.983096-55.443412 55.983096-96.842972L1007.1213 379.546479C1007.122306 317.84737 957.096873 267.822944 895.398771 267.822944zM811.604862 965.328556l-83.790889 0L727.813973 742.644695c0-15.43837-12.494276-27.929625-27.930632-27.929625-15.43837 0-27.932646 12.491255-27.932646 27.929625l0 222.683861-139.65316 0L532.297535 742.644695c0-15.43837-12.491255-27.929625-27.930632-27.929625-15.43837 0-27.929625 12.491255-27.929625 27.929625l0 223.44707c0 0-69.151976 0-139.654167 0L336.783111 742.644695c0-15.43837-12.491255-27.929625-27.930632-27.929625-15.43837 0-27.929625 12.491255-27.929625 27.929625l0 223.44707-83.79391 0c-47.459923 0-84.064758-31.259351-83.790889-83.792903 0.351398-71.180823 0.136935-263.033253 0.040275-335.168591l781.981174 0c-0.097667 72.050761-0.311123 263.506483 0.040275 334.540303C895.670627 934.122569 859.066799 965.328556 811.604862 965.328556zM951.260036 435.406736c0 30.849554-25.01171 55.860257-55.860257 55.860257L113.337047 491.266993c-30.849554 0-55.862271-25.01171-55.862271-55.860257L57.474777 379.546479c0-30.849554 25.013724-55.863278 55.862271-55.863278l279.308334 0 0-167.583792c0-46.259732 37.502965-83.792903 83.790889-83.792903l55.860257 0c46.287924 0 83.792903 37.533171 83.792903 83.792903l0 167.583792 279.308334 0c30.849554 0 55.860257 25.013724 55.860257 55.863278L951.258022 435.406736z"
p-id="9782"></path>
</svg>
{{lang.template_text124}}</span>
</div> </div>
<div class="car-box" v-loading="isCarLoading"> <div class="car-box" v-loading="isCarLoading">
<div class="car-no" v-if="carList.length === 0"> <div class="car-no" v-if="carList.length === 0">
@@ -383,15 +388,7 @@
<el-checkbox :label="item.positions"> <el-checkbox :label="item.positions">
<span class="shop-name">{{item.config_options.domain}}</span> <span class="shop-name">{{item.config_options.domain}}</span>
</el-checkbox> </el-checkbox>
<div class="car-del" @click="deleteCart(item)"> <div class="car-del" @click="deleteCart(item)">{{lang.template_text128}}</div>
<svg t="1750669572885" class="icon" viewBox="0 0 1024 1024" version="1.1"
xmlns="http://www.w3.org/2000/svg" p-id="9781" width="16" height="16">
<path
d="M895.398771 267.822944 671.950695 267.822944 671.950695 100.238145c0-46.261745-37.501958-83.792903-83.790889-83.792903l-167.583792 0c-46.287924 0-83.79391 37.531157-83.79391 83.792903l0 167.584799-223.445056 0c-61.698102 0-111.723535 50.024426-111.723535 111.723535l0 55.860257c0 41.398553 22.522722 77.540227 55.981082 96.841965 0.190299 56.371748-0.120825 280.654522-0.120825 377.979786 3.818059 112.787799 111.723535 111.723535 111.723535 111.723535l307.238966 0 0-0.872958 20.968111 0c2.225187 0.568883 4.557103 0.872958 6.961514 0.872958s4.736326-0.304075 6.961514-0.872958l181.59341 0c2.225187 0.568883 4.557103 0.872958 6.961514 0.872958s4.735319-0.304075 6.960507-0.872958l132.69366 0c0 0 107.902455 1.066278 111.721521-111.532229 0-97.144027-0.310117-320.985791-0.119818-377.298133 33.45836-19.301738 55.983096-55.443412 55.983096-96.842972L1007.1213 379.546479C1007.122306 317.84737 957.096873 267.822944 895.398771 267.822944zM811.604862 965.328556l-83.790889 0L727.813973 742.644695c0-15.43837-12.494276-27.929625-27.930632-27.929625-15.43837 0-27.932646 12.491255-27.932646 27.929625l0 222.683861-139.65316 0L532.297535 742.644695c0-15.43837-12.491255-27.929625-27.930632-27.929625-15.43837 0-27.929625 12.491255-27.929625 27.929625l0 223.44707c0 0-69.151976 0-139.654167 0L336.783111 742.644695c0-15.43837-12.491255-27.929625-27.930632-27.929625-15.43837 0-27.929625 12.491255-27.929625 27.929625l0 223.44707-83.79391 0c-47.459923 0-84.064758-31.259351-83.790889-83.792903 0.351398-71.180823 0.136935-263.033253 0.040275-335.168591l781.981174 0c-0.097667 72.050761-0.311123 263.506483 0.040275 334.540303C895.670627 934.122569 859.066799 965.328556 811.604862 965.328556zM951.260036 435.406736c0 30.849554-25.01171 55.860257-55.860257 55.860257L113.337047 491.266993c-30.849554 0-55.862271-25.01171-55.862271-55.860257L57.474777 379.546479c0-30.849554 25.013724-55.863278 55.862271-55.863278l279.308334 0 0-167.583792c0-46.259732 37.502965-83.792903 83.790889-83.792903l55.860257 0c46.287924 0 83.792903 37.533171 83.792903 83.792903l0 167.583792 279.308334 0c30.849554 0 55.860257 25.013724 55.860257 55.863278L951.258022 435.406736z"
p-id="9782"></path>
</svg>
{{lang.template_text128}}
</div>
</div> </div>
<div class="car-year"> <div class="car-year">
<el-select v-model="item.selectYear" @change="(val)=>changeCart(val,item)"> <el-select v-model="item.selectYear" @change="(val)=>changeCart(val,item)">
@@ -404,8 +401,7 @@
<div class="car-bottom"> <div class="car-bottom">
<span>{{lang.template_text87}}</span> <span>{{lang.template_text87}}</span>
<div v-loading="item.priceLoading" class="car-price"> <div v-loading="item.priceLoading" class="car-price">
{{commonData.currency_prefix}}<span {{commonData.currency_prefix}}<span style="font-size: 0.18rem; margin-right: 0.02rem;">{{priceCalc(item)}}</span>
style="font-size: 0.18rem; margin-right: 0.02rem;">{{priceCalc(item)}}</span>
</div> </div>
</div> </div>
</div> </div>
@@ -418,9 +414,7 @@
<div class="mon-right"> <div class="mon-right">
<p class="now-price"> <p class="now-price">
{{lang.template_text87}}: {{lang.template_text87}}:
<span class="money-text">{{commonData.currency_prefix}}<span <span class="money-text">{{commonData.currency_prefix}}<span style="font-size: 0.24rem;">{{totalMoneyCalc.toFixed(2)}}</span></span>
style="font-size: 0.24rem;">{{totalMoneyCalc.toFixed(2)}}</span>
</span>
</p> </p>
<p class="original-price" v-if="showOriginal"> <p class="original-price" v-if="showOriginal">
<span class="hide">{{lang.template_text87}}:{{commonData.currency_prefix}}</span> <span class="hide">{{lang.template_text87}}:{{commonData.currency_prefix}}</span>
@@ -429,8 +423,7 @@
</div> </div>
</div> </div>
<div class="car-settle"> <div class="car-settle">
<el-button type="primary" class="settle-btn" <el-button type="primary" class="settle-btn" @click="goBuyDomain">{{lang.template_text130}}</el-button>
@click="goBuyDomain">{{lang.template_text130}}</el-button>
</div> </div>
</div> </div>
</div> </div>
@@ -439,6 +432,8 @@
</div> </div>
<p v-if="!isDomain && !scrollDisabled && goodsList.length !==0" class="tips">{{lang.goods_loading}}</p> <p v-if="!isDomain && !scrollDisabled && goodsList.length !==0" class="tips">{{lang.goods_loading}}</p>
</div> </div>
</div>
</el-main> </el-main>
<div class="up-dialog"> <div class="up-dialog">
<el-dialog width="6.8rem" :visible.sync="isShowUpload" :show-close=false> <el-dialog width="6.8rem" :visible.sync="isShowUpload" :show-close=false>
@@ -446,8 +441,7 @@
<div class="dia-concent"> <div class="dia-concent">
<p class="up-tips">{{lang.template_text132}}</p> <p class="up-tips">{{lang.template_text132}}</p>
<div class="file-box"> <div class="file-box">
<input accept="text/plain" type="file" id="upFile" autocomplete="off" tabindex="-1" <input accept="text/plain" type="file" id="upFile" autocomplete="off" tabindex="-1" style="display: none;">
style="display: none;">
<input class="file-name" :placeholder="lang.template_text133" readonly :value="fileName"> <input class="file-name" :placeholder="lang.template_text133" readonly :value="fileName">
<div class="file-btn" @click="selectFile">{{lang.template_text134}}</div> <div class="file-btn" @click="selectFile">{{lang.template_text134}}</div>
</div> </div>