|
|
@@ -1,18 +1,19 @@
|
|
|
<template>
|
|
|
-<TopTabs></TopTabs>
|
|
|
- <div>
|
|
|
+ <!-- <TopTabs></TopTabs> -->
|
|
|
+ <div class="page">
|
|
|
<el-collapse v-model="activeNames" @change="handleChange">
|
|
|
<div v-if="isList">
|
|
|
- <el-collapse-item name="folder">
|
|
|
+ <el-collapse-item name="folder" class="collapse_Item">
|
|
|
<template #title>
|
|
|
<span class="collapseItem_title">文件夹</span>
|
|
|
</template>
|
|
|
<!-- 表格 -->
|
|
|
<el-table
|
|
|
- :data="tableData"
|
|
|
+ :data="tableFolderData"
|
|
|
style="width: 100%"
|
|
|
- height="250"
|
|
|
+ height="40vh"
|
|
|
:scrollbar-always-on="true"
|
|
|
+ @row-click="changeFile"
|
|
|
>
|
|
|
<el-table-column fixed prop="date" label="名称" width="500">
|
|
|
<template #default="scope">
|
|
|
@@ -23,24 +24,26 @@
|
|
|
alt=""
|
|
|
style=""
|
|
|
/>
|
|
|
- {{ scope.row.date }}
|
|
|
+ {{ scope.row.dirName }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="name" label="时间" width="200" />
|
|
|
- <el-table-column prop="state" label="类型" width="180" />
|
|
|
- <el-table-column prop="city" label="大小" width="160" />
|
|
|
+ <el-table-column prop="createTime" label="时间" width="200" />
|
|
|
+ <el-table-column prop="state" label="类型" width="180"
|
|
|
+ >文件夹</el-table-column
|
|
|
+ >
|
|
|
+ <!-- <el-table-column prop="city" label="大小" width="160" /> -->
|
|
|
</el-table>
|
|
|
</el-collapse-item>
|
|
|
- <el-collapse-item name="file">
|
|
|
+ <el-collapse-item name="file" class="collapse_Item">
|
|
|
<template #title>
|
|
|
<span class="collapseItem_title">文件</span>
|
|
|
</template>
|
|
|
<!-- 表格 -->
|
|
|
<el-table
|
|
|
- :data="tableData"
|
|
|
+ :data="tableFileData"
|
|
|
style="width: 100%"
|
|
|
- height="250"
|
|
|
+ height="40vh"
|
|
|
:scrollbar-always-on="true"
|
|
|
>
|
|
|
<el-table-column fixed prop="date" label="名称" width="500">
|
|
|
@@ -48,17 +51,23 @@
|
|
|
<div>
|
|
|
<img
|
|
|
class="table_icon"
|
|
|
- src="@/assets/images/fileBox.png"
|
|
|
+ :src="setIcon(scope.row.fileType)"
|
|
|
alt=""
|
|
|
style=""
|
|
|
/>
|
|
|
- {{ scope.row.date }}
|
|
|
+ {{ scope.row.fileName }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="name" label="时间" width="200" />
|
|
|
- <el-table-column prop="state" label="类型" width="180" />
|
|
|
- <el-table-column prop="city" label="大小" width="160" />
|
|
|
+ <el-table-column prop="createTime" label="时间" width="200" />
|
|
|
+ <el-table-column prop="fileType" label="类型" width="180" />
|
|
|
+ <el-table-column label="大小">
|
|
|
+ <template #default="scope">
|
|
|
+ <span>
|
|
|
+ {{ formatFileSize(scope.row.fileSize) }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</el-collapse-item>
|
|
|
</div>
|
|
|
@@ -70,7 +79,7 @@
|
|
|
<!-- 平铺 -->
|
|
|
<el-scrollbar height="360px">
|
|
|
<div class="tile_box">
|
|
|
- <div class="file_box" v-for="item in 20" :key="item">
|
|
|
+ <div class="file_box" v-for="item in tableData" :key="item">
|
|
|
<img
|
|
|
class="big_file_img"
|
|
|
src="@/assets/images/fileBox.png"
|
|
|
@@ -105,90 +114,172 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { onMounted, ref } from "vue";
|
|
|
-import TopTabs from "@/components/TopTabs/index.vue"
|
|
|
-import { listRecent } from "@/api/biz/recent";
|
|
|
+import { onMounted, ref, toRaw } 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 myfile from "@/api/myfile/myfile";
|
|
|
const activeNames = ref(["folder", "file"]);
|
|
|
-const isList = ref(false); //控制显示方式
|
|
|
+const isList = ref(true); //控制显示方式
|
|
|
+const tableFolderData = ref([]);
|
|
|
+const tableFileData = ref([]);
|
|
|
+const thisFolder = ref(); //当前文件夹
|
|
|
+const newDirId = ref();
|
|
|
+const newSpaceId = ref();
|
|
|
+
|
|
|
+//----引入图片----
|
|
|
+import file_DOC from "../../../assets/images/fileType/file_DOC.png";
|
|
|
+import file_pdf from "../../../assets/images/fileType/file_pdf.png";
|
|
|
+import file_PPT from "../../../assets/images/fileType/file_PPT.png";
|
|
|
+import file_TXT from "../../../assets/images/fileType/file_TXT.png";
|
|
|
+import file_XLSX from "../../../assets/images/fileType/file_XLSX.png";
|
|
|
+import file_pic from "../../../assets/images/fileType/file_pic.png";
|
|
|
+import file_audio from "../../../assets/images/fileType/file_audio.png";
|
|
|
+import file_video from "../../../assets/images/fileType/file_video.png";
|
|
|
+import file_zip from "../../../assets/images/fileType/file_zip.png";
|
|
|
+// -------
|
|
|
|
|
|
onMounted(() => {
|
|
|
getList();
|
|
|
});
|
|
|
const getList = async () => {
|
|
|
- const res = await listRecent();
|
|
|
- console.log("res = ", res);
|
|
|
+ const resY = await listRecent({ isFolder: "Y" });
|
|
|
+ const resN = await listRecent({ isFolder: "N" });
|
|
|
+ if (resY.code === 200) {
|
|
|
+ var arr = [];
|
|
|
+ resY.rows.map(async (item) => {
|
|
|
+ const detail = await getDir(item.relaId);
|
|
|
+ tableFolderData.value.push(JSON.parse(JSON.stringify(detail.data)));
|
|
|
+ });
|
|
|
+ console.log("resYarr", arr);
|
|
|
+ // tableFolderData.value = resY.rows;
|
|
|
+ console.log("tableData.value = ", toRaw(tableFolderData.value));
|
|
|
+ }
|
|
|
+ if (resN.code === 200) {
|
|
|
+ var arr = [];
|
|
|
+ resN.rows.map(async (item) => {
|
|
|
+ const detail = await getInfo(item.relaId);
|
|
|
+ tableFileData.value.push(detail);
|
|
|
+ });
|
|
|
+ console.log("resNarr", arr);
|
|
|
+ // tableFileData.value = resN.rows;
|
|
|
+ console.log("tableFileData.value = ", tableFileData.value);
|
|
|
+ }
|
|
|
};
|
|
|
+const getFileDetail = () => {};
|
|
|
const handleChange = (val) => {
|
|
|
// console.log(val);
|
|
|
};
|
|
|
-const tableData = [
|
|
|
- {
|
|
|
- date: "2016-05-03",
|
|
|
- name: "Tom",
|
|
|
- state: "California",
|
|
|
- city: "Los Angeles",
|
|
|
- address: "No. 189, Grove St, Los Angeles",
|
|
|
- zip: "CA 90036",
|
|
|
- },
|
|
|
- {
|
|
|
- date: "2016-05-02",
|
|
|
- name: "Tom",
|
|
|
- state: "California",
|
|
|
- city: "Los Angeles",
|
|
|
- address: "No. 189, Grove St, Los Angeles",
|
|
|
- zip: "CA 90036",
|
|
|
- },
|
|
|
- {
|
|
|
- date: "2016-05-04",
|
|
|
- name: "Tom",
|
|
|
- state: "California",
|
|
|
- city: "Los Angeles",
|
|
|
- address: "No. 189, Grove St, Los Angeles",
|
|
|
- zip: "CA 90036",
|
|
|
- },
|
|
|
- {
|
|
|
- date: "2016-05-01",
|
|
|
- name: "Tom",
|
|
|
- state: "California",
|
|
|
- city: "Los Angeles",
|
|
|
- address: "No. 189, Grove St, Los Angeles",
|
|
|
- zip: "CA 90036",
|
|
|
- },
|
|
|
- {
|
|
|
- date: "2016-05-08",
|
|
|
- name: "Tom",
|
|
|
- state: "California",
|
|
|
- city: "Los Angeles",
|
|
|
- address: "No. 189, Grove St, Los Angeles",
|
|
|
- zip: "CA 90036",
|
|
|
- },
|
|
|
- {
|
|
|
- date: "2016-05-06",
|
|
|
- name: "Tom",
|
|
|
- state: "California",
|
|
|
- city: "Los Angeles",
|
|
|
- address: "No. 189, Grove St, Los Angeles",
|
|
|
- zip: "CA 90036",
|
|
|
- },
|
|
|
- {
|
|
|
- date: "2016-05-07",
|
|
|
- name: "Tom",
|
|
|
- state: "California",
|
|
|
- city: "Los Angeles",
|
|
|
- address: "No. 189, Grove St, Los Angeles",
|
|
|
- zip: "CA 90036",
|
|
|
- },
|
|
|
-];
|
|
|
+function changeFile(row, num) {
|
|
|
+ row = toRaw(row);
|
|
|
+ thisFolder.value = row;
|
|
|
+ console.log("changeFilerow2", row);
|
|
|
+ newDirId.value = row.dirId;
|
|
|
+ newSpaceId.value = row.spaceId;
|
|
|
+ documents
|
|
|
+ .getALLdocument({ parentId: row.dirId - 0, spaceId: row.spaceId - 0 })
|
|
|
+ .then((res) => {
|
|
|
+ tableFolderData.value = res.data;
|
|
|
+ // if (res.code === 200) {
|
|
|
+ if (res.data.length === 0) {
|
|
|
+ myfile
|
|
|
+ .getById(newDirId.value)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ tableFileData.value = res.rows;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ console.error("myfile.getAllFileMenu 调用失败:", error);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ myfile
|
|
|
+ .getById(row.dirId - 0)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ tableFileData.value = res.rows;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((error) => {
|
|
|
+ console.error("myfile.getAllFileMenu 调用失败:", error);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // }
|
|
|
+ });
|
|
|
+}
|
|
|
+function formatFileSize(fileSize) {
|
|
|
+ if (fileSize >= 1024 * 1024 * 1024) {
|
|
|
+ // 大于等于1GB,显示GB
|
|
|
+ return (fileSize / (1024 * 1024 * 1024)).toFixed(2) + "GB";
|
|
|
+ } else if (fileSize >= 1024 * 1024) {
|
|
|
+ // 大于等于1MB,显示MB
|
|
|
+ return (fileSize / (1024 * 1024)).toFixed(2) + "MB";
|
|
|
+ } else if (fileSize >= 1024) {
|
|
|
+ // 大于等于1KB,显示KB
|
|
|
+ return (fileSize / 1024).toFixed(2) + "KB";
|
|
|
+ } else {
|
|
|
+ // 小于1KB,显示字节
|
|
|
+ return fileSize + "B";
|
|
|
+ }
|
|
|
+}
|
|
|
+const setIcon = (fileType) => {
|
|
|
+ switch (fileType) {
|
|
|
+ case ".docx":
|
|
|
+ return file_DOC;
|
|
|
+ break;
|
|
|
+ case ".pdf":
|
|
|
+ return file_pdf;
|
|
|
+ break;
|
|
|
+ case ".ppt":
|
|
|
+ return file_PPT;
|
|
|
+ break;
|
|
|
+ case ".txt":
|
|
|
+ return file_TXT;
|
|
|
+ break;
|
|
|
+ case ".xlsx":
|
|
|
+ return file_XLSX;
|
|
|
+ break;
|
|
|
+ case ".csv":
|
|
|
+ return file_XLSX;
|
|
|
+ break;
|
|
|
+ case ".png":
|
|
|
+ return file_pic;
|
|
|
+ break;
|
|
|
+ case ".mp3":
|
|
|
+ return file_audio;
|
|
|
+ break;
|
|
|
+ case ".mp4":
|
|
|
+ return file_video;
|
|
|
+ break;
|
|
|
+ case ".zip":
|
|
|
+ return file_zip;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return file_DOC;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+.page {
|
|
|
+ height: 100%;
|
|
|
+ height: 100%;
|
|
|
+ background-color: #fff;
|
|
|
+}
|
|
|
.table_icon {
|
|
|
height: 27px;
|
|
|
width: 27px;
|
|
|
vertical-align: middle;
|
|
|
}
|
|
|
+.collapse_Item {
|
|
|
+ height: 50%;
|
|
|
+}
|
|
|
::v-deep .el-collapse-item__content {
|
|
|
padding-bottom: 0;
|
|
|
+ height: 50% !important;
|
|
|
}
|
|
|
::v-deep .el-collapse-item__header {
|
|
|
background-color: #ebeff6 !important;
|
|
|
@@ -218,7 +309,7 @@ const tableData = [
|
|
|
}
|
|
|
.collapseItem_title {
|
|
|
position: relative;
|
|
|
- left: 40px;
|
|
|
+ left: 60px;
|
|
|
color: #2e6bc8;
|
|
|
font-family: Inter-Medium;
|
|
|
font-size: 12px;
|
|
|
@@ -235,7 +326,7 @@ const tableData = [
|
|
|
}
|
|
|
::v-deep .el-table__body tbody [class*="column_"] {
|
|
|
text-align: right;
|
|
|
- &:nth-child(4n+1){
|
|
|
+ &:nth-child(4n + 1) {
|
|
|
text-align: left;
|
|
|
}
|
|
|
}
|