Commit 4ce9b35d authored by chenshouchao's avatar chenshouchao

feat: 项目数据换成虚拟table

parent 56d3e5bd
...@@ -11,10 +11,13 @@ ...@@ -11,10 +11,13 @@
.VTHeaderRow { .VTHeaderRow {
background-color: rgba(247, 248, 250, 1); background-color: rgba(247, 248, 250, 1);
box-sizing: border-box; box-sizing: border-box;
border-radius: 4px 4px 0 0;
border-bottom: 1px solid rgba(240, 242, 245, 1);
} }
.VTRow { .VTRow {
background-color: #fff; background-color: #fff;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 1px solid rgba(240, 242, 245, 1);
&:hover { &:hover {
background-color: rgba(245, 246, 247, 1); background-color: rgba(245, 246, 247, 1);
} }
...@@ -30,5 +33,4 @@ ...@@ -30,5 +33,4 @@
line-height: 22px; line-height: 22px;
color: rgba(30, 38, 51, 1); color: rgba(30, 38, 51, 1);
padding: 16px; padding: 16px;
border-bottom: 1px solid rgba(240, 242, 245, 1);
} }
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
box-sizing: border-box; box-sizing: border-box;
} }
.projectDataStickyTopPadding { .projectDataStickyTopPadding {
padding: 22px 24px 24px; padding: 22px 24px 64px;
} }
.projectDataTitle { .projectDataTitle {
font-size: 18px; font-size: 18px;
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
.tableBox { .tableBox {
/* flex: 1; */ /* flex: 1; */
height: calc(100% - 146px); height: calc(100% - 140px);
} }
.projectDataButtonAndSearch { .projectDataButtonAndSearch {
display: flex; display: flex;
......
...@@ -271,18 +271,6 @@ const ProjectData = observer(() => { ...@@ -271,18 +271,6 @@ const ProjectData = observer(() => {
} }
}; };
// table配置
const versionsHeadCells = [
{ id: "name", label: "名称" },
{ id: "size", label: "大小", width: 200 },
{
id: "mtime",
label: "创建时间",
width: 200,
},
{ id: "caozuo", label: "操作", width: 200 },
];
// 文件夹下钻 // 文件夹下钻
const handleViewFolders = (item: any) => { const handleViewFolders = (item: any) => {
if (debounce) { if (debounce) {
...@@ -304,52 +292,54 @@ const ProjectData = observer(() => { ...@@ -304,52 +292,54 @@ const ProjectData = observer(() => {
}; };
// table配置 // table配置
const renderName = (item: any) => { const renderName = (data: any) => {
if (item.type === "directory") { if (data.rowData.type === "directory") {
return ( return (
<span <span
className={classnames({ className={classnames({
[style.folderIconBox]: true, [style.folderIconBox]: true,
[style.pointer]: true, [style.pointer]: true,
})} })}
onClick={() => handleViewFolders(item)} onClick={() => handleViewFolders(data.rowData)}
> >
<img className={style.folderIcon} src={folderIcon} alt="" /> <img className={style.folderIcon} src={folderIcon} alt="" />
{item.name} {data.rowData.name}
</span> </span>
); );
} else if (item.type === "dataSet") { } else if (data.rowData.type === "dataSet") {
return ( return (
<span <span
className={classnames({ className={classnames({
[style.folderIconBox]: true, [style.folderIconBox]: true,
[style.pointer]: true, [style.pointer]: true,
})} })}
onClick={() => handleSeeDataset(item)} onClick={() => handleSeeDataset(data.rowData)}
> >
<img className={style.folderIcon} src={dataSetIcon} alt="" /> <img className={style.folderIcon} src={dataSetIcon} alt="" />
{item.name} {data.rowData.name}
</span> </span>
); );
} else { } else {
return ( return (
<span className={style.folderIconBox}> <span className={style.folderIconBox}>
<img className={style.folderIcon} src={fileIcon} alt="" /> <img className={style.folderIcon} src={fileIcon} alt="" />
{item.name} {data.rowData.name}
</span> </span>
); );
} }
}; };
const renderSize = (item: any) => { const renderSize = (data: any) => {
if (item.type === "dataSet") { if (data.rowData.type === "dataSet") {
return `${item.size}条`; return `${data.rowData.size}条`;
} }
return `${item.size ? storageUnitFromB(Number(item.size)) : "-"}`; return `${
data.rowData.size ? storageUnitFromB(Number(data.rowData.size)) : "-"
}`;
}; };
const renderMtime = (item: any) => { const renderMtime = (data: any) => {
return String(moment(item.mtime).format("YYYY-MM-DD HH:mm:ss")); return String(moment(data.rowData.mtime).format("YYYY-MM-DD HH:mm:ss"));
}; };
const renderButtons = (item: any) => { const renderButtons = (data: any) => {
return ( return (
<span style={{ whiteSpace: "nowrap" }}> <span style={{ whiteSpace: "nowrap" }}>
{!isAllDirectory && ( {!isAllDirectory && (
...@@ -362,14 +352,15 @@ const ProjectData = observer(() => { ...@@ -362,14 +352,15 @@ const ProjectData = observer(() => {
height: "22px", height: "22px",
padding: "0 10px", padding: "0 10px",
visibility: visibility:
item.type !== "dataSet" && item.type !== "directory" data.rowData.type !== "dataSet" &&
data.rowData.type !== "directory"
? "visible" ? "visible"
: "hidden", : "hidden",
}} }}
variant="text" variant="text"
size="medium" size="medium"
disabled={selectIds.length > 0 || !isPass("PROJECT_DATA_DOWNLOAD")} disabled={selectIds.length > 0 || !isPass("PROJECT_DATA_DOWNLOAD")}
onClick={() => hanleDownloadFile(item)} onClick={() => hanleDownloadFile(data.rowData)}
/> />
)} )}
<MyButton <MyButton
...@@ -384,7 +375,7 @@ const ProjectData = observer(() => { ...@@ -384,7 +375,7 @@ const ProjectData = observer(() => {
variant="text" variant="text"
size="medium" size="medium"
onClick={() => { onClick={() => {
setCurrentOperateFile(item); setCurrentOperateFile(data.rowData);
setMoveDialogOpen(true); setMoveDialogOpen(true);
}} }}
disabled={ disabled={
...@@ -405,7 +396,7 @@ const ProjectData = observer(() => { ...@@ -405,7 +396,7 @@ const ProjectData = observer(() => {
size="medium" size="medium"
color="error" color="error"
onClick={() => { onClick={() => {
setCurrentOperateFile(item); setCurrentOperateFile(data.rowData);
setDeleteDialogOpen(true); setDeleteDialogOpen(true);
}} }}
disabled={ disabled={
...@@ -416,6 +407,25 @@ const ProjectData = observer(() => { ...@@ -416,6 +407,25 @@ const ProjectData = observer(() => {
); );
}; };
// table配置
const versionsHeadCells = [
{
id: "name",
label: "名称",
width: 200,
flexGrow: 2,
cellRenderer: renderName,
},
{ id: "size", label: "大小", width: 200, cellRenderer: renderSize },
{
id: "mtime",
label: "创建时间",
width: 200,
cellRenderer: renderMtime,
},
{ id: "caozuo", label: "操作", width: 200, cellRenderer: renderButtons },
];
// 下载文件 // 下载文件
const hanleDownloadFile = (item: any) => { const hanleDownloadFile = (item: any) => {
const downloadPath = const downloadPath =
...@@ -590,18 +600,13 @@ const ProjectData = observer(() => { ...@@ -590,18 +600,13 @@ const ProjectData = observer(() => {
</div> </div>
<div className={style.tableBox}> <div className={style.tableBox}>
<MyTable <MyTable
isVirtuallyTable={true}
fixedHead={true} fixedHead={true}
hasCheckbox={showCheckBox} hasCheckbox={showCheckBox}
headCells={versionsHeadCells} headCells={versionsHeadCells}
selectItems={selectIds} selectItems={selectIds}
setSelectItems={setSelectIds} setSelectItems={setSelectIds}
rows={showList.map((item: any, index: number) => ({ rows={showList}
...item,
name: renderName(item),
size: renderSize(item),
mtime: renderMtime(item),
caozuo: renderButtons(item),
}))}
/> />
</div> </div>
</div> </div>
......
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