|
|
@@ -8,28 +8,24 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
const [currentTab, setCurrentTab] = useState('tab0')
|
|
|
const [isShowTabBar, setIsShowTabBar] = useState(true)
|
|
|
const [isShowHidContent, setIsShowHidContent] = useState(false)
|
|
|
+ // 是否展示lHidding_right
|
|
|
const [isShowHidContentRight, setIsShowHidContentRight] = useState(true)
|
|
|
const [isShowMzwHot, setIsShowMzwHot] = useState(false)
|
|
|
+ const [mzwCurrentIndex, setMzwCurrentIndex] = useState(0)
|
|
|
const [selectedGeshi, setSelectedGeshi] = useState(0)
|
|
|
const { myData } = useSelector((state: RootState) => state.A0Layout)
|
|
|
|
|
|
const picRef = useRef<HTMLDivElement>(null)
|
|
|
-
|
|
|
+ console.log(picRef.current)
|
|
|
+ // 隐藏tab栏
|
|
|
useEffect(() => {
|
|
|
- if (isShowHidContent || isShowMzwHot) {
|
|
|
+ if (isShowHidContent || isShowMzwHot || selectedGeshi !== 0) {
|
|
|
setIsShowTabBar(false)
|
|
|
} else {
|
|
|
setIsShowTabBar(true)
|
|
|
}
|
|
|
- }, [isShowHidContent, isShowMzwHot])
|
|
|
+ }, [isShowHidContent, isShowMzwHot, selectedGeshi])
|
|
|
|
|
|
- useEffect(() => {
|
|
|
- if (selectedGeshi !== 0) {
|
|
|
- setIsShowTabBar(false)
|
|
|
- } else {
|
|
|
- setIsShowTabBar(true)
|
|
|
- }
|
|
|
- }, [selectedGeshi])
|
|
|
|
|
|
const handleTabClick = (tab: string) => {
|
|
|
if (tab === currentTab) {
|
|
|
@@ -39,27 +35,41 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
setCurrentTab(tab)
|
|
|
}
|
|
|
|
|
|
- console.log(currentTab)
|
|
|
+ // mzw[0]和mzw[1]是两个发愿文,mzw[1]和mzw[2]是两个墓志文
|
|
|
+ const handleImgBox = (index: number) => {
|
|
|
+ if (currentTab === 'tab0') setMzwCurrentIndex(index)
|
|
|
+ else setMzwCurrentIndex(currentTab === 'tab1' ? index + 1 : index + 2)
|
|
|
+ setIsShowMzwHot(true)
|
|
|
+ }
|
|
|
|
|
|
return (
|
|
|
<div className={styles.sang}>
|
|
|
<Zback
|
|
|
clickFu={() => {
|
|
|
+ // 点击返回按钮时,先关闭当前内容直到tab未选中
|
|
|
if (selectedGeshi !== 0) setSelectedGeshi(0)
|
|
|
- else setShowTab(0)
|
|
|
+ if (currentTab !== 'tab0') handleTabClick('tab0')
|
|
|
+ if (isShowHidContent) setIsShowHidContent(false)
|
|
|
+ if (currentTab === 'tab0' && !isShowHidContent) setShowTab(0)
|
|
|
}}
|
|
|
/>
|
|
|
|
|
|
+ {/* main:tab未选中状态时的样式
|
|
|
+ mainAc:点击了tab0的按钮后,弹出右侧隐藏内容
|
|
|
+ mainShow_tab1~4:选中tab1~4时的样式 */}
|
|
|
<div
|
|
|
- className={`main ${
|
|
|
- isShowHidContent ? 'mainAc' : currentTab === 'tab0' ? '' : 'mainShow_' + currentTab
|
|
|
- }`}
|
|
|
+ className={`main ${isShowHidContent ? 'mainAc' : currentTab === 'tab0' ? '' : 'mainShow_' + currentTab
|
|
|
+ }`}
|
|
|
>
|
|
|
+ {/* 左侧隐藏内容 */}
|
|
|
<div className={`lHidding ${isShowHidContentRight ? 'showRight' : ''}`}>
|
|
|
<div className='lHidding_left'>
|
|
|
<div className='detail_info1'>
|
|
|
- <div className='imgBox'>
|
|
|
+ <div className='imgBox' onClick={() => handleImgBox(0)}>
|
|
|
<div className='pic' ref={picRef} />
|
|
|
+ <div className='zoomIn'>
|
|
|
+ <img src={require('@/assets/img/A6_sangzang_zoomin.png')} alt='' />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div
|
|
|
className='txt'
|
|
|
@@ -68,16 +78,17 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
<div className='title songFont'>{myData.sangzangLeftInfo2[0].name}</div>
|
|
|
<div className='time'>{myData.sangzangLeftInfo2[0].txt}</div>
|
|
|
</div>
|
|
|
- <div
|
|
|
+
|
|
|
+ {/*废弃 <div
|
|
|
className='detail_info2'
|
|
|
- // onClick={() => setIsShowHidContentRight(!isShowHidContentRight)}
|
|
|
+ onClick={() => setIsShowHidContentRight(!isShowHidContentRight)}
|
|
|
>
|
|
|
- {/* <div className='title_info2 songFont'>{myData.sangzangStatic.leftInfoName}</div> */}
|
|
|
+ <div className='title_info2 songFont'>{myData.sangzangStatic.leftInfoName}</div>
|
|
|
<div className='txt_info2'>{myData.sangzangStatic.txt}</div>
|
|
|
- </div>
|
|
|
+ </div> */}
|
|
|
</div>
|
|
|
<div className='lHidding_right'>
|
|
|
- <div className='imgBox' onClick={() => setIsShowMzwHot(true)}>
|
|
|
+ <div className='imgBox' onClick={() => handleImgBox(1)}>
|
|
|
<div className='pic' />
|
|
|
<div className='zoomIn'>
|
|
|
<img src={require('@/assets/img/A6_sangzang_zoomin.png')} alt='' />
|
|
|
@@ -101,6 +112,7 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
<div className='openPic' />
|
|
|
</div>
|
|
|
</div>
|
|
|
+ {/* 左侧碑图 */}
|
|
|
<div className='left'>
|
|
|
<div
|
|
|
className='pic'
|
|
|
@@ -120,6 +132,7 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ {/* 右侧文本 */}
|
|
|
<div
|
|
|
className='right'
|
|
|
style={
|
|
|
@@ -144,6 +157,7 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ {/* 右侧tab栏 */}
|
|
|
<div className={`A6_tabBar ${!isShowTabBar ? 'A6_tabBar_hide' : ''}`}>
|
|
|
<div
|
|
|
className={`tab songFont ${currentTab === 'tab1' ? 'tab_active' : ''}`}
|
|
|
@@ -151,15 +165,15 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
>
|
|
|
墓志
|
|
|
<br />
|
|
|
- 格式
|
|
|
+ 范式
|
|
|
</div>
|
|
|
<div
|
|
|
className={`tab songFont ${currentTab === 'tab2' ? 'tab_active' : ''}`}
|
|
|
onClick={() => handleTabClick('tab2')}
|
|
|
>
|
|
|
- 攀附
|
|
|
+ 郡望
|
|
|
<br />
|
|
|
- 之风
|
|
|
+ 标榜
|
|
|
</div>
|
|
|
<div
|
|
|
className={`tab songFont ${currentTab === 'tab3' ? 'tab_active' : ''}`}
|
|
|
@@ -175,7 +189,7 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
>
|
|
|
刻写
|
|
|
<br />
|
|
|
- 过程
|
|
|
+ 时序
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -188,9 +202,8 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
<div
|
|
|
className='pic'
|
|
|
style={{
|
|
|
- background: `url(${require(`@/assets/img/A6_sangzang_geshi${
|
|
|
- selectedGeshi === 0 ? '1' : selectedGeshi
|
|
|
- }.png`)}) no-repeat center/contain`
|
|
|
+ background: `url(${require(`@/assets/img/A6_sangzang_geshi${selectedGeshi === 0 ? '1' : selectedGeshi
|
|
|
+ }.png`)}) no-repeat center/contain`
|
|
|
}}
|
|
|
/>
|
|
|
</div>
|
|
|
@@ -206,9 +219,8 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
}}
|
|
|
>
|
|
|
<img
|
|
|
- src={require(`@/assets/img/btn_ModalTxt_bg${
|
|
|
- selectedGeshi === item.key ? '_ac' : ''
|
|
|
- }.png`)}
|
|
|
+ src={require(`@/assets/img/btn_ModalTxt_bg${selectedGeshi === item.key ? '_ac' : ''
|
|
|
+ }.png`)}
|
|
|
alt=''
|
|
|
/>
|
|
|
<div className={`tabNub songFont ${selectedGeshi === item.key ? 'tabNubAc' : ''}`}>
|
|
|
@@ -235,31 +247,16 @@ function Sangzangys({ setShowTab }: { setShowTab: (tab: number) => void }) {
|
|
|
<div
|
|
|
className='mPic'
|
|
|
style={{
|
|
|
- background: `url(${require(`@/assets/img/A6_sangzang_${
|
|
|
- currentTab !== 'tab1' && currentTab !== 'tab2' ? 'yp2' : currentTab
|
|
|
- }.png`)}) no-repeat center/contain`
|
|
|
+ background: `url(${require(`@/assets/img/A6_sangzang_mzw${mzwCurrentIndex}.png`)}) no-repeat center/contain`
|
|
|
}}
|
|
|
></div>
|
|
|
</div>
|
|
|
<div className='mzwHotR'>
|
|
|
- <div className='mtitle songFont'>
|
|
|
- {
|
|
|
- myData.mzw[
|
|
|
- currentTab !== 'tab1' && currentTab !== 'tab2'
|
|
|
- ? 0
|
|
|
- : Number(currentTab.split('tab')[1])
|
|
|
- ].title
|
|
|
- }
|
|
|
- </div>
|
|
|
+ <div className='mtitle songFont'>{myData.mzw[mzwCurrentIndex].title}</div>
|
|
|
<div
|
|
|
className='mtext'
|
|
|
dangerouslySetInnerHTML={{
|
|
|
- __html:
|
|
|
- myData.mzw[
|
|
|
- currentTab !== 'tab1' && currentTab !== 'tab2'
|
|
|
- ? 0
|
|
|
- : Number(currentTab.split('tab')[1])
|
|
|
- ].txt
|
|
|
+ __html: myData.mzw[mzwCurrentIndex].txt
|
|
|
}}
|
|
|
></div>
|
|
|
</div>
|