feat: 二级导航栏重设计 - 白色底+下划线激活态+outline按钮

① 导航栏加白色背景 + 底部分割线,不再浮空
② 激活态从荧光绿填充改为品牌绿下划线 (更克制/更专业)
③ 右侧操作区加竖线分隔,视觉层次清晰
④ 发布按钮从渐变实心改为 outline 样式,视觉权重降级
⑤ jrsc 补全第4个tab (碳金融市场自身)
⑥ 列表计数颜色增强对比度 #6B8575→#8C9BA5
⑦ 移动端 nav 高度自适应 (height:auto)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liulujian 2026-07-04 22:30:34 +08:00
parent 50e0ca8c2f
commit 70aff92871
5 changed files with 182 additions and 128 deletions

View File

@ -199,8 +199,20 @@
}
}
// -----------------------------------------------------------------------------
// 二级导航栏
// -----------------------------------------------------------------------------
@market-nav-bg: #ffffff;
@market-nav-border: #e8edeb;
@market-nav-tab-color: #556659;
@market-nav-tab-active-color: #003B1A;
@market-nav-tab-active-border: #00B96B;
@market-nav-divider: #e8edeb;
@market-publish-btn-outline-color: #00B96B;
@market-publish-btn-outline-hover-bg: rgba(0, 185, 107, 0.06);
// -----------------------------------------------------------------------------
// 列表计数
// -----------------------------------------------------------------------------
@market-list-count-color: #6B8575;
@market-list-count-color: #8C9BA5;
@market-list-count-font-size: 14px;

View File

@ -543,7 +543,8 @@ export default {
//
.secondary-nav {
border-bottom: none;
background: @market-nav-bg;
border-bottom: 1px solid @market-nav-border;
}
.secondary-nav-content {
@ -551,70 +552,77 @@ export default {
align-items: center;
justify-content: space-between;
max-width: 1400px;
padding: 20px 20px 0;
padding: 0 20px;
margin: 0 auto;
height: 56px;
}
.nav-tabs {
display: flex;
gap: 40px;
width: 596px;
height: 42px;
gap: 36px;
height: 100%;
.market-nav-tabs-scroll-fade();
}
.nav-right {
display: flex;
align-items: center;
gap: 20px;
gap: 16px;
flex-shrink: 0;
height: 100%;
padding-left: 20px;
border-left: 1px solid @market-nav-divider;
}
.nav-tab {
position: relative;
min-width: max-content;
height: 42px;
padding: 8px 16px;
font-size: 18px;
display: inline-flex;
align-items: center;
height: 100%;
padding: 0 4px;
font-size: 15px;
font-weight: 500;
color: #003B1A;
color: @market-nav-tab-color;
cursor: pointer;
background: transparent;
/* 优化需求:按钮线框统一为长方形+圆角(不再使用 32px 胶囊) */
border-radius: 6px;
transition: all 0.3s;
border: none;
border-bottom: 2px solid transparent;
border-radius: 0;
margin-bottom: -1px;
transition: color 0.2s ease, border-color 0.2s ease;
&:hover {
color: #009a29;
color: @market-nav-tab-active-color;
}
&.active {
background: #8CFFCE;
box-shadow: inset 0 0 0 1px #00B96B;
color: @market-nav-tab-active-color;
font-weight: 600;
border-bottom-color: @market-nav-tab-active-border;
background: transparent;
box-shadow: none;
}
}
.publish-btn {
width: 220px;
height: 42px;
line-height: 26px;
padding: 8px 16px;
font-size: 18px;
font-weight: 400;
color: #fff;
height: 34px;
padding: 0 16px;
font-size: 14px;
font-weight: 500;
color: @market-publish-btn-outline-color;
cursor: pointer;
background: linear-gradient(135deg, #009a29 0%, #48C666 100%);
border: none;
background: transparent;
border: 1px solid @market-publish-btn-outline-color;
border-radius: 6px;
box-shadow: 0 4px 12px rgba(0, 154, 41, 0.25);
transition: all 0.3s ease;
white-space: nowrap;
transition: all 0.2s ease;
&:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0, 154, 41, 0.35);
background: @market-publish-btn-outline-hover-bg;
}
&:active {
transform: translateY(0);
transform: scale(0.97);
}
}
@ -749,7 +757,7 @@ export default {
.list-count {
font-size: 14px;
font-weight: 400;
color: #6B8575;
color: @market-list-count-color;
}
.service-grid {
@ -1037,6 +1045,7 @@ export default {
.secondary-nav-content {
flex-direction: column;
align-items: stretch;
height: auto;
padding: 12px 16px;
gap: 12px;
}
@ -1289,6 +1298,7 @@ export default {
}
.secondary-nav-content {
height: auto;
padding: 8px 12px;
}

View File

@ -366,7 +366,7 @@ export default {
navTabs: [
{ label: '碳服务市场', path: '/tfwsc' },
{ label: '碳需求市场', path: '/txqsc' },
// { label: '', path: '/tjrsc' },
{ label: '碳金融市场', path: '/tjrsc' },
{ label: '碳数据市场', path: '/tsjsc' },
],
//
@ -679,7 +679,8 @@ export default {
//
.secondary-nav {
border-bottom: none;
background: @market-nav-bg;
border-bottom: 1px solid @market-nav-border;
}
.secondary-nav-content {
@ -687,69 +688,77 @@ export default {
align-items: center;
justify-content: space-between;
max-width: 1400px;
padding: 20px 20px 0;
padding: 0 20px;
margin: 0 auto;
height: 56px;
}
.nav-tabs {
display: flex;
gap: 40px;
width: 596px;
height: 42px;
gap: 36px;
height: 100%;
.market-nav-tabs-scroll-fade();
}
.nav-right {
display: flex;
align-items: center;
gap: 20px;
gap: 16px;
flex-shrink: 0;
height: 100%;
padding-left: 20px;
border-left: 1px solid @market-nav-divider;
}
.nav-tab {
position: relative;
min-width: max-content;
height: 42px;
padding: 8px 16px;
font-size: 18px;
display: inline-flex;
align-items: center;
height: 100%;
padding: 0 4px;
font-size: 15px;
font-weight: 500;
color: #003B1A;
color: @market-nav-tab-color;
cursor: pointer;
background: transparent;
border-radius: @market-nav-tab-radius;
transition: all 0.3s;
border: none;
border-bottom: 2px solid transparent;
border-radius: 0;
margin-bottom: -1px;
transition: color 0.2s ease, border-color 0.2s ease;
&:hover {
color: #009a29;
color: @market-nav-tab-active-color;
}
&.active {
background: #8CFFCE;
box-shadow: inset 0 0 0 1px #00B96B;
color: @market-nav-tab-active-color;
font-weight: 600;
border-bottom-color: @market-nav-tab-active-border;
background: transparent;
box-shadow: none;
}
}
.publish-btn {
width: 220px;
height: 42px;
line-height: 26px;
padding: 8px 16px;
font-size: 18px;
font-weight: 400;
color: #fff;
height: 34px;
padding: 0 16px;
font-size: 14px;
font-weight: 500;
color: @market-publish-btn-outline-color;
cursor: pointer;
background: linear-gradient(135deg, #009a29 0%, #48C666 100%);
border: none;
background: transparent;
border: 1px solid @market-publish-btn-outline-color;
border-radius: 6px;
box-shadow: 0 4px 12px rgba(0, 154, 41, 0.25);
transition: all 0.3s ease;
white-space: nowrap;
transition: all 0.2s ease;
&:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0, 154, 41, 0.35);
background: @market-publish-btn-outline-hover-bg;
}
&:active {
transform: translateY(0);
transform: scale(0.97);
}
}
@ -1028,7 +1037,7 @@ export default {
align-items: center;
gap: 8px;
font-size: 14px;
color: @text-gray;
color: @market-list-count-color;
.count-dot {
width: 8px;
@ -1464,6 +1473,7 @@ export default {
.secondary-nav-content {
flex-direction: column;
height: auto;
padding: 12px 16px;
gap: 12px;
}
@ -1548,6 +1558,7 @@ export default {
}
.secondary-nav-content {
height: auto;
padding: 8px 12px;
}

View File

@ -471,7 +471,8 @@ export default {
//
.secondary-nav {
border-bottom: none;
background: @market-nav-bg;
border-bottom: 1px solid @market-nav-border;
}
.secondary-nav-content {
@ -479,69 +480,77 @@ export default {
align-items: center;
justify-content: space-between;
max-width: 1400px;
padding: 20px 20px 0;
padding: 0 20px;
margin: 0 auto;
height: 56px;
}
.nav-tabs {
display: flex;
gap: 40px;
width: 596px;
height: 42px;
gap: 36px;
height: 100%;
.market-nav-tabs-scroll-fade();
}
.nav-right {
display: flex;
align-items: center;
gap: 20px;
gap: 16px;
flex-shrink: 0;
height: 100%;
padding-left: 20px;
border-left: 1px solid @market-nav-divider;
}
.nav-tab {
position: relative;
min-width: max-content;
height: 42px;
padding: 8px 16px;
font-size: 18px;
display: inline-flex;
align-items: center;
height: 100%;
padding: 0 4px;
font-size: 15px;
font-weight: 500;
color: #003B1A;
color: @market-nav-tab-color;
cursor: pointer;
background: transparent;
border-radius: 6px;
transition: all 0.3s;
border: none;
border-bottom: 2px solid transparent;
border-radius: 0;
margin-bottom: -1px;
transition: color 0.2s ease, border-color 0.2s ease;
&:hover {
color: #009a29;
color: @market-nav-tab-active-color;
}
&.active {
background: #8CFFCE;
box-shadow: inset 0 0 0 1px #00B96B;
color: @market-nav-tab-active-color;
font-weight: 600;
border-bottom-color: @market-nav-tab-active-border;
background: transparent;
box-shadow: none;
}
}
.publish-btn {
width: 220px;
height: 42px;
line-height: 26px;
padding: 8px 16px;
font-size: 18px;
font-weight: 400;
color: #fff;
height: 34px;
padding: 0 16px;
font-size: 14px;
font-weight: 500;
color: @market-publish-btn-outline-color;
cursor: pointer;
background: linear-gradient(135deg, #009a29 0%, #48C666 100%);
border: none;
background: transparent;
border: 1px solid @market-publish-btn-outline-color;
border-radius: 6px;
box-shadow: 0 4px 12px rgba(0, 154, 41, 0.25);
transition: all 0.3s ease;
white-space: nowrap;
transition: all 0.2s ease;
&:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0, 154, 41, 0.35);
background: @market-publish-btn-outline-hover-bg;
}
&:active {
transform: translateY(0);
transform: scale(0.97);
}
}
@ -664,7 +673,7 @@ export default {
.list-count {
font-size: 14px;
font-weight: 400;
color: #6B8575;
color: @market-list-count-color;
}
//
@ -977,6 +986,7 @@ export default {
.secondary-nav-content {
flex-direction: column;
align-items: stretch;
height: auto;
padding: 12px 16px;
gap: 12px;
box-sizing: border-box;
@ -1124,6 +1134,7 @@ export default {
}
.secondary-nav-content {
height: auto;
padding: 8px 12px;
}

View File

@ -517,7 +517,8 @@ export default {
//
.secondary-nav {
border-bottom: none;
background: @market-nav-bg;
border-bottom: 1px solid @market-nav-border;
}
.secondary-nav-content {
@ -525,70 +526,77 @@ export default {
align-items: center;
justify-content: space-between;
max-width: 1400px;
padding: 20px 20px 0;
padding: 0 20px;
margin: 0 auto;
height: 56px;
}
.nav-tabs {
display: flex;
gap: 40px;
width: 596px;
height: 42px;
gap: 36px;
height: 100%;
.market-nav-tabs-scroll-fade();
}
.nav-right {
display: flex;
align-items: center;
gap: 20px;
gap: 16px;
flex-shrink: 0;
height: 100%;
padding-left: 20px;
border-left: 1px solid @market-nav-divider;
}
.nav-tab {
position: relative;
min-width: max-content;
height: 42px;
padding: 8px 16px;
font-size: 18px;
display: inline-flex;
align-items: center;
height: 100%;
padding: 0 4px;
font-size: 15px;
font-weight: 500;
color: #003B1A;
color: @market-nav-tab-color;
cursor: pointer;
background: transparent;
/* 优化需求:按钮线框统一为长方形+圆角(不再使用 32px 胶囊) */
border-radius: 6px;
transition: all 0.3s;
border: none;
border-bottom: 2px solid transparent;
border-radius: 0;
margin-bottom: -1px;
transition: color 0.2s ease, border-color 0.2s ease;
&:hover {
color: #009a29;
color: @market-nav-tab-active-color;
}
&.active {
background: #8CFFCE;
box-shadow: inset 0 0 0 1px #00B96B;
color: @market-nav-tab-active-color;
font-weight: 600;
border-bottom-color: @market-nav-tab-active-border;
background: transparent;
box-shadow: none;
}
}
.publish-btn {
width: 220px;
height: 42px;
line-height: 26px;
padding: 8px 16px;
font-size: 18px;
font-weight: 400;
color: #fff;
height: 34px;
padding: 0 16px;
font-size: 14px;
font-weight: 500;
color: @market-publish-btn-outline-color;
cursor: pointer;
background: linear-gradient(135deg, #009a29 0%, #48C666 100%);
border: none;
background: transparent;
border: 1px solid @market-publish-btn-outline-color;
border-radius: 6px;
box-shadow: 0 4px 12px rgba(0, 154, 41, 0.25);
transition: all 0.3s ease;
white-space: nowrap;
transition: all 0.2s ease;
&:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0, 154, 41, 0.35);
background: @market-publish-btn-outline-hover-bg;
}
&:active {
transform: translateY(0);
transform: scale(0.97);
}
}
@ -706,7 +714,7 @@ export default {
.list-count {
font-size: 14px;
font-weight: 400;
color: #6B8575;
color: @market-list-count-color;
}
.service-grid {
@ -1019,6 +1027,7 @@ export default {
.secondary-nav-content {
flex-direction: column;
align-items: stretch;
height: auto;
padding: 12px 16px;
gap: 12px;
}
@ -1265,6 +1274,7 @@ export default {
}
.secondary-nav-content {
height: auto;
padding: 8px 12px;
}