|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
|
- <el-scrollbar ref="scrollbar" class="analysis" @scroll="scroll">
|
|
|
+ <div class="analysis" @scroll="scroll">
|
|
|
<div class="head">
|
|
|
<div class="title">爆料中心</div>
|
|
|
<div class="searchRow">
|
|
@@ -29,13 +29,15 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="body">
|
|
|
- <analysisList ref="analysisListEle" />
|
|
|
+ <analysisList ref="analysisListEle" @setTotal="setTotal" />
|
|
|
+ <el-pagination
|
|
|
+ @current-change="changePage"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :total="totalPage"
|
|
|
+ />
|
|
|
</div>
|
|
|
-
|
|
|
- <el-icon :size="45" class="upload" v-show="showUpload" @click="upload"
|
|
|
- ><Upload
|
|
|
- /></el-icon>
|
|
|
- </el-scrollbar>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
@@ -44,30 +46,30 @@ import { ref, onMounted } from 'vue';
|
|
|
|
|
|
import analysisList from './components/reporting_list.vue';
|
|
|
|
|
|
-const scrollbar = ref();
|
|
|
const analysisListEle = ref();
|
|
|
-const showUpload = ref(false);
|
|
|
const searchText = ref('');
|
|
|
const date = ref([]);
|
|
|
|
|
|
const pageSize = 10;
|
|
|
let page = 1;
|
|
|
-let totalPage = 0;
|
|
|
+let totalPage = ref(0);
|
|
|
|
|
|
onMounted(() => {
|
|
|
getList();
|
|
|
});
|
|
|
|
|
|
const getList = () => {
|
|
|
- if (page <= totalPage) return;
|
|
|
+ if (page != 1 && page > Math.ceil(totalPage.value / pageSize)) return;
|
|
|
const search = {
|
|
|
title: searchText.value,
|
|
|
page: page++,
|
|
|
size: pageSize,
|
|
|
};
|
|
|
// 时间区间
|
|
|
- if (date.value[0]) search.start = dayjs(date.value[0]).format('YYYY-MM-DD HH:mm:ss');
|
|
|
- if (date.value[1]) search.end = dayjs(date.value[1]).format('YYYY-MM-DD HH:mm:ss');
|
|
|
+ if (date.value[0])
|
|
|
+ search.start = dayjs(date.value[0]).format('YYYY-MM-DD HH:mm:ss');
|
|
|
+ if (date.value[1])
|
|
|
+ search.end = dayjs(date.value[1]).format('YYYY-MM-DD HH:mm:ss');
|
|
|
analysisListEle.value.getlist(search);
|
|
|
};
|
|
|
|
|
@@ -82,20 +84,30 @@ const search = () => {
|
|
|
getList();
|
|
|
};
|
|
|
|
|
|
+const changePage = p => {
|
|
|
+ page = p;
|
|
|
+ getList();
|
|
|
+};
|
|
|
+
|
|
|
+const setTotal = total => {
|
|
|
+ totalPage.value = total;
|
|
|
+};
|
|
|
+
|
|
|
+let time = undefined;
|
|
|
const scroll = e => {
|
|
|
const height =
|
|
|
document.querySelector('.analysis .head').offsetHeight +
|
|
|
document.querySelector('.analysis .body').offsetHeight -
|
|
|
document.querySelector('.analysis').offsetHeight;
|
|
|
const scrollNum = e.scrollTop.toFixed(2) - 0;
|
|
|
- if (!showUpload.value && scrollNum > 180) showUpload.value = true;
|
|
|
- else if (scrollNum <= 180) showUpload.value = false;
|
|
|
- if (height - scrollNum > 0) return;
|
|
|
- getList();
|
|
|
-};
|
|
|
-
|
|
|
-const upload = () => {
|
|
|
- scrollbar.value.setScrollTop(0);
|
|
|
+ if (time || height - scrollNum > 0) {
|
|
|
+ time = window.clearTimeout(time);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ time = setTimeout(() => {
|
|
|
+ getList();
|
|
|
+ time = window.clearTimeout(time);
|
|
|
+ }, 500);
|
|
|
};
|
|
|
</script>
|
|
|
|