import styles from '@/page/Meeting/ChatBigWindow/index.module.scss' import ImageUrl from '@/utils/package/imageUrl'; import { useEffect, useState, useRef } from "react"; import { storage } from '@/utils'; import { setKeyOpenChildWindow } from '@/utils/package/public'; import { Button, Input, Modal, Popover } from 'antd'; import { role } from '@/config/role'; import { GetRoomUserItem } from '@/api/Meeting'; import Avatar from '@/components/Avatar'; import dayjs from 'dayjs'; import { ExclamationCircleFilled } from '@ant-design/icons'; import EquipmentManagement from '@/components/EquipmentManagement'; const { confirm } = Modal; const ChatBigWindow: React.FC = () => { const [inputValue, setInputValue] = useState('') const [chatLists, setChatLists] = useState([]) const [user, setUser] = useState({}); const [roomUserItem, setRoomUserItem] = useState(null) const [commonlyChatList] = useState([ '能听到我说话吗?', '听得到', '听不到', '我要发言', ]) const equipmentManagementRef = useRef(); const userInfo = JSON.parse(storage.getItem('user') as string) const stateInfo = JSON.parse(storage.getItem('stateInfo') as string) const channel = new BroadcastChannel('meeting_channel'); useEffect(() => { setUser(userInfo) channel.onmessage = function (event) { const { type, chatList, showDriverList } = event.data; switch (type) { case 'chatList': setChatLists(chatList) setTimeout(() => { const chatBigWindowView = document.getElementById('chatBigWindowView') as HTMLElement; if (chatBigWindowView) { chatBigWindowView.scrollTop = chatBigWindowView.scrollHeight; } }, 100) break; case 'showDriverList': equipmentManagementRef.current.setData(showDriverList) break; } } channel.postMessage({ type: 'chatBigWindowSendChannelMsg', chatBigWindowSendChannelMsg: { msg: '', } }); }, []); return ( <>
聊天 { window.electron.closeChildWindow('chatBigWindow') setKeyOpenChildWindow('chatBigWindow', false) }} />
{chatLists.map((item: any, index: number) =>
{role.ID.includes(user.roleId) ? { if (e) { GetRoomUserItem(stateInfo.channelId, item.uid).then((res: any) => { if (res.code === 200) { setRoomUserItem(res.data) } }) } else { setRoomUserItem(null) } }} content={ roomUserItem ?
{roomUserItem.isRoomManager || role.ID.includes(roomUserItem.roleId) ? : null} {roomUserItem.uid !== user.uid && !role.ID.includes(roomUserItem.roleId) ? : null} {roomUserItem.isRoomManager ? : null} {roomUserItem.isRoomManager ? : null} {roomUserItem.uid !== user.uid ? : null} {roomUserItem.uid !== user.uid ? : null}
:
用户不在房间内
}>
{item.uid !== user.uid ? {item.userName} {dayjs(item.timestamp).format('HH:mm:ss')} : {dayjs(item.timestamp).format('HH:mm:ss')} {item.userName} }
:
{item.uid !== user.uid ? {item.userName}{dayjs(item.timestamp).format('HH:mm:ss')} : {dayjs(item.timestamp).format('HH:mm:ss')} {item.userName} }
}
{item.message}
)}
{ commonlyChatList.map((item: string, index: number) => { return }) }
{ setInputValue(e.target.value) }} autoSize={{ minRows: 3, maxRows: 3 }} />
{ channel.postMessage({ type: 'userListWindowEquipmentManagement', userListWindowEquipmentManagement: { uid } }); }} setDriver={(data: any) => { channel.postMessage({ type: 'userListWindowSetEquipmentManagement', userListWindowSetEquipmentManagement: data }); }} /> ) } export default ChatBigWindow