Browse Source

私有码添加完成

liuQiang 1 year ago
parent
commit
be196f132e

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

@@ -180,7 +180,7 @@ onMounted(async () => {
   overflow-y: auto;
   .one_box {
     width: 300px;
-    height: 420px;
+    height: 220px;
     border: 1px solid #c1cce3;
     box-sizing: border-box;
     margin-bottom: 16px;

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

@@ -735,7 +735,7 @@ export default {
         filePageNum.value = 1
         if(fileGrid.value == 1){
             fileGrid.value = 0 // 变宫格
-            pageSize.value = 20+pageSize.value
+            pageSize.value = 30+pageSize.value
             if(!thisFolder.value.dirId)return
             const query = `${thisFolder.value.dirId}?pageSize=${pageSize.value}&pageNum=${filePageNum.value}`
             const res = await myfile.getById(query)
@@ -1710,6 +1710,7 @@ export default {
             // console.log('getLeveldetailFn',res);
             if(res.code === 200){
                 thisFolderRole.value = res.data
+                thisFolderRole.value.accessCode = thisFolder.value.accessCode
             }
             // console.log('thisFolderRole',thisFolderRole.value);
         } 
@@ -1945,7 +1946,7 @@ export default {
                 if(!folder.value.length){
                     pageSize.value = 80
                 }else{
-                    pageSize.value = 20+pageSize.value
+                    pageSize.value = 30+pageSize.value
                 }
             }
             setTimeout(()=>{

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

@@ -22,6 +22,9 @@
                                     <el-radio :label="item.levelCode" v-for="item in levelList" :key="item">{{item.levelName}}</el-radio>
                                 </el-radio-group>
                             </el-form-item>
+                            <el-form-item label="私有访问码" v-if=" (!FolderRole.levelCode || free) && boserForm.isEncrypt === 'Y' && needCode">
+                                <el-input v-model="boserForm.accessCode" type="password" show-password />
+                            </el-form-item>
                         </template>
                         <template v-if="(thisRole.length<1 || free) && (free || (!free && thisType.dirType != '2' ))">
                             <el-form-item v-if="!FolderRole.levelCode || free" label="成员权限">
@@ -52,11 +55,12 @@
 </template>
 
 <script>
-import { ref, onMounted, toRef,toRaw,inject } from 'vue';
+import { ref, onMounted, toRef,toRaw,inject ,watch} from 'vue';
 import documents from '../../../api/document/document';
 import {listUser} from '../../../api/biz/user';
 import { getLevel } from '@/api/level/level.js';
 import { ElMessage } from 'element-plus';
+import { sm3 ,sm2} from "sm-crypto";
 import CreateTasnsfer from '../components/createTasnsfer.vue'
 
 export default {
@@ -138,9 +142,11 @@ export default {
             isEncrypt:upFolderData?upFolderData.isEncrypt:"Y",
             encryptLevel:upFolderData?upFolderData.encryptLevel:"L1",
             memberRoles:upFolderData?upFolderData.dirRole.split(','):[],
-            users:upFolderData?upFolderData.users:[]
+            users:upFolderData?upFolderData.users:[],
+            accessCode:upFolderData?upFolderData.accessCode:''
         })
         const levelList = ref([])
+        const needCode = ref(false) // 需要私有码
         function inital() {
             console.log(free, 'free');
             addBoser.value = result
@@ -158,8 +164,15 @@ export default {
                 })
             } else {
                 if (free === 1) {
+                    if (boserForm.value.accessCode === '' && needCode) {
+                        ElMessage({
+                            type: "error",
+                            message: "私有访问码不能为空"
+                        })
+                        return
+                    }
                     let query = {}
-                    if(boserForm.value.dirType === 2){
+                    if(boserForm.value.dirType === 2){ // 组织目录
                         query = {
                             "dirName": boserForm.value.dirName,
                             "parentId": drId - 0,
@@ -168,7 +181,8 @@ export default {
                             "dirRole":boserForm.value.memberRoles.join(','),
                             "users":boserForm.value.users,
                             "isEncrypt":boserForm.value.isEncrypt,
-                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                            "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                         }
                     }else{
                         query = {
@@ -204,11 +218,19 @@ export default {
                             "isEncrypt":"Y",
                             "encryptLevel":FolderRole.levelCode,
                             "users":thisType.dirType === "1"?boserForm.value.users:users.value,
-                            "dirRole":thisRole.length?thisRole.join(','):''
+                            "dirRole":thisRole.length?thisRole.join(','):'',
+                            "accessCode":FolderRole.accessCode
                         }
                         console.log('query',query);
                         console.log('FolderRole',FolderRole);
                     }else{
+                        if (boserForm.value.accessCode === '' && needCode) {
+                            ElMessage({
+                                type: "error",
+                                message: "私有访问码不能为空"
+                            })
+                            return
+                        }
                         query={
                             "dirName": boserForm.value.dirName,
                             "parentId": newdrid - 0,
@@ -217,7 +239,8 @@ export default {
                             "isEncrypt":boserForm.value.isEncrypt,
                             "encryptLevel":(boserForm.value.isEncrypt == "Y" && boserForm.value.dirType == "2")?boserForm.value.encryptLevel:null,
                             "users":thisType.dirType === "1"?boserForm.value.users:users.value,
-                            "dirRole":thisType.dirType === "1"?boserForm.value.memberRoles.join(','):thisRole.join(',')
+                            "dirRole":thisType.dirType === "1"?boserForm.value.memberRoles.join(','):thisRole.join(','),
+                            "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                         }
                     }
                     console.log('free0query',query);
@@ -247,6 +270,13 @@ export default {
             }
             let query  = {}
             if(free === 1){
+                if (boserForm.value.accessCode === '' && needCode) {
+                        ElMessage({
+                            type: "error",
+                            message: "私有访问码不能为空"
+                        })
+                        return
+                    }
                  query ={
                     "dirName": boserForm.value.dirName,
                     "parentId": drId - 0,
@@ -256,7 +286,8 @@ export default {
                     "dirRole":boserForm.value.memberRoles.join(','),
                     "users":boserForm.value.users,
                     "isEncrypt":boserForm.value.isEncrypt,
-                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                    "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                 }
             }else{
                  query ={
@@ -268,7 +299,8 @@ export default {
                     "dirRole":boserForm.value.memberRoles.join(','),
                     "users":boserForm.value.users,
                     "isEncrypt":boserForm.value.isEncrypt,
-                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                    "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                 }
             }
             
@@ -303,13 +335,25 @@ export default {
                 delete item['disabled']
                 return item
             })
-            console.log('newArr',boserForm.value.users);
+            // console.log('newArr',boserForm.value.users);
         }
         const getUser =async  ()=>{
            const  res = await listUser({dirId:thisType.dirId})
-             console.log('getUser',res);
+            //  console.log('getUser',res);
              users.value = res.rows
         }
+        //监听加密等级
+        watch(() => boserForm.value.encryptLevel, (newValue, oldValue) => {
+            const thisRole = levelList.value.find(item=>item.levelCode == newValue)
+            // console.log('thisRole',thisRole);
+            if(thisRole.roles.l0700){
+                needCode.value = true
+            }else{
+                needCode.value = false
+            }
+        }, {
+        deep: true
+        });
         onMounted(() => {
             inital()
             getLevelList()
@@ -341,7 +385,8 @@ export default {
             getUser,
             users,
             sureUpBoser,
-            upFirstFolderData
+            upFirstFolderData,
+            needCode
         }
     },
     components: {

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

@@ -746,7 +746,7 @@ export default {
             filePageNum.value = 1
         if(fileGrid.value == 1){
             fileGrid.value = 0 // 变宫格
-            pageSize.value = 20+pageSize.value
+            pageSize.value = 30+pageSize.value
             if(!thisFolder.value.dirId)return
             const query = `${thisFolder.value.dirId}?pageSize=${pageSize.value}&pageNum=${filePageNum.value}`
             const res = await myfile.getById(query)
@@ -1629,7 +1629,7 @@ export default {
             e.stopPropagation();
             // thisFolder.value = ''   //先清空
             let thisRow = toRaw(row)
-            // console.log('thisFolder',thisFolder.value);
+            console.log('row',row);
             clickRow.value = thisRow
             copyFolderName.value = row.dirName
             //  唤出右键菜单,思路:获取鼠标位置来定位菜单
@@ -1831,6 +1831,7 @@ export default {
             // console.log('getLeveldetailFn',res);
             if (res.code === 200) {
                 thisFolderRole.value = res.data
+                thisFolderRole.value.accessCode = thisFolder.value.accessCode
             }
             // console.log('thisFolderRole',thisFolderRole.value);
         }
@@ -1984,7 +1985,7 @@ export default {
                 if(!folder.value.length){
                     pageSize.value = 80
                 }else{
-                    pageSize.value = 20+pageSize.value
+                    pageSize.value = 30+pageSize.value
                 }
             }else{
                 pageSize.value = 20
@@ -2021,7 +2022,7 @@ export default {
                 if(fileGrid.value == 0){
                     pageSize.value = 10
                     }else{
-                    pageSize.value = 40
+                    pageSize.value = 50
                 }
                 fileHeight.value = '38vh'
                 if(!thisFolder.value.dirId)return

+ 47 - 11
src/views/myfile/modalComponebts/CreateFloder.vue

@@ -20,6 +20,9 @@
                             <el-radio :label="item.levelCode" v-for="item in levelList" :key="item">{{item.levelName}}</el-radio>
                         </el-radio-group>
                     </el-form-item>
+                     <el-form-item label="私有访问码" v-if="!(FolderRole && !free) && boserForm.isEncrypt === 'Y'&& needCode">
+                            <el-input v-model="boserForm.accessCode" type="password" show-password />
+                    </el-form-item>
                 </el-form>
                 <template #footer>
                     <span class="dialog-footer">
@@ -35,10 +38,11 @@
 </template>
 
 <script>
-import { ref, onMounted, toRef,toRaw,inject  } from 'vue';
+import { ref, onMounted, toRef,toRaw,inject ,watch } from 'vue';
 import documents from '../../../api/document/document';
 import { getLevel } from '@/api/level/level.js';
 import { ElMessage } from 'element-plus';
+import { sm3 ,sm2} from "sm-crypto";
 export default {
     props: {
         folderCase: {
@@ -87,10 +91,12 @@ export default {
         let boserForm = ref({
             dirName: "",
             dirType:1,
-            isEncrypt:"Y",
-            encryptLevel:"L1"
+            isEncrypt:"N",
+            encryptLevel:"L1",
+            accessCode:''
         })
         const levelList = ref([])
+        const needCode = ref(false) // 需要私有码
         function inital() {
             console.log(free, 'free');
             addBoser.value = result
@@ -106,14 +112,22 @@ export default {
                     message: "目录名称不能为空"
                 })
             } else {
-                if (free === 1) {
+                if (free === 1) { //一级目录
+                    if (boserForm.value.accessCode === '' && needCode) {
+                        ElMessage({
+                            type: "error",
+                            message: "私有访问码不能为空"
+                        })
+                        return
+                    }
                     documents.addDocument(
                         {
                             "dirName": boserForm.value.dirName,
                             "parentId": drId - 0,
                             "spaceId": spId - 0,
                             "isEncrypt":boserForm.value.isEncrypt,
-                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                            "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                         }
                     ).then(res => {
                         if (res.code === 200) {
@@ -127,25 +141,34 @@ export default {
                         props.refreshFile()
                     })
                     console.log('1111', 1111)
-                } else {
+                } else {  //二级目录
                     let query = {}
-                    if(FolderRole){
+                    if(FolderRole){ // 如果是父级有权限就直接用父级
                         query={
                             "dirName": boserForm.value.dirName,
                             "parentId": newdrid - 0,
                             "spaceId": newspid - 0,
                             "isEncrypt":"Y",
-                            "encryptLevel":FolderRole.levelCode
+                            "encryptLevel":FolderRole.levelCode,
+                            "accessCode":FolderRole.accessCode
                         }
                         console.log('query',query);
                         console.log('FolderRole',FolderRole);
                     }else{
+                        if (boserForm.value.accessCode === '' && needCode) {
+                            ElMessage({
+                                type: "error",
+                                message: "私有访问码不能为空"
+                            })
+                            return
+                        }
                         query={
                             "dirName": boserForm.value.dirName,
                             "parentId": newdrid - 0,
                             "spaceId": newspid - 0,
                             "isEncrypt":boserForm.value.isEncrypt,
-                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                            "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                         }
                     }
                     documents.addDocument(
@@ -170,8 +193,20 @@ export default {
             if(res.rows){
                 levelList.value = res.rows
             }
-            // console.log(res);
+            // console.log('level',res);
         }
+        //监听加密等级
+        watch(() => boserForm.value.encryptLevel, (newValue, oldValue) => {
+            const thisRole = levelList.value.find(item=>item.levelCode == newValue)
+            console.log('thisRole',thisRole);
+            if(thisRole.roles.l0700){
+                needCode.value = true
+            }else{
+                needCode.value = false
+            }
+        }, {
+        deep: true
+        });
         onMounted(() => {
             inital()
             getLevelList()
@@ -190,7 +225,8 @@ export default {
             levelList,
             getLevelList,
             FolderRole,
-            free
+            free,
+            needCode
         }
     }
 }

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

@@ -744,7 +744,7 @@ export default {
         filePageNum.value = 1
         if(fileGrid.value == 1){
             fileGrid.value = 0 // 变宫格
-            pageSize.value = 20+pageSize.value
+            pageSize.value = 30+pageSize.value
             if(!thisFolder.value.dirId)return
             const query = `${thisFolder.value.dirId}?pageSize=${pageSize.value}&pageNum=${filePageNum.value}`
             const res = await myfile.getById(query)
@@ -1722,6 +1722,7 @@ export default {
             // console.log('getLeveldetailFn',res);
             if(res.code === 200){
                 thisFolderRole.value = res.data
+                thisFolderRole.value.accessCode = thisFolder.value.accessCode
             }
             // console.log('thisFolderRole',thisFolderRole.value);
         } 
@@ -1918,7 +1919,7 @@ export default {
                     if(fileGrid.value == 0){
                     pageSize.value = 10
                     }else{
-                    pageSize.value = 40
+                    pageSize.value = 50
                 }
                 fileHeight.value = '38vh'
                 if(!thisFolder.value.dirId)return
@@ -1963,7 +1964,7 @@ export default {
                 if(!folder.value.length){
                     pageSize.value = 80
                 }else{
-                    pageSize.value = 20+pageSize.value
+                    pageSize.value = 30+pageSize.value
                 }
             }
             setTimeout(()=>{

+ 55 - 10
src/views/publicment/modalComponebts/CreateFloder.vue

@@ -22,6 +22,9 @@
                                     <el-radio :label="item.levelCode" v-for="item in levelList" :key="item">{{item.levelName}}</el-radio>
                                 </el-radio-group>
                             </el-form-item>
+                            <el-form-item label="私有访问码" v-if=" (!FolderRole.levelCode || free) && boserForm.isEncrypt === 'Y' && needCode">
+                                <el-input v-model="boserForm.accessCode" type="password" show-password />
+                            </el-form-item>
                         </template>
                         <template v-if="(thisRole.length<1 || free) && (free || (!free && thisType.dirType != '2' ))">
                             <el-form-item v-if="!FolderRole.levelCode || free" label="成员权限">
@@ -52,11 +55,12 @@
 </template>
 
 <script>
-import { ref, onMounted, toRef,toRaw,inject } from 'vue';
+import { ref, onMounted, toRef,toRaw,inject ,watch} from 'vue';
 import documents from '../../../api/document/document';
 import {listUser} from '../../../api/biz/user';
 import { getLevel } from '@/api/level/level.js';
 import { ElMessage } from 'element-plus';
+import { sm3 ,sm2} from "sm-crypto";
 import CreateTasnsfer from '../components/createTasnsfer.vue'
 
 export default {
@@ -137,9 +141,11 @@ export default {
             isEncrypt:upFolderData?upFolderData.isEncrypt:"Y",
             encryptLevel:upFolderData?upFolderData.encryptLevel:"L1",
             memberRoles:upFolderData?upFolderData.dirRole.split(','):[],
-            users:upFolderData?upFolderData.users:[]
+            users:upFolderData?upFolderData.users:[],
+            accessCode:upFolderData?upFolderData.accessCode:''
         })
         const levelList = ref([])
+        const needCode = ref(false) // 需要私有码
         function inital() {
             console.log(free, 'free');
             addBoser.value = result
@@ -157,6 +163,13 @@ export default {
                 })
             } else {
                 if (free === 1) {
+                    if (boserForm.value.accessCode === '' && needCode) {
+                        ElMessage({
+                            type: "error",
+                            message: "私有访问码不能为空"
+                        })
+                        return
+                    }
                     let query = {}
                     if(boserForm.value.dirType === 2){
                         query = {
@@ -167,7 +180,8 @@ export default {
                             "dirRole":boserForm.value.memberRoles.join(','),
                             "users":boserForm.value.users,
                             "isEncrypt":boserForm.value.isEncrypt,
-                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                            "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                            "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                         }
                     }else{
                         query = {
@@ -203,11 +217,19 @@ export default {
                             "isEncrypt":"Y",
                             "encryptLevel":FolderRole.levelCode,
                             "users":thisType.dirType === "1"?boserForm.value.users:users.value,
-                            "dirRole":thisRole.length?thisRole.join(','):''
+                            "dirRole":thisRole.length?thisRole.join(','):'',
+                            "accessCode":FolderRole.accessCode
                         }
                         console.log('query',query);
                         console.log('FolderRole',FolderRole);
                     }else{
+                         if (boserForm.value.accessCode === '' && needCode) {
+                            ElMessage({
+                                type: "error",
+                                message: "私有访问码不能为空"
+                            })
+                            return
+                        }
                         query={
                             "dirName": boserForm.value.dirName,
                             "parentId": newdrid - 0,
@@ -216,7 +238,8 @@ export default {
                             "isEncrypt":boserForm.value.isEncrypt,
                             "encryptLevel":(boserForm.value.isEncrypt == "Y" && boserForm.value.dirType == "2")?boserForm.value.encryptLevel:null,
                             "users":thisType.dirType === "1"?boserForm.value.users:users.value,
-                            "dirRole":thisType.dirType === "1"?boserForm.value.memberRoles.join(','):thisRole.join(',')
+                            "dirRole":thisType.dirType === "1"?boserForm.value.memberRoles.join(','):thisRole.join(','),
+                             "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                         }
                     }
                     console.log('free0query',query);
@@ -247,6 +270,13 @@ export default {
             }
             let query  = {}
             if(free === 1){
+                if (boserForm.value.accessCode === '' && needCode) {
+                        ElMessage({
+                            type: "error",
+                            message: "私有访问码不能为空"
+                        })
+                        return
+                }
                  query ={
                     "dirName": boserForm.value.dirName,
                     "parentId": drId - 0,
@@ -256,7 +286,8 @@ export default {
                     "dirRole":boserForm.value.memberRoles.join(','),
                     "users":boserForm.value.users,
                     "isEncrypt":boserForm.value.isEncrypt,
-                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                    "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                 }
             }else{
                  query ={
@@ -268,7 +299,8 @@ export default {
                     "dirRole":boserForm.value.memberRoles.join(','),
                     "users":boserForm.value.users,
                     "isEncrypt":boserForm.value.isEncrypt,
-                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null
+                    "encryptLevel":boserForm.value.isEncrypt == "Y"?boserForm.value.encryptLevel:null,
+                    "accessCode":boserForm.value.accessCode?sm3(boserForm.value.accessCode):''
                 }
             }
                 console.log('query',query);
@@ -302,13 +334,25 @@ export default {
                 delete item['disabled']
                 return item
             })
-            console.log('newArr',boserForm.value.users);
+            // console.log('newArr',boserForm.value.users);
         }
         const getUser =async  ()=>{
            const  res = await listUser({dirId:thisType.dirId})
-             console.log('getUser',res);
+            //  console.log('getUser',res);
              users.value = res.rows
         }
+        //监听加密等级
+        watch(() => boserForm.value.encryptLevel, (newValue, oldValue) => {
+            const thisRole = levelList.value.find(item=>item.levelCode == newValue)
+            // console.log('thisRole',thisRole);
+            if(thisRole.roles.l0700){
+                needCode.value = true
+            }else{
+                needCode.value = false
+            }
+        }, {
+        deep: true
+        });
         onMounted(() => {
             inital()
             getLevelList()
@@ -340,7 +384,8 @@ export default {
             getUser,
             users,
             sureUpBoser,
-            upFirstFolderData
+            upFirstFolderData,
+            needCode
         }
     },
     components: {