Files
fe_service_ebtp_frontend/src/pages/MainPage/ProjectManager/managerSubAdmin.js
2022-06-09 19:45:31 +08:00

149 lines
7.3 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React, { PureComponent } from 'react';
import { history } from 'umi';
import { Row, Col, Tooltip, Card, List, DatePicker, Button, Statistic, Spin, Empty, message } from 'antd';
import { connect } from 'dva';
import './index.less';
import talkPng from '@/images/talk/talk.png';
import { routerRedux } from 'dva/router';
import { RightOutlined } from '@ant-design/icons';
import moment from 'moment';
import { getSessionUserData, getRA } from '@/utils/session';
import { getURLInformation } from '@/utils/CommonUtils';
import NoticeDetail from '@/pages/notice/noticeList/components/NoticeDetail'
import ChatUI from '@/pages/customerservice/support/conversation' //智慧客服
@connect(({ dashboard, loading }) => ({
...dashboard,
}))
class manager extends PureComponent {
state = {
detailId: '1', // 公告id
noticeDetail: false, // 公告弹窗
isModalVisible: false, //智慧客服
isFlash: false, //智慧客服
isCloseWs: true, //智慧客服
optionsModal: false, //智慧客服
projectModal: false, //智慧客服
supplierNumber: '', //智慧客服
staffId: '', //智慧客服'
staffName:'', //智慧客服
kfType:0,//智慧客服
questionType:0,//智慧客服
roleIds:'',//智慧客服
}
componentDidMount() {
this.props.dispatch({
type: "dashboard/fetchtlist",
payload: { limit: 7 }
})
NTKF_PARAM = {
siteid: "bl_1000",                    //企业ID,为固定值
settingid: "bl_1000_1492484340268",           //接待组ID为固定值必填
uid: getSessionUserData()?.userId,
uname: getSessionUserData()?.deptName + "-" + getSessionUserData()?.fullName,            //用户名未登录可以为空但是不能给nulluname赋予的值显示到小能客户端
isvip: "0",                              //是否为vip用户0代表非会员1代表会员取值显示到小能客户端
userlevel: "1",                       //网站自定义会员级别1-N可根据选择判断取值显示到小能客户端
erpparam: "abc"                          //erpparam为erp功能的扩展字段可选购买erp功能后用于erp功能集成
}
//智慧客服,获取供应商编码
let userData = getSessionUserData()
let roleAuthority = getRA()
this.setState({roleIds: roleAuthority && roleAuthority.length>0? roleAuthority[0]: userData.roleIds})
this.setState({staffId: userData.userId})
this.setState({staffName: userData.fullName})
this.setState({supplierNumber: userData.organizationId})
//<<<<<<智慧客服end
}
lookInfo = (id) => { // 公告查看
this.setState({
detailId: id,
noticeDetail: true
})
}
noticeModel = () => { // 公告关闭消息弹窗
this.setState({
noticeDetail: false
})
}
initChatUI = () => {
//智慧客服
if(this.state.isCloseWs && window.isCloseChatUIModal==undefined){ //弹窗主动关闭或者页面刷新
this.setState({optionsModal: true})
}else{
this.setState({isModalVisible: true})
this.setState({isCloseWs: false})
this.setState({isFlash :false})
}
}
render() {
const { tlist, trelist } = this.props;
const { detailId, noticeDetail, isModalVisible, isCloseWs, optionsModal, projectModal, supplierNumber, staffId, staffName, kfType, questionType, isFlash, roleIds} = this.state; //智慧客服state
return (
<>
<a className={isFlash && !isModalVisible ? "talk text-effect":"talk"} onClick={() => this.initChatUI()}>咨询服务<span>8:30</span><span>|</span><span>12:30</span><span>13:00</span><span>|</span><span>17:00</span><img src={talkPng} /></a>
<div className="dashboard" style={{ height: innerHeight - 70, overflow: "hidden" }}>
<Row className="topt">
<Col span={24}><Card title="系统公告" bordered={false} className="cardtre" extra={<div className="moret" onClick={() => history.push('/notice/noticeList')}>更多<RightOutlined /></div>}>
{tlist != [] && tlist.map((item, index) => {
return (
<div className="messagetre" onClick={() => { this.lookInfo(item.id) }} key={item.id}>
<div className="round">{index+1}</div>
<div className="txt" title={item.noticeTitle}>{item.noticeTitle}</div>
<div className="time">{item.updateDate}</div>
</div>
)
})}</Card>
</Col>
</Row>
</div>
{noticeDetail && <NoticeDetail detailId={detailId} onCancel={() => { this.noticeModel() }} modalVisible={noticeDetail} />}
{/*智慧客服*/}
<ChatUI
openProjectWin={()=>{
this.setState({kfType: 2})
this.setState({projectModal: true})
}}
openWin={(kfType, questionType)=>{
this.setState({questionType: questionType})
this.setState({kfType: kfType})
this.setState({optionsModal: false})
this.setState({isModalVisible: true})
this.setState({isCloseWs: false})
this.setState({isFlash :false})
}}
closeWin={()=>{
this.setState({kfType: 0})
this.setState({questionType: 0})
this.setState({optionsModal: false})
this.setState({isModalVisible: false})
this.setState({isCloseWs: true})
this.setState({projectModal: false})
}}
optionsModal={optionsModal}
projectModal={projectModal}
isModalVisible={isModalVisible}
kfType={kfType}
questionType={questionType}
staffId={staffId}
staffName={staffName}
supplierNumber={supplierNumber}
isCloseWs={isCloseWs}
roleIds={roleIds}
hideWin={()=>{
this.setState({optionsModal: false})
this.setState({isModalVisible: false})
}}
closeOptionsModal={()=>{
this.setState({optionsModal: false})
}}
closeProjectModal={()=>{
this.setState({projectModal: false})
}}
msgAlert={()=>{
if(!isModalVisible) this.setState({isFlash: true})
}}
/>
</>
)
}
}
export default manager;