|
|
@@ -55,8 +55,8 @@
|
|
|
<!-- 右侧大盒子 -->
|
|
|
<div class="mesBox">
|
|
|
<!-- 功能盒子 -->
|
|
|
- <div class="useBox">
|
|
|
<!-- table切换 -->
|
|
|
+ <!-- <div class="useBox">
|
|
|
<div style="width: 100%;height: 24px;background-color: #7084B4;line-height: 20px;">
|
|
|
<template v-for="(item, index) in menuList">
|
|
|
<span @click="tableChange(item, index)"
|
|
|
@@ -69,7 +69,7 @@
|
|
|
</template>
|
|
|
</div>
|
|
|
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<!-- 展示文件夹盒子 -->
|
|
|
<!-- 文件夹 -->
|
|
|
<div v-if="editOnline">
|
|
|
@@ -187,10 +187,10 @@
|
|
|
<!-- 右键唤出的菜单 -->
|
|
|
<div class="right_menu" v-if="folderVisible"
|
|
|
:style="{ left: folderleft + 'px', top: foldertop + 'px' }">
|
|
|
- <div class="menu_item" @click="folderClick(null, null)">
|
|
|
+ <!-- <div class="menu_item" @click="folderClick(null, null)">
|
|
|
<img src="@/assets/images/trash.png" alt="" />
|
|
|
<span>打开</span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<div class="menu_item" @click="restName(null, null)">
|
|
|
<img src="@/assets/images/textbox.png" alt="" />
|
|
|
<span>重命名</span>
|
|
|
@@ -282,7 +282,7 @@
|
|
|
<!-- 新增文件夹弹窗 -->
|
|
|
<div>
|
|
|
<CreateFloder v-if="folderCase" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
|
|
|
- :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId"
|
|
|
+ :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId" :thisFolderRole="thisFolderRole"
|
|
|
:getAllTop="getAllTop">
|
|
|
</CreateFloder>
|
|
|
</div>
|
|
|
@@ -353,6 +353,8 @@
|
|
|
:historyTotal="historyTotal">
|
|
|
</historyList>
|
|
|
<!-- 历史版本 -->
|
|
|
+ <!-- 二次密码验证 -->
|
|
|
+ <inputPassword v-if="showInputPassword" @surePass="surePass" @closeIptPass="closeIptPass" :showInputPassword="showInputPassword"></inputPassword>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
@@ -385,11 +387,15 @@ import { ElMessage } from 'element-plus'
|
|
|
import ImgPreview from '@/components/ImgPreview/ImgPreview.vue'
|
|
|
import { preview } from "@/api/common/common.js";
|
|
|
import historyList from "@/components/historyList/index.vue"; //选择文件发送的列表,历史版本
|
|
|
+import inputPassword from "./components/inputPassword.vue"; //选择文件发送的列表,历史版本
|
|
|
import { listVersion } from "@/api/biz/version";
|
|
|
import useUserStore from "@/store/modules/user";
|
|
|
import { useRouter, useRoute } from "vue-router";
|
|
|
-import { canPreviewFile } from "@/utils/index.js"
|
|
|
+import { canPreviewFile,rightMenuRole } from "@/utils/index.js"
|
|
|
import fileSpace from '../../api/filespace/fileSpace';
|
|
|
+import { getLeveldetail } from '../../api/level/level';
|
|
|
+import { encrypt, decrypt } from "@/utils/jsencrypt";
|
|
|
+import Cookies from "js-cookie";
|
|
|
|
|
|
export default {
|
|
|
setup() {
|
|
|
@@ -577,6 +583,10 @@ export default {
|
|
|
const isFolder = ref('N') //是否为文件夹
|
|
|
const clickRow = ref()//当前右键的行数据
|
|
|
const backFolder = ref()//上一级的文件夹
|
|
|
+ const thisFolderRole = ref()//文件夹权限
|
|
|
+ const showInputPassword = ref(false)
|
|
|
+ const chooseRow = ref()
|
|
|
+ const chooseNum = ref()
|
|
|
// 获取文件夹,中栏,文件
|
|
|
function getAllTop() {
|
|
|
documents.getTop(3).then(res => {
|
|
|
@@ -624,6 +634,10 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
function changeFile(row, num) {
|
|
|
+ console.log('row2',row);
|
|
|
+ if(row.isEncrypt === "Y"){
|
|
|
+ getLeveldetailFn(row.encryptLevel)
|
|
|
+ }
|
|
|
copyParentId.value = row.parentId
|
|
|
newDirId.value = row.dirId
|
|
|
newSpaceId.value = row.spaceId
|
|
|
@@ -750,6 +764,20 @@ export default {
|
|
|
}
|
|
|
//mouse弹框
|
|
|
async function chooseSet(row, index, num) {
|
|
|
+ // 权限控制
|
|
|
+ if(thisFolderRole.value.roles){
|
|
|
+ if(thisFolderRole.value.roles.l0600){
|
|
|
+ const passArr = localStorage.getItem('passArr');
|
|
|
+ const passArrObj = JSON.parse(passArr)
|
|
|
+ if((!passArrObj) || !passArrObj.some(item=>item === clickRow.value.docId)){
|
|
|
+ chooseRow.value = row
|
|
|
+ chooseNum.value = num
|
|
|
+ showInputPassword.value = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // console.log('needc');
|
|
|
+ }
|
|
|
+ }
|
|
|
if (row.name == '在线编辑' || row.name == '协作') {
|
|
|
cliCC.value = true
|
|
|
}
|
|
|
@@ -1030,6 +1058,9 @@ export default {
|
|
|
}else{
|
|
|
row =thisFolder.value
|
|
|
}
|
|
|
+ if(row.isEncrypt === "Y"){
|
|
|
+ getLeveldetailFn(row.encryptLevel)
|
|
|
+ }
|
|
|
console.log('row1', toRaw(row));
|
|
|
topPath.value = row.dirPath
|
|
|
// console.log('topPath',toRaw(topPath.value));
|
|
|
@@ -1170,6 +1201,10 @@ export default {
|
|
|
if (!imgTypeArr.includes(copyFileType.value)) {
|
|
|
arr = arr.filter(item => item.name !== "文字识别")
|
|
|
}
|
|
|
+ // console.log('arr',arr);
|
|
|
+ if(thisFolderRole.value){
|
|
|
+ arr = rightMenuRole(toRaw(thisFolderRole.value),arr)
|
|
|
+ }
|
|
|
return arr
|
|
|
}
|
|
|
function mouseClick() {
|
|
|
@@ -1361,6 +1396,52 @@ export default {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+ //获取权限详情
|
|
|
+ const getLeveldetailFn =async (data)=>{
|
|
|
+ const res = await getLeveldetail(data)
|
|
|
+ // console.log('getLeveldetailFn',res);
|
|
|
+ if(res.code === 200){
|
|
|
+ thisFolderRole.value = res.data
|
|
|
+ }
|
|
|
+ // console.log('thisFolderRole',thisFolderRole.value);
|
|
|
+ }
|
|
|
+ const closeIptPass = ()=>{
|
|
|
+ showInputPassword.value = false
|
|
|
+ }
|
|
|
+ //输入验证密码后
|
|
|
+ const surePass = (pass)=>{
|
|
|
+ const passwordCookies = Cookies.get("password");
|
|
|
+ const oldPass = decrypt(passwordCookies)
|
|
|
+ // console.log('pass',pass);
|
|
|
+ // console.log('oldPass',oldPass);
|
|
|
+ // console.log('clickRow',clickRow);
|
|
|
+ showInputPassword.value = false
|
|
|
+ if(pass === oldPass){
|
|
|
+ const passArr = localStorage.getItem('passArr');
|
|
|
+ // console.log('passArr',passArr);
|
|
|
+ if(!passArr){
|
|
|
+ const newArr = []
|
|
|
+ newArr.push(clickRow.value.docId)
|
|
|
+ localStorage.setItem('passArr',JSON.stringify(newArr))
|
|
|
+ }else{
|
|
|
+ const passArrObj = JSON.parse(passArr)
|
|
|
+ passArrObj.push(clickRow.value.docId)
|
|
|
+ localStorage.setItem('passArr',JSON.stringify(passArrObj))
|
|
|
+ }
|
|
|
+ // 设置销毁
|
|
|
+ setTimeout(()=>{
|
|
|
+ const passArr = localStorage.getItem('passArr');
|
|
|
+ const passArrObj = JSON.parse(passArr)
|
|
|
+ console.log('```passArrObj',passArrObj);
|
|
|
+ const newArr = passArrObj.filter(item=>item != clickRow.value.docId)
|
|
|
+ console.log('```newArr',newArr);
|
|
|
+ localStorage.setItem('passArr',JSON.stringify(newArr))
|
|
|
+ },1000*30)
|
|
|
+ chooseSet(chooseRow.value,null,chooseNum.value)
|
|
|
+ }else{
|
|
|
+ ElMessage({ message: "验证失败", type: "error" })
|
|
|
+ }
|
|
|
+ }
|
|
|
onMounted(() => {
|
|
|
getAllTop()
|
|
|
getSpaceList()
|
|
|
@@ -1521,7 +1602,14 @@ export default {
|
|
|
level1,
|
|
|
level2,
|
|
|
level3,
|
|
|
- level4
|
|
|
+ level4,
|
|
|
+ getLeveldetailFn,
|
|
|
+ thisFolderRole,
|
|
|
+ showInputPassword,
|
|
|
+ closeIptPass,
|
|
|
+ surePass,
|
|
|
+ chooseRow,
|
|
|
+ chooseNum
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
@@ -1539,6 +1627,7 @@ export default {
|
|
|
SpaceBig,
|
|
|
PlaceGridFolder,
|
|
|
PalaceGridFile,
|
|
|
+ inputPassword
|
|
|
},
|
|
|
}
|
|
|
|