import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import styles from './index.module.scss' import { baseURL, myData } from '@/utils/http' import { GoodsKeyType, GoodsType } from '@/types' import classNames from 'classnames' import HotInfo from './HotInfo' const txtBg = { 全部: 'more/txtBg/1quanbu.png', 车骑拜谒: 'more/txtBg/2cheqi.png', 主客宴请: 'more/txtBg/3zhuke.png', 乐舞百戏: 'more/txtBg/4yuewu.png', 后厨备宴: 'more/txtBg/5houchu.png', 田间耕作: 'more/txtBg/6tianjian.png', 仙居世界: 'more/txtBg/7xianju.png' } type Props = { hidden: boolean } const data = myData.more['文物欣赏'] function S3goods({ hidden }: Props) { const [key, setKey] = useState('全部') useEffect(() => { if (sroolRef.current) { sroolRef.current.scrollLeft = 0 } }, [key]) const listAll = useMemo(() => { let arr: { name: GoodsKeyType info: GoodsType[] }[] = [] let temp: GoodsType[] = [] data.dataArr.forEach(v => { arr.push(v) v.info.forEach(c => { temp.push(c) }) }) arr.unshift({ name: '全部', info: temp }) return arr }, []) // 滚轮和拖动 const [isFlag, setIsFlag] = useState(false) const sroolRef = useRef(null) const mousemoveFu = useCallback( (ev: any, flag?: boolean) => { if (sroolRef.current) { if (flag && !isFlag) { const nowMove = sroolRef.current.scrollLeft // 滚轮 let num = 50 if (ev.deltaY < 0) num = -num sroolRef.current.scrollLeft = nowMove + num } else if (isFlag) { const nowMove = sroolRef.current.scrollLeft // 鼠标按住移动 sroolRef.current.scrollLeft = nowMove - ev.movementX } } }, [isFlag] ) const row2Bac = useCallback((index2: number) => { const num = index2 % 3 return `${baseURL}more/txtBg/ban${num + 1}.jpg` }, []) // 打开详情 const [openInfo, setOpenInfo] = useState({} as GoodsType) return ( ) } const MemoS3goods = React.memo(S3goods) export default MemoS3goods