From 8e2675fc7d3f7eda98f8b8646859bd9a7a330b64 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Jun 2022 15:59:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=BB=9A=E5=8A=A8=E6=9D=A1bi?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ChatInput/ChatInput.jsx | 10 +- .../ScrollWrapper/ScrollWrapper.jsx | 70 ++--- .../components/ScrollWrapper/style.module.css | 24 +- .../support/conversation/index.jsx | 286 +++++++++++------- 4 files changed, 220 insertions(+), 170 deletions(-) diff --git a/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx b/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx index 6a583d3..56fa9b6 100644 --- a/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx +++ b/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx @@ -226,10 +226,8 @@ const ChatInput = ((props) => { let msgList = [] let newmsg = sendMsg && sendMsg.length>0 ?sendMsg : lodash.cloneDeep(msg); newmsg.map((item)=>{ - const randomNum = Math.floor(Math.random() * 1000) - //const date = dayjs().unix() const date = new Date() - const encryption = doEncrypt(`${date}${randomNum}`) //有无更快的加密方法,可以加密图片?这个加密方法加密图片太慢! + const encryption = doEncrypt(Math.floor(Math.random() * 1000)+(new Date()).getTime()) //有无更快的加密方法,可以加密图片?这个加密方法加密图片太慢! //console.log('加密生成完毕') let msgData = null if(item.type=='text'){ @@ -279,12 +277,8 @@ const ChatInput = ((props) => { //发送文件 const sendFileHandle = (msg) => { let msgList = [] - - const randomNum = Math.floor(Math.random() * 1000) - //const date = dayjs().unix() const date = new Date() - const encryption = doEncrypt(`${date}${randomNum}`) //有无更快的加密方法,可以加密图片?这个加密方法加密图片太慢! - //console.log('加密生成完毕') + const encryption = doEncrypt(Math.floor(Math.random() * 1000)+(new Date()).getTime()) //有无更快的加密方法,可以加密图片?这个加密方法加密图片太慢! const msgData = { _id: encryption, date: date, diff --git a/src/pages/customerservice/support/conversation/components/ScrollWrapper/ScrollWrapper.jsx b/src/pages/customerservice/support/conversation/components/ScrollWrapper/ScrollWrapper.jsx index fac99ab..e14643c 100644 --- a/src/pages/customerservice/support/conversation/components/ScrollWrapper/ScrollWrapper.jsx +++ b/src/pages/customerservice/support/conversation/components/ScrollWrapper/ScrollWrapper.jsx @@ -26,43 +26,43 @@ const ScrollWrapper = (Comp) => (props) => { const [shadowStyle, setShadowStyle] = useState('') let { data, viewH, scrollToBottom, switchFlag, style, isMove, isModalVisible, loading, } = this? this.props : props - //let data = props.data - const scrollHandle = () => { - if (scrollView.current) { - setScrollT(scrollView.current.scrollTop) - } + +const scrollHandle = () => { + if (scrollView.current) { + setScrollT(scrollView.current.scrollTop) } +} - const mouseUpHandle = () => { - setIsPressing(false) +const mouseUpHandle = (e) => { + setIsPressing(false) +} + +const mouseDownHandle = (e) => { + setIsPressing(true) +} + +const mouseMovingHandle = (e) => { + e.persist() + if (isPressing !== true) return + if (scrollT < 0) { + setScrollT(0) + } else if (scrollT > scrollH - viewPortH) { + setScrollT(scrollH - viewPortH) + } else { + setScrollT((preScrollT) => preScrollT + e.movementY / scrollR) } +} - const mouseDownHandle = () => { - setIsPressing(true) +const thumbHeight = () => viewPortH * scrollR + +const transH = () => scrollT * scrollR + +useEffect(() => { + addEventListener('mouseup', mouseUpHandle) + return () => { + removeEventListener('mouseup', mouseUpHandle) } - - const mouseMovingHandle = (e) => { - if (isPressing !== true) return - if (scrollT < 0) { - setScrollT(0) - } else if (scrollT > scrollH - viewPortH) { - setScrollT(scrollH - viewPortH) - } else { - setScrollT((preScrollT) => preScrollT + e.movementY / scrollR) //e.nativeEvent.movementY - } - } - - const thumbHeight = () => viewPortH * scrollR - - const transH = () => scrollT * scrollR - - useEffect(() => { - addEventListener('mouseup', mouseUpHandle) - - return () => { - removeEventListener('mouseup', mouseUpHandle) - } - }, []) +}, []) useEffect(() => { if(isModalVisible){ @@ -110,13 +110,14 @@ let { data, viewH, scrollToBottom, switchFlag, style, isMove, isModalVisible, lo return (
+ onScroll={scrollHandle} + > {useMemo(() => , [data, loading, style])}