import React from 'react'; import { Space, Button, Modal, Dropdown, Typography, } from 'antd'; import Style from './web.module.less'; const MoreIcon = (); function ItemComponent(props) { const { type, buttonProps, render, onClick, text } = props; if (type === 'button') { return (); } if (render) { return
{render}
; } return {text}; } export default function Render(props) { const { methods, data } = props; const { t, getActionName, getAlertOptions } = methods; const { items, spaceProps, entity, mode = 'default', column } = data; const getItems = () => { const items2 = items .filter((ele) => { const { show } = ele; const showResult = ele.hasOwnProperty('show') ? show : true; return showResult; }) .map((ele, index) => { const { label, action } = ele; let text = ''; if (label) { text = label; } else { text = getActionName(action); } let onClick = async () => { if (ele.onClick) { ele.onClick(ele); return; } }; if (ele.alerted) { onClick = async () => { const { title, content, okText, cancelText } = getAlertOptions(ele); Modal.confirm({ title, content, okText, cancelText, onOk: async () => { if (ele.onClick) { ele.onClick(ele); return; } }, }); }; } return Object.assign(ele, { text: text, onClick2: onClick, }); }); let newItems = items2; let moreItems = []; if (column && items2.length > column) { newItems = [...items2].splice(0, column); moreItems = [...items2].splice(column, items2.length); } return { newItems, moreItems, }; }; const { newItems, moreItems } = getItems(); if (!newItems || newItems.length === 0) { return null; } if (mode === 'table-cell') { return ( {newItems?.map((ele, index) => { return (); })} {moreItems && moreItems.length > 0 && ( ({ label: ele.text, key: index, })), onClick: (e) => { const item = moreItems[e.key]; item.onClick2(); }, }} placement="top" arrow> e.preventDefault()}>更多 )} ); } if (mode === 'cell') { return (
{moreItems && moreItems.length > 0 && ( ({ label: ele.text, key: index, })), onClick: (e) => { const item = moreItems[e.key]; item.onClick2(); }, }} arrow> 更多 )} {newItems?.map((ele, index) => { return (); })}
); } return (
{newItems?.map((ele, index) => { return (); })} {moreItems && moreItems.length > 0 && ( ({ label: ele.text, key: index, })), onClick: (e) => { const item = moreItems[e.key]; item.onClick2(); }, }} arrow> )}
); }