liuQiang 1 vuosi sitten
vanhempi
commit
e709e8174d

+ 10 - 1
src/api/document/document.js

@@ -58,6 +58,14 @@ function fileTree(data){
         method:"get"
     })
 }
+// 新增
+function matches(data) {
+    return request({
+        url: `/biz/dir/matches`,
+        method: "post",
+        data,
+    })
+}
 export default {
     getALLdocument,
     addDocument,
@@ -66,5 +74,6 @@ export default {
     getTop,
     fileTree,
     getALLdocumentByType,
-    editFolerDocument
+    editFolerDocument,
+    matches
 }

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

@@ -434,7 +434,7 @@
     </historyList>
     <!-- 历史版本 -->
     <!-- 二次密码验证 -->
-    <inputPassword v-if="showInputPassword" @surePass="surePass" @closeIptPass="closeIptPass" :showInputPassword="showInputPassword"></inputPassword>
+    <inputPassword v-if="showInputPassword"  @sureCode="sureCode" :isCode="isCode" :inputTitle="inputTitle" @surePass="surePass" @closeIptPass="closeIptPass" :showInputPassword="showInputPassword"></inputPassword>
     <div v-loading.fullscreen="loadingPreview" v-if="loadingPreview" class="lodingBox"></div>
     <!-- 扫描文档 -->
     <ScanFile v-if="openScan" :openScan="openScan" :scannerFiles="scannerFiles" @saveScanFile="saveScanFile" @closeOpen="closeOpen"></ScanFile>
@@ -731,6 +731,8 @@ export default {
         const openScan = ref(false)//控制扫描文档显示
         const scanFileArr = ref([]) //认领的扫描文件数组
         const delMoreFolder = ref([])
+        const inputTitle = ref()//验证框标题
+        const isCode = ref(false)// 验证的类型
         const changeShow =async (fileGrids) => {
         filePageNum.value = 1
         if(fileGrid.value == 1){
@@ -946,7 +948,22 @@ export default {
         async function chooseSet(row, index, num) {
             // 权限控制
             if(thisFolderRole.value && thisFolderRole.value.roles){
-                if(thisFolderRole.value.roles.l0600){
+                if (thisFolderRole.value.roles.l0700) {
+                    const codeArr = localStorage.getItem('codeArr');
+                    let codeArrObj
+                    if(codeArr){
+                     codeArrObj = JSON.parse(codeArr)
+                    }
+                    if ((!codeArrObj) || !codeArrObj.some(item => item === clickRow.value.docId)) {
+                        chooseRow.value = row
+                        chooseNum.value = num
+                        inputTitle.value = '请输入私有安全访问码'
+                        isCode.value = true
+                        showInputPassword.value = true
+                        return
+                    }
+                    // console.log('needc');
+                }else if(thisFolderRole.value.roles.l0600){
                     const passArr = localStorage.getItem('passArr');
                     // console.log('passArr',passArr);
                     let passArrObj
@@ -956,6 +973,8 @@ export default {
                     if((!passArrObj) || !passArrObj.some(item=>item === clickRow.value.docId)){
                         chooseRow.value = row
                         chooseNum.value = num
+                        inputTitle.value = '请输入登录密码'
+                        isCode.value = false
                         showInputPassword.value = true
                         return
                     }
@@ -1751,6 +1770,44 @@ export default {
                 ElMessage({ message: "验证失败", type: "error" })
             }
         }
+        //输入私有码后
+        const sureCode =async (pass) => {
+            console.log('pass',pass);
+            // console.log('oldPass',passwordCookies);
+            // console.log('clickRow',clickRow);
+            const query={
+                code:pass,
+                dirId:thisFolder.value.dirId
+            }
+            const res = await documents.matches(query)
+            console.log('res',res);
+            showInputPassword.value = false
+            if (res.data) {
+                const codeArr = localStorage.getItem('codeArr');
+                // console.log('passArr',passArr);
+                if (!codeArr) {
+                    const newArr = []
+                    newArr.push(clickRow.value.docId)
+                    localStorage.setItem('codeArr', JSON.stringify(newArr))
+                } else {
+                    const codeArrObj = JSON.parse(codeArr)
+                    codeArrObj.push(clickRow.value.docId)
+                    localStorage.setItem('codeArr', JSON.stringify(codeArrObj))
+                }
+                // 设置销毁
+                setTimeout(() => {
+                    const codeArr = localStorage.getItem('codeArr');
+                    const codeArrObj = JSON.parse(codeArr)
+                    // console.log('```passArrObj',passArrObj);
+                    const newArr = codeArrObj.filter(item => item != clickRow.value.docId)
+                    // console.log('```newArr',newArr);
+                    localStorage.setItem('codeArr', JSON.stringify(newArr))
+                }, 1000 * 30)
+                chooseSet(chooseRow.value, null, chooseNum.value)
+            } else {
+                ElMessage({ message: "验证失败", type: "error" })
+            }
+        }
         const downLoadfile = ()=>{
             myfile.fileDown(clickRow.value.docId).then(res=>{
                  var reader = new FileReader();
@@ -2206,7 +2263,10 @@ export default {
             setImg,
             fileHeight,
             pageSize,
-            delMoreFolder
+            delMoreFolder,
+            inputTitle,
+            isCode,
+            sureCode
         }
     },
     watch: {

+ 14 - 2
src/views/department/components/inputPassword.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div>
-      <el-dialog v-model="isOpen" title="请输入登录密码" width="30%">
+      <el-dialog v-model="isOpen" :title="inputTitle" width="30%">
         <el-input v-model="password" @keyup.enter="sure" type="password"></el-input>
         <template #footer>
           <span class="dialog-footer">
@@ -22,6 +22,14 @@ const props = defineProps({
     type: Boolean,
     default: false,
   },
+  isCode: {
+    type: Boolean,
+    default: false,
+  },
+  inputTitle: {
+    type: String,
+    default: '',
+  },
 });
 const emit = defineEmits(["closeIptPass", "surePass"]);
 watch(
@@ -39,7 +47,11 @@ const close = () => {
   emit("closeIptPass");
 };
 const sure = () => {
-  emit("surePass",sm3(password.value));
+    if(props.isCode){ //验证私有码
+    emit("sureCode", sm3(password.value));
+  }else{//验证密码
+    emit("surePass", sm3(password.value));
+  }
   password.value = "";
 };
 </script>

+ 65 - 3
src/views/myfile/MyFile.vue

@@ -451,7 +451,7 @@
     </historyList>
     <!-- 历史版本 -->
     <!-- 二次密码验证 -->
-    <inputPassword v-if="showInputPassword" @surePass="surePass" @closeIptPass="closeIptPass"
+    <inputPassword v-if="showInputPassword" @sureCode="sureCode" :isCode="isCode" :inputTitle="inputTitle" @surePass="surePass" @closeIptPass="closeIptPass"
         :showInputPassword="showInputPassword"></inputPassword>
     <div v-loading.fullscreen="loadingPreview" v-if="loadingPreview" class="lodingBox"></div>
     <!-- 新增文档 -->
@@ -742,6 +742,8 @@ export default {
         const openScan = ref(false)//控制扫描文档显示
         const scanFileArr = ref([]) //认领的扫描文件数组
         const delMoreFolder = ref([])
+        const inputTitle = ref()//验证框标题
+        const isCode = ref(false)// 验证的类型
         const changeShow =async (fileGrids) => {
             filePageNum.value = 1
         if(fileGrid.value == 1){
@@ -992,8 +994,25 @@ export default {
         //mouse弹框
         async function chooseSet(row, index, num) {
             // 权限控制
+            //私有码
             if (thisFolderRole.value && thisFolderRole.value.roles) {
-                if (thisFolderRole.value.roles.l0600) {
+                if (thisFolderRole.value.roles.l0700) {
+                    const codeArr = localStorage.getItem('codeArr');
+                    let codeArrObj
+                    if(codeArr){
+                     codeArrObj = JSON.parse(codeArr)
+                    }
+                    if ((!codeArrObj) || !codeArrObj.some(item => item === clickRow.value.docId)) {
+                        chooseRow.value = row
+                        chooseNum.value = num
+                        inputTitle.value = '请输入私有安全访问码'
+                        isCode.value = true
+                        showInputPassword.value = true
+                        return
+                    }
+                    // console.log('needc');
+                }else if (thisFolderRole.value.roles.l0600) {
+                    //二次密码验证
                     const passArr = localStorage.getItem('passArr');
                     let passArrObj
                     if(passArr){
@@ -1002,6 +1021,8 @@ export default {
                     if ((!passArrObj) || !passArrObj.some(item => item === clickRow.value.docId)) {
                         chooseRow.value = row
                         chooseNum.value = num
+                        inputTitle.value = '请输入登录密码'
+                        isCode.value = false
                         showInputPassword.value = true
                         return
                     }
@@ -1871,6 +1892,44 @@ export default {
                 ElMessage({ message: "验证失败", type: "error" })
             }
         }
+        //输入私有码后
+        const sureCode =async (pass) => {
+            console.log('pass',pass);
+            // console.log('oldPass',passwordCookies);
+            // console.log('clickRow',clickRow);
+            const query={
+                code:pass,
+                dirId:thisFolder.value.dirId
+            }
+            const res = await documents.matches(query)
+            console.log('res',res);
+            showInputPassword.value = false
+            if (res.data) {
+                const codeArr = localStorage.getItem('codeArr');
+                // console.log('passArr',passArr);
+                if (!codeArr) {
+                    const newArr = []
+                    newArr.push(clickRow.value.docId)
+                    localStorage.setItem('codeArr', JSON.stringify(newArr))
+                } else {
+                    const codeArrObj = JSON.parse(codeArr)
+                    codeArrObj.push(clickRow.value.docId)
+                    localStorage.setItem('codeArr', JSON.stringify(codeArrObj))
+                }
+                // 设置销毁
+                setTimeout(() => {
+                    const codeArr = localStorage.getItem('codeArr');
+                    const codeArrObj = JSON.parse(codeArr)
+                    // console.log('```passArrObj',passArrObj);
+                    const newArr = codeArrObj.filter(item => item != clickRow.value.docId)
+                    // console.log('```newArr',newArr);
+                    localStorage.setItem('codeArr', JSON.stringify(newArr))
+                }, 1000 * 30)
+                chooseSet(chooseRow.value, null, chooseNum.value)
+            } else {
+                ElMessage({ message: "验证失败", type: "error" })
+            }
+        }
         // 文件下载
         const downLoadfile = () => {
             myfile.fileDown(clickRow.value.docId).then(res => {
@@ -2332,7 +2391,10 @@ export default {
             fileHeight,
             pageSize,
             changePageSizeFn,
-            delMoreFolder
+            delMoreFolder,
+            inputTitle,
+            isCode,
+            sureCode
         }
     },
     watch: {

+ 14 - 2
src/views/myfile/components/inputPassword.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div>
-      <el-dialog v-model="isOpen" title="请输入登录密码" width="30%">
+      <el-dialog v-model="isOpen" :title="inputTitle" width="30%">
         <el-input v-model="password" @keyup.enter="sure" type="password"></el-input>
         <template #footer>
           <span class="dialog-footer">
@@ -22,6 +22,14 @@ const props = defineProps({
     type: Boolean,
     default: false,
   },
+  isCode: {
+    type: Boolean,
+    default: false,
+  },
+  inputTitle: {
+    type: String,
+    default: '',
+  },
 });
 const emit = defineEmits(["closeIptPass", "surePass"]);
 watch(
@@ -40,7 +48,11 @@ const close = () => {
 };
 const sure = () => {
   // console.log('password',password.value);
-  emit("surePass", sm3(password.value));
+  if(props.isCode){ //验证私有码
+    emit("sureCode", sm3(password.value));
+  }else{//验证密码
+    emit("surePass", sm3(password.value));
+  }
   password.value = "";
 };
 </script>

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

@@ -430,7 +430,7 @@
     </historyList>
     <!-- 历史版本 -->
     <!-- 二次密码验证 -->
-    <inputPassword v-if="showInputPassword" @surePass="surePass" @closeIptPass="closeIptPass" :showInputPassword="showInputPassword"></inputPassword>
+    <inputPassword v-if="showInputPassword" @sureCode="sureCode" :isCode="isCode" :inputTitle="inputTitle" @surePass="surePass" @closeIptPass="closeIptPass" :showInputPassword="showInputPassword"></inputPassword>
     <div v-loading.fullscreen="loadingPreview" v-if="loadingPreview" class="lodingBox"></div>
     <!-- 扫描文档 -->
     <ScanFile v-if="openScan" :openScan="openScan" :scannerFiles="scannerFiles" @saveScanFile="saveScanFile" @closeOpen="closeOpen"></ScanFile>
@@ -740,6 +740,8 @@ export default {
         const openScan = ref(false)//控制扫描文档显示
         const scanFileArr = ref([]) //认领的扫描文件数组
         const delMoreFolder = ref([])
+        const inputTitle = ref()//验证框标题
+        const isCode = ref(false)// 验证的类型
         const changeShow =async (fileGrids) => {
         filePageNum.value = 1
         if(fileGrid.value == 1){
@@ -953,7 +955,22 @@ export default {
         async function chooseSet(row, index, num) {
             // 权限控制
             if(thisFolderRole.value && thisFolderRole.value.roles){
-                if(thisFolderRole.value.roles.l0600){
+                if (thisFolderRole.value.roles.l0700) {
+                    const codeArr = localStorage.getItem('codeArr');
+                    let codeArrObj
+                    if(codeArr){
+                     codeArrObj = JSON.parse(codeArr)
+                    }
+                    if ((!codeArrObj) || !codeArrObj.some(item => item === clickRow.value.docId)) {
+                        chooseRow.value = row
+                        chooseNum.value = num
+                        inputTitle.value = '请输入私有安全访问码'
+                        isCode.value = true
+                        showInputPassword.value = true
+                        return
+                    }
+                    // console.log('needc');
+                }else if(thisFolderRole.value.roles.l0600){
                     const passArr = localStorage.getItem('passArr');
                     let passArrObj
                     if(passArr){
@@ -962,6 +979,8 @@ export default {
                     if((!passArrObj) || !passArrObj.some(item=>item === clickRow.value.docId)){
                         chooseRow.value = row
                         chooseNum.value = num
+                        inputTitle.value = '请输入登录密码'
+                        isCode.value = false
                         showInputPassword.value = true
                         return
                     }
@@ -1763,6 +1782,44 @@ export default {
                 ElMessage({ message: "验证失败", type: "error" })
             }
         }
+        //输入私有码后
+        const sureCode =async (pass) => {
+            console.log('pass',pass);
+            // console.log('oldPass',passwordCookies);
+            // console.log('clickRow',clickRow);
+            const query={
+                code:pass,
+                dirId:thisFolder.value.dirId
+            }
+            const res = await documents.matches(query)
+            console.log('res',res);
+            showInputPassword.value = false
+            if (res.data) {
+                const codeArr = localStorage.getItem('codeArr');
+                // console.log('passArr',passArr);
+                if (!codeArr) {
+                    const newArr = []
+                    newArr.push(clickRow.value.docId)
+                    localStorage.setItem('codeArr', JSON.stringify(newArr))
+                } else {
+                    const codeArrObj = JSON.parse(codeArr)
+                    codeArrObj.push(clickRow.value.docId)
+                    localStorage.setItem('codeArr', JSON.stringify(codeArrObj))
+                }
+                // 设置销毁
+                setTimeout(() => {
+                    const codeArr = localStorage.getItem('codeArr');
+                    const codeArrObj = JSON.parse(codeArr)
+                    // console.log('```passArrObj',passArrObj);
+                    const newArr = codeArrObj.filter(item => item != clickRow.value.docId)
+                    // console.log('```newArr',newArr);
+                    localStorage.setItem('codeArr', JSON.stringify(newArr))
+                }, 1000 * 30)
+                chooseSet(chooseRow.value, null, chooseNum.value)
+            } else {
+                ElMessage({ message: "验证失败", type: "error" })
+            }
+        }
         // 文件下载
         const downLoadfile = ()=>{
             myfile.fileDown(clickRow.value.docId).then(res=>{
@@ -2224,7 +2281,10 @@ export default {
             setImg,
             fileHeight,
             pageSize,
-            delMoreFolder
+            delMoreFolder,
+            inputTitle,
+            isCode,
+            sureCode
         }
     },
     watch: {

+ 14 - 2
src/views/publicment/components/inputPassword.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div>
-      <el-dialog v-model="isOpen" title="请输入登录密码" width="30%">
+      <el-dialog v-model="isOpen" :title="inputTitle" width="30%">
         <el-input v-model="password" @keyup.enter="sure" type="password"></el-input>
         <template #footer>
           <span class="dialog-footer">
@@ -22,6 +22,14 @@ const props = defineProps({
     type: Boolean,
     default: false,
   },
+  isCode: {
+    type: Boolean,
+    default: false,
+  },
+  inputTitle: {
+    type: String,
+    default: '',
+  },
 });
 const emit = defineEmits(["closeIptPass", "surePass"]);
 watch(
@@ -39,7 +47,11 @@ const close = () => {
   emit("closeIptPass");
 };
 const sure = () => {
-  emit("surePass",sm3(password.value));
+    if(props.isCode){ //验证私有码
+    emit("sureCode", sm3(password.value));
+  }else{//验证密码
+    emit("surePass", sm3(password.value));
+  }
   password.value = "";
 };
 </script>