/** * 获取已离群的数量 * @param data * @param state * @returns */ import React, { useEffect, useState } from 'react'; import { IGroup, IGroupMembers } from './ChatLogsType'; import { AdminSvg, OwnerSvg } from './components/Svgs'; export const groupMembersCount = (data: any[], state: any) => { let count = 0; data.forEach((item) => { if (item.state == state) { count += 1; } }); return count; }; /** * 获取是微信的人数 * @param data * @param group_members_type * @param state * @returns */ export const groupMembersCount2 = (data: any[], group_members_type: any, state: any) => { let count = 0; data.forEach((item) => { if (item.group_members_type == group_members_type && item.state == state) { count += 1; } }); return count; }; // 群 Drawer 群员 export const groupMembersListItem = (item: IGroupMembers, selectGroup: IGroup) => { return (
{item.avatar ? ( ) : item.name ? ( item.name[0] ) : ( '' )} {item.user_id == selectGroup?.owner ? : null} {selectGroup?.adminUserIDs?.includes(item.user_id) ? : null}
{item.name}
); }; /** * 群管理者: * @param data * @param groupMembers * @returns */ export const adminList = (data: any, groupMembers: any) => { if (data) { try { const msg = JSON.parse(data); if (Array.isArray(msg) && msg.length) { let arr: any = []; msg.forEach((el) => { arr.push(groupMembers[el.userid]?.name); }); return
群管理者:{arr.join(',')}
; } } catch (e) { return <>; } } return <>; }; /** * 返回群管理员 userid 数组 * @param data * @returns */ export const getAdminList = (data: any) => { if (data) { try { const msg = JSON.parse(data); if (Array.isArray(msg)) { let arr: string[] = []; msg.forEach((item) => { arr.push(item.userid); }); return arr; } } catch (e) { /* empty */ } } return []; }; /** * 客户等级等信息 * @returns */ export const formatTags = (data: any) => { if (data) { try { const tags = JSON.parse(data); if (Array.isArray(tags) && tags.length) { return ( <> {tags.map((item) => { return (
{item.group_name}:{item.tag_name}
); })} ); } } catch (e) { /* empty */ } } return
无标签
; }; type IGroupIcon = { groupList: any[]; }; /** * 群图标拼接 * @param props * @returns */ export const GroupIcon: React.FC = (props) => { const [list, setList] = useState([[], [], []]); useEffect(() => { let temp: any = [[], [], []]; const { groupList } = props; for (let index = 0; index < 9; index++) { const element = groupList[index]; if (index < 3) { temp[0].push(element); } else if (index < 6) { temp[1].push(element); } else { temp[2].push(element); } } temp.reverse(); setList(temp); }, [props.groupList]); return (
{list.map((item: any[], i: number) => { return (
{item.map((el) => { return el ? (
{el.avatar ? ( ) : (
{el.name[0]}
)}
) : null; })}
); })}
); };