|
|
@@ -1,12 +1,68 @@
|
|
|
-import React from 'react'
|
|
|
+import React, { useState } from 'react'
|
|
|
import styles from './index.module.scss'
|
|
|
-import base from '../image/base.png'
|
|
|
-import baseMobile from '../image/M_base.png'
|
|
|
import close from '../image/close.png'
|
|
|
import classNames from 'classnames'
|
|
|
import isMobile from '@/utils/isMobile'
|
|
|
+import { SliderList } from './Slider'
|
|
|
|
|
|
export function Intro({ handleIntroClick }: { handleIntroClick: (isShow: boolean) => void }) {
|
|
|
+ // 滚轮让x轴滚动
|
|
|
+ const container = document.querySelector('#A0PreviewScroll')
|
|
|
+ const handleWheel = (event: React.WheelEvent<HTMLDivElement>) => {
|
|
|
+ if (container) {
|
|
|
+ container.scrollLeft += event.deltaY
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 移动端触摸滚动
|
|
|
+ let startX: number
|
|
|
+
|
|
|
+ const touchStart = (event: React.TouchEvent<HTMLDivElement>) => {
|
|
|
+ if (container) {
|
|
|
+ startX = event.touches[0].clientX // 记录触摸开始的X坐标
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const touchMove = (event: React.TouchEvent<HTMLDivElement>) => {
|
|
|
+ if (container) {
|
|
|
+ const moveX = event.touches[0].clientX - startX // 计算移动的距离
|
|
|
+ container.scrollLeft -= moveX // 更新scrollLeft
|
|
|
+ startX = event.touches[0].clientX // 更新起始X坐标
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const qianhaiImgArr = [
|
|
|
+ { src: 'qianhai-0.jpg', title: '前海院区' },
|
|
|
+ { src: 'qianhai-1.png', title: '科研机构简介展览' },
|
|
|
+ { src: 'qianhai-2.png', title: '多功能报告厅' },
|
|
|
+ { src: 'qianhai-3.png', title: '多功能报告厅' },
|
|
|
+ { src: 'qianhai-4.png', title: '硕博办公室' },
|
|
|
+ { src: 'qianhai-5.png', title: '2306会议室' },
|
|
|
+ { src: 'qianhai-6.png', title: '开放式讨论区' },
|
|
|
+ { src: 'qianhai-7.png', title: '陕公书屋' },
|
|
|
+ { src: 'qianhai-8.png', title: '陕公书屋' },
|
|
|
+ { src: 'qianhai-9.png', title: '陕公书屋' }
|
|
|
+ ]
|
|
|
+
|
|
|
+ const [currentIndex, setCurrentIndex] = useState(0)
|
|
|
+ const handleArrowLeftClick = () => {
|
|
|
+ if (currentIndex > 0) {
|
|
|
+ setCurrentIndex(currentIndex - 1)
|
|
|
+ if (container) {
|
|
|
+ const target = document.querySelector('.sliderSelected')
|
|
|
+ target?.scrollIntoView({ behavior: 'smooth', inline: 'end', block: 'nearest' })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const handleArrowRightClick = () => {
|
|
|
+ if (currentIndex < qianhaiImgArr.length - 1) {
|
|
|
+ if (container) {
|
|
|
+ const target = document.querySelector('.sliderSelected')
|
|
|
+ target?.scrollIntoView({ behavior: 'smooth', inline: 'start', block: 'nearest' })
|
|
|
+ }
|
|
|
+ setCurrentIndex(currentIndex + 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
return (
|
|
|
<div className={classNames(styles.intro, isMobile() && styles.introMobile)}>
|
|
|
<div className='intro-content'>
|
|
|
@@ -21,37 +77,78 @@ export function Intro({ handleIntroClick }: { handleIntroClick: (isShow: boolean
|
|
|
</span>
|
|
|
</div>
|
|
|
<div className='intro-base'>
|
|
|
- {!isMobile() ? <img src={base} alt='' /> : <img src={baseMobile} alt='' />}
|
|
|
+ <div
|
|
|
+ className='preview-arrow-left'
|
|
|
+ onClick={handleArrowLeftClick}
|
|
|
+ style={currentIndex === 0 ? { opacity: 0.4, cursor: 'not-allowed' } : {}}
|
|
|
+ ></div>
|
|
|
+ <div
|
|
|
+ className='preview-arrow-right'
|
|
|
+ onClick={handleArrowRightClick}
|
|
|
+ style={
|
|
|
+ currentIndex === qianhaiImgArr.length - 1
|
|
|
+ ? { opacity: 0.4, cursor: 'not-allowed' }
|
|
|
+ : {}
|
|
|
+ }
|
|
|
+ ></div>
|
|
|
+ <img src={require(`../image/qianhai/${qianhaiImgArr[currentIndex].src}`)} alt='' />
|
|
|
</div>
|
|
|
<div className='intro-base-text-container'>
|
|
|
- <div className='intro-base-text'>
|
|
|
- <span className='intro-base-text-label'>核心功能</span>
|
|
|
- <span className='intro-base-text-content'>
|
|
|
- 高端会议、学术交流、师生科研、校友活动,旨在
|
|
|
- 打造成为中国人民大学立足于粤港澳大湾区、面向全球的国际交流新高地。
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div className='intro-base-text'>
|
|
|
- <span className='intro-base-text-label'>入驻机构</span>
|
|
|
- <span className='intro-base-text-content'>
|
|
|
- 深圳研究院〔社会科学高等研究院(深圳)〕、深
|
|
|
- 圳金融高等研究院、涉外法治与发展研究中心、知识产权与创新研究中心等。
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div className='intro-base-text'>
|
|
|
- <span className='intro-base-text-label'>空间分布</span>
|
|
|
- <span className='intro-base-text-content'>
|
|
|
- 共有 1 间多功能报告厅、1 间贵宾接待室、2 间会 议室、2 间智慧教室、2 间研讨室、2
|
|
|
- 处共享办公区处独立共享办公室、1 处开放办公区,满足师生进行学术研究及办公交流。
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div className='intro-base-text'>
|
|
|
- <span className='intro-base-text-label'>承载人数</span>
|
|
|
- <span className='intro-base-text-content'>
|
|
|
- 高会议室和教室分别可容纳 20 人、30 人、40 人、 80 人上课。多功能报告厅最大可容纳 200
|
|
|
- 人同时使用。
|
|
|
- </span>
|
|
|
- </div>
|
|
|
+ {currentIndex === 0 ? (
|
|
|
+ <>
|
|
|
+ <div className='intro-base-text'>
|
|
|
+ <span className='intro-base-text-label'>核心功能</span>
|
|
|
+ <span className='intro-base-text-content'>
|
|
|
+ 高端会议、学术交流、师生科研、校友活动,旨在
|
|
|
+ 打造成为中国人民大学立足于粤港澳大湾区、面向全球的国际交流新高地。
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div className='intro-base-text'>
|
|
|
+ <span className='intro-base-text-label'>入驻机构</span>
|
|
|
+ <span className='intro-base-text-content'>
|
|
|
+ 深圳研究院〔社会科学高等研究院(深圳)〕、深
|
|
|
+ 圳金融高等研究院、涉外法治与发展研究中心、知识产权与创新研究中心等。
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div className='intro-base-text'>
|
|
|
+ <span className='intro-base-text-label'>空间分布</span>
|
|
|
+ <span className='intro-base-text-content'>
|
|
|
+ 共有 1 间多功能报告厅、1 间贵宾接待室、2 间会 议室、2 间智慧教室、2 间研讨室、2
|
|
|
+ 处共享办公区处独立共享办公室、1 处开放办公区,满足师生进行学术研究及办公交流。
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div className='intro-base-text'>
|
|
|
+ <span className='intro-base-text-label'>承载人数</span>
|
|
|
+ <span className='intro-base-text-content'>
|
|
|
+ 高会议室和教室分别可容纳 20 人、30 人、40 人、 80 人上课。多功能报告厅最大可容纳
|
|
|
+ 200 人同时使用。
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div className='intro-base-text'>
|
|
|
+ <span className='intro-base-text-label'>校区地址</span>
|
|
|
+ <span className='intro-base-text-content'>
|
|
|
+ <a href='https://map.qq.com/?addr=%E5%B9%BF%E4%B8%9C%E7%9C%81%E6%B7%B1%E5%9C%B3%E5%B8%82%E5%AE%9D%E5%AE%89%E5%8C%BA%E5%AE%9D%E5%85%B4%E8%B7%AF88%E5%8F%B7%E6%98%9F%E9%80%9A%E5%A4%A7%E5%8E%A622%2C23%E5%B1%82&isopeninfowin=1&markertype=1&name=%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%A4%A7%E5%AD%A6%E6%B7%B1%E5%9C%B3%E7%A0%94%E7%A9%B6%E9%99%A2%28%E5%89%8D%E6%B5%B7%E9%99%A2%E5%8C%BA%29&pointx=113.881210&pointy=22.551401&ref=WeChat&type=marker'>
|
|
|
+ 点击查看中国人民大学深圳研究院(前海院区)地址
|
|
|
+ </a>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
+ ) : (
|
|
|
+ <div
|
|
|
+ id='A0PreviewScroll'
|
|
|
+ className={styles.sliderScroll}
|
|
|
+ onWheel={handleWheel}
|
|
|
+ onTouchStart={touchStart}
|
|
|
+ onTouchMove={touchMove}
|
|
|
+ >
|
|
|
+ <SliderList
|
|
|
+ type={'qianhai'}
|
|
|
+ imgArr={qianhaiImgArr}
|
|
|
+ onSliderClick={setCurrentIndex}
|
|
|
+ selectedIndex={currentIndex}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|