Commit 7221f132 authored by chenshouchao's avatar chenshouchao

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

cn- feat: 文件下载功能和一些样式优化

See merge request !50
parents a15174b5 ce0e6735
......@@ -106,10 +106,12 @@ class CloudEController {
if (getLoaclStorageOfKey("userinfo")) {
url = urlToken(filetoken, projectId) + "&q=" + url;
}
return axios
.get(APIOPTION() + "/search" + base + url + "&showhidden=" + showHide, {
headers: headers,
})
return axios.get(
APIOPTION() + "/search" + base + url + "&showhidden=" + showHide,
{
headers: headers,
}
);
}
}
......@@ -170,5 +172,26 @@ class CloudEController {
});
}
}
// 文件下载
static JobFileDownload(url: any, filetoken: string, projectId: string) {
if (ApiUtils.getAuthorizationHeaders(headers)) {
url = url + urlToken(filetoken, projectId);
headers["Content-Type"] = "multipart/form-data";
const div = document.createElement("div");
const elink: any = document.createElement("a");
elink.style.display = "none";
elink.href = APIOPTION() + "/download" + url;
document.body.appendChild(div);
div.appendChild(elink);
div.addEventListener("click", (event) => {
event.stopPropagation();
});
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
div.removeChild(elink);
document.body.removeChild(div);
}
}
}
export default CloudEController;
......@@ -373,6 +373,7 @@ const ProjectData = observer(() => {
variant="text"
size="small"
disabled={selectIds.length > 0 || !isPass("PROJECT_DATA_DOWNLOAD")}
onClick={() => hanleDownloadFile(item)}
>
下载
</Button>
......@@ -427,6 +428,16 @@ const ProjectData = observer(() => {
addFolderRef.current.showDialog();
};
// 下载文件
const hanleDownloadFile = (item: any) => {
const downloadPath = path + item.name;
CloudEController.JobFileDownload(
downloadPath,
fileToken as string,
projectId as string
);
};
// 文件移动
let moveFileRef: any = React.createRef();
......
......@@ -69,14 +69,28 @@
font-size: 14px;
font-weight: 600;
margin-bottom: 4px;
width: 166px;
white-space: nowrap;
text-overflow: ellipsis;
display: block;
overflow: hidden;
}
.projectOwnerTime {
display: flex;
justify-content: flex-start;
}
.projectOwner {
color: #565c66;
line-height: 20px;
font-size: 14px;
margin-right: 32px;
max-width: 60px;
white-space: nowrap;
text-overflow: ellipsis;
display: block;
overflow: hidden;
}
.createdAt {
.projectTime {
color: #8a9099;
line-height: 20px;
font-size: 14px;
......
......@@ -25,7 +25,7 @@ const ProjectListPopper = observer((props: any) => {
const handleProjectBox = (e: React.SyntheticEvent) => {
e.nativeEvent.stopImmediatePropagation();
}
};
return (
<div className={style.projectBox} onClick={handleProjectBox}>
......@@ -66,7 +66,9 @@ const ProjectListPopper = observer((props: any) => {
<div className={style.projectliInfo}>
<div className={style.projectName}>{item.name}</div>
<div className={style.projectOwnerTime}>
<span className={style.projectOwner}>{item.owner}</span>
<span className={style.projectOwner} title={item.owner}>
{item.owner}
</span>
<span className={style.projectTime}>
{moment(item.createdAt).format("YYYY-MM-DD")}
</span>
......
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