|
|
@@ -131,10 +131,11 @@
|
|
|
style="width: 100%"
|
|
|
height="250"
|
|
|
:scrollbar-always-on="true"
|
|
|
+ @row-contextmenu="fileRightTable"
|
|
|
>
|
|
|
<el-table-column fixed prop="date" label="名称" width="500">
|
|
|
<template #default="scope">
|
|
|
- <div>
|
|
|
+ <div class="folderName">
|
|
|
<img
|
|
|
class="table_icon"
|
|
|
src="@/assets/images/fileBox.png"
|
|
|
@@ -167,10 +168,11 @@
|
|
|
style="width: 100%"
|
|
|
height="250"
|
|
|
:scrollbar-always-on="true"
|
|
|
+ @row-contextmenu="fileRightTable"
|
|
|
>
|
|
|
<el-table-column fixed prop="date" label="名称" width="500">
|
|
|
<template #default="scope">
|
|
|
- <div>
|
|
|
+ <div class="fileName">
|
|
|
<img
|
|
|
class="table_icon"
|
|
|
:src="setIcon(scope.row.docInfo.fileType)"
|
|
|
@@ -199,7 +201,12 @@
|
|
|
<!-- 平铺 -->
|
|
|
<el-scrollbar height="360px">
|
|
|
<div class="tile_box">
|
|
|
- <div class="file_box" v-for="item in folderArr" :key="item">
|
|
|
+ <div
|
|
|
+ class="file_box"
|
|
|
+ @click.right="fileRight($event, item)"
|
|
|
+ v-for="item in folderArr"
|
|
|
+ :key="item"
|
|
|
+ >
|
|
|
<img
|
|
|
class="big_file_img"
|
|
|
src="@/assets/images/fileBox.png"
|
|
|
@@ -224,7 +231,12 @@
|
|
|
<!-- 平铺 -->
|
|
|
<el-scrollbar height="360px">
|
|
|
<div class="tile_box">
|
|
|
- <div class="file_box" v-for="item in fileArr" :key="item">
|
|
|
+ <div
|
|
|
+ class="file_box"
|
|
|
+ @click.right="fileRight($event, item)"
|
|
|
+ v-for="item in fileArr"
|
|
|
+ :key="item"
|
|
|
+ >
|
|
|
<img
|
|
|
class="big_file_img"
|
|
|
:src="setIcon(item.docInfo.fileType)"
|
|
|
@@ -261,15 +273,17 @@
|
|
|
<span>删除</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-else class="preview">
|
|
|
- <FileEdit
|
|
|
- :docId="clickRowId"
|
|
|
- :copyRow="copyRow"
|
|
|
+ <div v-else class="preview">
|
|
|
+ <!-- TODO 预览功能后续实现-->
|
|
|
+ <!-- <FileEdit
|
|
|
+ :docId="thisRData.docInfo.docId"
|
|
|
+ :copyRow="thisRData"
|
|
|
:historyPrew="historyPrew"
|
|
|
:historycopyRow="historycopyRow"
|
|
|
:onlyView="onlyView"
|
|
|
- ></FileEdit>
|
|
|
+ ></FileEdit> -->
|
|
|
</div>
|
|
|
+ <RightMenu v-if="showFlieRM" :fileRightXY="fileRightXY"></RightMenu>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
@@ -287,6 +301,7 @@ import {
|
|
|
sortLabel,
|
|
|
} from "@/api/biz/label.js";
|
|
|
import { listFavorite, listFavoriteById } from "@/api/biz/favorite.js";
|
|
|
+import RightMenu from "@/components/RightMenu/index.vue";
|
|
|
const activeNames = ref(["folder", "file"]);
|
|
|
const clickCollect = ref("second"); //当前标签
|
|
|
const isAddCollect = ref(false); //是否在添加标签
|
|
|
@@ -303,7 +318,10 @@ const isChangeTabName = ref(0); //存放修改状标签的id
|
|
|
const folderArr = ref(); //文件夹数组
|
|
|
const fileArr = ref(); //文件数组
|
|
|
const isList = ref(false); //控制显示方式
|
|
|
-const showPreview = ref(false);//预览
|
|
|
+const showPreview = ref(false); //预览
|
|
|
+const fileRightXY = ref({}); //右键菜单坐标
|
|
|
+const showFlieRM = ref(false); //右键菜单显示
|
|
|
+const thisRData = ref(); //当前右键的文件
|
|
|
//----引入图片----
|
|
|
import file_DOC from "../../assets/images/fileType/file_DOC.png";
|
|
|
import file_pdf from "../../assets/images/fileType/file_pdf.png";
|
|
|
@@ -321,6 +339,7 @@ onMounted(async () => {
|
|
|
rowDrop();
|
|
|
// 添加监听,点击其他地方关闭菜单
|
|
|
window.addEventListener("click", closeMenu, true);
|
|
|
+ window.addEventListener("click", closeFlieRMenu, true);
|
|
|
});
|
|
|
// tab右键事件
|
|
|
const tabClick = (e, item) => {
|
|
|
@@ -334,11 +353,42 @@ const tabClick = (e, item) => {
|
|
|
top.value = e.pageY;
|
|
|
left.value = e.pageX;
|
|
|
};
|
|
|
+// file右键事件
|
|
|
+const fileRight = (e, item) => {
|
|
|
+ e.preventDefault();
|
|
|
+ e.stopPropagation();
|
|
|
+ // console.log("e", e);
|
|
|
+ // console.log("item", toRaw(item));
|
|
|
+ // 唤出右键菜单,思路:获取鼠标位置来定位菜单
|
|
|
+ thisRData.value = item;
|
|
|
+ console.log("thisRData", thisRData.value);
|
|
|
+ showFlieRM.value = true;
|
|
|
+ fileRightXY.value.top = e.pageY;
|
|
|
+ fileRightXY.value.left = e.pageX;
|
|
|
+};
|
|
|
+// folder右键事件
|
|
|
+const fileRightTable = (item, col, e) => {
|
|
|
+ e.preventDefault();
|
|
|
+ e.stopPropagation();
|
|
|
+ // console.log("e", e);
|
|
|
+ // console.log("item", toRaw(item));
|
|
|
+ // 唤出右键菜单,思路:获取鼠标位置来定位菜单
|
|
|
+ thisRData.value = item;
|
|
|
+ console.log("thisRData", thisRData.value);
|
|
|
+ showFlieRM.value = true;
|
|
|
+ fileRightXY.value.top = e.pageY;
|
|
|
+ fileRightXY.value.left = e.pageX;
|
|
|
+};
|
|
|
// 关闭右键菜单
|
|
|
const closeMenu = () => {
|
|
|
// console.log("close");
|
|
|
visible.value = false;
|
|
|
};
|
|
|
+// 关闭右键菜单
|
|
|
+const closeFlieRMenu = () => {
|
|
|
+ // console.log("close");
|
|
|
+ showFlieRM.value = false;
|
|
|
+};
|
|
|
//添加标签
|
|
|
const toAddCollectFn = async () => {
|
|
|
isAddCollect.value = true;
|
|
|
@@ -705,6 +755,25 @@ const setIcon = (fileType) => {
|
|
|
text-align: left;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//表格文本超出隐藏
|
|
|
+:deep(.fileName) {
|
|
|
+ /*第一步: 溢出隐藏 */
|
|
|
+ overflow: hidden;
|
|
|
+ /* 第二步:让文本不会换行, 在同一行继续 */
|
|
|
+ white-space: nowrap;
|
|
|
+ /* 第三步:用省略号来代表未显示完的文本 */
|
|
|
+ text-overflow: ellipsis;
|
|
|
+}
|
|
|
+//表格文本超出隐藏
|
|
|
+:deep(.folderName) {
|
|
|
+ /*第一步: 溢出隐藏 */
|
|
|
+ overflow: hidden;
|
|
|
+ /* 第二步:让文本不会换行, 在同一行继续 */
|
|
|
+ white-space: nowrap;
|
|
|
+ /* 第三步:用省略号来代表未显示完的文本 */
|
|
|
+ text-overflow: ellipsis;
|
|
|
+}
|
|
|
//平铺
|
|
|
.tile_box {
|
|
|
width: 100%;
|