diff --git a/src/components/FancyTree/index.vue b/src/components/FancyTree/index.vue
index a255323..5d16a3b 100644
--- a/src/components/FancyTree/index.vue
+++ b/src/components/FancyTree/index.vue
@@ -19,7 +19,16 @@
上一级
刷新
新建
- 搜索
+
+
+
+
+ 搜索
+
+
@@ -77,21 +86,17 @@
{ iconClass: 'menu-rename', label: '重命名', operation: 'rename' },
{ iconClass: 'menu-remove', label: '删除', operation: 'remove' }
],
+ fileMenus1: [
+ { iconClass: 'menu-addtab', label: '在新的标签打开', operation: 'openFileOfNewTab' },
+ { iconClass: 'menu-rename', label: '重命名', operation: 'rename' },
+ { iconClass: 'menu-remove', label: '删除', operation: 'remove' }
+ ],
newFileMenus: [
{ iconClass: 'add-file', label: '新建文件', operation: 'addFile' },
{ iconClass: 'folder-add', label: '新建目录', operation: 'addFolder' }
],
}
},
- watch: {
- directoryTreeData(newVal) {
- this.directoryTreeData = newVal
- this.loadTreeData(newVal,true)
- },
- editableTabs(newVal){
- this.editableTabs = newVal
- }
- },
mounted() {
this.loadTreeData(this.directoryTreeData)
},
@@ -130,7 +135,11 @@
data.originalEvent.preventDefault();
return false
}
- return that.nameValid(data.input.val(), data.node.data, data.node)
+ if(data.node.data.path){
+ return that.nameValid(data.input.val(), data.node.data, data.node)
+ }else{
+ return true
+ }
},
save: function(event, data){
if(data.node.data.path){
@@ -141,13 +150,18 @@
return true;
},
close: function(event, data){
- let title = data.node.span.querySelector('.fancytree-title')
- that.$refs.contextmenu.addRef({el:title,vnode: title})
+ if(data.node) {
+ that.addRef(data.node)
+ }
return false
}
}
});
},
+ addRef(node){
+ let title = node.span.querySelector('.fancytree-title')
+ this.$refs.contextmenu.addRef({el:title,vnode: title})
+ },
contextmenu(vnode){
this.rightClicking = true
const that = this
@@ -166,6 +180,10 @@
}else{
this.menus = this.fileMenus
+ const tabExist = this.editableTabs.some(item => item.name === this.contextData.path)
+ if(!tabExist && suffix.simText.includes(this.contextData.suffix)){
+ this.menus = this.fileMenus1
+ }
}
}
},
@@ -188,6 +206,10 @@
case 'addFolder':
this.editCreateNode(node,true)
break
+ case 'openFileOfNewTab':
+ this.contextData.isAddTab = true
+ this.$emit('treeNodeClick',this.contextData)
+ break
default:
break
}
@@ -403,20 +425,13 @@
row.name = newFileName
row.suffix = newFileName.replace(/.+\./,"")
Bus.$emit('renameRow',row)
- const oldPath = row.path
+ row.oldPath = row.path
row.path = row.path.substring(0,row.path.length - row.oldName.length) + newFileName
node.setTitle(newFileName)
+ this.addRef(node)
this.$message.success("修改成功!")
- // 同步到 editableTabs
- this.editableTabs.map(item => {
- if(item.name === oldPath){
- item.title = row.name
- item.copyTitle = row.name
- item.name = row.path
- }
- return item
- })
- if(this.editableTabsValue === oldPath){
+ this.$emit('onRename', row)
+ if(this.editableTabsValue === row.oldPath){
this.$emit('update:editableTabsValue', row.path)
}
}
@@ -482,8 +497,7 @@
},
createNode(event, data){
if(data.node.statusNodeType !== 'nodata'){
- let title = data.node.span.querySelector('.fancytree-title')
- this.$refs.contextmenu.addRef({el:title,vnode: title})
+ this.addRef(data.node)
}else{
data.node.span.querySelector('.fancytree-title').innerText = '无数据'
}
diff --git a/src/components/preview/SimTextPreview.vue b/src/components/preview/SimTextPreview.vue
index f11a9a2..5a9d605 100644
--- a/src/components/preview/SimTextPreview.vue
+++ b/src/components/preview/SimTextPreview.vue
@@ -52,7 +52,7 @@
-