Commit d7e61257 authored by chenshouchao's avatar chenshouchao

feat: 项目数据表格替换

parent fa73ee41
...@@ -49,8 +49,8 @@ const DeleteDialog = (props: IDeleteFileProps) => { ...@@ -49,8 +49,8 @@ const DeleteDialog = (props: IDeleteFileProps) => {
if (currentOperateFile) { if (currentOperateFile) {
return [currentOperateFile]; return [currentOperateFile];
} else { } else {
return showList.filter((item: any) => { return selectIds.map((item) => {
return selectIds.indexOf(item.name) !== -1; return showList[item];
}); });
} }
}, [currentOperateFile, selectIds, showList]); }, [currentOperateFile, selectIds, showList]);
......
...@@ -102,9 +102,11 @@ const MoveFile = (props: IMoveFileProps) => { ...@@ -102,9 +102,11 @@ const MoveFile = (props: IMoveFileProps) => {
moveFolderArr = []; moveFolderArr = [];
} }
} else { } else {
moveFolderArr = showList.filter((item: any) => { moveFolderArr = selectIds
return selectIds.indexOf(item.name) !== -1 && item.type === "directory"; .map((item) => {
}); return showList[item];
})
.filter((item) => item.type === "directory");
} }
pathArr = moveFolderArr.map((item: any) => { pathArr = moveFolderArr.map((item: any) => {
return path === "/" ? `/${item.name}` : `${path}/${item.name}`; return path === "/" ? `/${item.name}` : `${path}/${item.name}`;
...@@ -147,8 +149,8 @@ const MoveFile = (props: IMoveFileProps) => { ...@@ -147,8 +149,8 @@ const MoveFile = (props: IMoveFileProps) => {
if (currentOperateFile) { if (currentOperateFile) {
return [currentOperateFile]; return [currentOperateFile];
} else { } else {
return showList.filter((item: any) => { return selectIds.map((item) => {
return selectIds.indexOf(item.name) !== -1; return showList[item];
}); });
} }
}, [currentOperateFile, selectIds, showList]); }, [currentOperateFile, selectIds, showList]);
......
...@@ -2,12 +2,11 @@ import React, { useState, useCallback, useEffect, useMemo } from "react"; ...@@ -2,12 +2,11 @@ import React, { useState, useCallback, useEffect, useMemo } from "react";
import style from "./index.module.css"; import style from "./index.module.css";
import classnames from "classnames"; import classnames from "classnames";
import { IconButton } from "@mui/material"; import { IconButton } from "@mui/material";
import MyTable from "@/components/mui/MyTable"; import MyTable from "@/components/mui/MyTableNew";
import dataSetIcon from "@/assets/project/dataSetIcon.svg"; import dataSetIcon from "@/assets/project/dataSetIcon.svg";
import refresh from "@/assets/project/refresh.svg"; import refresh from "@/assets/project/refresh.svg";
import fileIcon from "@/assets/project/fileIcon.svg"; import fileIcon from "@/assets/project/fileIcon.svg";
import folderIcon from "@/assets/project/folderIcon.svg"; import folderIcon from "@/assets/project/folderIcon.svg";
import noFile from "@/assets/project/noFile.svg";
import AddFolder from "./AddFolder"; import AddFolder from "./AddFolder";
import MoveFile from "./MoveFile"; import MoveFile from "./MoveFile";
import DeleteDialog from "./DeleteDialog"; import DeleteDialog from "./DeleteDialog";
...@@ -73,6 +72,11 @@ const ProjectData = observer(() => { ...@@ -73,6 +72,11 @@ const ProjectData = observer(() => {
setPath(locationInfo?.pathName || "/"); setPath(locationInfo?.pathName || "/");
}, [location]); }, [location]);
// 切换文件数据集时情况勾选项
useEffect(() => {
setSelectIds([]);
}, [activeTab]);
// 列表展示的数据 // 列表展示的数据
const showList = useMemo(() => { const showList = useMemo(() => {
if (activeTab === "file") { if (activeTab === "file") {
...@@ -86,12 +90,24 @@ const ProjectData = observer(() => { ...@@ -86,12 +90,24 @@ const ProjectData = observer(() => {
fileList.push(item); fileList.push(item);
} }
}); });
return [...folderList, ...fileList]; let arr = [...folderList, ...fileList];
return arr.map((item, index) => {
return {
...item,
id: index,
};
});
} else { } else {
const folderList = list.filter((item: any) => { const folderList = list.filter((item: any) => {
return item.type === "directory"; return item.type === "directory";
}); });
return [...folderList, ...dataSetList]; let arr = [...folderList, ...dataSetList];
return arr.map((item, index) => {
return {
...item,
id: index,
};
});
} }
}, [list, dataSetList, activeTab]); }, [list, dataSetList, activeTab]);
...@@ -256,45 +272,17 @@ const ProjectData = observer(() => { ...@@ -256,45 +272,17 @@ const ProjectData = observer(() => {
}; };
// table配置 // table配置
const versionsHeadCells = useMemo(() => { const versionsHeadCells = [
if (showCheckBox) { { id: "name", label: "名称" },
return [ { id: "size", label: "大小", width: 200 },
{ id: "checkbox" }, {
{ id: "name", numeric: false, label: "名称", width: "25%" }, id: "mtime",
{ id: "size", numeric: false, label: "大小", width: "25%", sort: true }, numeric: false,
{ label: "创建时间",
id: "mtime", width: 200,
numeric: false, },
label: "创建时间", { id: "caozuo", label: "操作", width: 200 },
width: "25%", ];
sort: true,
},
{ id: "caozuo", numeric: false, label: "操作", width: "25%" },
];
} else {
return [
{ id: "name", numeric: false, label: "名称", width: "25%" },
{ id: "size", numeric: false, label: "大小", width: "25%", sort: true },
{
id: "mtime",
numeric: false,
label: "创建时间",
width: "25%",
sort: true,
},
{ id: "caozuo", numeric: false, label: "操作", width: "25%" },
];
}
}, [showCheckBox]);
// 点击复选框
const hanldeCheckbox = (e: any) => {
const selectarr = e.map((item: any) => {
let andIndex = item.indexOf("&index=");
return item.slice(5, andIndex);
});
setSelectIds(selectarr);
};
// 文件夹下钻 // 文件夹下钻
const handleViewFolders = (item: any) => { const handleViewFolders = (item: any) => {
...@@ -312,7 +300,6 @@ const ProjectData = observer(() => { ...@@ -312,7 +300,6 @@ const ProjectData = observer(() => {
// 查看数据集 // 查看数据集
const handleSeeDataset = (item: any) => { const handleSeeDataset = (item: any) => {
console.log(item);
setSeeDatasetName(item.name); setSeeDatasetName(item.name);
setShowSeeDataset(true); setShowSeeDataset(true);
}; };
...@@ -594,31 +581,19 @@ const ProjectData = observer(() => { ...@@ -594,31 +581,19 @@ const ProjectData = observer(() => {
</div> </div>
</div> </div>
<MyTable <MyTable
footer={false} fixedHead={true}
rowHover={true} hasCheckbox={showCheckBox}
onRef={tableRef}
stickyHeader={true}
initSelected={selectIds}
headCells={versionsHeadCells} headCells={versionsHeadCells}
rowsPerPage={"99"} selectItems={selectIds}
checkboxData={(e: any) => { setSelectItems={setSelectIds}
hanldeCheckbox(e);
}}
rows={showList.map((item: any, index: number) => ({ rows={showList.map((item: any, index: number) => ({
...item, ...item,
id: `name=${item.name}&index=${index}`,
name: renderName(item), name: renderName(item),
size: renderSize(item), size: renderSize(item),
mtime: renderMtime(item), mtime: renderMtime(item),
caozuo: renderButtons(item), caozuo: renderButtons(item),
}))} }))}
/> />
{showList.length === 0 && (
<div className={style.noDataBox}>
<img className={style.noDataImg} src={noFile} alt="" />
<span className={style.noDataText}>暂无数据</span>
</div>
)}
</div> </div>
{selectIds.length > 0 && ( {selectIds.length > 0 && (
<div className={style.projectDataStickyBox}> <div className={style.projectDataStickyBox}>
...@@ -635,7 +610,6 @@ const ProjectData = observer(() => { ...@@ -635,7 +610,6 @@ const ProjectData = observer(() => {
/> />
<MyButton <MyButton
text={`批量移动 (${selectIds.length})`} text={`批量移动 (${selectIds.length})`}
// color="neutral"
variant="contained" variant="contained"
style={{ marginRight: "24px" }} style={{ marginRight: "24px" }}
onClick={() => { onClick={() => {
......
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