Explorar o código

右键菜单,预览编辑合并

liuQiang %!s(int64=2) %!d(string=hai) anos
pai
achega
061a3eb52b

+ 2 - 0
src/api/upload/upload.js

@@ -16,6 +16,7 @@ function uploadImg(data) {
         url: `/upload`,
         method: "post",
         data,
+        timeout: 10*60*1000,//配置超时时间
         headers: {
             'Content-Type': 'multipart/form-data'
         },
@@ -27,6 +28,7 @@ function uploadFileMany(data) {
         url: `/biz/info/uploadFiles`,
         method: "post",
         data,
+        timeout: 10*60*1000,//配置超时时间
 		headers: {
 		    'Content-Type': 'multipart/form-data'
 		},

BIN=BIN
src/assets/images/menuIcon/collect.png


BIN=BIN
src/assets/images/menuIcon/coptTo.png


BIN=BIN
src/assets/images/menuIcon/del.png


BIN=BIN
src/assets/images/menuIcon/downLoad.png


BIN=BIN
src/assets/images/menuIcon/edit.png


BIN=BIN
src/assets/images/menuIcon/fenX.png


BIN=BIN
src/assets/images/menuIcon/folderTo.png


BIN=BIN
src/assets/images/menuIcon/font.png


BIN=BIN
src/assets/images/menuIcon/guiD.png


BIN=BIN
src/assets/images/menuIcon/history.png


BIN=BIN
src/assets/images/menuIcon/join.png


BIN=BIN
src/assets/images/menuIcon/joinP.png


BIN=BIN
src/assets/images/menuIcon/preview.png


BIN=BIN
src/assets/images/menuIcon/reName.png


+ 2 - 2
src/components/ScanFile/ScanFile.vue

@@ -121,8 +121,8 @@ const checkAllChange = () => {
   console.log("fileArr", fileArr.value);
 };
 const toSave = () => {
-  console.log("fileArr", fileArr.value);
-  if(fileArr.value.length<=0){
+  // console.log("copyList", copyList.value);
+  if(!copyList.value.some(item=>item.checked == true)){
     return ElMessage({ message: "请先勾选文件", type: "error" });
   }
   const arr = []

+ 55 - 20
src/views/department/MyFile.vue

@@ -353,7 +353,7 @@
             </div>
             <div :class="{'setCli':!noMenuItem}" v-if="cliCC" :style="{ left: xz + 'px', top: yz -100 + 'px' }">
                 <template v-for="(item, index) in filterMouseCli()" :key="index">
-                    <p @click="chooseSet(item, index, 1)" v-if="!noMenuItem" class="chooseSet shouzhi">
+                    <p @click="chooseSet(item, index, 1)" :class="{'hasLine':item.name == '删除'||item.name == '重命名' ||item.name == '文字识别','btmLine':item.name == '收藏'}" v-if="!noMenuItem" class="chooseSet shouzhi">
                         <img :src="item.img" alt="">
                         <span class="shouzhi"></span>{{ item.name }}
                         <span v-if="item.name == '在线编辑' || item.name == '协作' ? true : false"
@@ -653,16 +653,13 @@ export default {
         let mouseCli = ref([
            {
                 img: ImgFile.previewIcon,
-                name: "预览"
-            },
-            {
-                img: ImgFile.collect,
-                name: "收藏"
+                name: "打开"
             },
             {
                 img: ImgFile.downLoad,
                 name: "下载"
             },
+
             {
                 img: ImgFile.textbox,
                 name: "重命名"
@@ -676,8 +673,8 @@ export default {
                 name: "分享"
             },
             {
-                img: ImgFile.notePencil,
-                name: "在线编辑"
+                img: ImgFile.collect,
+                name: "收藏"
             },
             {
                 img: ImgFile.icc,
@@ -1033,6 +1030,14 @@ export default {
             e.stopPropagation();
             xz.value = e.pageX
             yz.value = e.pageY
+            if ((window.innerHeight - e.clientY)<300) {
+               yz.value = e.pageY - 100
+            }
+            //如果带有(重命名)-前缀 只允许进行重命名操作
+            const regExp = /^\(重命名\)-/
+            if(regExp.test(clickRow.value.fileName)){
+                yz.value = e.pageY + 100
+            }
             copyRow.value = row
             clickRowId.value = row.docId
             copyDirId.value = row.dirId
@@ -1193,17 +1198,36 @@ export default {
                     }
                 })
             }
-            if (row.name === '预览') {
+            if (row.name === '打开') {
                 loadingPreview.value = true
                 const filePreview = canPreviewFile(copyFileType.value)
+                const canEditArr = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.dps','.et', '.pptx','.pdf','.PDF']
                 if (filePreview) {
-                    loadingPreview.value = false
-                    // addTab(clickRow.value);
-                    if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
-                        addFileTab(clickRow.value, 0,1);
-                    }else{
-                       addFileTab(clickRow.value, 0,0); 
+                     // 文件
+                    getInfo(clickRow.value.docId).then((res)=>{
+                    // console.log('res',res);
+                    clickRow.value = res.data
+                    if(clickRow.value.isFiled === "Y" || !canEditArr.includes(copyFileType.value) ){
+                        //归档了或者不允许编辑的格式 就是预览
+                        if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
+                            addFileTab(clickRow.value, 0,1);
+                        }else{
+                        addFileTab(clickRow.value, 0,0); 
+                        }
+                    }else{ // 编辑
+                        //--------------------------
+                            loadingPreview.value = false
+                            if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
+                                    addFileTab(clickRow.value, 1,1);
+                                }else{
+                                addFileTab(clickRow.value, 1,0); 
+                                }
+                            cliCC.value = false
+                            loadingPreview.value = false
+                        //---------------------------
                     }
+                })
+
                     onlyView.value = true
                     // editOnline.value = false
                     cliCC.value = false
@@ -1213,7 +1237,7 @@ export default {
                     previewData.value = URL.createObjectURL(res)
                 }
                 loadingPreview.value = false
-                console.log('filePreview', filePreview);
+                // console.log('filePreview', filePreview);
 
                 // // console.log('res',res);
                 // const res = await preview(copyFileId.value)
@@ -1698,12 +1722,17 @@ export default {
         //对mouseCli数组进行筛选,实现菜单的区分显示
         const filterMouseCli = () => {
             const canPreviewArray = ['.doc','.dps','.et','.wps', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.pdf', '.rtf', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.pot', '.potm', '.potx', '.pps', '.ppsm', '.ppsx', '.ppt', '.pptm', '.pptx']
-            const typeArr = ['.png', '.jpg', '.jpeg', '.JPG', '.mp3', '.mp4']
-            const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG']
-            const canEditArr = ['.doc', '.dps','.et','.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp','.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.pptx']
+            const typeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG', '.mp3', '.mp4']
+            const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG','.webg']
+            const canEditArr = ['.doc', '.dps','.et','.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp','.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.pptx','.pdf','.PDF']
             let arr = []
+            //如果带有(重命名)-前缀 只允许进行重命名操作
+            const regExp = /^\(重命名\)-/
+            if(regExp.test(clickRow.value.fileName)){
+               return arr = mouseCli.value.filter(item => item.name === "重命名")
+            }
             if (!(typeArr.includes(copyFileType.value) || canPreviewArray.includes(copyFileType.value))) {
-                arr = mouseCli.value.filter(item => item.name !== "预览")
+                arr = mouseCli.value.filter(item => item.name !== "打开")
             } else {
                 arr = toRaw(mouseCli.value)
             }
@@ -2904,6 +2933,12 @@ p {
         vertical-align: middle;
     }
 }
+.hasLine{
+    border-top: 1px solid #C1CCE3;
+}
+.btmLine{
+    border-bottom: 1px solid #C1CCE3;
+}
 
 .chooseSet:hover {
     width: 140px;

+ 14 - 14
src/views/department/jsComponents/ImgFile.js

@@ -1,7 +1,7 @@
-import copy from '../../../assets/images/copy.png'
+import copy from '../../../assets/images/menuIcon/coptTo.png'
 import clipboard from '../../../assets/images/clipboard.png'
-import share from '../../../assets/images/share.png'
-import trash from '../../../assets/images/trash.png'
+import share from '../../../assets/images/menuIcon/fenX.png'
+import trash from '../../../assets/images/menuIcon/del.png'
 import file from '../../../assets/images/file.png'
 import folder from '../../../assets/images/folder.png'
 import image from '../../../assets/images/image.png'
@@ -11,25 +11,25 @@ import blueLeft from '../../../assets/images/blueLeft.png'
 import grayRight from "../../../assets/images/grayRight.png"
 import sort from '../../../assets/images/sort.png'
 import squre from '../../../assets/images/squre.png'
-import addolder from '../../../assets/images/addolder.png'
-import textbox from '../../../assets/images/textbox.png'
+import addolder from '../../../assets/images/menuIcon/folderTo.png'
+import textbox from '../../../assets/images/menuIcon/reName.png'
 import goon from '../../../assets/images/goon.png'
-import notePencil from '../../../assets/images/notePencil.png'
-import togger from '../../../assets/images/togger.png'
-import icc from '../../../assets/images/icc.png'
-import history from '../../../assets/images/history.png'
+import notePencil from '../../../assets/images/menuIcon/edit.png'
+import togger from '../../../assets/images/menuIcon/join.png'
+import icc from '../../../assets/images/menuIcon/font.png'
+import history from '../../../assets/images/menuIcon/history.png'
 import fileBox from '../../../assets/images/fileBox.png'
-import user from '../../../assets/images/user.png'
-import archiveTray from '../../../assets/images/archiveTray.png'
+import user from '../../../assets/images/menuIcon/joinP.png'
+import archiveTray from '../../../assets/images/menuIcon/guiD.png'
 import txt from '../../../assets/images/txt.png'
 import pptx from '../../../assets/images/pptx.png'
 import word from '../../../assets/images/word.png'
 import pdf from '../../../assets/images/pdf.png'
 import xlxs from '../../../assets/images/xlxs.png'
-import collect from '../../../assets/images/collect.png'
-import downLoad from '../../../assets/images/download.png'
+import collect from '../../../assets/images/menuIcon/collect.png'
+import downLoad from '../../../assets/images/menuIcon/download.png'
 import yellowStar from '../../../assets/images/yellowstar.png'
-import previewIcon from '../../../assets/images/outline_preview.png'
+import previewIcon from '../../../assets/images/menuIcon/preview.png'
 import bigTxt from '../../../assets/images/txtBig.png'
 import bigxlsx from '../../../assets/images/xlsxBig.png'
 import bigpdf from '../../../assets/images/pdfBig.png'

+ 53 - 36
src/views/myfile/MyFile.vue

@@ -386,9 +386,9 @@
 
                 </div>
             </div>
-            <div class="setCli" v-if="cliCC" :style="{ left: xz + 'px', top: yz - 160 + 'px' }">
+            <div class="setCli" id="setCli" v-if="cliCC" :style="{ left: xz + 'px', top: yz - 160 + 'px' }">
                 <template v-for="(item, index) in filterMouseCli()" :key="index">
-                    <p @click="chooseSet(item, index, 1)" class="chooseSet">
+                    <p @click="chooseSet(item, index, 1)" :class="{'hasLine':item.name == '删除'||item.name == '重命名' ||item.name == '文字识别','btmLine':item.name == '收藏'}" class="chooseSet">
                         <img :src="item.img" alt="">
                         {{ item.name }}
                         <span v-if=" item.name == '协作' ? true : false"
@@ -675,7 +675,7 @@ export default {
         let mouseCli = ref([
             {
                 img: ImgFile.previewIcon,
-                name: "预览"
+                name: "打开"
             },
             {
                 img: ImgFile.addolder,
@@ -685,14 +685,6 @@ export default {
                 img: ImgFile.copy,
                 name: "复制到...",
             },
-            // {
-            //     img: ImgFile.clipboard,
-            //     name: "粘贴"
-            // },
-            {
-                img: ImgFile.collect,
-                name: "收藏"
-            },
             {
                 img: ImgFile.downLoad,
                 name: "下载"
@@ -701,23 +693,20 @@ export default {
                 img: ImgFile.textbox,
                 name: "重命名"
             },
-            // {
-            //     img: ImgFile.goon,
-            //     name: "发送"
-            // },
             {
                 img: ImgFile.share,
                 name: "分享"
             },
-            {
-                img: ImgFile.notePencil,
-                name: "在线编辑"
-            },
+
             {
                 img: ImgFile.togger,
                 name: "协作"
             },
             {
+                img: ImgFile.collect,
+                name: "收藏"
+            },
+            {
                 img: ImgFile.icc,
                 name: "文字识别"
             },
@@ -1096,6 +1085,14 @@ export default {
             e.stopPropagation();
             xz.value = e.pageX
             yz.value = e.pageY
+            if ((window.innerHeight - e.clientY)<300) {
+               yz.value = e.pageY - 200
+            }
+            //如果带有(重命名)-前缀 只允许进行重命名操作
+            const regExp = /^\(重命名\)-/
+            if(regExp.test(clickRow.value.fileName)){
+                yz.value = e.pageY + 150
+            }
             copyRow.value = row
             clickRowId.value = row.docId
             copyDirId.value = row.dirId
@@ -1264,25 +1261,39 @@ export default {
                     }
                     addFolderAdd(itemData)
             }
-            if (row.name === '预览') {
+            if (row.name === '打开') {
                 // console.log('yulanData',thisFolder.value);
                 // console.log('thisFolderRole',thisFolderRole.value);
+                const canEditArr = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.dps','.et', '.pptx','.pdf','.PDF']
                 loadingPreview.value = true
+                  
                 const filePreview = canPreviewFile(copyFileType.value)
                 if (filePreview) {
-                    loadingPreview.value = false
-                    if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
-
-                        addFileTab(clickRow.value, 0,1);
-                    }else{
-                       addFileTab(clickRow.value, 0,0); 
+                    // 文件
+                    getInfo(clickRow.value.docId).then((res)=>{
+                    // console.log('res',res);
+                    clickRow.value = res.data
+                    if(clickRow.value.isFiled === "Y" || !canEditArr.includes(copyFileType.value) ){
+                        //归档了或者不允许编辑的格式 就是预览
+                        if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
+                            addFileTab(clickRow.value, 0,1);
+                        }else{
+                        addFileTab(clickRow.value, 0,0); 
+                        }
+                    }else{ // 编辑
+                        //--------------------------
+                            loadingPreview.value = false
+                            if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
+                                    addFileTab(clickRow.value, 1,1);
+                                }else{
+                                addFileTab(clickRow.value, 1,0); 
+                                }
+                            cliCC.value = false
+                            loadingPreview.value = false
+                        //---------------------------
                     }
-                    //    const addData = {
-                    //     path:"/fileEdit" + clickRow.value.docId,
-                    //     name:clickRow.value.fileName,
-                    //     row:clickRow.value.docId
-                    // }
-                    // addFolderAdd(addData)
+                })
+
                     onlyView.value = true
                     // editOnline.value = false
                     cliCC.value = false
@@ -1292,7 +1303,7 @@ export default {
                     previewData.value = URL.createObjectURL(res)
                 }
                 loadingPreview.value = false
-                console.log('filePreview', filePreview);
+                // console.log('filePreview', filePreview);
 
                 // // console.log('res',res);
                 // const res = await preview(copyFileId.value)
@@ -1887,8 +1898,8 @@ export default {
         const filterMouseCli = () => {
             const canPreviewArray = ['.doc','.dps','.et', '.wps', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.pdf', '.rtf', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.pot', '.potm', '.potx', '.pps', '.ppsm', '.ppsx', '.ppt', '.pptm', '.pptx']
             const typeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG', '.mp3', '.mp4']
-            const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG']
-            const canEditArr = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.dps','.et', '.pptx']
+            const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG','.webg']
+            const canEditArr = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.dps','.et', '.pptx','.pdf','.PDF']
             let arr = []
             //如果带有(重命名)-前缀 只允许进行重命名操作
             const regExp = /^\(重命名\)-/
@@ -1896,7 +1907,7 @@ export default {
                return arr = mouseCli.value.filter(item => item.name === "重命名")
             }
             if (!(typeArr.includes(copyFileType.value) || canPreviewArray.includes(copyFileType.value))) {
-                arr = mouseCli.value.filter(item => item.name !== "预览")
+                arr = mouseCli.value.filter(item => item.name !== "打开")
             } else {
                 arr = toRaw(mouseCli.value)
             }
@@ -3090,6 +3101,12 @@ p {
         vertical-align: middle;
     }
 }
+.hasLine{
+    border-top: 1px solid #C1CCE3;
+}
+.btmLine{
+    border-bottom: 1px solid #C1CCE3;
+}
 
 .chooseSet:hover {
     width: 140px;

+ 14 - 14
src/views/myfile/jsComponents/ImgFile.js

@@ -1,7 +1,7 @@
-import copy from '../../../assets/images/copy.png'
+import copy from '../../../assets/images/menuIcon/coptTo.png'
 import clipboard from '../../../assets/images/clipboard.png'
-import share from '../../../assets/images/share.png'
-import trash from '../../../assets/images/trash.png'
+import share from '../../../assets/images/menuIcon/fenX.png'
+import trash from '../../../assets/images/menuIcon/del.png'
 import file from '../../../assets/images/file.png'
 import folder from '../../../assets/images/folder.png'
 import image from '../../../assets/images/image.png'
@@ -11,25 +11,25 @@ import blueLeft from '../../../assets/images/blueLeft.png'
 import grayRight from "../../../assets/images/grayRight.png"
 import sort from '../../../assets/images/sort.png'
 import squre from '../../../assets/images/squre.png'
-import addolder from '../../../assets/images/addolder.png'
-import textbox from '../../../assets/images/textbox.png'
+import addolder from '../../../assets/images/menuIcon/folderTo.png'
+import textbox from '../../../assets/images/menuIcon/reName.png'
 import goon from '../../../assets/images/goon.png'
-import notePencil from '../../../assets/images/notePencil.png'
-import togger from '../../../assets/images/togger.png'
-import icc from '../../../assets/images/icc.png'
-import history from '../../../assets/images/history.png'
+import notePencil from '../../../assets/images/menuIcon/edit.png'
+import togger from '../../../assets/images/menuIcon/join.png'
+import icc from '../../../assets/images/menuIcon/font.png'
+import history from '../../../assets/images/menuIcon/history.png'
 import fileBox from '../../../assets/images/fileBox.png'
-import user from '../../../assets/images/user.png'
-import archiveTray from '../../../assets/images/archiveTray.png'
+import user from '../../../assets/images/menuIcon/joinP.png'
+import archiveTray from '../../../assets/images/menuIcon/guiD.png'
 import txt from '../../../assets/images/txt.png'
 import pptx from '../../../assets/images/pptx.png'
 import word from '../../../assets/images/word.png'
 import pdf from '../../../assets/images/pdf.png'
 import xlxs from '../../../assets/images/xlxs.png'
-import collect from '../../../assets/images/collect.png'
-import downLoad from '../../../assets/images/download.png'
+import collect from '../../../assets/images/menuIcon/collect.png'
+import downLoad from '../../../assets/images/menuIcon/download.png'
 import yellowStar from '../../../assets/images/yellowstar.png'
-import previewIcon from '../../../assets/images/outline_preview.png'
+import previewIcon from '../../../assets/images/menuIcon/preview.png'
 import bigTxt from '../../../assets/images/txtBig.png'
 import bigxlsx from '../../../assets/images/xlsxBig.png'
 import bigpdf from '../../../assets/images/pdfBig.png'

+ 56 - 28
src/views/publicment/MyFile.vue

@@ -349,7 +349,7 @@
             </div>
             <div :class="{'setCli':!noMenuItem}" v-if="cliCC" :style="{ left: xz + 'px', top: yz -100 + 'px' }">
                 <template v-for="(item, index) in filterMouseCli()" :key="index">
-                    <p @click="chooseSet(item, index, 1)" v-if="!noMenuItem" class="chooseSet" style="cursor: pointer;">
+                    <p @click="chooseSet(item, index, 1)" :class="{'hasLine':item.name == '删除'||item.name == '重命名' ||item.name == '文字识别','btmLine':item.name == '收藏'}" v-if="!noMenuItem" class="chooseSet" style="cursor: pointer;">
                         <img :src="item.img" alt="">
                         {{ item.name }}
                         <span v-if="item.name == '协作' ? true : false"
@@ -495,7 +495,7 @@ import SpaceBig from './modalComponebts/SpaceBig.vue'
 // import PalaceGridFile from './components/PalaceGridFile.vue'
 import PlaceGridFolder from '@/views/myfile/components/PlaceGridFolder.vue'
 import PalaceGridFile from '@/views/myfile/components/PalaceGridFile.vue'
-import ImgFile from "./jsComponents/ImgFile"
+import ImgFile from "@/views/myfile/jsComponents/ImgFile"
 import LeftList from "@/components/LeftList/LeftList.vue"
 import ListShow from "@/components/ListShow/ListShow.vue"
 import { Search } from '@element-plus/icons-vue'
@@ -652,7 +652,7 @@ export default {
         let mouseCli = ref([
            {
                 img: ImgFile.previewIcon,
-                name: "预览"
+                name: "打开"
             },
             {
                 img: ImgFile.addolder,
@@ -662,14 +662,6 @@ export default {
                 img: ImgFile.copy,
                 name: "复制到...",
             },
-            // {
-            //     img: ImgFile.clipboard,
-            //     name: "粘贴"
-            // },
-            {
-                img: ImgFile.collect,
-                name: "收藏"
-            },
             {
                 img: ImgFile.downLoad,
                 name: "下载"
@@ -678,17 +670,13 @@ export default {
                 img: ImgFile.textbox,
                 name: "重命名"
             },
-            // {
-            //     img: ImgFile.goon,
-            //     name: "发送"
-            // },
             {
                 img: ImgFile.share,
                 name: "分享"
             },
             {
-                img: ImgFile.notePencil,
-                name: "在线编辑"
+                img: ImgFile.collect,
+                name: "收藏"
             },
             {
                 img: ImgFile.icc,
@@ -1026,6 +1014,14 @@ export default {
             e.stopPropagation();
             xz.value = e.pageX
             yz.value = e.pageY
+            if ((window.innerHeight - e.clientY)<300) {
+               yz.value = e.pageY - 100
+            }
+            //如果带有(重命名)-前缀 只允许进行重命名操作
+            const regExp = /^\(重命名\)-/
+            if(regExp.test(clickRow.value.fileName)){
+                yz.value = e.pageY + 100
+            }
             copyRow.value = row
             clickRowId.value = row.docId
             copyDirId.value = row.dirId
@@ -1185,17 +1181,38 @@ export default {
                     }
                 })
             }
-            if (row.name === '预览') {
+            if (row.name === '打开') {
                 loadingPreview.value = true
                 const filePreview = canPreviewFile(copyFileType.value)
+                const canEditArr = ['.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.dps','.et', '.pptx','.pdf','.PDF']
                 if (filePreview) {
-                   loadingPreview.value = false
-                if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
-                        addFileTab(clickRow.value, 0,1);
-                    }else{
-                       addFileTab(clickRow.value, 0,0); 
+                     // 文件
+                    getInfo(clickRow.value.docId).then((res)=>{
+                    // console.log('res',res);
+                    clickRow.value = res.data
+                    if(clickRow.value.isFiled === "Y" || !canEditArr.includes(copyFileType.value) ){
+                        //归档了或者不允许编辑的格式 就是预览
+                        if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
+                            addFileTab(clickRow.value, 0,1);
+                        }else{
+                        addFileTab(clickRow.value, 0,0); 
+                        }
+                    }else{ // 编辑
+                        //--------------------------
+                            loadingPreview.value = false
+                            if(thisFolderRole.value &&thisFolderRole.value.roles&& thisFolderRole.value.roles.l0800){
+                                    addFileTab(clickRow.value, 1,1);
+                                }else{
+                                addFileTab(clickRow.value, 1,0); 
+                                }
+                            cliCC.value = false
+                            loadingPreview.value = false
+                        //---------------------------
                     }
+                })
+
                     onlyView.value = true
+                    // editOnline.value = false
                     cliCC.value = false
                 } else {
                     const res = await preview(copyRow.value.docId)
@@ -1203,7 +1220,7 @@ export default {
                     previewData.value = URL.createObjectURL(res)
                 }
                 loadingPreview.value = false
-                console.log('filePreview', filePreview);
+                // console.log('filePreview', filePreview);
 
                 // // console.log('res',res);
                 // const res = await preview(copyFileId.value)
@@ -1679,12 +1696,17 @@ export default {
         //对mouseCli数组进行筛选,实现菜单的区分显示
         const filterMouseCli = () => {
             const canPreviewArray = ['.doc','.dps','.et','.wps', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.pdf', '.rtf', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp', '.pot', '.potm', '.potx', '.pps', '.ppsm', '.ppsx', '.ppt', '.pptm', '.pptx']
-            const typeArr = ['.png', '.jpg', '.jpeg', '.JPG', '.mp3', '.mp4']
-            const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG']
-            const canEditArr = ['.doc', '.dps','.et','.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp','.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.pptx']
+            const typeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG', '.mp3', '.mp4']
+            const imgTypeArr = ['.png', '.jpg', '.jpeg', '.JPG','.PNG','.webg']
+            const canEditArr = ['.doc', '.dps','.et','.docm', '.docx', '.dot', '.dotm', '.dotx', '.txt', '.djvu', '.xps', '.csv', '.fods', '.ods', '.ots', '.xls', '.xlsm', '.xlsx', '.xlt', '.xltm', '.xltx', '.fodp', '.odp', '.otp','.doc', '.docm', '.docx', '.dot', '.dotm', '.dotx', '.epub', '.fodt', '.htm', '.html', '.mht', '.odt', '.ott', '.rtf', '.txt', '.djvu', '.xps', '.wps','.pptx','.pdf','.PDF']
             let arr = []
+            //如果带有(重命名)-前缀 只允许进行重命名操作
+            const regExp = /^\(重命名\)-/
+            if(regExp.test(clickRow.value.fileName)){
+               return arr = mouseCli.value.filter(item => item.name === "重命名")
+            }
             if (!(typeArr.includes(copyFileType.value) || canPreviewArray.includes(copyFileType.value))) {
-                arr = mouseCli.value.filter(item => item.name !== "预览")
+                arr = mouseCli.value.filter(item => item.name !== "打开")
             } else {
                 arr = toRaw(mouseCli.value)
             }
@@ -2892,6 +2914,12 @@ p {
         vertical-align: middle;
     }
 }
+.hasLine{
+    border-top: 1px solid #C1CCE3;
+}
+.btmLine{
+    border-bottom: 1px solid #C1CCE3;
+}
 
 .chooseSet:hover {
     width: 140px;

+ 4 - 2
src/views/system/user/profile/userInfo.vue

@@ -36,6 +36,7 @@ import {
   onBeforeMount,
   defineExpose,
   onDeactivated,
+  inject
 } from "vue";
 import { updateUserProfile,getUserProfile } from "@/api/system/user";
 import { encode, decode } from '@/utils/sm2util'
@@ -46,7 +47,7 @@ const props = defineProps({
 });
 
 const { proxy } = getCurrentInstance();
-
+const clickPath = inject("clickPath");
 const rules = ref({
   nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
   email: [{ required: false, message: "邮箱地址不能为空", trigger: "blur" }, { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
@@ -75,7 +76,8 @@ function submit() {
 };
 /** 关闭按钮 */
 function close() {
-  proxy.$tab.closePage();
+  // proxy.$tab.closePage();
+  clickPath(null,{label: "首页",path: "/home"})
 };
 const phoneNumChange = (num)=>{