|
@@ -49,7 +49,7 @@
|
|
|
>
|
|
|
<el-table-column fixed prop="date" label="名称" width="500">
|
|
|
<template #default="scope">
|
|
|
- <div>
|
|
|
+ <!-- <div>
|
|
|
<img
|
|
|
class="table_icon"
|
|
|
:src="setIcon(scope.row.fileType)"
|
|
@@ -57,7 +57,37 @@
|
|
|
style=""
|
|
|
/>
|
|
|
{{ scope.row.fileName }}
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <el-icon
|
|
|
+ v-if="scope.row.isFavorite == 'N'"
|
|
|
+ @click.stop="collectByStar(scope.row, false)"
|
|
|
+ >
|
|
|
+ <Star />
|
|
|
+ </el-icon>
|
|
|
+ <img
|
|
|
+ v-else
|
|
|
+ @click.stop="delCollect(scope.row, false)"
|
|
|
+ src="../../assets/images/yellowstar.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <img :src="setIcon(scope.row.fileType)" alt="" />
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ :content="scope.row.fileName"
|
|
|
+ placement="top"
|
|
|
+ :show-after="1000"
|
|
|
+ >
|
|
|
+ {{ scope.row.fileName }}
|
|
|
+ </el-tooltip>
|
|
|
+ </span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="createTime" label="时间" width="200" />
|
|
@@ -145,18 +175,59 @@
|
|
|
</el-collapse-item>
|
|
|
</div>
|
|
|
</el-collapse>
|
|
|
+ <div>
|
|
|
+ <FileTree
|
|
|
+ v-if="fileTrees"
|
|
|
+ :fileTrees="fileTrees"
|
|
|
+ :newSpaceId="newSpaceId"
|
|
|
+ :fileId="clickRowId"
|
|
|
+ @getChildren="getChildren"
|
|
|
+ :copyOrMove="copyOrMove"
|
|
|
+ ></FileTree>
|
|
|
+ </div>
|
|
|
+ <ImgPreview
|
|
|
+ :previewData="previewData"
|
|
|
+ :copyFileType="copyFileType"
|
|
|
+ :showPreview="showPreview"
|
|
|
+ @closeImgPreview="closeImgPreview"
|
|
|
+ ></ImgPreview>
|
|
|
+ <div
|
|
|
+ v-loading.fullscreen="loadingPreview"
|
|
|
+ v-if="loadingPreview"
|
|
|
+ class="lodingBox"
|
|
|
+ ></div>
|
|
|
+ <!-- 文件收藏 -->
|
|
|
+ <div>
|
|
|
+ <FileCollect
|
|
|
+ v-if="collects"
|
|
|
+ :collects="collects"
|
|
|
+ @getCollects="getCollects"
|
|
|
+ :copyFileName="copyFileName"
|
|
|
+ :copyFileId="copyFileId"
|
|
|
+ @refreshFile="refreshFile"
|
|
|
+ :isFolder="isFolder"
|
|
|
+ :clickRow="clickRow"
|
|
|
+ ></FileCollect>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { onMounted, ref, toRaw ,inject} from "vue";
|
|
|
+import { onMounted, ref, toRaw, inject } from "vue";
|
|
|
// import TopTabs from "@/components/TopTabs/index.vue"
|
|
|
import { listRecent, getRecent } from "@/api/biz/recent";
|
|
|
import { getInfo } from "@/api/biz/info";
|
|
|
import { getDir } from "@/api/biz/dir";
|
|
|
import documents from "@/api/document/document";
|
|
|
import ImgFile from "@/views/myfile/jsComponents/ImgFile";
|
|
|
+import FileTree from "@/views/myfile/components/FileTree.vue";
|
|
|
+import FileCollect from "@/views/myfile/modalComponebts/FileCollect.vue";
|
|
|
import myfile from "@/api/myfile/myfile";
|
|
|
+import { getLeveldetail } from "@/api/level/level";
|
|
|
+import { canPreviewFile, rightMenuRole } from "@/utils/index.js";
|
|
|
+import { preview } from "@/api/common/common.js";
|
|
|
+import { delFavorite } from '@/api/biz/favorite.js'
|
|
|
+import ImgPreview from "@/components/ImgPreview/ImgPreview.vue";
|
|
|
const activeNames = ref(["folder", "file"]);
|
|
|
const isList = ref(true); //控制显示方式
|
|
|
const tableFolderData = ref([]);
|
|
@@ -164,13 +235,44 @@ const tableFileData = ref([]);
|
|
|
const thisFolder = ref(); //当前文件夹
|
|
|
const newDirId = ref();
|
|
|
const newSpaceId = ref();
|
|
|
-const copyFileType = ref();
|
|
|
const cliCC = ref(false); //文件右键菜单
|
|
|
const clickRow = ref(); //当前右键的文件
|
|
|
let xz = ref(0);
|
|
|
let yz = ref(0);
|
|
|
let anyP = ref(false);
|
|
|
-const thisFolderRole = ref() //文件夹权限
|
|
|
+const thisFolderRole = ref(); //文件夹权限
|
|
|
+const workOrEdit = ref();
|
|
|
+const thanks = ref();
|
|
|
+const selectedIndex = ref();
|
|
|
+const editOnline = ref();
|
|
|
+const isFolder = ref();
|
|
|
+const copyRow = ref();
|
|
|
+const clickRowId = ref();
|
|
|
+const copyDirId = ref();
|
|
|
+const copySpaceId = ref();
|
|
|
+const copyFileId = ref();
|
|
|
+const copyFileSize = ref();
|
|
|
+const copyFileType = ref();
|
|
|
+const copyParentId = ref();
|
|
|
+const copyFileName = ref();
|
|
|
+const loadingPreview = ref(false);
|
|
|
+const onlyView = ref(false);
|
|
|
+const showPreview = ref(false);
|
|
|
+const previewData = ref();
|
|
|
+const fileTrees = ref(false);
|
|
|
+const copyOrMove = ref();
|
|
|
+const backFolder = ref();
|
|
|
+const copyFolderName = ref();
|
|
|
+let collects = ref(false);
|
|
|
+let menuList = ref([
|
|
|
+ {
|
|
|
+ name: "我的空间",
|
|
|
+ choose: "我的空间",
|
|
|
+ },
|
|
|
+]);
|
|
|
+let nameForm = ref({
|
|
|
+ name: "",
|
|
|
+});
|
|
|
let mouseCli = ref([
|
|
|
{
|
|
|
img: ImgFile.previewIcon,
|
|
@@ -225,7 +327,7 @@ let mouseCli = ref([
|
|
|
name: "历史版本",
|
|
|
},
|
|
|
]);
|
|
|
-
|
|
|
+const addTab = inject("addTab");
|
|
|
//----引入图片----
|
|
|
import file_DOC from "../../../assets/images/fileType/file_DOC.png";
|
|
|
import file_pdf from "../../../assets/images/fileType/file_pdf.png";
|
|
@@ -272,11 +374,22 @@ const handleChange = (val) => {
|
|
|
};
|
|
|
function changeFile(row, num) {
|
|
|
row = toRaw(row);
|
|
|
+ if (row) {
|
|
|
+ backFolder.value = thisFolder.value;
|
|
|
+ thisFolder.value = row;
|
|
|
+ } else {
|
|
|
+ row = thisFolder.value;
|
|
|
+ }
|
|
|
thisFolder.value = row;
|
|
|
console.log("changeFilerow2", row);
|
|
|
+ if (row.isEncrypt === "Y") {
|
|
|
+ getLeveldetailFn(row.encryptLevel);
|
|
|
+ } else {
|
|
|
+ thisFolderRole.value = null;
|
|
|
+ }
|
|
|
+ copyParentId.value = row.parentId;
|
|
|
newDirId.value = row.dirId;
|
|
|
newSpaceId.value = row.spaceId;
|
|
|
- copyFileType.value = row.fileType;
|
|
|
documents
|
|
|
.getALLdocument({ parentId: row.dirId - 0, spaceId: row.spaceId - 0 })
|
|
|
.then((res) => {
|
|
@@ -307,25 +420,40 @@ function changeFile(row, num) {
|
|
|
}
|
|
|
// }
|
|
|
});
|
|
|
+ selectedIndex.value = num;
|
|
|
+ const newItem = {
|
|
|
+ name: row.dirName,
|
|
|
+ choose: row.dirName,
|
|
|
+ dirIds: row.dirId,
|
|
|
+ spaceIds: row.spaceId,
|
|
|
+ };
|
|
|
+ // 检查 newItem 是否已存在于 menuList 中
|
|
|
+ const isItemExist = menuList.value.some(
|
|
|
+ (item) => item.choose === newItem.choose
|
|
|
+ );
|
|
|
+ // 如果不存在,则添加它
|
|
|
+ if (!isItemExist) {
|
|
|
+ menuList.value.push(newItem);
|
|
|
+ }
|
|
|
}
|
|
|
// 文件名表格每一行点击事件
|
|
|
function handleRowClick(row, col, e) {
|
|
|
console.log("row", row);
|
|
|
- // isFolder.value = "N";
|
|
|
+ isFolder.value = "N";
|
|
|
clickRow.value = row;
|
|
|
e.preventDefault();
|
|
|
e.stopPropagation();
|
|
|
xz.value = e.pageX;
|
|
|
yz.value = e.pageY;
|
|
|
- // copyRow.value = row;
|
|
|
- // clickRowId.value = row.docId;
|
|
|
- // copyDirId.value = row.dirId;
|
|
|
- // copySpaceId.value = row.spaceId;
|
|
|
- // copyFileId.value = row.fileId;
|
|
|
- // copyFileSize.value = row.fileSize;
|
|
|
+ copyRow.value = row;
|
|
|
+ clickRowId.value = row.docId;
|
|
|
+ copyDirId.value = row.dirId;
|
|
|
+ copySpaceId.value = row.spaceId;
|
|
|
+ copyFileId.value = row.fileId;
|
|
|
+ copyFileSize.value = row.fileSize;
|
|
|
copyFileType.value = row.fileType;
|
|
|
- // nameForm.value.name = row.fileName;
|
|
|
- // copyFileName.value = row.fileName;
|
|
|
+ nameForm.value.name = row.fileName;
|
|
|
+ copyFileName.value = row.fileName;
|
|
|
if (cliCC.value === true) {
|
|
|
cliCC.value = false;
|
|
|
} else {
|
|
@@ -638,6 +766,80 @@ const closeRMenu = () => {
|
|
|
// console.log("close");
|
|
|
cliCC.value = false;
|
|
|
};
|
|
|
+//关闭图片预览事件
|
|
|
+const closeImgPreview = () => {
|
|
|
+ // console.log('close');
|
|
|
+ showPreview.value = false;
|
|
|
+};
|
|
|
+function getChildren(data) {
|
|
|
+ fileTrees.value = data;
|
|
|
+ refreshFile();
|
|
|
+}
|
|
|
+function getCollects(data) {
|
|
|
+ collects.value = data;
|
|
|
+}
|
|
|
+//star收藏事件
|
|
|
+const collectByStar = (row, isfolder) => {
|
|
|
+ console.log("row", row);
|
|
|
+ if (isfolder) {
|
|
|
+ let thisRow = toRaw(row);
|
|
|
+ isFolder.value = "Y";
|
|
|
+ clickRow.value = thisRow;
|
|
|
+ copyFolderName.value = row.dirName;
|
|
|
+ copyFileName.value = clickRow.value.dirName;
|
|
|
+ } else {
|
|
|
+ isFolder.value = "N";
|
|
|
+ clickRow.value = row;
|
|
|
+ copyRow.value = row;
|
|
|
+ clickRowId.value = row.docId;
|
|
|
+ copyDirId.value = row.dirId;
|
|
|
+ copyFileName.value = row.fileName;
|
|
|
+ }
|
|
|
+
|
|
|
+ collects.value = true;
|
|
|
+};
|
|
|
+// 取消文件收藏
|
|
|
+const delCollect = async (row, isfolder) => {
|
|
|
+ const thisRow = toRaw(row);
|
|
|
+ console.log("thisRow", thisRow);
|
|
|
+ let query = {};
|
|
|
+ if (isfolder) {
|
|
|
+ query = {
|
|
|
+ isFolder: "Y",
|
|
|
+ relaId: thisRow.dirId,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ query = {
|
|
|
+ isFolder: "N",
|
|
|
+ relaId: thisRow.docId,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ const res = await delFavorite(query);
|
|
|
+ //TODO 之后需要重新获取数据 并message提示
|
|
|
+ console.log("res", res);
|
|
|
+ refreshFile();
|
|
|
+};
|
|
|
+//刷新文件
|
|
|
+const refreshFile = () => {
|
|
|
+ // console.log('ref',toRaw(thisFolder.value));
|
|
|
+ if (toRaw(thisFolder.value).isFavorite) {
|
|
|
+ //如果点开了文件夹
|
|
|
+ // console.log(111);
|
|
|
+ folderClick();
|
|
|
+ } else {
|
|
|
+ // console.log(222);
|
|
|
+ getList();
|
|
|
+ }
|
|
|
+};
|
|
|
+//获取权限详情
|
|
|
+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);
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|