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 { .footer {
width: 100%; width: 100%;
background: #f5f7fa; background: #f5f7fa;
display: flex; color: #fff;
justify-content: space-around; padding: 0.4rem 0.2rem;
align-items: center; margin-top: 0.8rem;
padding: 0.4rem;
border-top: 0.013rem solid #e4e7ed;
margin-top: 0.4rem;
} }
.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; display: flex;
flex-direction: column;
align-items: flex-start; align-items: flex-start;
padding-bottom: 0.4rem;
margin-bottom: 0.4rem;
} }
.logo-footer { .logo-footer {
width: 1.2rem; width: 2.4rem;
height: 0.4rem; height: 0.8rem;
margin-right: 0.667rem; margin-bottom: 0.4rem;
border-radius: 0.12rem;
} }
.logo-footer img { .logo-footer img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain;
} }
.content-main ul { .contact-info {
list-style: none; flex: 1;
padding: 0;
margin: 0;
}
.content-main li {
font-size: 0.16rem; font-size: 0.16rem;
color: #606266; display: grid;
line-height: 1.8; grid-template-columns: 1fr;
margin-bottom: 0.08rem; gap: 0.24rem;
width: 100%;
} }
.content-main li:last-child { @media (min-width: 768px) {
margin-bottom: 0; .contact-info {
grid-template-columns: 1fr 1fr;
gap: 0.3rem 0.6rem;
}
} }
.content-main a { .contact-info .contact-item {
color: #409eff; 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; text-decoration: none;
transition: all 0.3s;
font-weight: 500;
font-size: 0.16rem; font-size: 0.16rem;
} }
.content-main a:hover { .contact-info .contact-item .phone-link:hover {
color: #275AFF;
text-decoration: underline; text-decoration: underline;
} }
.phone-number { .contact-info .contact-item .phone-separator {
margin-left: 0.267rem; 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; font-size: 0.16rem;
} }
.copyright { .contact-info .contact-item .email-link:hover {
margin-left: 0.267rem; color: #2ebdfa;
font-size: 0.16rem; text-decoration: underline;
} }
.police-icon { .code-img {
width: 0.227rem;
height: 0.227rem;
margin-right: 0.01rem;
}
.police-link {
margin-right: 0.4rem;
}
.license-link {
font-size: 0.16rem;
}
.right-box {
display: flex; 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; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
} }
.qr-box .qr-code { @media (min-width: 768px) {
width: 1.333rem; .icp-info {
height: 1.333rem; flex-direction: row;
background: #fff; align-items: center;
border-radius: 0.053rem; gap: 0.6rem;
margin-bottom: 0.133rem; margin-bottom: 0;
padding: 0.08rem; }
border: 0.013rem solid #e4e7ed;
box-sizing: content-box;
} }
.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%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; object-fit: contain;
border-radius: 0.04rem;
} }
.qr-box .qr-content { .mobile-qr .qr-item .qr-desc {
color: #333;
font-size: 0.16rem; font-size: 0.16rem;
color: #606266; font-weight: 500;
} }
.qr-box-margin { /* PC端二维码 */
margin-left: 0.667rem; .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 { .footer {
width: 100%; width: 100%;
background: #f5f7fa; background: #f5f7fa;
display: flex; color: #fff;
justify-content: space-around; padding: 0.4rem 0.2rem;
align-items: center; margin-top: 0.8rem;
padding: 0.4rem;
border-top: 0.013rem solid #e4e7ed;
margin-top: 0.4rem;
} }
.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; display: flex;
flex-direction: column;
align-items: flex-start; align-items: flex-start;
padding-bottom: 0.4rem;
margin-bottom: 0.4rem;
} }
.logo-footer { .logo-footer {
width: 1.2rem; width: 2.4rem;
height: 0.4rem; height: .8rem;
margin-right: 0.667rem; 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 { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; // object-fit: contain;
} }
} }
.content-main { .contact-info {
ul { flex: 1;
list-style: none; font-size: 0.16rem;
padding: 0; display: grid;
margin: 0; grid-template-columns: 1fr;
gap: 0.24rem;
width: 100%;
@media (min-width: 768px) {
grid-template-columns: 1fr 1fr;
gap: 0.3rem 0.6rem;
} }
li { .contact-item {
font-size: 0.16rem; display: flex;
color: #606266; align-items: flex-start;
line-height: 1.8; padding: 0.16rem 0.2rem;
margin-bottom: 0.08rem; 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; margin-bottom: 0;
} }
.icp-text {
color: #888;
font-size: 0.14rem;
}
.icp-number {
color: #444;
font-weight: 500;
font-size: 0.14rem;
}
} }
a { .copyright {
color: #409eff; 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; text-decoration: none;
font-size: 0.16rem; font-size: 0.14rem;
&:hover { &:hover {
color: #275AFF;
text-decoration: underline; text-decoration: underline;
} }
} }
} }
.phone-number { .license-record {
margin-left: 0.267rem; .license-link {
font-size: .16rem; 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 { &:hover {
margin-left: 0.267rem; background: #f0f5ff;
font-size: .16rem; color: #275AFF;
} text-decoration: underline;
transform: translateY(-2px);
.police-icon { border-color: #275AFF;
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;
} }
} }
}
.qr-content { /* 移动端二维码 */
font-size: 0.16rem; .mobile-qr {
color: #606266; 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 { /* PC端二维码 */
margin-left: 0.667rem; .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 class="supplier-container">
<div <div v-for="(value, index) in cloudData.secMenu" :key="index" class="supplier" @click="selectSupplier(index)">
v-for="(value, index) in cloudData.secMenu" <div class="supplier-title" :class="{ 'active': activeSupplierIndex === index }">
:key="index"
class="supplier"
@click="selectSupplier(index)"
>
<div
class="supplier-title"
:class="{ 'active': activeSupplierIndex === index }"
>
{{ value.secTitle }} {{ value.secTitle }}
</div> </div>
</div> </div>
@ -27,27 +19,22 @@
<!-- 只显示当前选中的供应商的产品 --> <!-- 只显示当前选中的供应商的产品 -->
<template v-if="cloudData.secMenu && cloudData.secMenu.length > 0 && activeSupplierIndex >= 0"> <template v-if="cloudData.secMenu && cloudData.secMenu.length > 0 && activeSupplierIndex >= 0">
<template v-for="thrMenu in cloudData.secMenu[activeSupplierIndex].thrMenu"> <template v-for="thrMenu in cloudData.secMenu[activeSupplierIndex].thrMenu">
<div <div v-for="product in thrMenu.value" :key="product.id" class="box-item">
v-for="product in thrMenu.value"
:key="product.id"
class="box-item"
>
<!-- 标题 --> <!-- 标题 -->
<div class="item-tit"> <div class="item-tit">
{{ product.name }} {{ product.name }}
</div> </div>
<!-- 详情 -->
<div class="item-detail"> <!-- 产品描述如果有 -->
{{ product.description || ''}} <div class="item-detail" v-if="product.description">
{{ product.description }}
</div> </div>
<!-- 描述 -->
<div class="item-desc" v-if="product.ssecTitle == '百度云'"> <!-- 供应商标签 -->
{{ product.label }} <div class="item-desc" v-if="showProductDesc(product)">
</div> {{ getProductDesc(product) }}
<!-- 描述 -->
<div class="item-desc"v-if="product.ssecTitle == '阿里云'">
阿里云
</div> </div>
<!-- 立即咨询 --> <!-- 立即咨询 -->
<div class="item-btn"> <div class="item-btn">
<div class="btn" @click="openConsultDialog(product, thrMenu)"> <div class="btn" @click="openConsultDialog(product, thrMenu)">
@ -60,15 +47,9 @@
</div> </div>
<!-- 产品咨询弹窗 --> <!-- 产品咨询弹窗 -->
<ProductConsultDialog <ProductConsultDialog :visible.sync="showConsultDialog" :platform-name="platformName" :qr-code="qrCode"
:visible.sync="showConsultDialog" :default-form-data="consultFormData" :submit-api="submitConsultApi" @success="handleConsultSuccess"
:platform-name="platformName" @close="handleDialogClose" />
:qr-code="qrCode"
:default-form-data="consultFormData"
:submit-api="submitConsultApi"
@success="handleConsultSuccess"
@close="handleDialogClose"
/>
</div> </div>
</template> </template>
@ -107,15 +88,96 @@ export default {
created() { created() {
this.getCloudData() this.getCloudData()
}, },
computed: {
//
currentSupplierTitle() {
if (this.cloudData.secMenu && this.cloudData.secMenu[this.activeSupplierIndex]) {
return this.cloudData.secMenu[this.activeSupplierIndex].secTitle
}
return ''
}
},
methods: { 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() { async getCloudData() {
const res = await reqNavList({ url_link: window.location.href }) const res = await reqNavList({ url_link: window.location.href })
if (res.status == true) { if (res.status == true) {
this.cloudData = res.data.product_service[0] this.cloudData = res.data.product_service[0]
console.log(this.cloudData); console.log('云产品数据:', this.cloudData)
// //
if (this.cloudData.secMenu && this.cloudData.secMenu.length > 0) { if (this.cloudData.secMenu && this.cloudData.secMenu.length > 0) {
this.activeSupplierIndex = 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' page_type: 'product_list'
} }
return await reqProductConsult(submitData) return await reqProductConsult(submitData)
}, },
// //
@ -184,11 +244,11 @@ export default {
</script> </script>
<style> <style>
html, html,
body { body {
height: 100%; height: 100%;
overflow-y: auto; overflow-y: auto;
} }
</style> </style>
<style lang="less" scoped> <style lang="less" scoped>
.top-tit { .top-tit {
@ -205,13 +265,16 @@ export default {
.supplier-container { .supplier-container {
display: flex; display: flex;
flex-wrap: wrap; /* 允许换行 */ flex-wrap: wrap;
/* 允许换行 */
padding: .2rem .22rem; padding: .2rem .22rem;
gap: .15rem; /* 使用gap控制间距 */ gap: .15rem;
/* 使用gap控制间距 */
} }
.supplier { .supplier {
flex-shrink: 0; /* 防止收缩 */ flex-shrink: 0;
/* 防止收缩 */
.supplier-title { .supplier-title {
font-size: .2rem; font-size: .2rem;
@ -222,7 +285,8 @@ export default {
cursor: pointer; cursor: pointer;
transition: all 0.3s ease; transition: all 0.3s ease;
white-space: nowrap; /* 防止文字换行 */ white-space: nowrap;
/* 防止文字换行 */
&:hover { &:hover {
background-color: #e0e0e0; background-color: #e0e0e0;
@ -245,6 +309,7 @@ export default {
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
padding: 0 .3rem; padding: 0 .3rem;
.box-item { .box-item {
display: flex; display: flex;
width: 48%; width: 48%;
@ -262,19 +327,22 @@ export default {
border-color: #1f70ff; border-color: #1f70ff;
} }
.item-tit{ .item-tit {
font-size: .16rem; font-size: .16rem;
color: #000; color: #000;
font-weight: bold; font-weight: bold;
margin-bottom: .1rem; margin-bottom: .1rem;
} }
.item-detail{
.item-detail {
color: #666; color: #666;
font-size: .13rem; font-size: .13rem;
margin: .15rem 0; margin: .15rem 0;
line-height: 1.4; line-height: 1.4;
min-height: .4rem; //
} }
.item-desc{
.item-desc {
color: #666; color: #666;
background-color: #f8f9fa; background-color: #f8f9fa;
font-size: .12rem; font-size: .12rem;
@ -282,12 +350,17 @@ export default {
border-radius: .1rem; border-radius: .1rem;
margin-bottom: .15rem; margin-bottom: .15rem;
border: .01rem solid #e9ecef; border: .01rem solid #e9ecef;
min-height: .32rem; //
display: flex;
align-items: center;
} }
.item-btn{
.item-btn {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
.btn{
.btn {
background: linear-gradient(90deg, #1f70ff, #3a8cff); background: linear-gradient(90deg, #1f70ff, #3a8cff);
color: #fff; color: #fff;
padding: .08rem .2rem; padding: .08rem .2rem;

View File

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