diff --git a/src/api/doc/index.ts b/src/api/doc/index.ts index df9310a..52932c3 100644 --- a/src/api/doc/index.ts +++ b/src/api/doc/index.ts @@ -99,6 +99,23 @@ export function getMatterList( uid:string,data?: matterPage): AxiosPromise { +export function getRecyclingList( uid:string,data?: matterPage): AxiosPromise { + return request({ + url: '/hxpan/api/matter/recycling', + method: 'post', + headers: { + 'Identifier':uid, + 'Content-Type': 'application/x-www-form-urlencoded' + }, + data: data + }); +} + /** * 新建目录 */ diff --git a/src/views/doc/manage.vue b/src/views/doc/manage.vue index 55e90e6..142923c 100644 --- a/src/views/doc/manage.vue +++ b/src/views/doc/manage.vue @@ -7,7 +7,8 @@ import { getExpirTime, getFileIcon, readableSize,fileType} from "./tools" import sharePermission from './sharePermission.vue'; import { useUserStore } from "@/store/modules/user"; -import { getMatterList,postCreateDir,postDelMatter,postCreateShare,postMatterRename,postDelMatBatch,getMySpaces,doCreateSpace} from "@/api/doc/index" +import { getMatterList,postCreateDir,postDelMatter,postCreateShare,postMatterRename, + postDelMatBatch,getMySpaces,doCreateSpace,getRecyclingList} from "@/api/doc/index" import { matterPage,matterInfo,respCreateShare,matterTree, doFileUpload,matterPermit} from "@/api/doc/type" import { h } from 'vue' import router from "@/router"; @@ -69,6 +70,7 @@ const spaceTreeRef = ref(); //space的树树组件的引用 let spaceNodeUid="" //用来判断树组件的展开和关闭,如何只是展开和关闭的点击事件不在刷新,通currentNode的作用 const modListOrGrild=ref(true) +const modRecycling=ref(false) const Departs = computed(() => { return `${'p0'+userStore.userInfoCont.userId},${userStore.userInfoCont.company},${userStore.userInfoCont.department},${userStore.userInfoCont.organization}` @@ -282,6 +284,41 @@ function onSearchFile(name?:string){ }) } +//获取回收站文件 +function showRecycling(){ + modRecycling.value=true + currentNode.value={} //清空当前节点 + if(!PRIVATESPACE.value) { //共享空间模式要切换到个人空间 + PRIVATESPACE.value=true + } + + getRecyclingList(uid,{}).then((resp)=>{ + paginInfo.value={total:1,page:0} + matterList.value=resp.data + }) +} +//恢复删除文件 +function restoreMatter (row:matterInfo){ + if (row.uuid){ + ElMessageBox.confirm(`确认要恢复( ${row.name}) ?`, "警告", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }).then(()=>{ + postDelMatter(uid,{ + "uuid":row.uuid, + "restore":"true", + }).then(()=>{ + ElMessage({ + message: '已成功恢复文件,请在个人空间查看。', + type: 'success', + plain: true, + }) + }) + }) + } +} + //加载目录文件列表 function onLoadMatterList(){ let _page: matterPage = { @@ -349,6 +386,7 @@ function onDBclickMatter(row:matterInfo){ //树节点展开 function onNodeExpand(node: TreeNode, resolve: (data: matterTree[]) => void, reject: () => void) { + modRecycling.value=false let cuuid ="root" if ((node.data as matterTree).uuid) { cuuid= (node.data as matterTree).uuid @@ -384,12 +422,18 @@ function onNodeExpand(node: TreeNode, resolve: (data: matterTree[]) => void, rej } //树节点单击 function onNodeClick(data:matterTree,node:TreeNode,self:any,env:any){ + modRecycling.value=false if(!PRIVATESPACE.value) { PRIVATESPACE.value=true } - if (currentNode.value.uuid === data.uuid) return; - const cuuid = data.uuid - currentNode.value = data + if (data){ + if (currentNode.value.uuid === data.uuid) return; + //const cuuid = data.uuid + currentNode.value = data + }else{ + currentNode.value={uuid:"root"} + } + onLoadMatterList() return let _page: matterPage = { @@ -590,7 +634,7 @@ async function doCreateMultyDir(path:string,uuid:string){ } function handleMouseEnter(row:any){ - currentHoverRow.value=row.name + currentHoverRow.value=row.uuid } //上传成功 function handleSingleUpload(response:any){ @@ -636,6 +680,7 @@ function onNewSpace(){ function onSpaceNodeClick(data:matterTree,node:TreeNode,self:any,env:any){ if(PRIVATESPACE.value) { //如果打开了个人空间,突然点击共享空间,要及时切换状态 PRIVATESPACE.value=false + modRecycling.value=false } //如果在单个组件上重复点击,不在刷新请求 if(spaceNodeUid==data.uuid) return; @@ -816,13 +861,14 @@ const handleSelectionChange = (val:matterInfo[]) => { -
+
回收站
- + 回收站 + 根目录/ @@ -834,7 +880,7 @@ const handleSelectionChange = (val:matterInfo[]) => { - +
{ :row-style ="() => ({ lineHeight: '36px' })" @selection-change="handleSelectionChange" @cell-mouse-enter="handleMouseEnter"> - +