This commit is contained in:
hrx 2025-12-10 17:59:14 +08:00
parent bc7f6601fd
commit afa2af600e
4 changed files with 1054 additions and 224 deletions

View File

@ -242,96 +242,415 @@
.footer {
width: 100%;
background: #f5f7fa;
display: flex;
justify-content: space-around;
align-items: center;
padding: 0.4rem;
border-top: 0.013rem solid #e4e7ed;
margin-top: 0.4rem;
color: #fff;
padding: 0.4rem 0.2rem;
margin-top: 0.8rem;
}
.left-box {
.footer-content {
max-width: 12rem;
margin: 0 auto;
}
.footer {
width: 100%;
background: #f6f8fd;
color: #333;
padding: 0.6rem 0.2rem 0.4rem;
margin-top: 1rem;
position: relative;
overflow: hidden;
border-top: 1px solid #e8edf5;
}
.footer:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.footer-content {
max-width: 12.8rem;
margin: 0 auto;
position: relative;
z-index: 1;
}
/* 顶部信息区域 */
.footer-top {
display: flex;
flex-direction: column;
align-items: flex-start;
padding-bottom: 0.4rem;
margin-bottom: 0.4rem;
}
.logo-footer {
width: 1.2rem;
height: 0.4rem;
margin-right: 0.667rem;
width: 2.4rem;
height: 0.8rem;
margin-bottom: 0.4rem;
border-radius: 0.12rem;
}
.logo-footer img {
width: 100%;
height: 100%;
object-fit: contain;
}
.content-main ul {
list-style: none;
padding: 0;
margin: 0;
}
.content-main li {
.contact-info {
flex: 1;
font-size: 0.16rem;
color: #606266;
line-height: 1.8;
margin-bottom: 0.08rem;
display: grid;
grid-template-columns: 1fr;
gap: 0.24rem;
width: 100%;
}
.content-main li:last-child {
margin-bottom: 0;
@media (min-width: 768px) {
.contact-info {
grid-template-columns: 1fr 1fr;
gap: 0.3rem 0.6rem;
}
}
.content-main a {
color: #409eff;
.contact-info .contact-item {
display: flex;
align-items: flex-start;
padding: 0.16rem 0.2rem;
background: #fff;
border-radius: 0.12rem;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
cursor: pointer;
border: 1px solid #eef2f9;
}
.contact-info .contact-item:hover {
background: #fff;
border-color: #2ebdfa;
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(39, 90, 255, 0.12);
}
.contact-info .contact-item .iconfont {
width: 0.2rem;
height: 0.2rem;
margin-right: 0.12rem;
margin-top: 0.02rem;
color: #275AFF;
flex-shrink: 0;
font-size: 0.2rem;
}
.contact-info .contact-item .label {
color: #666;
flex-shrink: 0;
font-weight: 500;
margin-right: 0.08rem;
font-size: 0.14rem;
}
.contact-info .contact-item .value {
color: #444;
flex: 1;
line-height: 1.5;
}
.contact-info .contact-item .phone-numbers {
display: flex;
flex-direction: column;
gap: 0.08rem;
}
@media (min-width: 768px) {
.contact-info .contact-item .phone-numbers {
flex-direction: row;
align-items: center;
gap: 0.16rem;
}
}
.contact-info .contact-item .phone-link {
color: #333;
text-decoration: none;
transition: all 0.3s;
font-weight: 500;
font-size: 0.16rem;
}
.content-main a:hover {
.contact-info .contact-item .phone-link:hover {
color: #275AFF;
text-decoration: underline;
}
.phone-number {
margin-left: 0.267rem;
.contact-info .contact-item .phone-separator {
color: #999;
font-weight: 300;
}
@media (max-width: 768px) {
.contact-info .contact-item .phone-separator {
display: none;
}
}
.contact-info .contact-item .email-link {
color: #275AFF;
text-decoration: none;
word-break: break-all;
font-weight: 500;
font-size: 0.16rem;
}
.copyright {
margin-left: 0.267rem;
font-size: 0.16rem;
.contact-info .contact-item .email-link:hover {
color: #2ebdfa;
text-decoration: underline;
}
.police-icon {
width: 0.227rem;
height: 0.227rem;
margin-right: 0.01rem;
}
.police-link {
margin-right: 0.4rem;
}
.license-link {
font-size: 0.16rem;
}
.right-box {
.code-img {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
margin-top: 0.4rem;
}
.qr-box {
@media (min-width: 768px) {
.code-img {
width: auto;
margin-top: 0;
}
}
.code-img .qr-box {
display: flex;
flex-direction: column;
align-items: center;
background: #fff;
border-radius: 0.16rem;
padding: 0.24rem;
box-shadow: 0 2px 12px rgba(39, 90, 255, 0.08);
border: 1px solid #eef2f9;
transition: all 0.3s ease;
}
.code-img .qr-box:hover {
background: #fff;
border-color: #2ebdfa;
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(39, 90, 255, 0.15);
}
.code-img .qr-box .qr-code {
width: 1.8rem;
height: 1.8rem;
background: #fff;
border-radius: 0.12rem;
padding: 0.12rem;
border: 1px solid #eef2f9;
margin-bottom: 0.16rem;
overflow: hidden;
}
.code-img .qr-box .qr-code img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 0.04rem;
}
.code-img .qr-box .qr-content {
color: #333;
font-size: 0.14rem;
font-weight: 500;
letter-spacing: 0.5px;
}
/* 底部信息区域 */
.footer-bottom {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 0.3rem 0.2rem;
background: #fff;
border-radius: 0.16rem;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
margin-top: 0.4rem;
border: 1px solid #eef2f9;
}
@media (min-width: 768px) {
.footer-bottom {
flex-direction: row;
justify-content: space-between;
align-items: center;
text-align: left;
padding: 0.3rem 0.4rem;
}
}
.icp-info {
margin-bottom: 0.24rem;
display: flex;
flex-direction: column;
align-items: center;
}
.qr-box .qr-code {
width: 1.333rem;
height: 1.333rem;
background: #fff;
border-radius: 0.053rem;
margin-bottom: 0.133rem;
padding: 0.08rem;
border: 0.013rem solid #e4e7ed;
box-sizing: content-box;
@media (min-width: 768px) {
.icp-info {
flex-direction: row;
align-items: center;
gap: 0.6rem;
margin-bottom: 0;
}
}
.qr-box .qr-code img {
.icp-info .icp-item {
display: flex;
align-items: center;
gap: 0.08rem;
margin-bottom: 0.12rem;
}
@media (min-width: 768px) {
.icp-info .icp-item {
margin-bottom: 0;
}
}
.icp-info .icp-item .icp-text {
color: #888;
font-size: 0.14rem;
}
.icp-info .icp-item .icp-number {
color: #444;
font-weight: 500;
font-size: 0.14rem;
}
.icp-info .copyright {
color: #888;
font-size: 0.14rem;
font-weight: 300;
}
.record-info {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.16rem;
margin-bottom: 0.24rem;
}
@media (min-width: 768px) {
.record-info {
flex-direction: row;
align-items: center;
gap: 0.6rem;
margin-bottom: 0;
}
}
.police-record {
display: flex;
align-items: center;
gap: 0.1rem;
padding: 0.08rem 0.16rem;
background: #f9fafc;
border-radius: 0.24rem;
transition: all 0.3s;
border: 1px solid #eef2f9;
}
.police-record:hover {
background: #f0f5ff;
border-color: #275AFF;
transform: translateY(-2px);
}
.police-record .police-icon {
width: 0.18rem;
height: 0.18rem;
}
.police-record .police-link {
color: #666;
text-decoration: none;
font-size: 0.14rem;
}
.police-record .police-link:hover {
color: #275AFF;
text-decoration: underline;
}
.license-record .license-link {
color: #666;
text-decoration: none;
font-size: 0.14rem;
padding: 0.08rem 0.16rem;
background: #f9fafc;
border-radius: 0.24rem;
transition: all 0.3s;
border: 1px solid #eef2f9;
}
.license-record .license-link:hover {
background: #f0f5ff;
color: #275AFF;
text-decoration: underline;
transform: translateY(-2px);
border-color: #275AFF;
}
/* 移动端二维码 */
.mobile-qr {
display: flex;
justify-content: center;
width: 100%;
margin-top: 0.4rem;
}
@media (min-width: 768px) {
.mobile-qr {
display: none;
}
}
.mobile-qr .qr-item {
display: flex;
flex-direction: column;
align-items: center;
background: #fff;
border-radius: 0.16rem;
padding: 0.24rem;
box-shadow: 0 2px 12px rgba(39, 90, 255, 0.08);
border: 1px solid #eef2f9;
width: 100%;
max-width: 2.4rem;
margin-right: 0.4rem;
}
.mobile-qr .qr-item .qr-code {
width: 1.6rem;
height: 1.6rem;
background: #fff;
border-radius: 0.12rem;
padding: 0.12rem;
border: 1px solid #eef2f9;
margin-bottom: 0.16rem;
}
.mobile-qr .qr-item .qr-code img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 0.04rem;
}
.qr-box .qr-content {
.mobile-qr .qr-item .qr-desc {
color: #333;
font-size: 0.16rem;
color: #606266;
font-weight: 500;
}
.qr-box-margin {
margin-left: 0.667rem;
/* PC端二维码 */
.pc-qr {
position: absolute;
right: 0.4rem;
bottom: 0.4rem;
display: none;
}
@media (min-width: 768px) {
.pc-qr {
display: block;
}
}
.pc-qr .qr-box {
display: flex;
flex-direction: column;
align-items: center;
background: #fff;
border-radius: 0.16rem;
padding: 0.24rem;
box-shadow: 0 2px 12px rgba(39, 90, 255, 0.08);
border: 1px solid #eef2f9;
transition: all 0.3s ease;
}
.pc-qr .qr-box:hover {
background: #fff;
border-color: #2ebdfa;
transform: translateY(-4px) scale(1.05);
box-shadow: 0 8px 24px rgba(39, 90, 255, 0.15);
}
.pc-qr .qr-box .qr-code {
width: 1.6rem;
height: 1.6rem;
background: #fff;
border-radius: 0.12rem;
padding: 0.12rem;
border: 1px solid #eef2f9;
margin-bottom: 0.16rem;
}
.pc-qr .qr-box .qr-code img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 0.04rem;
}
.pc-qr .qr-box .qr-content {
color: #333;
font-size: 0.14rem;
font-weight: 500;
letter-spacing: 0.5px;
}
/* 响应式调整 */

View File

@ -244,119 +244,514 @@
.footer {
width: 100%;
background: #f5f7fa;
display: flex;
justify-content: space-around;
align-items: center;
padding: 0.4rem;
border-top: 0.013rem solid #e4e7ed;
margin-top: 0.4rem;
color: #fff;
padding: 0.4rem 0.2rem;
margin-top: 0.8rem;
}
.left-box {
.footer-content {
max-width: 12rem;
margin: 0 auto;
}
.footer {
width: 100%;
background: #f6f8fd;
color: #333;
padding: 0.6rem 0.2rem 0.4rem;
margin-top: 1rem;
position: relative;
overflow: hidden;
border-top: 1px solid #e8edf5;
}
.footer:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.footer-content {
max-width: 12.8rem;
margin: 0 auto;
position: relative;
z-index: 1;
}
/* 顶部信息区域 */
.footer-top {
display: flex;
flex-direction: column;
align-items: flex-start;
padding-bottom: 0.4rem;
margin-bottom: 0.4rem;
}
.logo-footer {
width: 1.2rem;
height: 0.4rem;
margin-right: 0.667rem;
width: 2.4rem;
height: .8rem;
margin-bottom: 0.4rem;
border-radius: 0.12rem;
// padding: 0.2rem;
// background: #fff;
// box-shadow: 0 2px 12px rgba(39, 90, 255, 0.08);
img {
width: 100%;
height: 100%;
object-fit: contain;
// object-fit: contain;
}
}
.content-main {
ul {
list-style: none;
padding: 0;
margin: 0;
.contact-info {
flex: 1;
font-size: 0.16rem;
display: grid;
grid-template-columns: 1fr;
gap: 0.24rem;
width: 100%;
@media (min-width: 768px) {
grid-template-columns: 1fr 1fr;
gap: 0.3rem 0.6rem;
}
li {
font-size: 0.16rem;
color: #606266;
line-height: 1.8;
margin-bottom: 0.08rem;
.contact-item {
display: flex;
align-items: flex-start;
padding: 0.16rem 0.2rem;
background: #fff;
border-radius: 0.12rem;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
cursor: pointer;
border: 1px solid #eef2f9;
&:last-child {
&:hover {
background: #fff;
border-color: #2ebdfa;
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(39, 90, 255, 0.12);
}
.iconfont {
width: 0.2rem;
height: 0.2rem;
margin-right: 0.12rem;
margin-top: 0.02rem;
color: #275AFF;
flex-shrink: 0;
font-size: 0.2rem;
}
.label {
color: #666;
flex-shrink: 0;
font-weight: 500;
margin-right: 0.08rem;
font-size: 0.14rem;
}
.value {
color: #444;
flex: 1;
line-height: 1.5;
}
.phone-numbers {
display: flex;
flex-direction: column;
gap: 0.08rem;
@media (min-width: 768px) {
flex-direction: row;
align-items: center;
gap: 0.16rem;
}
}
.phone-link {
color: #333;
text-decoration: none;
transition: all 0.3s;
font-weight: 500;
font-size: 0.16rem;
&:hover {
color: #275AFF;
text-decoration: underline;
}
}
.phone-separator {
color: #999;
font-weight: 300;
@media (max-width: 768px) {
display: none;
}
}
.email-link {
color: #275AFF;
text-decoration: none;
word-break: break-all;
font-weight: 500;
font-size: 0.16rem;
&:hover {
color: #2ebdfa;
text-decoration: underline;
}
}
}
}
.code-img {
display: flex;
justify-content: center;
width: 100%;
margin-top: 0.4rem;
@media (min-width: 768px) {
width: auto;
margin-top: 0;
}
.qr-box {
display: flex;
flex-direction: column;
align-items: center;
background: #fff;
border-radius: 0.16rem;
padding: 0.24rem;
box-shadow: 0 2px 12px rgba(39, 90, 255, 0.08);
border: 1px solid #eef2f9;
transition: all 0.3s ease;
&:hover {
background: #fff;
border-color: #2ebdfa;
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(39, 90, 255, 0.15);
}
.qr-code {
width: 1.8rem;
height: 1.8rem;
background: #fff;
border-radius: 0.12rem;
padding: 0.12rem;
border: 1px solid #eef2f9;
margin-bottom: 0.16rem;
overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 0.04rem;
}
}
.qr-content {
color: #333;
font-size: 0.14rem;
font-weight: 500;
letter-spacing: 0.5px;
}
}
}
/* 底部信息区域 */
.footer-bottom {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 0.3rem 0.2rem;
background: #fff;
border-radius: 0.16rem;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
margin-top: 0.4rem;
border: 1px solid #eef2f9;
@media (min-width: 768px) {
flex-direction: row;
justify-content: space-between;
align-items: center;
text-align: left;
padding: 0.3rem 0.4rem;
}
}
.icp-info {
margin-bottom: 0.24rem;
display: flex;
flex-direction: column;
align-items: center;
@media (min-width: 768px) {
flex-direction: row;
align-items: center;
gap: 0.6rem;
margin-bottom: 0;
}
.icp-item {
display: flex;
align-items: center;
gap: 0.08rem;
margin-bottom: 0.12rem;
@media (min-width: 768px) {
margin-bottom: 0;
}
.icp-text {
color: #888;
font-size: 0.14rem;
}
.icp-number {
color: #444;
font-weight: 500;
font-size: 0.14rem;
}
}
a {
color: #409eff;
.copyright {
color: #888;
font-size: 0.14rem;
font-weight: 300;
}
}
.record-info {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.16rem;
margin-bottom: 0.24rem;
@media (min-width: 768px) {
flex-direction: row;
align-items: center;
gap: 0.6rem;
margin-bottom: 0;
}
}
.police-record {
display: flex;
align-items: center;
gap: 0.1rem;
padding: 0.08rem 0.16rem;
background: #f9fafc;
border-radius: 0.24rem;
transition: all 0.3s;
border: 1px solid #eef2f9;
&:hover {
background: #f0f5ff;
border-color: #275AFF;
transform: translateY(-2px);
}
.police-icon {
width: 0.18rem;
height: 0.18rem;
}
.police-link {
color: #666;
text-decoration: none;
font-size: 0.16rem;
font-size: 0.14rem;
&:hover {
color: #275AFF;
text-decoration: underline;
}
}
}
.phone-number {
margin-left: 0.267rem;
font-size: .16rem;
}
.license-record {
.license-link {
color: #666;
text-decoration: none;
font-size: 0.14rem;
padding: 0.08rem 0.16rem;
background: #f9fafc;
border-radius: 0.24rem;
transition: all 0.3s;
border: 1px solid #eef2f9;
.copyright {
margin-left: 0.267rem;
font-size: .16rem;
}
.police-icon {
width: 0.227rem;
height: 0.227rem;
margin-right: 0.01rem;
// vertical-align: middle;
}
.police-link {
margin-right: 0.4rem;
}
.license-link {
font-size: 0.16rem;
}
.right-box {
display: flex;
align-items: center;
}
.qr-box {
display: flex;
flex-direction: column;
align-items: center;
.qr-code {
width: 1.333rem;
height: 1.333rem;
background: #fff;
border-radius: 0.053rem;
margin-bottom: 0.133rem;
padding: 0.08rem;
border: 0.013rem solid #e4e7ed;
box-sizing: content-box;
img {
width: 100%;
height: 100%;
object-fit: contain;
&:hover {
background: #f0f5ff;
color: #275AFF;
text-decoration: underline;
transform: translateY(-2px);
border-color: #275AFF;
}
}
}
.qr-content {
font-size: 0.16rem;
color: #606266;
/* 移动端二维码 */
.mobile-qr {
display: flex;
justify-content: center;
width: 100%;
margin-top: 0.4rem;
@media (min-width: 768px) {
display: none;
}
.qr-item {
display: flex;
flex-direction: column;
align-items: center;
background: #fff;
border-radius: 0.16rem;
padding: 0.24rem;
box-shadow: 0 2px 12px rgba(39, 90, 255, 0.08);
border: 1px solid #eef2f9;
width: 100%;
max-width: 2.4rem;
margin-right: 0.4rem;
.qr-code {
width: 1.6rem;
height: 1.6rem;
background: #fff;
border-radius: 0.12rem;
padding: 0.12rem;
border: 1px solid #eef2f9;
margin-bottom: 0.16rem;
img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 0.04rem;
}
}
.qr-desc {
color: #333;
font-size: 0.16rem;
font-weight: 500;
}
}
}
.qr-box-margin {
margin-left: 0.667rem;
/* PC端二维码 */
.pc-qr {
position: absolute;
right: 0.4rem;
bottom: 0.4rem;
display: none;
@media (min-width: 768px) {
display: block;
}
.qr-box {
display: flex;
flex-direction: column;
align-items: center;
background: #fff;
border-radius: 0.16rem;
padding: 0.24rem;
box-shadow: 0 2px 12px rgba(39, 90, 255, 0.08);
border: 1px solid #eef2f9;
transition: all 0.3s ease;
&:hover {
background: #fff;
border-color: #2ebdfa;
transform: translateY(-4px) scale(1.05);
box-shadow: 0 8px 24px rgba(39, 90, 255, 0.15);
}
.qr-code {
width: 1.6rem;
height: 1.6rem;
background: #fff;
border-radius: 0.12rem;
padding: 0.12rem;
border: 1px solid #eef2f9;
margin-bottom: 0.16rem;
img {
width: 100%;
height: 100%;
object-fit: contain;
border-radius: 0.04rem;
}
}
.qr-content {
color: #333;
font-size: 0.14rem;
font-weight: 500;
letter-spacing: 0.5px;
}
}
}
/* 响应式调整 */
// @media (max-width: 768px) {
// .footer {
// padding: 0.4rem 0.2rem 0.3rem;
// }
// .footer-top {
// padding-bottom: 0.3rem;
// margin-bottom: 0.3rem;
// }
// // .logo-footer {
// // width: 2rem;
// // height: 0.5rem;
// // }
// .contact-info {
// .contact-item {
// font-size: 0.14rem;
// padding: 0.14rem 0.16rem;
// }
// }
// .footer-bottom {
// padding: 0.24rem 0.16rem;
// font-size: 0.13rem;
// }
// }
// @media (max-width: 480px) {
// .footer {
// padding: 0.3rem 0.15rem 0.2rem;
// }
// .contact-info {
// grid-template-columns: 1fr;
// gap: 0.16rem;
// .contact-item {
// font-size: 0.13rem;
// padding: 0.12rem 0.14rem;
// }
// }
// .record-info {
// flex-direction: column;
// gap: 0.12rem;
// }
// }

View File

@ -7,16 +7,8 @@
<!-- 供应商 -->
<div class="supplier-container">
<div
v-for="(value, index) in cloudData.secMenu"
:key="index"
class="supplier"
@click="selectSupplier(index)"
>
<div
class="supplier-title"
:class="{ 'active': activeSupplierIndex === index }"
>
<div v-for="(value, index) in cloudData.secMenu" :key="index" class="supplier" @click="selectSupplier(index)">
<div class="supplier-title" :class="{ 'active': activeSupplierIndex === index }">
{{ value.secTitle }}
</div>
</div>
@ -27,27 +19,22 @@
<!-- 只显示当前选中的供应商的产品 -->
<template v-if="cloudData.secMenu && cloudData.secMenu.length > 0 && activeSupplierIndex >= 0">
<template v-for="thrMenu in cloudData.secMenu[activeSupplierIndex].thrMenu">
<div
v-for="product in thrMenu.value"
:key="product.id"
class="box-item"
>
<div v-for="product in thrMenu.value" :key="product.id" class="box-item">
<!-- 标题 -->
<div class="item-tit">
{{ product.name }}
</div>
<!-- 详情 -->
<div class="item-detail">
{{ product.description || ''}}
<!-- 产品描述如果有 -->
<div class="item-detail" v-if="product.description">
{{ product.description }}
</div>
<!-- 描述 -->
<div class="item-desc" v-if="product.ssecTitle == '百度云'">
{{ product.label }}
</div>
<!-- 描述 -->
<div class="item-desc"v-if="product.ssecTitle == '阿里云'">
阿里云
<!-- 供应商标签 -->
<div class="item-desc" v-if="showProductDesc(product)">
{{ getProductDesc(product) }}
</div>
<!-- 立即咨询 -->
<div class="item-btn">
<div class="btn" @click="openConsultDialog(product, thrMenu)">
@ -60,15 +47,9 @@
</div>
<!-- 产品咨询弹窗 -->
<ProductConsultDialog
:visible.sync="showConsultDialog"
:platform-name="platformName"
:qr-code="qrCode"
:default-form-data="consultFormData"
:submit-api="submitConsultApi"
@success="handleConsultSuccess"
@close="handleDialogClose"
/>
<ProductConsultDialog :visible.sync="showConsultDialog" :platform-name="platformName" :qr-code="qrCode"
:default-form-data="consultFormData" :submit-api="submitConsultApi" @success="handleConsultSuccess"
@close="handleDialogClose" />
</div>
</template>
@ -107,15 +88,96 @@ export default {
created() {
this.getCloudData()
},
computed: {
//
currentSupplierTitle() {
if (this.cloudData.secMenu && this.cloudData.secMenu[this.activeSupplierIndex]) {
return this.cloudData.secMenu[this.activeSupplierIndex].secTitle
}
return ''
}
},
methods: {
//
showProductDesc(product) {
// label
if (this.currentSupplierTitle === '百度云' && product.label) {
return true
}
// label
if (this.currentSupplierTitle === '阿里云') {
return true
}
//
return false
},
//
getProductDesc(product) {
//
const supplierTitle = this.currentSupplierTitle
//
if (supplierTitle === '百度云') {
// productssecTitle使
if (product.ssecTitle && product.ssecTitle.trim() !== '') {
return product.ssecTitle
}
// 使label
return product.label || '百度云'
}
// - ssecTitlelabel
if (supplierTitle === '阿里云') {
// ssecTitle使
if (product.ssecTitle && product.ssecTitle.trim() !== '') {
return product.ssecTitle
}
// label使
if (product.label && product.label.trim() !== '') {
return product.label
}
// ""
return '阿里云'
}
//
return supplierTitle
},
//
async getCloudData() {
const res = await reqNavList({ url_link: window.location.href })
if (res.status == true) {
this.cloudData = res.data.product_service[0]
console.log(this.cloudData);
console.log('云产品数据:', this.cloudData)
//
if (this.cloudData.secMenu && this.cloudData.secMenu.length > 0) {
this.activeSupplierIndex = 0
//
this.cloudData.secMenu.forEach((supplier, index) => {
console.log(`供应商 ${index} (${supplier.secTitle}):`)
if (supplier.thrMenu && supplier.thrMenu.length > 0) {
supplier.thrMenu.forEach((category, catIndex) => {
console.log(` 分类 ${catIndex} (${category.thrTitle}):`)
if (category.value && category.value.length > 0) {
//
const firstProduct = category.value[0]
console.log(` 第一个产品:`, {
name: firstProduct.name,
description: firstProduct.description,
label: firstProduct.label,
ssecTitle: firstProduct.ssecTitle,
source: firstProduct.source
})
}
})
}
})
}
}
},
@ -152,9 +214,7 @@ export default {
page_type: 'product_list'
}
return await reqProductConsult(submitData)
},
//
@ -184,11 +244,11 @@ export default {
</script>
<style>
html,
body {
height: 100%;
overflow-y: auto;
}
html,
body {
height: 100%;
overflow-y: auto;
}
</style>
<style lang="less" scoped>
.top-tit {
@ -205,13 +265,16 @@ export default {
.supplier-container {
display: flex;
flex-wrap: wrap; /* 允许换行 */
flex-wrap: wrap;
/* 允许换行 */
padding: .2rem .22rem;
gap: .15rem; /* 使用gap控制间距 */
gap: .15rem;
/* 使用gap控制间距 */
}
.supplier {
flex-shrink: 0; /* 防止收缩 */
flex-shrink: 0;
/* 防止收缩 */
.supplier-title {
font-size: .2rem;
@ -222,7 +285,8 @@ export default {
cursor: pointer;
transition: all 0.3s ease;
white-space: nowrap; /* 防止文字换行 */
white-space: nowrap;
/* 防止文字换行 */
&:hover {
background-color: #e0e0e0;
@ -245,6 +309,7 @@ export default {
flex-wrap: wrap;
justify-content: space-between;
padding: 0 .3rem;
.box-item {
display: flex;
width: 48%;
@ -262,19 +327,22 @@ export default {
border-color: #1f70ff;
}
.item-tit{
.item-tit {
font-size: .16rem;
color: #000;
font-weight: bold;
margin-bottom: .1rem;
}
.item-detail{
.item-detail {
color: #666;
font-size: .13rem;
margin: .15rem 0;
line-height: 1.4;
min-height: .4rem; //
}
.item-desc{
.item-desc {
color: #666;
background-color: #f8f9fa;
font-size: .12rem;
@ -282,12 +350,17 @@ export default {
border-radius: .1rem;
margin-bottom: .15rem;
border: .01rem solid #e9ecef;
min-height: .32rem; //
display: flex;
align-items: center;
}
.item-btn{
.item-btn {
width: 100%;
display: flex;
justify-content: flex-end;
.btn{
.btn {
background: linear-gradient(90deg, #1f70ff, #3a8cff);
color: #fff;
padding: .08rem .2rem;

View File

@ -129,38 +129,88 @@
</div>
</div>
<!-- footer -->
<!-- 修改footer部分 -->
<div class="footer">
<div class="left-box">
<div class="logo-footer">
<img :src="logoImg" alt="公司logo" v-if="logoImg">
<img src="@/assets/kyy/LOGO.png" alt="公司logo" class="img" v-else>
<div class="footer-content">
<!-- 顶部信息 -->
<div class="footer-top">
<div class="logo-footer">
<img :src="logoImg" alt="公司logo" v-if="logoImg">
<img src="@/assets/kyy/LOGO.png" alt="公司logo" class="img" v-else>
</div>
<div class="contact-info">
<div class="contact-item">
<i class="iconfont icon-dizhi"></i>
<span class="label">地址</span>
<span class="value">{{ address }}</span>
</div>
<div class="contact-item">
<i class="iconfont icon-dianhua"></i>
<span class="label">电话</span>
<div class="phone-numbers">
<a href="tel:400-6150805" class="phone-link">400-6150805</a>
<span class="phone-separator">/</span>
<a href="tel:010-65917875" class="phone-link">010-65917875</a>
</div>
</div>
<div class="contact-item">
<i class="iconfont icon-youxiang"></i>
<span class="label">邮箱</span>
<a href="mailto:Open-computing@kaiyuancloud.cn" class="email-link">
Open-computing@kaiyuancloud.cn
</a>
</div>
</div>
</div>
<div class="content-main">
<ul>
<li>地址: {{ address }}</li>
<li>电话400-6150805 &nbsp;&nbsp;&nbsp;&nbsp;
<span class="phone-number">010-65917875</span>
</li>
<li>邮箱Open-computing@kaiyuancloud.cn</li>
<li>IPC备案号: {{ ICP }}
</li>
<li>
版权所有 @kaiyuanyun 2023
</li>
<li >
<!-- 备案信息 -->
<div class="footer-bottom">
<div class="icp-info">
<div class="icp-item">
<span class="icp-text">ICP备案号</span>
<span class="icp-number">{{ ICP }}</span>
</div>
<div class="copyright">
版权所有 © kaiyuanyun 2023
</div>
</div>
<div class="record-info">
<div class="police-record">
<img src="@/image/login/policeInsignia/policeInsignia.png" alt="公安备案图标" class="police-icon">
<a href="https://beian.mps.gov.cn/#/query/webSearch?code=11010502054007" rel="noreferrer" target="_blank"
class="police-link">京公网安备11010502054007</a>
<span>
<router-link tag="a" target="_blank" class="license-link"
:to="{ name: 'homePageImage' }">经营许可证:京B2-20232313</router-link>
</span>
</li>
</ul>
class="police-link">
京公网安备 11010502054007
</a>
</div>
<div class="license-record">
<router-link tag="a" target="_blank" class="license-link" :to="{ name: 'homePageImage' }">
经营许可证京B2-20232313
</router-link>
</div>
</div>
<!-- 移动端显示的二维码 -->
<div class="mobile-qr">
<div class="qr-item">
<div class="qr-code">
<img src="@/assets/kyy/kyy公众号.jpg" alt="微信客服二维码">
</div>
<span class="qr-desc">扫描关注二维码</span>
</div>
<div class="qr-item">
<div class="qr-code">
<img src="@/assets/kyy/客服wechat.png" alt="微信客服二维码">
</div>
<span class="qr-desc">微信客服</span>
</div>
</div>
</div>
</div>
<div class="right-box">
<!-- PC端显示的二维码移动端隐藏 -->
<div class="pc-qr">
<div class="qr-box">
<div class="qr-code">
<img src="@/assets/kyy/客服wechat.png" alt="微信客服二维码">
@ -169,17 +219,10 @@
</div>
</div>
</div>
<!-- 产品咨询弹窗 -->
<ProductConsultDialog
:visible.sync="showConsultDialog"
:platform-name="platformName"
:qr-code="qrCode"
:default-form-data="consultFormData"
:submit-api="submitConsultApi"
@success="handleConsultSuccess"
@close="handleDialogClose"
/>
<ProductConsultDialog :visible.sync="showConsultDialog" :platform-name="platformName" :qr-code="qrCode"
:default-form-data="consultFormData" :submit-api="submitConsultApi" @success="handleConsultSuccess"
@close="handleDialogClose" />
</div>
</template>