import React, { useState } from 'react'; import { Table, Space, Button, ConfigProvider, Tooltip, Modal, Form, Input } from 'antd'; import Styles from './web.pc.module.less'; import { CopyOutlined, DeleteOutlined, EditOutlined, ExclamationCircleFilled, EyeOutlined } from '@ant-design/icons'; import { generateNewId } from 'oak-domain/lib/utils/uuid'; import Pagination from 'oak-frontend-base/es/components/pagination'; const { confirm } = Modal; export default function Render(props) { const { data, methods } = props; const { articleMenus, oakFullpath, oakPagination, oakLoading, oakExecuting, oakEntity, entity, entityId, origin = 'qiniu', onMenuClick, empty, execuable } = data; const { t, goDetail, onCopy } = props.methods; const [editorId, setEditorId] = useState(''); const IconButton = (props) => { const { icon, onClick, disabled, tooltip, style, linkHoverBg = 'var(--oak-bg-color-container-hover)' } = props; const Btn = (); return ( {tooltip ? {Btn} : Btn} ); }; const menuAttr = [ { title: (articleMenus && articleMenus.length > 0) ? t('name') : t('menu or article'), key: 'name', dataIndex: 'name', width: 600, ellipsis: true, render: (_, record) => { return (
{ onMenuClick(record.id, record.name, record.isArticle); }}>{record.name}
); } }, { title: t('articleMenu:attr.latestAt'), key: 'latestAt', dataIndex: 'latestAtStr', // width: 180, ellipsis: true, }, { title: t('common::operate'), key: 'operate', fixed: 'right', render: (_, record) => { return ( } onClick={() => { setEditorId(record.id); }}> } onClick={() => { goDetail(record.id); }}> } onClick={(e) => { e.stopPropagation(); onCopy(record.id); }}> } onClick={() => showRemoveConfirm(record.id, record.name)}> ); }, } ]; const showRemoveConfirm = (menuId, menuName) => { confirm({ title: t('removeConfirm.title', { name: menuName }), icon: , content:
{t('removeConfirm.content')}
, async onOk() { try { await methods.execute(undefined, { type: 'success', content: t('success.remove') }, undefined, [ { entity: 'articleMenu', operation: { id: generateNewId(), action: 'remove', data: {}, filter: { id: menuId, }, }, }, ]); } catch (err) { methods.setMessage({ type: 'error', content: t('fail.remove') + err?.message }); } }, okButtonProps: { danger: true, }, okText: t('common::action.confirm'), cancelText: t('common::action.cancel') }); }; return (<>
{editorId !== '' && ( { try { await methods.execute(undefined, { type: 'success', content: t('success.editorName') }); setEditorId(''); } catch (err) { methods.setMessage({ type: 'error', content: t('fail.update') + err?.message }); } }} okButtonProps={{ disabled: !execuable || oakLoading || oakExecuting, }} onCancel={() => { methods.clean(); setEditorId(''); }}>
ele.id === editorId)?.name || ''} onChange={(e) => { methods.updateItem({ name: e.target.value.trim(), }, editorId); }} maxLength={20} showCount autoFocus/>
)} ); }