|
|
@@ -6,14 +6,24 @@ import { Tooltip } from 'antd'
|
|
|
import { callIframeFu, isMobiileFu } from '@/utils/history'
|
|
|
import classNames from 'classnames'
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
function ModalTxt({
|
|
|
setIsShowTabBar,
|
|
|
- setIsShowMzmTitle
|
|
|
+ setIsShowMzmTitle,
|
|
|
+ setBottomTxt,
|
|
|
}: {
|
|
|
setIsShowTabBar: (isShowTabBar: boolean) => void
|
|
|
setIsShowMzmTitle: (isShowMzmTitle: boolean) => void
|
|
|
+ setBottomTxt:(val:string)=>void
|
|
|
+
|
|
|
}) {
|
|
|
const [selectedTab, setSelectedTab] = useState(0)
|
|
|
+ const selectedTabRef = useRef(0)
|
|
|
+ useEffect(() => {
|
|
|
+ selectedTabRef.current = selectedTab
|
|
|
+ }, [selectedTab])
|
|
|
|
|
|
const [activeAId, setActiveAId] = useState<number | null>(null)
|
|
|
const [showTooltip, setShowTooltip] = useState(-1)
|
|
|
@@ -94,13 +104,12 @@ function ModalTxt({
|
|
|
<div className='title'>{word}</div>
|
|
|
<div
|
|
|
className='close'
|
|
|
- onClick={(e) => {
|
|
|
+ onClick={e => {
|
|
|
e.preventDefault()
|
|
|
e.stopPropagation()
|
|
|
setShowTooltip(-1)
|
|
|
}}
|
|
|
-
|
|
|
- onTouchEnd={(e) => {
|
|
|
+ onTouchEnd={e => {
|
|
|
e.preventDefault()
|
|
|
e.stopPropagation()
|
|
|
setShowTooltip(-1)
|
|
|
@@ -109,7 +118,14 @@ function ModalTxt({
|
|
|
<img src={require('@/assets/img/close.png')} alt='' draggable='false' />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div className='content' ref={contentRef} onTouchStart={(e) => handleTouchStart(e, content_touchStartX)} onTouchMove={handleTooltipTouchMove}>{define}</div>
|
|
|
+ <div
|
|
|
+ className='content'
|
|
|
+ ref={contentRef}
|
|
|
+ onTouchStart={e => handleTouchStart(e, content_touchStartX)}
|
|
|
+ onTouchMove={handleTooltipTouchMove}
|
|
|
+ >
|
|
|
+ {define}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
}
|
|
|
getPopupContainer={() => document.body.querySelector('#root') as HTMLElement}
|
|
|
@@ -198,22 +214,31 @@ function ModalTxt({
|
|
|
callIframeFu('showInscription', 0)
|
|
|
}
|
|
|
|
|
|
- const handleTabClick = (tabIndex: number) => {
|
|
|
- setSelectedTab(tabIndex)
|
|
|
- callIframeFu('showInscription', tabIndex)
|
|
|
+ const handleTabClick = (tabIndex: number,txt:string) => {
|
|
|
+
|
|
|
+ setBottomTxt(txt)
|
|
|
+
|
|
|
+ let index = tabIndex
|
|
|
+ if (selectedTabRef.current === index) index = 0
|
|
|
+
|
|
|
+ setSelectedTab(index)
|
|
|
+ callIframeFu('showInscription', index === 0 ? -1 : index)
|
|
|
+
|
|
|
+ if(index===0) setIsShowMzmTitle(false)
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return (
|
|
|
<div className={classNames(styles.modalTxt, isPc ? '' : styles.modalTxtMo)} id='modalTxt'>
|
|
|
<div className='modalTxtContainner'>
|
|
|
<div className='topBar'>
|
|
|
- <div className='beie'>
|
|
|
+ <div className='beie' hidden={selectedTab !== 0}>
|
|
|
<img src={require('@/assets/img/beie.png')} alt='' />
|
|
|
<div className='txt' onClick={handleBeie}>
|
|
|
碑额
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div className='tab ' onClick={() => handleTabClick(1)}>
|
|
|
+ <div className='tab ' onClick={() => handleTabClick(1,'造碑人与碑主')}>
|
|
|
<img
|
|
|
src={require(`@/assets/img/btn_ModalTxt_bg${selectedTab === 1 ? '_ac' : ''}.png`)}
|
|
|
alt=''
|
|
|
@@ -226,7 +251,7 @@ function ModalTxt({
|
|
|
造碑人与碑主
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div className='tab ' onClick={() => handleTabClick(2)}>
|
|
|
+ <div className='tab ' onClick={() => handleTabClick(2,'程哲生平与家族世系')}>
|
|
|
<img
|
|
|
src={require(`@/assets/img/btn_ModalTxt_bg${selectedTab === 2 ? '_ac' : ''}.png`)}
|
|
|
alt=''
|
|
|
@@ -239,7 +264,7 @@ function ModalTxt({
|
|
|
程哲生平与家族世系
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div className='tab ' onClick={() => handleTabClick(3)}>
|
|
|
+ <div className='tab ' onClick={() => handleTabClick(3,'颂文')}>
|
|
|
<img
|
|
|
src={require(`@/assets/img/btn_ModalTxt_bg${selectedTab === 3 ? '_ac' : ''}.png`)}
|
|
|
alt=''
|
|
|
@@ -254,7 +279,13 @@ function ModalTxt({
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div className='intro' style={{ opacity: selectedTab !== 0 ? '1' : '0' }}>
|
|
|
+ <div
|
|
|
+ className='intro'
|
|
|
+ style={{
|
|
|
+ opacity: selectedTab !== 0 ? '1' : '0',
|
|
|
+ height: selectedTab !== 0 ? '15%' : '5%'
|
|
|
+ }}
|
|
|
+ >
|
|
|
{selectedTab !== 0 && myData.readDetail[selectedTab - 1].intro}
|
|
|
</div>
|
|
|
|