From e2ad3d1cafbfc81cbc2fd575360e1e4652368d1a Mon Sep 17 00:00:00 2001 From: Simba Date: Sat, 2 Jan 2021 15:44:59 +0800 Subject: [PATCH] matter list delete option soft or hard. --- src/common/model/global/i18n/LangEn.ts | 3 +- src/common/model/global/i18n/LangZh.ts | 3 +- src/pages/matter/List.tsx | 17 +++-- .../matter/widget/MatterDeleteModal.less | 5 ++ src/pages/matter/widget/MatterDeleteModal.tsx | 64 +++++++++++++++++++ src/pages/matter/widget/MatterPanel.tsx | 15 +++-- 6 files changed, 94 insertions(+), 13 deletions(-) create mode 100644 src/pages/matter/widget/MatterDeleteModal.less create mode 100644 src/pages/matter/widget/MatterDeleteModal.tsx diff --git a/src/common/model/global/i18n/LangEn.ts b/src/common/model/global/i18n/LangEn.ts index 17eb371..525ba7b 100644 --- a/src/common/model/global/i18n/LangEn.ts +++ b/src/common/model/global/i18n/LangEn.ts @@ -142,7 +142,8 @@ let LangEn = { recycleBin: "Recycle bin", deleted: "Deleted", unCompatibleBrowser: "The current browser does not support it. Please try choose another one", - canIUse: "To see if the current browser supports it" + canIUse: "To see if the current browser supports it", + intoRecycleBin: "Into the recycle bin" }, router: { allFiles: "All Files", diff --git a/src/common/model/global/i18n/LangZh.ts b/src/common/model/global/i18n/LangZh.ts index 3b0c605..8562ffd 100644 --- a/src/common/model/global/i18n/LangZh.ts +++ b/src/common/model/global/i18n/LangZh.ts @@ -142,7 +142,8 @@ let LangZh = { recycleBin: "回收站", deleted: "已删除", unCompatibleBrowser: "当前浏览器不支持,请切换浏览器尝试", - canIUse: "查看当前浏览器是否支持,点击跳转" + canIUse: "查看当前浏览器是否支持,点击跳转", + intoRecycleBin: "放入回收站" }, router: { allFiles: "全部文件", diff --git a/src/pages/matter/List.tsx b/src/pages/matter/List.tsx index ed8061f..f114197 100644 --- a/src/pages/matter/List.tsx +++ b/src/pages/matter/List.tsx @@ -39,6 +39,7 @@ import { UserRole } from "../../common/model/user/UserRole"; import StringUtil from "../../common/util/StringUtil"; import MoveBatchModal from "./widget/MoveBatchModal"; import ShareOperationModal from "./widget/ShareOperationModal"; +import MatterDeleteModal from "./widget/MatterDeleteModal"; import Share from "../../common/model/share/Share"; import ShareDialogModal from "../share/widget/ShareDialogModal"; import BreadcrumbModel from "../../common/model/base/option/BreadcrumbModel"; @@ -225,17 +226,21 @@ export default class List extends TankComponent { }; deleteBatch = () => { - Modal.confirm({ - title: Lang.t("actionDeleteConfirm"), - icon: , - onOk: () => { - const uuids = this.selectedMatters.map((i) => i.uuid).toString(); + const uuids = this.selectedMatters.map((i) => i.uuid).toString(); + MatterDeleteModal.open( + () => { this.matter.httpSoftDeleteBatch(uuids, () => { MessageBoxUtil.success(Lang.t("operationSuccess")); this.refresh(); }); }, - }); + () => { + this.matter.httpDeleteBatch(uuids, () => { + MessageBoxUtil.success(Lang.t("operationSuccess")); + this.refresh(); + }); + } + ); }; downloadZip = () => { diff --git a/src/pages/matter/widget/MatterDeleteModal.less b/src/pages/matter/widget/MatterDeleteModal.less new file mode 100644 index 0000000..e7b8227 --- /dev/null +++ b/src/pages/matter/widget/MatterDeleteModal.less @@ -0,0 +1,5 @@ +.delete-modal { + .ant-modal-body { + padding-bottom: 0; + } +} diff --git a/src/pages/matter/widget/MatterDeleteModal.tsx b/src/pages/matter/widget/MatterDeleteModal.tsx new file mode 100644 index 0000000..9972f6f --- /dev/null +++ b/src/pages/matter/widget/MatterDeleteModal.tsx @@ -0,0 +1,64 @@ +import React from "react"; +import TankComponent from "../../../common/component/TankComponent"; +import { Modal, Button } from "antd"; +import Lang from "../../../common/model/global/Lang"; +import "./MatterDeleteModal.less"; + +interface IProps { + onSoftDel: () => void; + onHardDel: () => void; + onClose: () => void; +} + +interface IState {} + +export default class MatterDeleteModal extends TankComponent { + constructor(props: IProps) { + super(props); + } + + static open(onSoftDel: () => void, onHardDel: () => void) { + let modal = Modal.warning({ + className: "delete-modal", + title: Lang.t("delete"), + okCancel: false, + okButtonProps: { + className: "display-none", + }, + content: ( + { + onSoftDel(); + modal.destroy(); + }} + onHardDel={() => { + onHardDel(); + modal.destroy(); + }} + onClose={() => { + modal.destroy(); + }} + /> + ), + }); + } + + render() { + return ( +
+

{Lang.t("actionDeleteConfirm")}

+
+ + + +
+
+ ); + } +} diff --git a/src/pages/matter/widget/MatterPanel.tsx b/src/pages/matter/widget/MatterPanel.tsx index 84cc5e5..11956ff 100644 --- a/src/pages/matter/widget/MatterPanel.tsx +++ b/src/pages/matter/widget/MatterPanel.tsx @@ -27,6 +27,7 @@ import { CheckboxChangeEvent } from "antd/es/checkbox"; import SafeUtil from "../../../common/util/SafeUtil"; import ClipboardUtil from "../../../common/util/ClipboardUtil"; import Lang from "../../../common/model/global/Lang"; +import MatterDeleteModal from "./MatterDeleteModal"; interface IProps { matter: Matter; @@ -93,16 +94,20 @@ export default class MatterPanel extends TankComponent { }; deleteMatter = () => { - Modal.confirm({ - title: Lang.t("actionDeleteConfirm"), - icon: , - onOk: () => { + MatterDeleteModal.open( + () => { this.props.matter.httpSoftDelete(() => { MessageBoxUtil.success(Lang.t("operationSuccess")); this.props.onDeleteSuccess!(); }); }, - }); + () => { + this.props.matter.httpDelete(() => { + MessageBoxUtil.success(Lang.t("operationSuccess")); + this.props.onDeleteSuccess!(); + }); + } + ); }; hardDeleteMatter = () => {