diff --git a/src/components/ExplorerNode.vue b/src/components/ExplorerNode.vue index 19a08b4d..abbcea11 100644 --- a/src/components/ExplorerNode.vue +++ b/src/components/ExplorerNode.vue @@ -14,6 +14,7 @@ + @@ -23,6 +24,7 @@ import workspaceSvc from '../services/workspaceSvc'; import explorerSvc from '../services/explorerSvc'; import store from '../store'; import badgeSvc from '../services/badgeSvc'; +import utils from '../services/utils'; export default { name: 'explorer-node', // Required for recursivity @@ -80,6 +82,9 @@ export default { ...mapActions('explorer', [ 'setDragTarget', ]), + ...mapActions('notification', [ + 'info', + ]), select(id = this.node.item.id, doOpen = true) { const node = store.getters['explorer/nodeMap'][id]; if (!node) { @@ -144,6 +149,11 @@ export default { // See https://stackoverflow.com/a/3977637/1333165 evt.dataTransfer.setData('Text', ''); }, + copyPath() { + let path = utils.getAbsoluteDir(this.node).replaceAll(' ', '%20'); + path = path.indexOf('/') === 0 ? path : `/${path}`; + return this.node.isFolder ? path : `${path}.md`; + }, onDrop() { const sourceNode = store.getters['explorer/dragSourceNode']; const targetNode = store.getters['explorer/dragTargetNodeFolder']; @@ -169,22 +179,26 @@ export default { top: evt.clientY, }, items: [{ - name: 'New file', + name: '新建文件', disabled: !this.node.isFolder || this.node.isTrash, perform: () => explorerSvc.newItem(false), }, { - name: 'New folder', + name: '新建文件夹', disabled: !this.node.isFolder || this.node.isTrash || this.node.isTemp, perform: () => explorerSvc.newItem(true), }, { type: 'separator', }, { - name: 'Rename', + name: '重命名', disabled: this.node.isTrash || this.node.isTemp, perform: () => this.setEditingId(this.node.item.id), }, { - name: 'Delete', + name: '删除', perform: () => explorerSvc.deleteItem(), + }, { + name: '复制路径', + disabled: this.node.isTrash || this.node.isTemp, + perform: () => this.$refs.copyId.click(), }], }); if (item) {