Commit 9705ad07 authored by chenshouchao's avatar chenshouchao

Merge branch 'feat-20220608-projectdata' into 'release'

cn- Feat 20220608 projectdata

See merge request !58
parents fdbbb05e b6f92ed7
......@@ -6,6 +6,7 @@ import TreeItem from "@mui/lab/TreeItem";
interface TreeItemType {
id: string;
name: string;
disabled?: boolean;
subdirs?: readonly TreeItemType[];
}
......@@ -24,6 +25,7 @@ type MyTreeViewProps = {
interface RenderTree {
id: string | number;
name: string;
disabled?: boolean;
subdirs?: readonly RenderTree[];
}
......@@ -47,6 +49,7 @@ const MyTreeView = (props: MyTreeViewProps) => {
idFunc ? idFunc(nodes) : nodes.id || `${nodes.name}${index}`
)}
label={renderLabel === undefined ? nodes.name : renderLabel(nodes.name)}
disabled={nodes?.disabled ? true : false}
>
{Array.isArray(nodes.subdirs)
? nodes.subdirs.map((node, i) => renderTreeObj(node, i))
......
......@@ -42,8 +42,30 @@ const MoveFile = (props: any) => {
}
);
// 要移动的文件夹 之后用来隐藏文件夹树中同路径的文件夹
const moveFolderPathArr = useMemo(() => {
let moveFolderArr: any = [];
let pathArr = [];
if (currentOperateFile) {
if (currentOperateFile.type === "directory") {
moveFolderArr = [currentOperateFile];
} else {
moveFolderArr = [];
}
} else {
moveFolderArr = showList.filter((item: any) => {
return selectIds.indexOf(item.name) !== -1 && item.type === "directory";
});
}
pathArr = moveFolderArr.map((item: any) => {
return path === "/" ? `/${item.name}` : `${path}/${item.name}`;
});
return pathArr;
}, [selectIds, showList, currentOperateFile, path]);
const [newPath, setNewPath] = useState("/");
const [rootActive, setRootActive] = useState(true);
const [moveFileSubmitloading, setMoveFileSubmitloading] = useState(false);
const [treeData, setTreeData] = useState<any>([]);
......@@ -56,18 +78,38 @@ const MoveFile = (props: any) => {
false
)?.then((res) => {
if (Array.isArray(res.data)) {
setTreeData(res.data);
let arr = res.data;
const deleteRepeatFolder = (folderTree: any) => {
folderTree.forEach((item: any, index: number) => {
if (
moveFolderPathArr.indexOf(
`${item.dir.substr(1)}${item.name}`
) !== -1
) {
item.disabled = true;
// folderTree.splice(index, 1);
} else {
item.disabled = false;
if (item.subdirs.length > 0) {
deleteRepeatFolder(item.subdirs);
}
}
});
};
deleteRepeatFolder(arr);
setTreeData(arr);
} else {
setTreeData([]);
}
});
}
}, [fileToken, projectId]);
}, [fileToken, projectId, moveFolderPathArr]);
let moveFileDialogRef: any = React.createRef();
const showDialog = () => {
moveFileDialogRef.current.handleClickOpen();
setTreeData([]);
getTree();
};
......@@ -100,6 +142,7 @@ const MoveFile = (props: any) => {
// 移动成功后的操作
const successMove = () => {
Message.success("移动成功!");
setMoveFileSubmitloading(false);
moveFileDialogRef?.current?.handleClose();
refresh();
};
......@@ -111,6 +154,7 @@ const MoveFile = (props: any) => {
} else if (newPath === path) {
Message.error("指定的目标路径为数据原路径,无需移动。");
} else {
setMoveFileSubmitloading(true);
if (!currentOperateFile) {
// 批量移动
// 要移动的数据集
......@@ -266,8 +310,6 @@ const MoveFile = (props: any) => {
setRootActive(true);
};
const moveFileSubmitloading = false;
return (
<MyDialog
handleSubmit={handleMoveFileSubmit}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment