Commit ce0e6735 authored by chenshouchao's avatar chenshouchao

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

parent 55bce500
...@@ -106,10 +106,12 @@ class CloudEController { ...@@ -106,10 +106,12 @@ class CloudEController {
if (getLoaclStorageOfKey("userinfo")) { if (getLoaclStorageOfKey("userinfo")) {
url = urlToken(filetoken, projectId) + "&q=" + url; url = urlToken(filetoken, projectId) + "&q=" + url;
} }
return axios return axios.get(
.get(APIOPTION() + "/search" + base + url + "&showhidden=" + showHide, { APIOPTION() + "/search" + base + url + "&showhidden=" + showHide,
headers: headers, {
}) headers: headers,
}
);
} }
} }
...@@ -170,5 +172,26 @@ class CloudEController { ...@@ -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; export default CloudEController;
...@@ -373,6 +373,7 @@ const ProjectData = observer(() => { ...@@ -373,6 +373,7 @@ const ProjectData = observer(() => {
variant="text" variant="text"
size="small" size="small"
disabled={selectIds.length > 0 || !isPass("PROJECT_DATA_DOWNLOAD")} disabled={selectIds.length > 0 || !isPass("PROJECT_DATA_DOWNLOAD")}
onClick={() => hanleDownloadFile(item)}
> >
下载 下载
</Button> </Button>
...@@ -427,6 +428,16 @@ const ProjectData = observer(() => { ...@@ -427,6 +428,16 @@ const ProjectData = observer(() => {
addFolderRef.current.showDialog(); 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(); let moveFileRef: any = React.createRef();
......
...@@ -69,14 +69,28 @@ ...@@ -69,14 +69,28 @@
font-size: 14px; font-size: 14px;
font-weight: 600; font-weight: 600;
margin-bottom: 4px; margin-bottom: 4px;
width: 166px;
white-space: nowrap;
text-overflow: ellipsis;
display: block;
overflow: hidden;
}
.projectOwnerTime {
display: flex;
justify-content: flex-start;
} }
.projectOwner { .projectOwner {
color: #565c66; color: #565c66;
line-height: 20px; line-height: 20px;
font-size: 14px; font-size: 14px;
margin-right: 32px; margin-right: 32px;
max-width: 60px;
white-space: nowrap;
text-overflow: ellipsis;
display: block;
overflow: hidden;
} }
.createdAt { .projectTime {
color: #8a9099; color: #8a9099;
line-height: 20px; line-height: 20px;
font-size: 14px; font-size: 14px;
......
...@@ -25,7 +25,7 @@ const ProjectListPopper = observer((props: any) => { ...@@ -25,7 +25,7 @@ const ProjectListPopper = observer((props: any) => {
const handleProjectBox = (e: React.SyntheticEvent) => { const handleProjectBox = (e: React.SyntheticEvent) => {
e.nativeEvent.stopImmediatePropagation(); e.nativeEvent.stopImmediatePropagation();
} };
return ( return (
<div className={style.projectBox} onClick={handleProjectBox}> <div className={style.projectBox} onClick={handleProjectBox}>
...@@ -66,7 +66,9 @@ const ProjectListPopper = observer((props: any) => { ...@@ -66,7 +66,9 @@ const ProjectListPopper = observer((props: any) => {
<div className={style.projectliInfo}> <div className={style.projectliInfo}>
<div className={style.projectName}>{item.name}</div> <div className={style.projectName}>{item.name}</div>
<div className={style.projectOwnerTime}> <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}> <span className={style.projectTime}>
{moment(item.createdAt).format("YYYY-MM-DD")} {moment(item.createdAt).format("YYYY-MM-DD")}
</span> </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