refactor:漏提交
This commit is contained in:
parent
5c26835a3c
commit
ee84f8d68e
@ -1,15 +1,10 @@
|
|||||||
import httpUtil from "../../../util/httpUtil";
|
import httpUtil from '../../../util/httpUtil';
|
||||||
import React from "react";
|
import React from 'react';
|
||||||
import { Modal, Button, Tree, message, Menu, Dropdown } from "antd";
|
import { Modal, Button, Tree, message, Menu, Dropdown } from 'antd';
|
||||||
import styles from "./index.module.less";
|
import styles from './index.module.less';
|
||||||
import IconFont from "../../../components/IconFont";
|
import IconFont from '../../../components/IconFont';
|
||||||
import { stopTransfer } from "../../../util/eventUtil";
|
import { stopTransfer } from '../../../util/eventUtil';
|
||||||
import {
|
import { deleteNodes, moveNode, getBookmarkList } from '../../../util/cacheUtil';
|
||||||
deleteNodes,
|
|
||||||
moveNode,
|
|
||||||
getBookmarkList,
|
|
||||||
updateCurrentChangeTime
|
|
||||||
} from "../../../util/cacheUtil";
|
|
||||||
const { TreeNode } = Tree;
|
const { TreeNode } = Tree;
|
||||||
|
|
||||||
function menuVisible(item, visible) {
|
function menuVisible(item, visible) {
|
||||||
@ -23,13 +18,13 @@ function menuClick(e) {
|
|||||||
stopTransfer(e);
|
stopTransfer(e);
|
||||||
const { currentClickItem, addNode, editNode } = this.props;
|
const { currentClickItem, addNode, editNode } = this.props;
|
||||||
switch (e.key) {
|
switch (e.key) {
|
||||||
case "add":
|
case 'add':
|
||||||
addNode(currentClickItem);
|
addNode(currentClickItem);
|
||||||
break;
|
break;
|
||||||
case "edit":
|
case 'edit':
|
||||||
editNode(currentClickItem);
|
editNode(currentClickItem);
|
||||||
break;
|
break;
|
||||||
case "delete":
|
case 'delete':
|
||||||
deleteOne.call(this, currentClickItem);
|
deleteOne.call(this, currentClickItem);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -62,11 +57,7 @@ export function renderNodeContent(item) {
|
|||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
{/* 触发右键菜单 */}
|
{/* 触发右键菜单 */}
|
||||||
<Dropdown
|
<Dropdown overlay={menu} trigger={['contextMenu']} onVisibleChange={menuVisible.bind(this, item)}>
|
||||||
overlay={menu}
|
|
||||||
trigger={["contextMenu"]}
|
|
||||||
onVisibleChange={menuVisible.bind(this, item)}
|
|
||||||
>
|
|
||||||
{item.type === 0 ? (
|
{item.type === 0 ? (
|
||||||
<a href={item.url} className={styles.nodeContent}>
|
<a href={item.url} className={styles.nodeContent}>
|
||||||
{item.name}
|
{item.name}
|
||||||
@ -76,18 +67,8 @@ export function renderNodeContent(item) {
|
|||||||
)}
|
)}
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
{isEdit ? (
|
{isEdit ? (
|
||||||
<Dropdown
|
<Dropdown overlay={menu} trigger={['click']} onVisibleChange={menuVisible.bind(this, item)}>
|
||||||
overlay={menu}
|
<Button size="small" onClick={stopTransfer.bind(this)} type="primary" icon="menu" shape="circle" />
|
||||||
trigger={["click"]}
|
|
||||||
onVisibleChange={menuVisible.bind(this, item)}
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
size="small"
|
|
||||||
onClick={stopTransfer.bind(this)}
|
|
||||||
type="primary"
|
|
||||||
icon="menu"
|
|
||||||
shape="circle"
|
|
||||||
/>
|
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
) : null}
|
) : null}
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
@ -106,25 +87,13 @@ export function renderTreeNodes(items) {
|
|||||||
const isLeaf = item.type === 0;
|
const isLeaf = item.type === 0;
|
||||||
if (!isLeaf) {
|
if (!isLeaf) {
|
||||||
return (
|
return (
|
||||||
<TreeNode
|
<TreeNode icon={<IconFont type="icon-folder" />} isLeaf={isLeaf} title={renderNodeContent.call(this, item)} key={item.bookmarkId} dataRef={item}>
|
||||||
icon={<IconFont type="icon-folder" />}
|
|
||||||
isLeaf={isLeaf}
|
|
||||||
title={renderNodeContent.call(this, item)}
|
|
||||||
key={item.bookmarkId}
|
|
||||||
dataRef={item}
|
|
||||||
>
|
|
||||||
{renderTreeNodes.call(this, item.children)}
|
{renderTreeNodes.call(this, item.children)}
|
||||||
</TreeNode>
|
</TreeNode>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<TreeNode
|
<TreeNode icon={<IconFont type="icon-bookmark" />} isLeaf={isLeaf} title={renderNodeContent.call(this, item)} key={item.bookmarkId} dataRef={item} />
|
||||||
icon={<IconFont type="icon-bookmark" />}
|
|
||||||
isLeaf={isLeaf}
|
|
||||||
title={renderNodeContent.call(this, item)}
|
|
||||||
key={item.bookmarkId}
|
|
||||||
dataRef={item}
|
|
||||||
/>
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -159,22 +128,20 @@ function deleteBookmark(nodeList) {
|
|||||||
nodeList.forEach(item => {
|
nodeList.forEach(item => {
|
||||||
const data = item.props ? item.props.dataRef : item;
|
const data = item.props ? item.props.dataRef : item;
|
||||||
dataNodeList.push(data);
|
dataNodeList.push(data);
|
||||||
data.type === 0
|
data.type === 0 ? bookmarkIdList.push(data.bookmarkId) : folderIdList.push(data.bookmarkId);
|
||||||
? bookmarkIdList.push(data.bookmarkId)
|
|
||||||
: folderIdList.push(data.bookmarkId);
|
|
||||||
});
|
});
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: "确认删除?",
|
title: '确认删除?',
|
||||||
content: "删除后,无法找回",
|
content: '删除后,无法找回',
|
||||||
onOk() {
|
onOk() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
httpUtil
|
httpUtil
|
||||||
.post("/bookmark/batchDelete", { folderIdList, bookmarkIdList })
|
.post('/bookmark/batchDelete', { folderIdList, bookmarkIdList })
|
||||||
.then(() => {
|
.then(() => {
|
||||||
//遍历节点树数据,并删除
|
//遍历节点树数据,并删除
|
||||||
deleteNodes(dataNodeList);
|
deleteNodes(dataNodeList);
|
||||||
changeCheckedKeys([], null);
|
changeCheckedKeys([], null);
|
||||||
updateTreeData([...getBookmarkList("")]);
|
updateTreeData([...getBookmarkList('')]);
|
||||||
resolve();
|
resolve();
|
||||||
})
|
})
|
||||||
.catch(() => reject());
|
.catch(() => reject());
|
||||||
@ -191,7 +158,7 @@ export async function onDrop(info) {
|
|||||||
const { updateTreeData, loadedKeys, changeLoadedKeys } = this.props;
|
const { updateTreeData, loadedKeys, changeLoadedKeys } = this.props;
|
||||||
const target = info.node.props.dataRef;
|
const target = info.node.props.dataRef;
|
||||||
if (!info.dropToGap && target.type === 0) {
|
if (!info.dropToGap && target.type === 0) {
|
||||||
message.error("无法移动到书签内部");
|
message.error('无法移动到书签内部');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.setState({ isLoading: true });
|
this.setState({ isLoading: true });
|
||||||
@ -203,14 +170,13 @@ export async function onDrop(info) {
|
|||||||
changeLoadedKeys(loadedKeys);
|
changeLoadedKeys(loadedKeys);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
await httpUtil.post("/bookmark/moveNode", body);
|
await httpUtil.post('/bookmark/moveNode', body);
|
||||||
message.success("移动完成");
|
message.success('移动完成');
|
||||||
updateTreeData([...getBookmarkList("")]);
|
updateTreeData([...getBookmarkList('')]);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
message.error("后台移动失败,将于2s后刷新页面,以免前后台数据不一致");
|
message.error('后台移动失败,将于2s后刷新页面,以免前后台数据不一致');
|
||||||
setTimeout(window.location.reload, 2000);
|
setTimeout(window.location.reload, 2000);
|
||||||
} finally {
|
} finally {
|
||||||
this.setState({ isLoading: false });
|
this.setState({ isLoading: false });
|
||||||
}
|
}
|
||||||
await updateCurrentChangeTime();
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user