搜索文件菜单新增打开文件所在目录

This commit is contained in:
kuaifan 2022-07-18 07:50:17 +08:00
parent 127aaa30f4
commit ec1226a8ce

View File

@ -147,19 +147,24 @@
trigger="custom" trigger="custom"
:visible="contextMenuVisible" :visible="contextMenuVisible"
transfer-class-name="page-file-dropdown-menu" transfer-class-name="page-file-dropdown-menu"
@on-click="handleContextClick"
@on-clickoutside="handleClickContextMenuOutside" @on-clickoutside="handleClickContextMenuOutside"
@on-visible-change="handleVisibleChangeMenu" @on-visible-change="handleVisibleChangeMenu"
transfer> transfer>
<DropdownMenu slot="list"> <DropdownMenu slot="list">
<template v-if="contextMenuItem.id"> <template v-if="contextMenuItem.id">
<DropdownItem @click.native="handleContextClick('open')" class="item-open"> <DropdownItem name="open" class="item-open">
{{$L('打开')}} {{$L('打开')}}
<div class="open-name">{{contextMenuItem.name}}</div> <div class="open-name">{{contextMenuItem.name}}</div>
</DropdownItem> </DropdownItem>
<DropdownItem @click.native="handleContextClick('select')">{{$L(selectIds.includes(contextMenuItem.id) ? '取消选择' : '选择')}}</DropdownItem> <DropdownItem v-if="searchKey" name="upperFolder" class="item-open">
{{$L('在上层文件夹中显示')}}
</DropdownItem>
<DropdownItem name="select">{{$L(selectIds.includes(contextMenuItem.id) ? '取消选择' : '选择')}}</DropdownItem>
<Dropdown placement="right-start" transfer> <Dropdown placement="right-start" transfer>
<DropdownItem divided> <DropdownItem divided @click.native.stop="" name="new:">
<div class="arrow-forward-item">{{$L('新建')}}<Icon type="ios-arrow-forward"></Icon></div> <div class="arrow-forward-item">{{$L('新建')}}<Icon type="ios-arrow-forward"></Icon></div>
</DropdownItem> </DropdownItem>
<DropdownMenu slot="list" class="page-file-dropdown-menu"> <DropdownMenu slot="list" class="page-file-dropdown-menu">
@ -168,22 +173,22 @@
v-if="type.label" v-if="type.label"
:key="key" :key="key"
:divided="!!type.divided" :divided="!!type.divided"
@click.native="addFile(type.value)"> :name="`new:${type.value}`">
<div :class="`no-dark-before file-item file-icon ${type.value}`">{{$L(type.label)}}</div> <div :class="`no-dark-before file-item file-icon ${type.value}`">{{$L(type.label)}}</div>
</DropdownItem> </DropdownItem>
</DropdownMenu> </DropdownMenu>
</Dropdown> </Dropdown>
<DropdownItem @click.native="handleContextClick('rename')" divided>{{$L('重命名')}}</DropdownItem> <DropdownItem name="rename" divided>{{$L('重命名')}}</DropdownItem>
<DropdownItem @click.native="handleContextClick('copy')" :disabled="contextMenuItem.type == 'folder'">{{$L('复制')}}</DropdownItem> <DropdownItem name="copy" :disabled="contextMenuItem.type == 'folder'">{{$L('复制')}}</DropdownItem>
<DropdownItem @click.native="handleContextClick('shear')" :disabled="contextMenuItem.userid != userId">{{$L('剪切')}}</DropdownItem> <DropdownItem name="shear" :disabled="contextMenuItem.userid != userId">{{$L('剪切')}}</DropdownItem>
<DropdownItem v-if="contextMenuItem.userid == userId" @click.native="handleContextClick('share')" divided>{{$L('共享')}}</DropdownItem> <DropdownItem v-if="contextMenuItem.userid == userId" name="share" divided>{{$L('共享')}}</DropdownItem>
<DropdownItem v-else-if="contextMenuItem.share" @click.native="handleContextClick('outshare')" divided>{{$L('退出共享')}}</DropdownItem> <DropdownItem v-else-if="contextMenuItem.share" name="outshare" divided>{{$L('退出共享')}}</DropdownItem>
<DropdownItem @click.native="handleContextClick('link')" :divided="contextMenuItem.userid != userId && !contextMenuItem.share" :disabled="contextMenuItem.type == 'folder'">{{$L('链接')}}</DropdownItem> <DropdownItem name="link" :divided="contextMenuItem.userid != userId && !contextMenuItem.share" :disabled="contextMenuItem.type == 'folder'">{{$L('链接')}}</DropdownItem>
<DropdownItem @click.native="handleContextClick('download')" :disabled="contextMenuItem.ext == ''">{{$L('下载')}}</DropdownItem> <DropdownItem name="download" :disabled="contextMenuItem.ext == ''">{{$L('下载')}}</DropdownItem>
<DropdownItem @click.native="handleContextClick('delete')" divided style="color:red">{{$L('删除')}}</DropdownItem> <DropdownItem name="delete" divided style="color:red">{{$L('删除')}}</DropdownItem>
</template> </template>
<template v-else> <template v-else>
<DropdownItem <DropdownItem
@ -191,7 +196,7 @@
v-if="type.label" v-if="type.label"
:key="key" :key="key"
:divided="!!type.divided" :divided="!!type.divided"
@click.native="addFile(type.value)"> :name="`new:${type.value}`">
<div :class="`no-dark-before file-item file-icon ${type.value}`">{{$L(type.label)}}</div> <div :class="`no-dark-before file-item file-icon ${type.value}`">{{$L(type.label)}}</div>
</DropdownItem> </DropdownItem>
</template> </template>
@ -909,7 +914,9 @@ export default {
}, },
addFile(command) { addFile(command) {
if (command == 'upload') { if (!command) {
return;
} else if (command == 'upload') {
this.uploadDir = false this.uploadDir = false
this.$refs.fileUpload.handleClick(); this.$refs.fileUpload.handleClick();
return; return;
@ -968,6 +975,7 @@ export default {
if (id > 0) { if (id > 0) {
this.goForward({name: 'manage-file', params: {folderId: id, fileId: null}}); this.goForward({name: 'manage-file', params: {folderId: id, fileId: null}});
} else { } else {
this.searchKey = '';
this.goForward({name: 'manage-file'}); this.goForward({name: 'manage-file'});
} }
}, },
@ -1074,7 +1082,11 @@ export default {
}, },
handleContextClick(command) { handleContextClick(command) {
if ($A.leftExists(command, "new:")) {
this.addFile($A.leftDelete(command, "new:"))
} else {
this.dropFile(this.contextMenuItem, command) this.dropFile(this.contextMenuItem, command)
}
}, },
handleClickContextMenuOutside() { handleClickContextMenuOutside() {
@ -1111,6 +1123,10 @@ export default {
} }
break; break;
case 'upperFolder':
this.browseFolder(item.pid)
break;
case 'select': case 'select':
let index = this.selectIds.findIndex(id => id == item.id) let index = this.selectIds.findIndex(id => id == item.id)
if (index > -1) { if (index > -1) {
@ -1335,13 +1351,19 @@ export default {
if (e.keyCode === 13) { if (e.keyCode === 13) {
this.onEnter(item); this.onEnter(item);
} else if (e.keyCode === 27) { } else if (e.keyCode === 27) {
const isCreate = !/^\d+$/.test(item.id);
if (isCreate) {
item.newname = ''
this.$store.dispatch("forgetFile", item.id);
} else {
this.setLoad(item.id, false) this.setLoad(item.id, false)
this.setEdit(item.id, false) this.setEdit(item.id, false)
} }
}
}, },
onEnter(item) { onEnter(item) {
let isCreate = !/^\d+$/.test(item.id); const isCreate = !/^\d+$/.test(item.id);
if (!item.newname) { if (!item.newname) {
if (isCreate) { if (isCreate) {
this.$store.dispatch("forgetFile", item.id); this.$store.dispatch("forgetFile", item.id);