|
|
@@ -29,10 +29,12 @@ |
|
|
|
@showWorklinkPage="showWorklinkPage" |
|
|
|
@nowFolderClick="nowFolderClick" |
|
|
|
@hideWorklinkPage="hideWorklinkPage" |
|
|
|
@finishGetExchangeNodes="finishGetExchangeNodes" |
|
|
|
/> |
|
|
|
<div class="layout_content2" v-show="!showWorkline" v-loading="loading"> |
|
|
|
<section |
|
|
|
id="workspace" |
|
|
|
ref="workfilescrollbar" |
|
|
|
:class="`${closepageH} layerout_H2`" |
|
|
|
@contextmenu.prevent="rightShowMenu($event, '新建文件夹', 4)" |
|
|
|
> |
|
|
@@ -44,14 +46,14 @@ |
|
|
|
class="section_item section_item_aside_fl" |
|
|
|
> |
|
|
|
<span |
|
|
|
class="yiyun_text-title-workspace mr-20" |
|
|
|
class="yiyun_text-title-workspace mr-20 ml-8" |
|
|
|
> |
|
|
|
<el-breadcrumb class="folder_breadcrumb" separator-class="el-icon-arrow-right"> |
|
|
|
<el-breadcrumb-item @click.native="clickBreadcrumb(-1)">工作文件</el-breadcrumb-item> |
|
|
|
<el-breadcrumb-item @click.native="clickBreadcrumb(-1, 0)">工作文件</el-breadcrumb-item> |
|
|
|
<el-breadcrumb-item |
|
|
|
v-for="(breadFolder, breadIdx) in breadcrumbFolderList" |
|
|
|
:key="breadFolder.id" |
|
|
|
@click.native="clickBreadcrumb(breadIdx)" |
|
|
|
@click.native="clickBreadcrumb(breadIdx, 0)" |
|
|
|
>{{breadFolder.folderName}}</el-breadcrumb-item> |
|
|
|
</el-breadcrumb> |
|
|
|
</span> |
|
|
@@ -59,7 +61,7 @@ |
|
|
|
|
|
|
|
<!-- 工作列表主体 --> |
|
|
|
<div |
|
|
|
class="yiyun_row scollbarBox nobianju py-x-22 my_scrollbar_style" |
|
|
|
class="yiyun_row scollbarBox nobianju py-x-22" |
|
|
|
> |
|
|
|
<AddFileButton |
|
|
|
v-if="isClient" |
|
|
@@ -115,8 +117,9 @@ |
|
|
|
@onRightMenuActive="oneFileRightBtnClick" |
|
|
|
@onDownloadAll="downloadFolder" |
|
|
|
:activeRightMenuId="tempRightFileId" |
|
|
|
@dblclick.native="intoSubFolder(folder)" |
|
|
|
@dblclick.native="intoSubFolder(folder, 0)" |
|
|
|
@commitFolder="commitFolder" |
|
|
|
|
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@@ -127,11 +130,26 @@ |
|
|
|
|
|
|
|
<div :class="neibianju" id="bottomBox"> |
|
|
|
<div class="titleBox"> |
|
|
|
<span class="yiyun_zhediebtn DevtopIcon"> |
|
|
|
<i |
|
|
|
class="Cicon text_gray icon font_family icon-icon_zhankai" |
|
|
|
title="展开面板" |
|
|
|
v-show="isShowpageIcon" |
|
|
|
@click="openCopage" |
|
|
|
></i> |
|
|
|
<i |
|
|
|
class="Cicon text_gray icon font_family icon-icon_shouqi" |
|
|
|
title="折叠面板" |
|
|
|
v-show="!isShowpageIcon" |
|
|
|
@click="closeCopage" |
|
|
|
></i> |
|
|
|
</span> |
|
|
|
|
|
|
|
<div class="title_warp"> |
|
|
|
<div class="yiyun_section_top orginoverflow" id="bignav"> |
|
|
|
<!-- 系统时间? --> |
|
|
|
|
|
|
|
<div class="section_item fl section_item_aside_fl xiangdui"> |
|
|
|
<span class="yiyun_zhediebtn DevtopIcon"> |
|
|
|
<!-- <span class="yiyun_zhediebtn DevtopIcon"> |
|
|
|
<i |
|
|
|
class="Cicon text_gray icon font_family icon-icon_zhankai" |
|
|
|
title="展开面板" |
|
|
@@ -144,11 +162,27 @@ |
|
|
|
v-show="!isShowpageIcon" |
|
|
|
@click="closeCopage" |
|
|
|
></i> |
|
|
|
</span> |
|
|
|
</span> --> |
|
|
|
<div class="tabtltlebox"> |
|
|
|
<h3 class="defualth3" > |
|
|
|
<!-- <h3 class="defualth3" > |
|
|
|
协作文件 |
|
|
|
</h3> |
|
|
|
</h3> --> |
|
|
|
<div |
|
|
|
class="section_item section_item_aside_fl" |
|
|
|
> |
|
|
|
<span |
|
|
|
class="yiyun_text-title-workspace mr-20 ml-8" |
|
|
|
> |
|
|
|
<el-breadcrumb class="folder_breadcrumb" separator-class="el-icon-arrow-right"> |
|
|
|
<el-breadcrumb-item @click.native="clickBreadcrumb(-1, 1)">协作文件</el-breadcrumb-item> |
|
|
|
<el-breadcrumb-item |
|
|
|
v-for="(breadFolder, breadIdx) in breadcrumbFolderListInCoop" |
|
|
|
:key="breadFolder.id" |
|
|
|
@click.native="clickBreadcrumb(breadIdx, 1)" |
|
|
|
>{{breadFolder.folderName}}</el-breadcrumb-item> |
|
|
|
</el-breadcrumb> |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="section_item fr section_item_aside_fr"> |
|
|
@@ -167,12 +201,12 @@ |
|
|
|
<!-- 文件大box --> |
|
|
|
<div class="yinyong_warpBox"> |
|
|
|
<!-- 协作文件 --> |
|
|
|
<div> |
|
|
|
<div v-if="!isShowStartNodeFolders"> |
|
|
|
<div |
|
|
|
class="py-x-22 mt-12" |
|
|
|
> |
|
|
|
<FileItem |
|
|
|
v-for="file in cooperationFileList" |
|
|
|
v-for="file in filterFilesInCoop(cooperationFileList)" |
|
|
|
:key="file.id" |
|
|
|
:file="file" |
|
|
|
:tempRightFileId="tempRightFileId" |
|
|
@@ -189,6 +223,37 @@ |
|
|
|
draggable |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<!-- 协作文件以文件夹的形式展示 --> |
|
|
|
<div class="list-group"> |
|
|
|
<FolderItem |
|
|
|
v-for="folder in filterFoldersInCoop(coopSubFolderList)" |
|
|
|
:key="folder.id" |
|
|
|
:folder="folder" |
|
|
|
:isWorkFolder=false |
|
|
|
:isLoading="localFolderLoadStateMap[folder.folderPath]" |
|
|
|
@onRightMenuActive="oneFileRightBtnClick" |
|
|
|
@onDownloadAll="downloadFolder" |
|
|
|
:activeRightMenuId="tempRightFileId" |
|
|
|
@dblclick.native="intoSubFolder(folder, 1)" |
|
|
|
@commitFolder="commitFolder" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-else> |
|
|
|
<div class="list-group"> |
|
|
|
<FolderItem |
|
|
|
v-for="folder in exchangeNodeListsInCoop" |
|
|
|
:key="folder.id" |
|
|
|
:folder="folder" |
|
|
|
:isWorkFolder=false |
|
|
|
:isLoading="localFolderLoadStateMap[folder.folderPath]" |
|
|
|
@onRightMenuActive="oneFileRightBtnClick" |
|
|
|
@onDownloadAll="downloadFolder" |
|
|
|
:activeRightMenuId="tempRightFileId" |
|
|
|
@dblclick.native="intoSubFolder(folder, 1), isShowStartNodeFolders = !isShowStartNodeFolders" |
|
|
|
@commitFolder="commitFolder" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@@ -354,6 +419,7 @@ export default { |
|
|
|
nodeFolders: [], // 节点文件夹 |
|
|
|
currentNodeFolder: {}, // 当前节点文件夹 |
|
|
|
currentFolder: {}, // 当前文件夹,可以是节点文件夹,可以是子文件夹 |
|
|
|
currentFolderInCoop: {},//协作文件下当前的文件夹 |
|
|
|
/* 右键菜单 */ |
|
|
|
rightMenuvisible: false, |
|
|
|
rightMenuleft: 0, |
|
|
@@ -368,9 +434,13 @@ export default { |
|
|
|
subFolderMap: {}, // 子文件夹哈希: { [folderPath]: VirtualFolder } |
|
|
|
|
|
|
|
breadcrumbFolderList: [], // 面包屑导航对应的文件夹队列 |
|
|
|
breadcrumbFolderListInCoop: [],//协作文件夹对应额面包屑导航 |
|
|
|
|
|
|
|
uploadFileList: [], // 上传文件的队列 |
|
|
|
workFileList: [], // 工作文件队列 |
|
|
|
|
|
|
|
workSubFolderList: [], // 工作文件夹队列 |
|
|
|
coopSubFolderList: [],//协作文件夹队列 |
|
|
|
tempWorkSubFolderList: [], // 临时的工作文件夹队列 |
|
|
|
cooperationFileList: [], // 协作文件队列 |
|
|
|
|
|
|
@@ -399,6 +469,11 @@ export default { |
|
|
|
localFolderLoadStateMap: {}, |
|
|
|
|
|
|
|
tempRightFileId: "", // 存储点击了右键菜单的id |
|
|
|
workFileScrollBar: null, |
|
|
|
isShowStartNodeFolders: true,//协作文件是否显示一开始的节点文件夹 |
|
|
|
isfinishGetExchangeNodes: false, |
|
|
|
exchangeNodeListsInCoop: [],//存储与当前节点具有交换关系的节点列表 |
|
|
|
reverseLocalFileHashMap: {},//键名是 ipfscid 键值是localFileHashMap的键名 |
|
|
|
}; |
|
|
|
}, |
|
|
|
mounted: function () { |
|
|
@@ -417,6 +492,10 @@ export default { |
|
|
|
errorEvent => { notify.error('本地网关通讯失败'); } |
|
|
|
); |
|
|
|
this.intervalTask(); |
|
|
|
|
|
|
|
|
|
|
|
this.workFileScrollBar = this.$refs.workfilescrollbar; |
|
|
|
// this.workFileScrollBar && this.workFileScrollBar.addEventListener('scroll', this.workFilePartScrollListener); |
|
|
|
}, |
|
|
|
destroyed: function () { |
|
|
|
window.removeEventListener("scroll", this.onscroll); |
|
|
@@ -462,6 +541,116 @@ export default { |
|
|
|
videoClose(){ |
|
|
|
this.videoSrc=""; |
|
|
|
}, |
|
|
|
// 工作文件区域滚动条监听 卷去的头部 scrollTop >= scrollHeight - clientHeight的时候 认为滑到了底部 |
|
|
|
workFilePartScrollListener() { |
|
|
|
const tempBar = this.workFileScrollBar; |
|
|
|
if(tempBar && tempBar.scrollTop >= tempBar.scrollHeight - tempBar.clientHeight) { |
|
|
|
console.log('滑到了底部'); |
|
|
|
this.openCopage(); |
|
|
|
} |
|
|
|
}, |
|
|
|
// 删除文件夹 递归删除文件夹下面的所有文件 |
|
|
|
deleteFolderClick(id) { |
|
|
|
const { subFolderList, workFileList, subFolderMap, userId, localFileHashMap, reverseLocalFileHashMap } = this; |
|
|
|
const deleteFolderName = subFolderMap[id].folderName; |
|
|
|
const thisApp = this; |
|
|
|
const totalDeleteFileLists = []; |
|
|
|
this.$confirm(`确认删除文件夹“${deleteFolderName}”吗?`, "", { |
|
|
|
confirmButtonText: "确定", |
|
|
|
cancelButtonText: "取消", |
|
|
|
showClose: false, |
|
|
|
type: "warning", |
|
|
|
}).then(async function () { |
|
|
|
circulateDelete(id); |
|
|
|
const totalNum = totalDeleteFileLists.length; |
|
|
|
console.log('要删除的文件总数是', totalNum); |
|
|
|
let isFileInWorking = totalDeleteFileLists.find(f => f.workStatus == 2 && f.modifyUserId !== userId); |
|
|
|
if(isFileInWorking) { |
|
|
|
// 提示 该文件夹下有他人正在工作中的文件 -> 删除失败 |
|
|
|
thisApp.$notify({ |
|
|
|
title: " ", |
|
|
|
message: `“${deleteFolderName}”文件夹下存在“工作中”文件,删除失败。`, |
|
|
|
type: "error", |
|
|
|
offset: 100, |
|
|
|
duration: 2500, |
|
|
|
}); |
|
|
|
} else { |
|
|
|
// 删除文件夹 |
|
|
|
let counter = 0; |
|
|
|
totalDeleteFileLists.forEach(async delFile => { |
|
|
|
delete localFileHashMap[reverseLocalFileHashMap[delFile.ipfsCid]]; |
|
|
|
const res = await services.deleteFile(delFile.id); |
|
|
|
counter = res.Code == 0 ? counter+1 : counter; |
|
|
|
if(counter == totalNum) { |
|
|
|
thisApp.$notify({ |
|
|
|
title: " ", |
|
|
|
message: `“${deleteFolderName}”文件夹已删除。`, |
|
|
|
type: "success", |
|
|
|
offset: 100, |
|
|
|
duration: 2500, |
|
|
|
}); |
|
|
|
} |
|
|
|
thisApp.fetchFolderFiles(); |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
function circulateDelete(deleteFolderId) { |
|
|
|
const delFolderLists = subFolderList.filter(folder => folder.parentFolderPath == deleteFolderId); |
|
|
|
if(delFolderLists.length == 0) { |
|
|
|
//表明到了最底层的文件夹 删除deleteFolderId对应这个文件夹下面的所有文件 |
|
|
|
let delFileLists = workFileList.filter(file => file.relativePath == deleteFolderId); |
|
|
|
|
|
|
|
// 删除与这个要删除文件夹同级的文件 |
|
|
|
const parentFolderPath = subFolderMap[deleteFolderId].parentFolderPath |
|
|
|
if(parentFolderPath !== "") { |
|
|
|
const tempLists = workFileList.filter(wf => wf.relativePath == parentFolderPath); |
|
|
|
delFileLists.push(...tempLists); |
|
|
|
} |
|
|
|
totalDeleteFileLists.push(...delFileLists); |
|
|
|
} |
|
|
|
delFolderLists.forEach(df => { |
|
|
|
circulateDelete(df.id); |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
// 当workLine组件获得节点的交换节点的时候 调用函数 |
|
|
|
finishGetExchangeNodes() { |
|
|
|
this.isfinishGetExchangeNodes = true; |
|
|
|
this.getExchangeNodes(); |
|
|
|
}, |
|
|
|
// 协作文件一开始显示的文件夹要显示具有节点交换关系的文件夹 但是这个时候listShareFrom[1]还没有塞入值 |
|
|
|
getExchangeNodes() { |
|
|
|
const froms = this.currentNodeFolder.listsShareFrom[1]; |
|
|
|
const tempMap = froms.map(f => f.nodeId); |
|
|
|
this.exchangeNodeListsInCoop = this.nodeFolders.filter(folder => tempMap.includes(folder.id)); |
|
|
|
}, |
|
|
|
// 对协作文件的relativePath处理 生成文件夹 |
|
|
|
dealWithCoopFiles(fileList) { |
|
|
|
const folderList = []; |
|
|
|
const folderMap = {}; |
|
|
|
|
|
|
|
fileList.forEach(file => { |
|
|
|
const relativePath = file.relativePath; |
|
|
|
if(relativePath) { |
|
|
|
const paths = relativePath.split('/'); |
|
|
|
paths.forEach((folderName, idx) => { |
|
|
|
const fullRelativePath = paths.slice(0, idx + 1).join('/'); |
|
|
|
if(folderMap[fullRelativePath]) return; |
|
|
|
const folder = new VirtualFolder(fullRelativePath); |
|
|
|
const parentRelativePath = folder.parentFolderPath; |
|
|
|
folderList.push(folder); |
|
|
|
folderMap[fullRelativePath] = folder; |
|
|
|
if(folderMap[parentRelativePath]) { |
|
|
|
folderMap[parentRelativePath].childCount++; |
|
|
|
} |
|
|
|
}); |
|
|
|
folderMap[relativePath].fileCount++; |
|
|
|
} |
|
|
|
}); |
|
|
|
this.coopSubFolderList = folderList; |
|
|
|
}, |
|
|
|
// 接收到了一个文件的右键菜单点击事件 |
|
|
|
oneFileRightBtnClick(id) { |
|
|
|
this.tempRightFileId = id; |
|
|
@@ -470,16 +659,32 @@ export default { |
|
|
|
// 文件展示过滤 |
|
|
|
filterFiles(fileList) { |
|
|
|
// 子文件会有这个属性,节点文件夹不会有 |
|
|
|
const { folderPath = '' } = this.currentFolder; |
|
|
|
const { folderPath = '' } = this.currentFolder ; |
|
|
|
return fileList.filter(file => { |
|
|
|
if(file.relativePath !== folderPath) return false; |
|
|
|
return true; |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 文件展示过滤 |
|
|
|
// 文件夹展示过滤 |
|
|
|
filterFolders(folderList) { |
|
|
|
// 子文件会有这个属性,节点文件夹不会有 |
|
|
|
const { folderPath = '' } = this.currentFolder; |
|
|
|
const { folderPath = '' } = this.currentFolder; |
|
|
|
return folderList.filter(folder => { |
|
|
|
if(folder.parentFolderPath !== folderPath) return false; |
|
|
|
return true; |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 协作文件下的文件展示过滤 |
|
|
|
filterFilesInCoop(fileList){ |
|
|
|
const { folderPath = '' } = this.currentFolderInCoop; |
|
|
|
return fileList.filter(file=> { |
|
|
|
if(file.relativePath !== folderPath) return false; |
|
|
|
return true; |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 协作文件下的文件夹展示过滤 |
|
|
|
filterFoldersInCoop(folderList) { |
|
|
|
const { folderPath = '' } = this.currentFolderInCoop; |
|
|
|
return folderList.filter(folder => { |
|
|
|
if(folder.parentFolderPath !== folderPath) return false; |
|
|
|
return true; |
|
|
@@ -641,6 +846,7 @@ export default { |
|
|
|
*/ |
|
|
|
previousFolder () { |
|
|
|
this.goFolder(this.nowFolderIndex - 1); |
|
|
|
this.isShowStartNodeFolders = true; |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 查看下一个文件夹文件 |
|
|
@@ -666,15 +872,23 @@ export default { |
|
|
|
this.clearCurrentFolderFiles(); |
|
|
|
} |
|
|
|
this.currentFolder = this.currentNodeFolder; |
|
|
|
this.currentFolderInCoop = this.currentNodeFolder; |
|
|
|
this.breadcrumbFolderList = []; |
|
|
|
this.breadcrumbFolderListInCoop = []; |
|
|
|
this.fetchFolderFiles(); |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 进入子文件夹 |
|
|
|
*/ |
|
|
|
intoSubFolder(folder) { |
|
|
|
this.currentFolder = folder; |
|
|
|
this.breadcrumbFolderList.push(folder); |
|
|
|
intoSubFolder(folder, flag) { |
|
|
|
if(flag == 0) { |
|
|
|
this.currentFolder = folder; |
|
|
|
this.breadcrumbFolderList.push(folder); |
|
|
|
} else if(flag == 1) { |
|
|
|
this.currentFolderInCoop = folder; |
|
|
|
this.breadcrumbFolderListInCoop.push(folder); |
|
|
|
} |
|
|
|
|
|
|
|
// this.clearCurrentFolderFiles(); |
|
|
|
// this.fetchFolderFiles(); |
|
|
|
}, |
|
|
@@ -683,6 +897,7 @@ export default { |
|
|
|
*/ |
|
|
|
nowFolderClick(nextFolderIndex) { |
|
|
|
this.goFolder(nextFolderIndex); |
|
|
|
this.isShowStartNodeFolders = true;//上面切换点击到另一个工作节点的时候 协作文件先显示总的节点入口 |
|
|
|
}, |
|
|
|
|
|
|
|
/* 文件夹及文件API */ |
|
|
@@ -705,6 +920,7 @@ export default { |
|
|
|
this.currentNodeFolder = folderList[0]; |
|
|
|
} |
|
|
|
this.currentFolder = this.currentNodeFolder; |
|
|
|
this.currentFolderInCoop = this.currentNodeFolder; |
|
|
|
this.fetchFolderFiles(); |
|
|
|
}, |
|
|
|
/** |
|
|
@@ -732,6 +948,7 @@ export default { |
|
|
|
// resolve dupilicate folders |
|
|
|
this.tempWorkSubFolderList = this.tempWorkSubFolderList.filter(tempFolder => !folderResInfo.folder.some(folder => folder.id === tempFolder.id)); |
|
|
|
this.cooperationFileList = folderResInfo.coordinationFiles; |
|
|
|
this.dealWithCoopFiles(this.cooperationFileList); |
|
|
|
this.resolveUploadFileList(this.cooperationFileList); |
|
|
|
}, 1000), |
|
|
|
/** |
|
|
@@ -786,14 +1003,28 @@ export default { |
|
|
|
/** |
|
|
|
* 面包屑导航点击 |
|
|
|
*/ |
|
|
|
clickBreadcrumb(breadFolderIdx) { |
|
|
|
const targetFolder = breadFolderIdx === -1 |
|
|
|
clickBreadcrumb(breadFolderIdx, flag) { |
|
|
|
if(flag == 0) { |
|
|
|
// 工作文件 |
|
|
|
const targetFolder = breadFolderIdx === -1 |
|
|
|
? this.currentNodeFolder |
|
|
|
: this.breadcrumbFolderList[breadFolderIdx]; |
|
|
|
this.currentFolder = targetFolder; |
|
|
|
this.fetchFolderFiles(); |
|
|
|
// 重置面包屑导航数组 |
|
|
|
this.breadcrumbFolderList = this.breadcrumbFolderList.slice(0, breadFolderIdx + 1); |
|
|
|
this.currentFolder = targetFolder; |
|
|
|
this.fetchFolderFiles(); |
|
|
|
// 重置面包屑导航数组 |
|
|
|
this.breadcrumbFolderList = this.breadcrumbFolderList.slice(0, breadFolderIdx + 1); |
|
|
|
} else if(flag == 1) { |
|
|
|
// 协作文件 |
|
|
|
const targetFolder = breadFolderIdx === -1 |
|
|
|
? this.currentNodeFolder |
|
|
|
: this.breadcrumbFolderListInCoop[breadFolderIdx]; |
|
|
|
this.currentFolderInCoop = targetFolder; |
|
|
|
this.isShowStartNodeFolders = breadFolderIdx === -1; |
|
|
|
// this.fetchFolderFiles(); |
|
|
|
// 重置面包屑导航数组 |
|
|
|
this.breadcrumbFolderListInCoop = this.breadcrumbFolderListInCoop.slice(0, breadFolderIdx + 1); |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
/** |
|
|
|
* 客户端选择文件列表并上传 |
|
|
@@ -847,7 +1078,7 @@ export default { |
|
|
|
* } |
|
|
|
*/ |
|
|
|
async clientUpload(filePaths) { // uploadTask |
|
|
|
|
|
|
|
console.log('filePaths'); |
|
|
|
const tasksGroup = await Promise.all(filePaths.map(path => system.analyzeSystemPath(path))); |
|
|
|
const uploadTasks = flatten(tasksGroup); |
|
|
|
const { folderName, levelId, id: folderId } = this.currentNodeFolder; |
|
|
@@ -1106,6 +1337,8 @@ export default { |
|
|
|
this.isShowpageIcon = true; |
|
|
|
this.neibianju = "neibianju"; |
|
|
|
this.closepageH = ""; |
|
|
|
|
|
|
|
// this.workFileScrollBar ? this.workFileScrollBar.scrollTop = 0 : ""; |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 点击了复制文件副本的按钮 |
|
|
@@ -1177,6 +1410,16 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
localFileHashMap(val) { |
|
|
|
let temp = {}; |
|
|
|
for(let key in val) { |
|
|
|
temp[val[key]] = key; |
|
|
|
} |
|
|
|
this.reverseLocalFileHashMap = temp; |
|
|
|
}, |
|
|
|
nowFolderIndex() { |
|
|
|
this.isfinishGetExchangeNodes && this.getExchangeNodes(); |
|
|
|
}, |
|
|
|
rightMenuvisible(value) { |
|
|
|
if (value) { |
|
|
|
document.body.addEventListener("click", this.closeShowMenu); |
|
|
@@ -1219,6 +1462,9 @@ export default { |
|
|
|
|
|
|
|
</style> |
|
|
|
<style lang="scss" scoped> |
|
|
|
.titleBox { |
|
|
|
position: relative; |
|
|
|
} |
|
|
|
.app-header-style { |
|
|
|
background-color: #f0f0f0; |
|
|
|
} |
|
|
|