及时清理监听事件
This commit is contained in:
parent
263eea0210
commit
306762738c
@ -386,7 +386,10 @@
|
|||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
v-if="scope.row.index === cellMouseIndex && (!scope.row.isShare || scope.row.shareBase)"
|
v-if="
|
||||||
|
scope.row.index === cellMouseIndex &&
|
||||||
|
(!scope.row.isShare || scope.row.shareBase)
|
||||||
|
"
|
||||||
class="item"
|
class="item"
|
||||||
effect="light"
|
effect="light"
|
||||||
content="分享"
|
content="分享"
|
||||||
@ -690,9 +693,15 @@
|
|||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="位置:" class="details-position">
|
<el-form-item label="位置:" class="details-position">
|
||||||
<a :href="'/?path=' + rowContextData.path + '&highlight=' + rowContextData.name">{{
|
<a
|
||||||
rowContextData.path
|
:href="
|
||||||
}}</a>
|
'/?path=' +
|
||||||
|
rowContextData.path +
|
||||||
|
'&highlight=' +
|
||||||
|
rowContextData.name
|
||||||
|
"
|
||||||
|
>{{ rowContextData.path }}</a
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="创建时间:">
|
<el-form-item label="创建时间:">
|
||||||
<span>{{ rowContextData.uploadDate }}</span>
|
<span>{{ rowContextData.uploadDate }}</span>
|
||||||
@ -807,8 +816,11 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<tag-dialog :fileList="tagDialogObjectList"
|
<tag-dialog
|
||||||
:status.sync="tagDialogVisible" @onSuccess="allocateTagSuccess"/>
|
:fileList="tagDialogObjectList"
|
||||||
|
:status.sync="tagDialogVisible"
|
||||||
|
@onSuccess="allocateTagSuccess"
|
||||||
|
/>
|
||||||
<share-dialog
|
<share-dialog
|
||||||
:file.sync="shareDialogObject"
|
:file.sync="shareDialogObject"
|
||||||
:status.sync="shareDialogVisible"
|
:status.sync="shareDialogVisible"
|
||||||
@ -1316,6 +1328,14 @@ export default {
|
|||||||
}
|
}
|
||||||
}, 50);
|
}, 50);
|
||||||
},
|
},
|
||||||
|
destroyed() {
|
||||||
|
Bus.$off("fileSuccess");
|
||||||
|
Bus.$off("loadFileFaild");
|
||||||
|
Bus.$off("clickMore");
|
||||||
|
Bus.$off("renameRow");
|
||||||
|
Bus.$off("msg/file/change");
|
||||||
|
Bus.$off("msg/file/operation/fault");
|
||||||
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
window.removeEventListener("keydown", this.keydown, false);
|
window.removeEventListener("keydown", this.keydown, false);
|
||||||
window.removeEventListener("keyup", this.keyup, false);
|
window.removeEventListener("keyup", this.keyup, false);
|
||||||
@ -1381,6 +1401,7 @@ export default {
|
|||||||
: chineseLength;
|
: chineseLength;
|
||||||
},
|
},
|
||||||
keydown(event) {
|
keydown(event) {
|
||||||
|
console.log('sdf')
|
||||||
const isMac = navigator.platform.startsWith("Mac");
|
const isMac = navigator.platform.startsWith("Mac");
|
||||||
const { key, c, keyCode, ctrlKey, metaKey } = event;
|
const { key, c, keyCode, ctrlKey, metaKey } = event;
|
||||||
this.isCmd = (isMac && metaKey) || (!isMac && ctrlKey);
|
this.isCmd = (isMac && metaKey) || (!isMac && ctrlKey);
|
||||||
@ -4166,7 +4187,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
color: #409EFF;
|
color: #409eff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4198,7 +4219,7 @@ export default {
|
|||||||
|
|
||||||
>>> .plTableBox .el-table .el-table__header {
|
>>> .plTableBox .el-table .el-table__header {
|
||||||
th {
|
th {
|
||||||
background-color: #FFFFFF;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-sortable:hover {
|
.is-sortable:hover {
|
||||||
@ -4218,7 +4239,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.home-link:hover {
|
.home-link:hover {
|
||||||
color: #409EFF;
|
color: #409eff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-statistics {
|
.info-statistics {
|
||||||
@ -4247,7 +4268,7 @@ export default {
|
|||||||
margin-left: 5px !important;
|
margin-left: 5px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
> > > .open-file-dialog {
|
> .open-file-dialog {
|
||||||
.el-dialog {
|
.el-dialog {
|
||||||
width: 420px;
|
width: 420px;
|
||||||
}
|
}
|
||||||
@ -4261,13 +4282,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> > > .v-contextmenu-item {
|
> .v-contextmenu-item {
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> > > .new-text-file-dialog {
|
> .new-text-file-dialog {
|
||||||
height: 350px;
|
height: 350px;
|
||||||
top: calc(50% - 175px);
|
top: calc(50% - 175px);
|
||||||
|
|
||||||
@ -4291,7 +4312,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> > > .van-grid-item__content {
|
> .van-grid-item__content {
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -4356,4 +4377,3 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@ -294,6 +294,9 @@ export default {
|
|||||||
Bus.$off('openUploader')
|
Bus.$off('openUploader')
|
||||||
Bus.$off('uploadFolder')
|
Bus.$off('uploadFolder')
|
||||||
Bus.$off('uploadFileListBack')
|
Bus.$off('uploadFileListBack')
|
||||||
|
Bus.$off('fileListScrollTop')
|
||||||
|
Bus.$off('onDragStart')
|
||||||
|
Bus.$off('storageTypeChange')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initUploader() {
|
initUploader() {
|
||||||
|
|||||||
@ -1,14 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<viewer v-show="pc"
|
<viewer
|
||||||
:options="options"
|
v-show="pc"
|
||||||
:images="images"
|
:options="options"
|
||||||
@inited="inited"
|
:images="images"
|
||||||
class="viewer" ref="viewer"
|
@inited="inited"
|
||||||
|
class="viewer"
|
||||||
|
ref="viewer"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div v-for="(image,index) in scope.images" :key="index">
|
<div v-for="(image, index) in scope.images" :key="index">
|
||||||
<img :src="image.thumbnail" :data-src="image.source">
|
<img :src="image.thumbnail" :data-src="image.source" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</viewer>
|
</viewer>
|
||||||
@ -110,6 +112,9 @@ export default {
|
|||||||
this.$emit('update:status', false)
|
this.$emit('update:status', false)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
destroyed() {
|
||||||
|
Bus.$off("updateImageViewerStatus")
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
inited(viewer) {
|
inited(viewer) {
|
||||||
this.$viewer = viewer
|
this.$viewer = viewer
|
||||||
|
|||||||
@ -1,12 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="sidebar-logo-container" :class="{'collapse':collapse}">
|
<div class="sidebar-logo-container" :class="{ collapse: collapse }">
|
||||||
<transition name="sidebarLogoFade">
|
<transition name="sidebarLogoFade">
|
||||||
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
|
<router-link
|
||||||
|
v-if="collapse"
|
||||||
|
key="collapse"
|
||||||
|
class="sidebar-logo-link"
|
||||||
|
to="/"
|
||||||
|
>
|
||||||
<Logo v-model="netdiskLogo" width="50" padding="8"></Logo>
|
<Logo v-model="netdiskLogo" width="50" padding="8"></Logo>
|
||||||
</router-link>
|
</router-link>
|
||||||
<router-link v-else key="expand" class="sidebar-logo-link logo-expand" to="/">
|
<router-link
|
||||||
|
v-else
|
||||||
|
key="expand"
|
||||||
|
class="sidebar-logo-link logo-expand"
|
||||||
|
to="/"
|
||||||
|
>
|
||||||
<Logo v-model="netdiskLogo" width="50" padding="8"></Logo>
|
<Logo v-model="netdiskLogo" width="50" padding="8"></Logo>
|
||||||
<h1 class="sidebar-title">{{ title }} </h1>
|
<h1 class="sidebar-title">{{ title }}</h1>
|
||||||
</router-link>
|
</router-link>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
@ -44,6 +54,9 @@ export default {
|
|||||||
this.netdiskLogo = this.$store.state.user.netdiskLogo
|
this.netdiskLogo = this.$store.state.user.netdiskLogo
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
destroyed() {
|
||||||
|
Bus.$off('updateLogo')
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
}
|
}
|
||||||
@ -78,14 +91,14 @@ export default {
|
|||||||
width: 32px;
|
width: 32px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
margin-right: 2px!important;
|
margin-right: 2px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
& .sidebar-logo-expand {
|
& .sidebar-logo-expand {
|
||||||
width: 32px;
|
width: 32px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
margin-right: 12px!important;
|
margin-right: 12px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
& .sidebar-title {
|
& .sidebar-title {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div :class="{'has-logo':showLogo}">
|
<div :class="{ 'has-logo': showLogo }">
|
||||||
<div class="scrollbar-head">
|
<div class="scrollbar-head">
|
||||||
<logo v-if="showLogo" :collapse="isCollapse" />
|
<logo v-if="showLogo" :collapse="isCollapse" />
|
||||||
<el-scrollbar wrap-class="scrollbar-wrapper">
|
<el-scrollbar wrap-class="scrollbar-wrapper">
|
||||||
@ -13,45 +13,83 @@
|
|||||||
:collapse-transition="false"
|
:collapse-transition="false"
|
||||||
mode="vertical"
|
mode="vertical"
|
||||||
>
|
>
|
||||||
<sidebar-item v-for="route in routes" :key="route.path" :item="route" :base-path="route.path" />
|
<sidebar-item
|
||||||
|
v-for="route in routes"
|
||||||
|
:key="route.path"
|
||||||
|
:item="route"
|
||||||
|
:base-path="route.path"
|
||||||
|
/>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
<div class="scrollbar-tag" :class="{'collapse': isCollapse}">标签</div>
|
<div class="scrollbar-tag" :class="{ collapse: isCollapse }">标签</div>
|
||||||
<div class="scroll-decoration-top"></div>
|
<div class="scroll-decoration-top"></div>
|
||||||
<el-scrollbar class="tag-list" wrap-class="scrollbar-wrapper">
|
<el-scrollbar class="tag-list" wrap-class="scrollbar-wrapper">
|
||||||
<div v-if="isCollapse">
|
<div v-if="isCollapse">
|
||||||
<ul class="infinite-list">
|
<ul class="infinite-list">
|
||||||
<el-tooltip class="item" effect="dark" :content="tag.name" placement="right" v-for="tag in tagList" :key="tag.tagId">
|
<el-tooltip
|
||||||
<li class="infinite-list-item collapse">
|
class="item"
|
||||||
<svg-icon :style="{ color: tag.color, fontSize: '14px' }" icon-class="tag2"></svg-icon>
|
effect="dark"
|
||||||
</li>
|
:content="tag.name"
|
||||||
</el-tooltip>
|
placement="right"
|
||||||
</ul>
|
v-for="tag in tagList"
|
||||||
</div>
|
:key="tag.tagId"
|
||||||
<div v-else>
|
>
|
||||||
<ul class="infinite-list">
|
<li class="infinite-list-item collapse">
|
||||||
<li v-for="tag in tagList" :key="tag.id" class="infinite-list-item">
|
<svg-icon
|
||||||
<router-link :to="'/tag?tagId=' + tag.id" @click.native="tagClick(tag)">
|
:style="{ color: tag.color, fontSize: '14px' }"
|
||||||
<svg-icon :style="{ color: tag.color, fontSize: '14px' }" icon-class="tag2"></svg-icon>
|
icon-class="tag2"
|
||||||
<span>{{ tag.name }}</span>
|
></svg-icon>
|
||||||
</router-link>
|
</li>
|
||||||
</li>
|
</el-tooltip>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<ul class="infinite-list">
|
||||||
|
<li
|
||||||
|
v-for="tag in tagList"
|
||||||
|
:key="tag.id"
|
||||||
|
class="infinite-list-item"
|
||||||
|
@click="tagClick(tag)"
|
||||||
|
>
|
||||||
|
<!-- <router-link :to="'/tag?tagId=' + tag.id" @click.native="tagClick(tag)">-->
|
||||||
|
<svg-icon
|
||||||
|
:style="{ color: tag.color, fontSize: '14px' }"
|
||||||
|
icon-class="tag2"
|
||||||
|
></svg-icon>
|
||||||
|
<span>{{ tag.name }}</span>
|
||||||
|
<!-- </router-link>-->
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
<div class="scroll-decoration-bottom"></div>
|
<div class="scroll-decoration-bottom"></div>
|
||||||
<div class="scrollbar-footer">
|
<div class="scrollbar-footer">
|
||||||
<div class="quota-space">
|
<div class="quota-space">
|
||||||
<el-progress v-show="percentage > 0" :class="{'collapse': isCollapse}" :percentage="percentage" :format="progressFormat" :color="customColors"></el-progress>
|
<el-progress
|
||||||
|
v-show="percentage > 0"
|
||||||
|
:class="{ collapse: isCollapse }"
|
||||||
|
:percentage="percentage"
|
||||||
|
:format="progressFormat"
|
||||||
|
:color="customColors"
|
||||||
|
></el-progress>
|
||||||
</div>
|
</div>
|
||||||
<div class="webdav">
|
<div class="webdav">
|
||||||
<div :class="{'normal': true, 'collapse': isCollapse}" @mousemove="showCopyBtn = true" @mouseleave="showCopyBtn = false">
|
<div
|
||||||
|
:class="{ normal: true, collapse: isCollapse }"
|
||||||
|
@mousemove="showCopyBtn = true"
|
||||||
|
@mouseleave="showCopyBtn = false"
|
||||||
|
>
|
||||||
<svg-icon class="webdav-icon" icon-class="disk-drive"></svg-icon>
|
<svg-icon class="webdav-icon" icon-class="disk-drive"></svg-icon>
|
||||||
<div class="wedav-text">WebDAV </div>
|
<div class="wedav-text">WebDAV</div>
|
||||||
<el-tooltip placement="right" v-if="showCopyBtn">
|
<el-tooltip placement="right" v-if="showCopyBtn">
|
||||||
<div slot="content">点击复制WebDAV地址<br/>{{webdavUrl}}</div>
|
<div slot="content">点击复制WebDAV地址<br />{{ webdavUrl }}</div>
|
||||||
<svg-icon class="copy-btn" icon-class="menu-fuzhi" @click="copyWebDAVLink('.copy-btn')" :data-clipboard-text="webdavUrl"></svg-icon>
|
<svg-icon
|
||||||
|
class="copy-btn"
|
||||||
|
icon-class="menu-fuzhi"
|
||||||
|
@click="copyWebDAVLink('.copy-btn')"
|
||||||
|
:data-clipboard-text="webdavUrl"
|
||||||
|
></svg-icon>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -144,6 +182,9 @@ export default {
|
|||||||
})
|
})
|
||||||
Bus.$on('msg/file/change', (msg) => this.onmessage(msg))
|
Bus.$on('msg/file/change', (msg) => this.onmessage(msg))
|
||||||
},
|
},
|
||||||
|
destroyed() {
|
||||||
|
Bus.$off('msg/file/change')
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onmessage(msg) {
|
onmessage(msg) {
|
||||||
const takeUpSpace = msg.space
|
const takeUpSpace = msg.space
|
||||||
@ -168,8 +209,9 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
tagClick(tag) {
|
tagClick(tag) {
|
||||||
console.log('tagClick', tag.tagId)
|
console.log('tagClick', tag.id)
|
||||||
Bus.$emit('tagPageChange', tag.tagId)
|
this.$router.push(`/tag?tagId=${tag.id}`);
|
||||||
|
Bus.$emit('tagPageChange', tag.id)
|
||||||
},
|
},
|
||||||
mouseleave() {
|
mouseleave() {
|
||||||
},
|
},
|
||||||
@ -259,20 +301,20 @@ export default {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
>>>.el-progress-bar {
|
>>> .el-progress-bar {
|
||||||
padding-right: 40px;
|
padding-right: 40px;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
>>>.el-progress__text {
|
>>> .el-progress__text {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
font-size: 12px!important;
|
font-size: 12px !important;
|
||||||
}
|
}
|
||||||
.collapse {
|
.collapse {
|
||||||
>>>.el-progress-bar {
|
>>> .el-progress-bar {
|
||||||
padding-right: 4px;
|
padding-right: 4px;
|
||||||
margin-left: 2px;
|
margin-left: 2px;
|
||||||
}
|
}
|
||||||
>>>.el-progress__text {
|
>>> .el-progress__text {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@ -287,7 +329,7 @@ export default {
|
|||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
.webdav-icon {
|
.webdav-icon {
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
margin-right: 0!important;
|
margin-right: 0 !important;
|
||||||
}
|
}
|
||||||
.copy-btn {
|
.copy-btn {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
|||||||
@ -483,6 +483,8 @@ export default {
|
|||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
window.removeEventListener('popstate', this.goBack, false)
|
window.removeEventListener('popstate', this.goBack, false)
|
||||||
|
Bus.$off('fileSuccess')
|
||||||
|
Bus.$off('clickMore')
|
||||||
},
|
},
|
||||||
directives: {
|
directives: {
|
||||||
// 注册一个局部的自定义指令 v-focus
|
// 注册一个局部的自定义指令 v-focus
|
||||||
|
|||||||
@ -215,7 +215,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
Bus.$off()
|
Bus.$off('msg/synced')
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters([
|
...mapGetters([
|
||||||
|
|||||||
@ -36,6 +36,9 @@ export default {
|
|||||||
console.log('tagPageChange', tagId)
|
console.log('tagPageChange', tagId)
|
||||||
this.queryCondition.tagId = tagId
|
this.queryCondition.tagId = tagId
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
destroyed() {
|
||||||
|
Bus.$off('tagPageChange')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user