|
@@ -256,8 +256,8 @@
|
|
|
<!-- 文件 -->
|
|
|
<div class="fileTable">
|
|
|
<el-collapse v-model="files" >
|
|
|
- <el-collapse-item title="文件" name="2" class="custom-collapse-item">
|
|
|
- <el-table v-if="fileGrid" height="38vh" :data="fileList" :scrollbar-always-on="true" style="width: 100%;"
|
|
|
+ <el-collapse-item title="文件" name="2" class="custom-collapse-item">
|
|
|
+ <el-table v-el-table-infinite-scroll="setScroll" :infinite-scroll-distance="10" :infinite-scroll-disabled="tableBeEnd" v-if="fileGrid" height="38vh" :data="fileList" :scrollbar-always-on="true" style="width: 100%;"
|
|
|
@row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
|
|
|
@row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
|
|
|
<el-table-column type="selection" width="55" />
|
|
@@ -457,8 +457,12 @@ import fileSpace from '../../api/filespace/fileSpace';
|
|
|
import { getLeveldetail } from '../../api/level/level';
|
|
|
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
|
|
import Cookies from "js-cookie";
|
|
|
+import elTableInfiniteScroll from 'el-table-infinite-scroll'
|
|
|
|
|
|
export default {
|
|
|
+ directives: {
|
|
|
+ 'el-table-infinite-scroll': elTableInfiniteScroll
|
|
|
+ },
|
|
|
setup() {
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
let fileTrees = ref(false)//filetree父传子
|
|
@@ -643,6 +647,9 @@ export default {
|
|
|
const addFileTab = inject("addFileTab");
|
|
|
const addFolderAdd = inject("addFolderAdd");
|
|
|
const spaceName = ref()
|
|
|
+ const filePageNum = ref(1) //获取文件分页
|
|
|
+ const tableBeEnd = ref(true)//控制下拉是否到底
|
|
|
+ const tableTotal = ref(0)//表格数据总数
|
|
|
// 获取文件夹,中栏,文件
|
|
|
function getAllTop() {
|
|
|
documents.getTop(3).then(res => {
|
|
@@ -1164,6 +1171,10 @@ export default {
|
|
|
|
|
|
// 文件夹每行点击事件
|
|
|
function folderClick(row, list) {
|
|
|
+ // 初始化分页数据
|
|
|
+ tableBeEnd.value = true
|
|
|
+ filePageNum.value = 1
|
|
|
+ tableTotal.value = 0
|
|
|
// 上一级dirId就是下一级的parentId
|
|
|
// 判断是点击打开还是右键菜单打开
|
|
|
if(row){
|
|
@@ -1182,21 +1193,32 @@ export default {
|
|
|
// console.log('topPath',toRaw(topPath.value));
|
|
|
newDirId.value = row.dirId
|
|
|
newSpaceId.value = row.spaceId
|
|
|
+ const query = `${newDirId.value}?pageSize=10&pageNum=${filePageNum.value}`
|
|
|
documents.getALLdocument({
|
|
|
parentId: newDirId.value - 0,
|
|
|
spaceId: newSpaceId.value - 0
|
|
|
}).then(res => {
|
|
|
folderList.value = res.data
|
|
|
if (res.data.length === 0) {
|
|
|
- myfile.getById(newDirId.value).then(res => {
|
|
|
+ myfile.getById(query).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
+ tableTotal.value =res.total
|
|
|
+ if(res.rows.length<res.total){
|
|
|
+ //第一次拿到的数据少于总数开启下拉事件
|
|
|
+ tableBeEnd.value = false
|
|
|
+ }
|
|
|
fileList.value = res.rows
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
- myfile.getById(newDirId.value).then(res => {
|
|
|
+ myfile.getById(query).then(res => {
|
|
|
console.log('folerFile',res);
|
|
|
if (res.code === 200) {
|
|
|
+ tableTotal.value =res.total
|
|
|
+ if(res.rows.length<res.total){
|
|
|
+ //第一次拿到的数据少于总数开启下拉事件
|
|
|
+ tableBeEnd.value = false
|
|
|
+ }
|
|
|
fileList.value = JSON.parse(JSON.stringify(res.rows))
|
|
|
// console.log('fileList',toRaw(fileList.value));
|
|
|
}
|
|
@@ -1586,6 +1608,34 @@ export default {
|
|
|
reader.readAsText(res);
|
|
|
})
|
|
|
}
|
|
|
+ // 触底加载事件
|
|
|
+ const setScroll =async ()=>{
|
|
|
+ console.log('setScroll','到底喽');
|
|
|
+
|
|
|
+ // console.log('tableBeEnd.value',tableBeEnd.value);
|
|
|
+ filePageNum.value = filePageNum.value+1
|
|
|
+ const query = `${thisFolder.value.dirId}?pageSize=10&pageNum=${filePageNum.value}`
|
|
|
+ // -------------先禁止掉事件 定时器1秒钟后才能再次触发
|
|
|
+ tableBeEnd.value = true
|
|
|
+
|
|
|
+ // --------------------
|
|
|
+ const res = await myfile.getById(query)
|
|
|
+ // console.log('setScrollres',res);
|
|
|
+ if (res.code === 200) {
|
|
|
+ // const newarr = res.rows.concat(toRaw(fileList.value))
|
|
|
+ const newarr = toRaw(fileList.value).concat(res.rows)
|
|
|
+ console.log('newarr',newarr);
|
|
|
+ fileList.value = JSON.parse(JSON.stringify(newarr))
|
|
|
+ if(newarr.length < tableTotal.value){
|
|
|
+ //获取后的数量<total就可以再次获取
|
|
|
+ setTimeout(()=>{
|
|
|
+ tableBeEnd.value = false
|
|
|
+ },1000)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // console.log('query',query);
|
|
|
+ // console.log('fileList',fileList.value);
|
|
|
+ }
|
|
|
onMounted(() => {
|
|
|
// if(!thisFolder.value){
|
|
|
getAllTop()
|
|
@@ -1614,9 +1664,9 @@ export default {
|
|
|
setTimeout(()=>{
|
|
|
if(route.query.clickRowId){
|
|
|
const newRow = JSON.parse(route.query.clickRowId)
|
|
|
- console.log('newRow',newRow);
|
|
|
+ // console.log('newRow',newRow);
|
|
|
myfile.getDir(newRow).then(res=>{
|
|
|
- console.log('tores',res);
|
|
|
+ // console.log('tores',res);
|
|
|
thisFolder.value = res.data
|
|
|
refreshFile()
|
|
|
})
|
|
@@ -1818,7 +1868,11 @@ export default {
|
|
|
addFileTab,
|
|
|
threeBe,
|
|
|
newAdd,
|
|
|
- spaceName
|
|
|
+ spaceName,
|
|
|
+ filePageNum,
|
|
|
+ setScroll,
|
|
|
+ tableBeEnd,
|
|
|
+ tableTotal
|
|
|
}
|
|
|
},
|
|
|
watch: {
|