import React, { useMemo } from 'react'; import { Button, Menu, Dropdown, Modal } from 'antd'; import { UnorderedListOutlined } from '@ant-design/icons'; import router from 'umi/router'; import { setLastVersion } from '@/services/boom'; function DropdownMenu(props) { const { compareList, isMerge, version, onClick, flowDetail, classifyList, currentUser, isAuditor, flow, sheetRef3, sheetRef2, setVersion, } = props; const active_audit = flow.active_audit; const isLastVersion = useMemo(() => { return version.last_version == 1; }, [version]); const canEdit = () => { if (flow.list.FlowNodes.length - 1 == flow.current && active_audit == 3) return false; return active_audit != 1; }; const onSave = () => { const sheet1 = compareList[0]; Modal.confirm({ title: '提示', content: `是否确认保存【${sheet1.version_name || sheet1.name}】`, okText: '确定', cancelText: '取消', onOk() { let sheetData = sheetRef3.current.getSheetJson().data; sheetData.forEach(sheet => { delete sheet.data; }); let params = { ...sheet1, data: JSON.stringify(sheetData), }; dispatch({ type: 'detail/commitSheet', payload: params, callback: () => { onCompare(false); }, }); }, }); }; const onMerge = () => { const [sheet1, sheet2] = compareList; Modal.confirm({ title: '提示', content: `是否确认将【${sheet2.version_name}】改动的内容同步至【${sheet1.version_name || sheet1.name}】`, okText: '确定', cancelText: '取消', onOk() { sheetRef3.current.mergeExcl(sheetRef2.current.updateCell); }, }); }; const handleMenuClick = e => { switch (e.key) { case 'back': // 返回 router.push(`/bom`); break; case 'lastVersion': Modal.confirm({ title: '提示', content: `设置成功后将无法编辑,是否设置为最终版本?`, okText: '确定', cancelText: '取消', onOk: async () => { await setLastVersion(version.id); version.last_version = 1 setVersion(version) localStorage.excelItem = JSON.stringify(version); }, }); break; default: onClick(e); break; } }; // 判断是否为比对模式 if (compareList.length == 2) { // 判断是否为同步最新清单的比对 if (isMerge) { return ( <> > ); } else { return ; } } const menuList = [