diff --git a/src/pages/MainPage/ProjectManager/Jury.js b/src/pages/MainPage/ProjectManager/Jury.js index 5c3e37a..4aadeac 100644 --- a/src/pages/MainPage/ProjectManager/Jury.js +++ b/src/pages/MainPage/ProjectManager/Jury.js @@ -117,7 +117,7 @@ class Jury extends PureComponent { } initChatUI = () => { //智慧客服 - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isModalVisible: true}) diff --git a/src/pages/MainPage/ProjectManager/disposalManager.js b/src/pages/MainPage/ProjectManager/disposalManager.js index ed1d976..39ba30d 100644 --- a/src/pages/MainPage/ProjectManager/disposalManager.js +++ b/src/pages/MainPage/ProjectManager/disposalManager.js @@ -134,7 +134,7 @@ class manager extends PureComponent { } initChatUI = () => { //智慧客服 - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isModalVisible: true}) diff --git a/src/pages/MainPage/ProjectManager/manager.js b/src/pages/MainPage/ProjectManager/manager.js index 54e278d..e96987a 100644 --- a/src/pages/MainPage/ProjectManager/manager.js +++ b/src/pages/MainPage/ProjectManager/manager.js @@ -156,7 +156,7 @@ class manager extends PureComponent { } initChatUI = () => { //智慧客服 - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isModalVisible: true}) diff --git a/src/pages/MainPage/ProjectManager/managerAdmin.js b/src/pages/MainPage/ProjectManager/managerAdmin.js index c33d1de..1ad03a3 100644 --- a/src/pages/MainPage/ProjectManager/managerAdmin.js +++ b/src/pages/MainPage/ProjectManager/managerAdmin.js @@ -67,7 +67,7 @@ class manager extends PureComponent { } initChatUI = () => { //智慧客服 - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isModalVisible: true}) diff --git a/src/pages/MainPage/ProjectManager/managerSubAdmin.js b/src/pages/MainPage/ProjectManager/managerSubAdmin.js index eb9568c..3139935 100644 --- a/src/pages/MainPage/ProjectManager/managerSubAdmin.js +++ b/src/pages/MainPage/ProjectManager/managerSubAdmin.js @@ -66,7 +66,7 @@ class manager extends PureComponent { } initChatUI = () => { //智慧客服 - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isModalVisible: true}) diff --git a/src/pages/MainPage/ProjectManager/participants.js b/src/pages/MainPage/ProjectManager/participants.js index 94fc24b..275e7c5 100644 --- a/src/pages/MainPage/ProjectManager/participants.js +++ b/src/pages/MainPage/ProjectManager/participants.js @@ -162,7 +162,7 @@ class manager extends PureComponent { } initChatUI = () => { //智慧客服 - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isChatModalVisible: true}) diff --git a/src/pages/MainPage/ProjectManager/purchaseManager.js b/src/pages/MainPage/ProjectManager/purchaseManager.js index a7fc57f..e561521 100644 --- a/src/pages/MainPage/ProjectManager/purchaseManager.js +++ b/src/pages/MainPage/ProjectManager/purchaseManager.js @@ -152,7 +152,7 @@ class manager extends PureComponent { }; initChatUI = () => { //智慧客服 - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isModalVisible: true}) diff --git a/src/pages/MainPage/ProjectManager/supplier.js b/src/pages/MainPage/ProjectManager/supplier.js index 54afe53..51b76c1 100644 --- a/src/pages/MainPage/ProjectManager/supplier.js +++ b/src/pages/MainPage/ProjectManager/supplier.js @@ -199,8 +199,7 @@ class supplier extends PureComponent { } initChatUI = () => { //智慧客服 - console.log() - if(this.state.isCloseWs){ + if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新 this.setState({optionsModal: true}) }else{ this.setState({isModalVisible: true}) diff --git a/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx b/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx index 4b35c83..8da6935 100644 --- a/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx +++ b/src/pages/customerservice/support/conversation/components/ChatInput/ChatInput.jsx @@ -27,9 +27,12 @@ const ChatInput = ((props) => { kfType, questionType, conversationId, + roleIds, isSend, sendMsg, cancelSend, + isRateModalVisible, + closeRateModal, } = props const innerRef = useRef(); @@ -42,7 +45,7 @@ const ChatInput = ((props) => { const [loading, setLoading] = useState(false) const [uploadFile, setUploadFile] = useState({}) const [isSendFile, setIsSendFile] = useState(false) //发送文件之前确认 - + const location = useLocation() //imgInputSize:输入框图片尺寸 @@ -95,16 +98,6 @@ const ChatInput = ((props) => { for(var i=0; i { "custType": kfType == 2? 2 : 1, "message": msg.message.type=="image" || msg.message.type=="file" ?JSON.stringify(msg.message.content):msg.message.content, "questionType": questionType, - "supplierNo": supplierNo + "supplierNo": supplierNo, + "clientType": roleIds=="ebtp-purchase"? 1: roleIds=="ebtp-supplier"? 2: roleIds=="ebtp-agency-project-manager" || roleIds=="ebtp-agency-admin"? 3 : 0, } API.sendToCs(params).then(res => { if (res && res.success) { }else{ message.warn(res && res.message) } - }) } @@ -384,35 +377,10 @@ const str_substr = (start, end, str)=> { var el = document.createElement('span') el.innerHTML=txt - // var allElements = docuemnt.getElementsByTagName('*') - // //输入框内容去除样式 - // if(allElements && allElements.length>0){ - // for(var i=0; i0){ window.getSelection().deleteFromDocument() //如果有选中内容,粘贴时替换 let range = window.getSelection().getRangeAt(0) - // if(!cachedRange && innerRef.current){ - // innerRef.current.focus() - // range = window.getSelection().getRangeAt(0) - // } if(range) { let params={srcArr:allImgs, sig:0, el, range, reformMsg, showPic, resetCachedRange, resetLoadling, imgInputSize, imgMsgSize, imgPreviewSize} imageHandleUtil.pasteImages(params) @@ -432,11 +400,6 @@ const str_substr = (start, end, str)=> { } if( item && item.kind === 'file' && item.type.match(/^image\//i) ){ window.getSelection().deleteFromDocument() //如果有选中内容,粘贴时替换 - // let range = cachedRange - // if(!cachedRange && innerRef.current){ - // innerRef.current.focus() - // range = window.getSelection().getRangeAt(0) - // } let range = window.getSelection().getRangeAt(0) if(range) { let params={image:item.getAsFile(), range, reformMsg, showPic, resetCachedRange, resetLoadling, imgInputSize, imgMsgSize, imgPreviewSize} @@ -528,7 +491,6 @@ const str_substr = (start, end, str)=> { } //评价 const onRateHandle = (score)=>{ - // const conversationId = '1506204072738394114' if(conversationId=='' || conversationId==undefined){ message.warn('您还没有发起咨询,无需评价') }else{ @@ -579,7 +541,7 @@ const str_substr = (start, end, str)=> { } }} > - +
{e.preventDefault()}} className={style.input_area} @@ -600,7 +562,7 @@ const str_substr = (start, end, str)=> {
- +
@@ -631,5 +593,6 @@ ChatInput.propTypes = { style:PropTypes.any, chatUI:PropTypes.any, supplierNo:PropTypes.any, + roleIds:PropTypes.any, } export default ChatInput; \ No newline at end of file diff --git a/src/pages/customerservice/support/conversation/components/ChatRecordList/ChatRecordList.jsx b/src/pages/customerservice/support/conversation/components/ChatRecordList/ChatRecordList.jsx index d7e34d1..b37c7d1 100644 --- a/src/pages/customerservice/support/conversation/components/ChatRecordList/ChatRecordList.jsx +++ b/src/pages/customerservice/support/conversation/components/ChatRecordList/ChatRecordList.jsx @@ -2,22 +2,24 @@ import React from 'react' import style from './style.module.css' import MsgItem from '../MsgItem/MsgItem' import PropTypes from 'prop-types'; +import {Spin } from 'antd' const ChatRecordList = (props) => { - let { data, me, showPic, reConnect} = props + let { data, me, showPic, reConnect, onEarlier } = props return ( -
- {/* -
- + +
+
+ +
+ + {data.map((bubble) => ( + + ))}
- */} - {data.map((bubble) => ( - - ))} -
+ ) } ChatRecordList.propTypes = { diff --git a/src/pages/customerservice/support/conversation/components/ChatToolsBar/ChatToolBar.jsx b/src/pages/customerservice/support/conversation/components/ChatToolsBar/ChatToolBar.jsx index 8c9ffae..9573864 100644 --- a/src/pages/customerservice/support/conversation/components/ChatToolsBar/ChatToolBar.jsx +++ b/src/pages/customerservice/support/conversation/components/ChatToolsBar/ChatToolBar.jsx @@ -12,6 +12,8 @@ export default function ChatToolBar(props) { onImage, onFile, onRate, + isRateModalVisible, + closeRateModal, } = props return (
@@ -20,7 +22,8 @@ export default function ChatToolBar(props) { )} {typeof onImage === 'function' && } {typeof onFile === 'function' && } - {typeof onRate === 'function' && } + {typeof onRate === 'function' && } + {/* */} {tools.map((tool) => tool)}
) diff --git a/src/pages/customerservice/support/conversation/components/MsgBubble/MsgBubble.jsx b/src/pages/customerservice/support/conversation/components/MsgBubble/MsgBubble.jsx index 1b860f3..b13631b 100644 --- a/src/pages/customerservice/support/conversation/components/MsgBubble/MsgBubble.jsx +++ b/src/pages/customerservice/support/conversation/components/MsgBubble/MsgBubble.jsx @@ -92,7 +92,7 @@ export default function MsgBubble(props) { style.customer_service_text_content, style.customer_service_arrow, isMe ? style.customer_service_arrow_right : style.customer_service_arrow_left, - ]):''}> + ]):data.type=='dom'?style.customer_service_text_content:''}> {renderContent(data)}
) diff --git a/src/pages/customerservice/support/conversation/components/RatePopover/RatePopover.jsx b/src/pages/customerservice/support/conversation/components/RatePopover/RatePopover.jsx index 6da2904..9ea98f0 100644 --- a/src/pages/customerservice/support/conversation/components/RatePopover/RatePopover.jsx +++ b/src/pages/customerservice/support/conversation/components/RatePopover/RatePopover.jsx @@ -5,7 +5,7 @@ import { HeartFilled } from '@ant-design/icons'; import { Rate, Button, Modal, Tooltip } from 'antd'; export default function RatePopover(props) { - const { onRate } = props + const { onRate, isRateModalVisible, closeRateModal } = props const fileSelector = useRef() const [score, setScore] = useState(0) const [rateModal, setRateModal] = useState(false) @@ -13,12 +13,14 @@ export default function RatePopover(props) { return ( <>
{ setScore(0); setRateModal(true)}} className={style.customer_service_content}/> - {rateModal && - { + {(isRateModalVisible || rateModal) && + { + closeRateModal && closeRateModal() setRateModal(false) }} footer={[