@@ -129,6 +129,17 @@
+
+
+
@@ -229,7 +240,10 @@ export default {
WORKING, NOT_WORKING,
DOWNLOADING,
UPLOADING,
- imgExtensionList
+ imgExtensionList,
+ isFileRightMenuVisible: false,//控制文件右键菜单显示与隐藏
+ fileRightMenuLeft: 0,//文件右键菜单位置
+ fileRightMenuTop: 0,
};
},
computed: {
@@ -283,7 +297,32 @@ export default {
},
methods: {
oneOf,
+ fileRightBtnClick(e) {
+ this.isFileRightMenuVisible = true;
+ this.fileRightMenuLeft = e.offsetX;
+ this.fileRightMenuTop = e.offsetY;
+ },
+ closeFileRightMenu() {
+ this.isFileRightMenuVisible = false;
+ },
+ openfileBtnClick() {
+ this.isFileRightMenuVisible = false;
+ this.$emit('openfileBtnClick', this.file);
+ },
+ copyFileBtnClick() {
+ this.isFileRightMenuVisible = false;
+ this.$emit('copyFileBtnClick', this.file);
+ }
},
+ watch: {
+ isFileRightMenuVisible(value) {
+ if (value) {
+ document.body.addEventListener("click", this.closeFileRightMenu);
+ } else {
+ document.body.removeEventListener("click", this.closeFileRightMenu);
+ }
+ },
+ }
};
@@ -318,4 +357,16 @@ export default {
.have-modified-icon {
background-color: #cccdd7;
}
+ .fileRightMenu li {
+ white-space: nowrap;
+ }
+ .function-disabled {
+ color: rgb(216,216,216);
+ }
+ .function-disabled:hover {
+ cursor: not-allowed;
+ background-color: #ecf5ff;
+ color:rgb(167,168,183);
+ }
+
\ No newline at end of file
diff --git a/src/views/main_web/workspace/service.js b/src/views/main_web/workspace/service.js
index e7f9baa8..eebe2465 100644
--- a/src/views/main_web/workspace/service.js
+++ b/src/views/main_web/workspace/service.js
@@ -78,4 +78,11 @@ export async function changeFileWorkStatus(fileId, workStatus) {
export async function queryFileExchange(currentTemplateId, currentNodeId, nestedNodeId){
const res = await fetchApi('template/queryFileExchange', { currentTemplateId, currentNodeId, nestedNodeId });
return wrapErrorHint(res);
+}
+/**
+ * addFile 复制文件副本
+ */
+export async function addFile(file) {
+ const res = await fetchApi('file/addFile', file);
+ return res;
}
\ No newline at end of file
diff --git a/src/views/main_web/workspace/workspace.new.vue b/src/views/main_web/workspace/workspace.new.vue
index 77ac55e8..c10c3154 100644
--- a/src/views/main_web/workspace/workspace.new.vue
+++ b/src/views/main_web/workspace/workspace.new.vue
@@ -98,6 +98,8 @@
:currentFolder="currentFolder"
:commitFile="commitFile"
@dblclick.native="fileClick(file)"
+ @openfileBtnClick="fileClick(file)"
+ @copyFileBtnClick="copyWorkFileBtnClick(file)"
:localFileHashMap="localFileHashMap"
:loadingState="localFileLoadStateMap[file.id]"
/>
@@ -1046,6 +1048,31 @@ export default {
this.neibianju = "neibianju";
this.closepageH = "";
},
+ /**
+ * 点击了复制文件副本的按钮
+ */
+ async copyWorkFileBtnClick(targetFile) {
+ const copyFile = {...targetFile};
+ let nowNum = 1, tempName = "";
+
+ //先添加 - 副本字样 再判断是否重复 如果重复就修改版本信息
+ tempName = targetFile.archName + ' - 副本';
+ let isExists = this.workFileList.find(file => file.archName === tempName);
+ while(isExists) {
+ // - 副本存在 -》修改为 -副本(x) 的字样
+ tempName = targetFile.archName + ` - 副本(${ ++ nowNum})`;
+ isExists = this.workFileList.find(file => file.archName === tempName);
+ }
+ copyFile.archName = tempName;
+ copyFile.modifyUserId = sessionStorage.userId;
+ copyFile.modifyTime = new Date();
+ copyFile.createUserId = sessionStorage.userId;
+ copyFile.createTime = new Date();
+ console.log(copyFile);
+
+ const addFileRes = await services.addFile(copyFile);
+ this.fetchFolderFiles();
+ },
},
watch: {
rightMenuvisible(value) {