This commit is contained in:
zhangjianjun 2026-03-28 11:28:02 +08:00
parent ee091347e1
commit 366681945a
10 changed files with 68 additions and 9 deletions

View File

@ -125,7 +125,7 @@ export default function BottomTabsSection({ data }: { data: Data }) {
tabItemRefs.current[i] = el; tabItemRefs.current[i] = el;
}} }}
className={styles.bottomTabsSectionContentTab} className={styles.bottomTabsSectionContentTab}
onClick={() => setActiveIndex(i)} onMouseEnter={() => setActiveIndex(i)}
> >
<span>{item.tabName}</span> <span>{item.tabName}</span>
</div> </div>

View File

@ -46,6 +46,10 @@
line-height: 1.875rem; line-height: 1.875rem;
} }
.honorGridsItemTitle {
font-size: 1.25rem;
}
.honorGridsItemBgleft, .honorGridsItemBgleft,
.honorGridsItemBgright { .honorGridsItemBgright {
width: 4.375rem; width: 4.375rem;

View File

@ -83,7 +83,7 @@
.contentItemTitle { .contentItemTitle {
height: 6.25rem; /* height: 6.25rem; */
font-weight: 500; font-weight: 500;
font-size: 1.5rem; font-size: 1.5rem;
color: #FFFFFF; color: #FFFFFF;
@ -109,6 +109,7 @@
justify-content: space-between; justify-content: space-between;
/* padding: 3.75rem 0; */ /* padding: 3.75rem 0; */
margin-top: 1.25rem; margin-top: 1.25rem;
margin-top: 2.5rem;
} }
.contentItemContent { .contentItemContent {
font-size: 1rem; font-size: 1rem;

View File

@ -154,6 +154,9 @@ export default function TopTabs({ data, activeIndex, setActiveIndex, className }
width: indicatorStyle.width, width: indicatorStyle.width,
}} }}
/> />
<div
className={styles.topTabsBottomLineWhite}
/>
</div> </div>
</div> </div>
); );

View File

@ -69,6 +69,7 @@
.topTabsTabsScrollCenter { .topTabsTabsScrollCenter {
justify-content: center; justify-content: center;
/* gap: 130px; */
} }
.topTabsBottomLine { .topTabsBottomLine {
@ -77,6 +78,15 @@
height: .125rem; height: .125rem;
background: #14355C; background: #14355C;
transition: left 0.25s ease, width 0.25s ease; transition: left 0.25s ease, width 0.25s ease;
z-index: 1;
}
.topTabsBottomLineWhite {
position: absolute;
bottom: -1px;
width: 100%;
height: .125rem;
background: #D5D8DC;
z-index: 0;
} }
.topTabsTabItem { .topTabsTabItem {
@ -107,7 +117,7 @@
.topTabsContentLeftHead { .topTabsContentLeftHead {
margin-bottom: 1.875rem; margin-bottom: 1.875rem;
display: flex; display: flex;
gap: .625rem; /* gap: .625rem; */
.topTabsContentLeftTitle { .topTabsContentLeftTitle {
display: flex; display: flex;
@ -122,6 +132,10 @@
text-align: left; text-align: left;
font-style: normal; font-style: normal;
text-transform: none; text-transform: none;
width: 32.5rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.topTabsContentLeftTitleSub { .topTabsContentLeftTitleSub {
@ -132,6 +146,10 @@
text-align: left; text-align: left;
font-style: normal; font-style: normal;
text-transform: none; text-transform: none;
width: 32.5rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
} }

View File

@ -63,7 +63,7 @@ export default function TopTabsSection({ data, className }: { data: Data, classN
<ScrollReveal preset="slideRight" delay={0.3} > <ScrollReveal preset="slideRight" delay={0.3} >
{ {
data.tabItems[activeIndex].icon && ( data.tabItems[activeIndex].icon && (
<img src={data.tabItems[activeIndex].icon} alt="" style={{ width: '6.25rem', height: '6.25rem' }} /> <img src={data.tabItems[activeIndex].icon} alt="" style={{ width: '6.25rem', height: '6.25rem', marginRight: '1.25rem' }} />
) )
} }
</ScrollReveal> </ScrollReveal>

View File

@ -95,6 +95,10 @@
} }
} }
.twoColSectionTabs {
min-height: auto;
}
@media (max-width: 48rem) { @media (max-width: 48rem) {
.twoColSection, .twoColSection,
.threeColSection { .threeColSection {

View File

@ -26,7 +26,7 @@ export default function BusinessCommercialGroupDetail() {
<ParagraphSection data={data.section1Data}></ParagraphSection> <ParagraphSection data={data.section1Data}></ParagraphSection>
<TopTabsSection data={data.section2Data as any} /> <TopTabsSection className={styles.twoColSectionTabs} data={data.section2Data as any} />
</div> </div>
); );
} }

View File

@ -21,6 +21,13 @@
color: #14355C; color: #14355C;
line-height: 3.125rem; line-height: 3.125rem;
outline: none; outline: none;
background: #fff;
&:hover {
transform: scale(1.01);
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
}
} }
} }
@ -205,8 +212,14 @@
color: #999999; color: #999999;
} }
.selectDownIcon { .selectSuffixTrigger {
display: inline-flex;
align-items: center;
margin-left: .3125rem; margin-left: .3125rem;
cursor: pointer;
}
.selectDownIcon {
color: #999999; color: #999999;
} }

View File

@ -187,13 +187,18 @@ type SelectFormItemProps = {
onChange: (value: string) => void; onChange: (value: string) => void;
} }
function SelectFormItem({ value, options, label, onChange }: SelectFormItemProps) { function SelectFormItem({ value, options, label, onChange }: SelectFormItemProps) {
const [open, setOpen] = useState(false);
const selectId = `select-${label.replace(/\s/g, "-")}`;
return ( return (
<div className={styles.selectFormItem}> <div className={styles.selectFormItem}>
<label className={styles.selectFormItemLabel} htmlFor={`select-${label.replace(/\s/g, "-")}`}>{label}</label> <label className={styles.selectFormItemLabel} htmlFor={selectId}>{label}</label>
<div className={styles.selectFormItemBox}> <div className={styles.selectFormItemBox}>
<Select <Select
id={`select-${label.replace(/\s/g, "-")}`} id={selectId}
className={styles.selectFormItemSelect} className={styles.selectFormItemSelect}
open={open}
onOpenChange={setOpen}
showSearch showSearch
placeholder="全部" placeholder="全部"
notFoundContent="无数据" notFoundContent="无数据"
@ -205,7 +210,18 @@ function SelectFormItem({ value, options, label, onChange }: SelectFormItemProps
value={value} value={value}
onChange={v => onChange(v ?? "")} onChange={v => onChange(v ?? "")}
prefix={<FilterOutlined className={styles.selectFilterIcon} />} prefix={<FilterOutlined className={styles.selectFilterIcon} />}
suffixIcon={<DownOutlined className={styles.selectDownIcon} />} suffixIcon={
<span
className={styles.selectSuffixTrigger}
onMouseDown={(e) => {
e.preventDefault();
e.stopPropagation();
setOpen((v) => !v);
}}
>
<DownOutlined className={styles.selectDownIcon} />
</span>
}
bordered={false} bordered={false}
/> />
</div> </div>