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>
)}
);
}