Commit cb906073 authored by chenshouchao's avatar chenshouchao

cn- fix: 移动文件时同路径文件置灰计算错误修复

parent b8148369
...@@ -3,6 +3,7 @@ import React, { ...@@ -3,6 +3,7 @@ import React, {
useImperativeHandle, useImperativeHandle,
useCallback, useCallback,
useMemo, useMemo,
useEffect,
} from "react"; } from "react";
import style from "./index.module.css"; import style from "./index.module.css";
...@@ -33,6 +34,12 @@ const MoveFile = (props: any) => { ...@@ -33,6 +34,12 @@ const MoveFile = (props: any) => {
}, },
}); });
const [newPath, setNewPath] = useState("/");
const [rootActive, setRootActive] = useState(true);
const [moveFileSubmitloading, setMoveFileSubmitloading] = useState(false);
const [treeData, setTreeData] = useState<any>([]);
let moveFileDialogRef: any = React.createRef();
const { run: getDataFileMovePackageRun } = useMyRequest( const { run: getDataFileMovePackageRun } = useMyRequest(
getDataFileMovePackage, getDataFileMovePackage,
{ {
...@@ -43,31 +50,7 @@ const MoveFile = (props: any) => { ...@@ -43,31 +50,7 @@ const MoveFile = (props: any) => {
); );
// 要移动的文件夹 之后用来隐藏文件夹树中同路径的文件夹 // 要移动的文件夹 之后用来隐藏文件夹树中同路径的文件夹
const moveFolderPathArr = useMemo(() => { const [moveFolderPathArr, setMoveFolderPathArr] = useState<Array<string>>([]);
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>([]);
const getTree = useCallback(() => { const getTree = useCallback(() => {
if (fileToken && projectId) { if (fileToken && projectId) {
...@@ -79,7 +62,7 @@ const MoveFile = (props: any) => { ...@@ -79,7 +62,7 @@ const MoveFile = (props: any) => {
)?.then((res) => { )?.then((res) => {
if (Array.isArray(res.data)) { if (Array.isArray(res.data)) {
let arr = res.data; let arr = res.data;
const deleteRepeatFolder = (folderTree: any) => { const disabledRepeatFolder = (folderTree: any) => {
folderTree.forEach((item: any, index: number) => { folderTree.forEach((item: any, index: number) => {
if ( if (
moveFolderPathArr.indexOf( moveFolderPathArr.indexOf(
...@@ -91,12 +74,12 @@ const MoveFile = (props: any) => { ...@@ -91,12 +74,12 @@ const MoveFile = (props: any) => {
} else { } else {
item.disabled = false; item.disabled = false;
if (item.subdirs.length > 0) { if (item.subdirs.length > 0) {
deleteRepeatFolder(item.subdirs); disabledRepeatFolder(item.subdirs);
} }
} }
}); });
}; };
deleteRepeatFolder(arr); disabledRepeatFolder(arr);
setTreeData(arr); setTreeData(arr);
} else { } else {
setTreeData([]); setTreeData([]);
...@@ -105,12 +88,35 @@ const MoveFile = (props: any) => { ...@@ -105,12 +88,35 @@ const MoveFile = (props: any) => {
} }
}, [fileToken, projectId, moveFolderPathArr]); }, [fileToken, projectId, moveFolderPathArr]);
let moveFileDialogRef: any = React.createRef(); useEffect(() => {
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}`;
});
setMoveFolderPathArr(pathArr);
}, [selectIds, showList, currentOperateFile, path]);
useEffect(() => {
if (moveFolderPathArr.length > 0) {
getTree();
}
}, [moveFolderPathArr, getTree]);
const showDialog = () => { const showDialog = () => {
moveFileDialogRef.current.handleClickOpen(); moveFileDialogRef.current.handleClickOpen();
setTreeData([]); setTreeData([]);
getTree();
}; };
useImperativeHandle(props.onRef, () => { useImperativeHandle(props.onRef, () => {
......
...@@ -89,7 +89,7 @@ const ProjectData = observer(() => { ...@@ -89,7 +89,7 @@ const ProjectData = observer(() => {
useEffect(() => { useEffect(() => {
const locationInfo: any = location?.state; const locationInfo: any = location?.state;
setPath(locationInfo?.pathName || ""); setPath(locationInfo?.pathName || "/");
}, [location]); }, [location]);
// 列表展示的数据 // 列表展示的数据
......
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