瀏覽代碼

Merge remote-tracking branch 'origin/v3' into v3

wukai 1 年之前
父節點
當前提交
567f0377fc

+ 3 - 4
index.html

@@ -9,10 +9,9 @@
 		<link rel="icon" href="/favicon.ico">
 		<title>聚合智慧文档管理系统</title>
 		<!--引入onlyoffice组件-->
-		<!-- <script type="text/javascript" src="https://doc.jujutong.cloud:19443/web-apps/apps/api/documents/api.js" charset="utf-8" async></script> -->
-		<!-- <script type="text/javascript" src="http://192.168.1.28:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script> -->
-		<!-- <script type="text/javascript" src="http://8.142.173.95:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script> -->
-		<script type="text/javascript" src="https://192.168.1.28:19443/web-apps/apps/api/documents/api.js" charset="utf-8" async></script>
+		 <script type="text/javascript" src="https://192.168.1.28:19443/web-apps/apps/api/documents/api.js" charset="utf-8" async></script>
+		<!-- <script type="text/javascript" src="http://http://8.142.173.95:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script> -->
+<!--		<script type="text/javascript" src="http://192.168.188.88:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script>-->
 		<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
 		<style>
 			html,

+ 12 - 14
src/layout/indexCommon.vue

@@ -27,9 +27,9 @@
               </div>
               <template #dropdown>
                 <el-dropdown-menu>
-                  <!-- <router-link to="/user/profile">
+                  <router-link to="/user/profile">
                     <el-dropdown-item>个人中心</el-dropdown-item>
-                  </router-link> -->
+                  </router-link>
                   <el-dropdown-item divided command="logout">
                     <span>退出登录</span>
                   </el-dropdown-item>
@@ -76,7 +76,7 @@
                 <template #label>
                   <div class="tab_pane" @click="paneClick(item)">
                     <div class="tab_text">{{ item.label }}</div>
-                    <img v-if="item.label != '首页' && item.label != '个人中心'" src="@/assets/images/close.png" @click="closeTab(item, index, $event)"
+                    <img v-if="item.label != '首页'" src="@/assets/images/close.png" @click="closeTab(item, index, $event)"
                       alt="" />
                   </div>
                   <!-- <router-link
@@ -251,8 +251,7 @@ const iFrameData = ref(JSON.parse(sessionStorage.getItem('fileTabData')) || [
 let tabIndex = 2;
 const editableTabsValue = ref(JSON.parse(sessionStorage.getItem('editableTabsValue')) || "/index");
 // const editableTabsValue = ref("/index");
-// const editableTabs = ref(JSON.parse(sessionStorage.getItem('tabData')) || [{ label: '首页', path: '/reindex' },{ label: '个人中心', path: '/user/profile' }]);
-const editableTabs = ref([{ label: '首页', path: '/reindex' },{ label: '个人中心', path: '/user/profile' }]);
+const editableTabs = ref(JSON.parse(sessionStorage.getItem('tabData')) || [{ label: '首页', path: '/reindex' }]);
 
 // const removeTab = (targetName) => {
 //   const tabs = editableTabs.value;
@@ -499,7 +498,6 @@ const clickPath = (index, items) => {
   // editableTabs.value = arr;
   isSwitchFileIframe.value = false
   const arr = toRaw(editableTabs.value);
-  console.log('editableTabs.value', editableTabs.value)
   if (!arr.some((item) => item.label == items.label)) {
     editableTabs.value.push({
       label: items.label,
@@ -517,7 +515,6 @@ const clickPath = (index, items) => {
 const clickTab = (item) => {
   let url = toRaw(item)
   setTimeout(() => {
-    console.log("toFileData.value", toFileData.value);
     if (toFileData.value) {
       localStorage.setItem("inChat", 0)
       // 去全文搜索单独判断
@@ -525,7 +522,6 @@ const clickTab = (item) => {
         // console.log("clickRowId.value", JSON.stringify(toRaw(toFileData.value).clickRowId));
         editableTabsValue.value = toFileData.value.path
         isAlive.value = true
-        console.log('route', route.path);
         // 如果当前已经在search就跳到中转页面
         if (route.path == "/search") {
           router.push({
@@ -552,7 +548,6 @@ const clickTab = (item) => {
         // console.log("clickRowId.value", JSON.stringify(toRaw(toFileData.value).clickRowId));
         editableTabsValue.value = toFileData.value.path
         isAlive.value = true
-        console.log('route', route.path);
           router.push({
             name: toFileData.value.path,
             state: {
@@ -576,7 +571,6 @@ const clickTab = (item) => {
     let regExp = new RegExp(/^\//);
     if (!regExp.test(url)) {
       const data = JSON.parse(url);
-      console.log("data", data);
       router.push({
         // path: "/fileEdit" + data.docId,
         path: "/fileEdit",
@@ -596,7 +590,6 @@ const clickTab = (item) => {
 };
 const paneClick = (item) => {
   // 可以拿到当前的标签对象
-  console.log(item, 'pane');
   isAlive.value = true;
   isSwitchFileIframe.value = false
   // console.log("paneItem", item);
@@ -611,7 +604,6 @@ const paneClick = (item) => {
 // 点击文件标签
 const filePaneClick = (item) => {
   localStorage.setItem("inChat", 0)
-  console.log("filePaneClickitem", item);
   isSwitchFileIframe.value = true
   const row = toRaw(item);
   const arr = iFrameData.value.map((par) => {
@@ -835,8 +827,14 @@ const iframeSize = (par,history) => {
   const outIframe = document.getElementById("iframe" + par.id);
   const inIframe =
     outIframe.contentDocument.getElementsByTagName("iframe")[0];
-  // console.log('outIframe', outIframe.parentElement);
-  // console.error(outIframe.parentElement);
+  if(inIframe==null){
+    setTimeout(() => {
+      iframeSize(id)
+    }, 500);
+    return
+  }
+  console.log('outIframe', outIframe.parentElement);
+  console.error(outIframe.parentElement);
   inIframe.style.height = outIframe.style.height =
     outIframe.parentElement.offsetHeight + "px";
   inIframe.style.width = outIframe.style.width =

+ 25 - 1
src/main.js

@@ -101,4 +101,28 @@ app.use(ElementPlus, {
 })
 app.mount('#app')
 window.localStorage.removeItem('noreadlist')
-window.localStorage.removeItem('inChat')
+window.localStorage.removeItem('inChat')
+//禁止复制
+document.addEventListener('copy', (event) => {
+    event.clipboardData.setData('text/plain', '')
+    event.preventDefault();
+    event.stopPropagation();
+    return;    
+});
+//禁止剪切
+document.addEventListener('cut', (event) => {
+    event.clipboardData.setData('text/plain', '')
+    event.preventDefault();
+    event.stopPropagation();
+    return;
+});
+//禁用浏览器 默认右键菜单
+document.oncontextmenu = new Function("return false;");
+//禁用F12
+document.onkeydown = document.onkeyup = document.onkeypress = function(event) {
+    var e = event || window.event || arguments.callee.caller.arguments[0];
+    if (e && e.keyCode == 123) {
+            e.returnValue = false;
+            return (false);
+    }
+}

+ 9 - 16
src/router/index.js

@@ -98,6 +98,15 @@ export const constantRoutes = [{
 		},
 	},
 	{
+	    path: '/user/profile',
+	    component: () => import('@/views/system/user/profile/index'),
+	    name: 'Profile',
+	    meta: {
+	    	title: '个人中心',
+	    	icon: 'user'
+	    }
+	},
+	{
 		path: 'swagger',
 		component: () => import('@/views/tool/swagger/index.vue'),
 		name: 'swagger',
@@ -363,22 +372,6 @@ export const constantRoutes = [{
 //     // }
 //   ]
 // },
-
-{
-	path: '/user',
-	component: Layout,
-	hidden: true,
-	redirect: 'noredirect',
-	children: [{
-		path: 'profile',
-		component: () => import('@/views/system/user/profile/index'),
-		name: 'Profile',
-		meta: {
-			title: '个人中心',
-			icon: 'user'
-		}
-	},]
-},
 	// {
 	//   path: '/indexCommons',
 	//   hidden: true,

+ 2 - 2
src/store/modules/websocket.js

@@ -33,7 +33,7 @@ const useWebsoctStore = defineStore('websoct', {
       })
 
       this.socket.addEventListener("message", (event) => {
-        console.log('event发送消息', event)
+        // console.log('event发送消息', event)
         const message=event.data!='连接成功'?JSON.parse(JSON.stringify(event.data)):''
         if(message=='') return;
         this.messOne=event.data!='连接成功'?JSON.parse(event.data):{}
@@ -58,7 +58,7 @@ const useWebsoctStore = defineStore('websoct', {
       })
     },
     sendMessage(message) {
-      if(this.lastSendTime>0 && (new Date().getTime()- this.lastSendTime)<1000){
+      if(this.lastSendTime>0 && (new Date().getTime()- this.lastSendTime)<500){
         return new Promise((resolve, reject) => {
             ElMessage({ message: "消息发送频率太快", type: "error" });
             reject('发送频率太快')

+ 4 - 4
src/utils/index.js

@@ -21,7 +21,7 @@ export function formatDate(cellValue) {
  * @param {string} fileType
  */
 export const canPreviewFile = (fileType)=>{
-    const array = ['.doc', ".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 array = ['.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']
     if(array.includes(fileType)){
       return true
     }
@@ -59,9 +59,9 @@ export const rightMenuRole = (role,arr)=>{
 export const publicRightMenuRole = (role,arr)=>{
   // console.log('role',role);
   // console.log('arr',arr);
-  if(!role.some(item=>item == "download")){
-    arr = arr.filter(item => item.name !== "下载")
-  }
+  // if(!role.some(item=>item == "download")){
+  //   arr = arr.filter(item => item.name !== "下载")
+  // }
   if(!role.some(item=>item == "edit")){
     arr = arr.filter(item => item.name !== "在线编辑")
   }

+ 1 - 1
src/views/biz/level/index.vue

@@ -8,7 +8,7 @@
 			<span>内容加密:对文档本身进行私有算法加密混淆,仅本软件能解密打开</span>
 			<span>安全访问二次认证:访问文档时需要再次输入登录密码</span>
 			<span>私有安全访问码:访问文档时需要输入自定义的访问密码,创建文档时定义</span>
-			<span>内容防复制:预览状态下复制文档内容到贴板</span>
+			<span>内容防复制:预览状态下复制文档内容到贴板</span>
 			<span>防拍照:预留功能,实现难度大</span>
 		</div>
 		<el-table v-loading="loading" :data="levelList" @selection-change="handleSelectionChange">

+ 2 - 2
src/views/department/MyFile.vue

@@ -753,7 +753,7 @@ export default {
             thisFolder.value = row
             console.log('row2',row);
             // topPath.value = row.dirPath
-            if(row.isEncrypt === "Y"){
+            if(row.isEncrypt === "Y" && row.encryptLevel){
                 getLeveldetailFn(row.encryptLevel)
             }else{
                 thisFolderRole.value = {}
@@ -1218,7 +1218,7 @@ export default {
             }else{
                 row =thisFolder.value
             }
-            if(row.isEncrypt === "Y"){
+            if(row.isEncrypt === "Y" && row.encryptLevel){
                 getLeveldetailFn(row.encryptLevel)
             }else{
                 thisFolderRole.value = {}

+ 11 - 7
src/views/department/modalComponebts/CreateFloder.vue

@@ -12,7 +12,7 @@
                             <el-radio :label="2">组织目录</el-radio>
                         </el-radio-group>
                     </el-form-item>
-                   <template v-if="(boserForm.dirType === 2 || thisType.dirType == '2')">
+                   <template v-if="(boserForm.dirType === 2 || thisType.dirType == '2') && free">
                         <template v-if="!upFolderData">
                             <el-form-item label="是否加密" v-if="!FolderRole.levelCode || free">
                                 <el-switch v-model="boserForm.isEncrypt" active-value="Y" inactive-value="N" />
@@ -96,12 +96,12 @@ export default {
         },
         thisRole: {
             type: Object,
-            required: true,
+            // required: true,
             default: ()=>{},
         },
         upFolderData: {
             type: Object,
-            required: true,
+            // required: true,
             default: ()=>{},
         },
         refreshFile: Function,
@@ -193,15 +193,17 @@ export default {
                     })
                 } else {
                     let query = {}
-                    if(FolderRole.levelCode){
+                    if(FolderRole.levelCode || thisRole.length ||thisType.dirType == "2"){
                         //父级有权限自动继承 没有就用添加的值
                         query={
                             "dirName": boserForm.value.dirName,
                             "parentId": newdrid - 0,
                             "spaceId": newspid - 0,
-                            "dirType":boserForm.value.dirType,
+                            "dirType":2,
                             "isEncrypt":"Y",
-                            "encryptLevel":FolderRole.levelCode
+                            "encryptLevel":FolderRole.levelCode,
+                            "users":users.value,
+                            "dirRole":thisRole.length?thisRole.join(','):''
                         }
                         console.log('query',query);
                         console.log('FolderRole',FolderRole);
@@ -212,7 +214,9 @@ export default {
                             "spaceId": newspid - 0,
                             "dirType":boserForm.value.dirType,
                             "isEncrypt":boserForm.value.isEncrypt,
-                            "encryptLevel":(boserForm.value.isEncrypt == "Y" && boserForm.value.dirType == "2")?boserForm.value.encryptLevel:null
+                            "encryptLevel":(boserForm.value.isEncrypt == "Y" && boserForm.value.dirType == "2")?boserForm.value.encryptLevel:null,
+                            "users":users.value,
+                            "dirRole":thisRole.length?thisRole.join(','):''
                         }
                     }
                     if(thisRole.length){

+ 7 - 7
src/views/liveChat/index.vue

@@ -106,7 +106,6 @@ const getMsgList = async () => {
       }
     });
     tmpMsgList.value = []
-    console.log("临时缓存消息处理完成:",searchData.value)
   }
   if (sendCont.data.toId) {
     //调用聊天记录
@@ -137,7 +136,7 @@ const msgRecordEvent = async (toIdValue) => {
   resMsgData.rows.map((i) => (i.isForward = false));
   chatRecords.data = resMsgData.rows.reverse();
   const PageNum = Math.ceil(chatRecords.data.length / 10) + 1;
-  if (PageNum * 10 >= resMsgData.total && !noMes.value) {
+  if (PageNum * 10 > resMsgData.total && !noMes.value) {
     loading.value = false;
     noMes.value = false;
   }
@@ -350,13 +349,14 @@ const handleNewMessage = async () => {
 watchEffect(async() => {
   let newMessages = {}
   newMessages = websoctStore.messOne  
-  console.log("===============有新消息了:",newMessages)
+  // console.log("===============有新消息了:",newMessages)
   if(router.currentRoute.value.path!='/index' || newMessages.fromId==null) return;
   //此处判断messOne是否已发生更改,如果还未发生更改则清除该消息
   if(websoctStore.messOne.fromId==newMessages.fromId){    
+    noMes.value = false;
     websoctStore.messOne={}
   }
-  console.log("clickPersonId:",clickPersonId.value)
+  // console.log("clickPersonId:",clickPersonId.value)
   if(getchatUserState){
     //会话列表还处理完成,临时缓存消息
     tmpMsgList.value.push(newMessages)
@@ -418,7 +418,7 @@ const loadPreviousPage = async () => {
       i.createTime = i.createTime.substring(11);
   });
   noMes.value = false;
-  if (currentPageNum * 10 >= resMsgData.total && !noMes.value) {
+  if (currentPageNum * 10 > resMsgData.total && !noMes.value) {
     loading.value = false;
     noMes.value = true;
     return;
@@ -511,7 +511,7 @@ const formatText = (text) => {
       })
   };
 const headError=(ind,item)=>{
-  console.log("头像加载失败:",ind)
+  // console.log("头像加载失败:",ind)
   // item.fromAvatar=item.toAvatar=item.avatar=null;
 };
 // 滚动翻页========
@@ -642,7 +642,7 @@ onMounted(() => {
           <!-- 聊天 -->
           <el-main
             class="right-container"
-            @mousewheel="handleScroll"
+            @wheel="handleScroll"
             ref="mainContainer"
           >
             <div v-loading="loading"></div>

+ 2 - 2
src/views/myfile/MyFile.vue

@@ -415,7 +415,7 @@
                 @closeImgPreview="closeImgPreview"></ImgPreview>
             <div>
                 <FileTree v-if="fileTrees" :fileTrees="fileTrees" :newSpaceId="newSpaceId" :fileId="clickRowId"
-                    @getChildren="getChildren" :copyOrMove="copyOrMove"></FileTree>
+                    @getChildren="getChildren" :copyOrMove="copyOrMove" :thisFolder="thisFolder.dirId"></FileTree>
             </div>
             <!-- 穿梭框 -->
             <div>
@@ -1827,7 +1827,7 @@ export default {
             getAllTop()
         }
         const upBefore = (file)=>{
-            // console.log('file',file.size);
+            console.log('file',file);
             const maxSize = (maxFileSize.value-0)*1024*1024
             // console.log('maxSize',maxSize);
             if(file.size>maxSize){

+ 10 - 0
src/views/myfile/components/FileTree.vue

@@ -1,6 +1,7 @@
 <template>
     <div>
         <el-dialog v-model="treeOpen" :title="options" width="30%" :close-on-click-modal="false">
+              <el-tree v-if="!changeMes" :data="thisFoder" :props="defaultProps" @node-click="handleNodeClick" />
             <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick" />
             <template #footer>
                 <span class="dialog-footer">
@@ -34,6 +35,10 @@ export default {
         copyOrMove: {
             type: Number,
             required: true
+        },
+        thisFolder: {
+            type: Number,
+            required: true
         }
     },
     setup(props, { emit }) {
@@ -46,6 +51,10 @@ export default {
         let treeOpen = ref(false)
         let options = ref("复制到")
         let treeData = ref([])
+        let thisFoder = ref([{
+            label:'当前文件夹',
+            id:props.thisFolder - 0,
+        }])
         let defaultProps = ref({
             label: "label",
             value: "id",
@@ -118,6 +127,7 @@ export default {
             spaceIds,
             fileIds,
             changeMes,
+            thisFoder
         }
     },
 }

+ 13 - 14
src/views/myjoin/MyJoin.vue

@@ -11,19 +11,18 @@
                         <div>
                             <el-table @row-contextmenu="handleRowClick" :data="myEjoy" style="width: 100%;cursor: pointer;" @row-click="rowJoinClickFN">
                                 <!-- <el-table-column type="selection" width="55" /> -->
-                                <el-table-column label="名称" width="200">
+                                <el-table-column label="名称" width="280">
                                     <template #default="scope">
                                         <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="juzhong">
-                                            <el-icon v-if="collectImg" class="juli">
-                                                <Star />
-                                            </el-icon>
-                                            <img v-else src="../../assets/images/yellowstar.png" alt="" class="juli">
                                             <img :src="getImage(scope.row.fileType)" alt="" class="juli">
-                                            <span>{{ scope.row.fileName }}</span>
+                                            <el-tooltip class="box-item" effect="dark" placement="top"
+                                            :show-after="1000" :content="scope.row.fileName">
+                                                 <span>{{ scope.row.fileName }}</span>
+                                             </el-tooltip>
                                         </span>
                                     </template>
                                 </el-table-column>
-                                <el-table-column prop="createTime" label="时间" sortable width="180" />
+                                <el-table-column prop="createTime" label="时间" sortable width="280" />
                                 <el-table-column prop="fileType" label="类型" />
                                 <el-table-column label="大小">
                                     <template #default="scope">
@@ -46,19 +45,19 @@
                     <el-tab-pane label="我参与的" name="second">
                         <el-table :data="myPack" style="width: 100%;cursor: pointer;" @row-click="rowJoinClickFN">
                             <!-- <el-table-column type="selection" width="55" /> -->
-                            <el-table-column label="名称" width="200">
+                            <el-table-column label="名称" width="280">
                                 <template #default="scope">
                                     <span style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" class="juzhong">
-                                        <el-icon v-if="collectImg" class="juli">
-                                            <Star />
-                                        </el-icon>
-                                        <img v-else src="../../assets/images/yellowstar.png" alt="" class="juli">
                                         <img :src="getImage(scope.row.fileType)" alt="" class="juli">
-                                        <span>{{ scope.row.fileName }}</span>
+                                        
+                                        <el-tooltip class="box-item" effect="dark" placement="top"
+                                            :show-after="1000" :content="scope.row.fileName">
+                                            <span>{{ scope.row.fileName }}</span>
+                                        </el-tooltip>
                                     </span>
                                 </template>
                             </el-table-column>
-                            <el-table-column prop="createTime" label="时间" sortable width="180" />
+                            <el-table-column prop="createTime" label="时间" sortable width="280" />
                             <el-table-column prop="fileType" label="类型" />
                             <el-table-column label="大小">
                                 <template #default="scope">

+ 5 - 4
src/views/publicment/MyFile.vue

@@ -383,7 +383,7 @@
                 @closeImgPreview="closeImgPreview"></ImgPreview>
             <div>
                 <FileTree v-if="fileTrees" :fileTrees="fileTrees" :newSpaceId="newSpaceId" :fileId="clickRowId"
-                    @getChildren="getChildren" :copyOrMove="copyOrMove"></FileTree>
+                    @getChildren="getChildren" :copyOrMove="copyOrMove" :thisFolder="thisFolder.dirId"></FileTree>
             </div>
             <!-- 穿梭框 -->
             <div>
@@ -761,7 +761,7 @@ export default {
             thisFolder.value = row
             // console.log('row2',row);
             //  topPath.value = row.dirPath
-            if(row.isEncrypt === "Y"){
+            if(row.isEncrypt === "Y" && row.encryptLevel){
                 getLeveldetailFn(row.encryptLevel)
             }else{
                 thisFolderRole.value = {}
@@ -1220,7 +1220,7 @@ export default {
             }else{
                 row =thisFolder.value
             }
-            if(row.isEncrypt === "Y"){
+            if(row.isEncrypt === "Y" && row.encryptLevel){
                 getLeveldetailFn(row.encryptLevel)
             }else{
                 thisFolderRole.value = {}
@@ -1282,7 +1282,7 @@ export default {
                         type: "success"
                     })
                     fileNameChange.value = false
-                    getAllTop()
+                    refreshFile()
                 }
             })
         }
@@ -1304,6 +1304,7 @@ export default {
         }
         function getChildren(data) {
             fileTrees.value = data
+            refreshFile()
         }
         function getCback(data) {
             thanks.value = data

+ 10 - 0
src/views/publicment/components/FileTree.vue

@@ -1,6 +1,7 @@
 <template>
     <div>
         <el-dialog v-model="treeOpen" :title="options" width="30%" :close-on-click-modal="false">
+            <el-tree v-if="!changeMes" :data="thisFoder" :props="defaultProps" @node-click="handleNodeClick" />
             <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick" />
             <template #footer>
                 <span class="dialog-footer">
@@ -34,6 +35,10 @@ export default {
         copyOrMove: {
             type: Number,
             required: true
+        },
+        thisFolder: {
+            type: Number,
+            required: true
         }
     },
     setup(props, { emit }) {
@@ -46,6 +51,10 @@ export default {
         let treeOpen = ref(false)
         let options = ref("复制到")
         let treeData = ref([])
+        let thisFoder = ref([{
+            label:'当前文件夹',
+            id:props.thisFolder - 0,
+        }])
         let defaultProps = ref({
             label: "label",
             value: "id",
@@ -118,6 +127,7 @@ export default {
             spaceIds,
             fileIds,
             changeMes,
+            thisFoder
         }
     },
 }

+ 11 - 7
src/views/publicment/modalComponebts/CreateFloder.vue

@@ -12,7 +12,7 @@
                             <el-radio :label="2">组织目录</el-radio>
                         </el-radio-group>
                     </el-form-item>
-                   <template v-if="boserForm.dirType === 2 || thisType.dirType == '2'">
+                   <template v-if="(boserForm.dirType === 2 || thisType.dirType == '2') && free">
                         <template v-if="!upFolderData">
                             <el-form-item label="是否加密" v-if="!FolderRole.levelCode || free">
                                 <el-switch v-model="boserForm.isEncrypt" active-value="Y" inactive-value="N" />
@@ -96,12 +96,12 @@ export default {
         },
         thisRole: {
             type: Object,
-            required: true,
+            // required: true,
             default: ()=>{},
         },
         upFolderData: {
             type: Object,
-            required: true,
+            // required: true,
             default: ()=>{},
         },
         refreshFile: Function,
@@ -192,15 +192,17 @@ export default {
                     })
                 } else {
                     let query = {}
-                    if(FolderRole.levelCode){
+                    if(FolderRole.levelCode || thisRole.length ||thisType.dirType == "2"){
                         //父级有权限自动继承 没有就用添加的值
                         query={
                             "dirName": boserForm.value.dirName,
                             "parentId": newdrid - 0,
                             "spaceId": newspid - 0,
-                            "dirType":boserForm.value.dirType,
+                            "dirType":2,
                             "isEncrypt":"Y",
-                            "encryptLevel":FolderRole.levelCode
+                            "encryptLevel":FolderRole.levelCode,
+                            "users":users.value,
+                            "dirRole":thisRole.length?thisRole.join(','):''
                         }
                         console.log('query',query);
                         console.log('FolderRole',FolderRole);
@@ -211,7 +213,9 @@ export default {
                             "spaceId": newspid - 0,
                             "dirType":boserForm.value.dirType,
                             "isEncrypt":boserForm.value.isEncrypt,
-                            "encryptLevel":(boserForm.value.isEncrypt == "Y" && boserForm.value.dirType == "2")?boserForm.value.encryptLevel:null
+                            "encryptLevel":(boserForm.value.isEncrypt == "Y" && boserForm.value.dirType == "2")?boserForm.value.encryptLevel:null,
+                            "users":users.value,
+                            "dirRole":thisRole.length?thisRole.join(','):''
                         }
                     }
                     if(thisRole.length){

+ 14 - 5
src/views/system/user/profile/index.vue

@@ -1,5 +1,5 @@
 <template>
-   <div class="app-container">
+   <div class="app-container"  :style="'height:' + height">
       <div class="main">
          <div class="right-main">
             <el-card class="box-card">
@@ -69,7 +69,8 @@ import userAvatar from "./userAvatar";
 import userInfo from "./userInfo";
 import resetPwd from "./resetPwd";
 import { getUserProfile } from "@/api/system/user";
-
+import { onMounted } from "vue";
+let height = ref(document.documentElement.clientHeight - 16 + "px;");
 const activeTab = ref("userinfo");
 const state = reactive({
   user: {},
@@ -86,12 +87,14 @@ function getUser() {
 };
 
 getUser();
+onMounted(() => {
+   height.value = document.documentElement.clientHeight - document.getElementsByClassName("tab_box")[0].offsetHeight-8-document.getElementsByClassName("nav")[0].offsetHeight -26 + "px";
+})
 </script>
 <style lang="scss" scoped>
 
 .app-container {
-    padding: 20px;
-    height: 89vh; /* 设置高度为视口的100% */
+    padding: 0;
     display: flex;
     flex-direction: column;
   }
@@ -99,12 +102,18 @@ getUser();
    display: flex;justify-content: space-around;height: 100%;
   }
   .right-main{
-   width: 36%;margin-right: 16px;height: 100%;
+   width: 30%;
+   margin-right: 6px;
+   height: 100%;
    border: 1px solid #C1CCE3;
+   border-radius: 8px;
+   background: #fff;
   }
   .left-main{
    flex: 1;height: 100%;
    border: 1px solid #C1CCE3;
+   border-radius: 8px;
+   background: #fff;
   }
   :deep(.el-card){
    border: none !important;