From 9bcc0a642552f9ff6d9f367073f003c915187295 Mon Sep 17 00:00:00 2001 From: lihui_ocr Date: Mon, 15 Apr 2024 15:41:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=8D=A1=E7=89=87=E9=A1=B5=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E4=B8=8E=E9=80=9A=E8=BF=87=E5=90=8E=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/final/content/ListContent.vue | 316 +++++++++++++++++------- 1 file changed, 222 insertions(+), 94 deletions(-) diff --git a/src/views/final/content/ListContent.vue b/src/views/final/content/ListContent.vue index a7fa77c..4e4474d 100644 --- a/src/views/final/content/ListContent.vue +++ b/src/views/final/content/ListContent.vue @@ -19,9 +19,10 @@ const sortorder = ref("asc"); const sortname = ref("states"); const loading = ref(true); const total = ref(0); - +const scrollContainer=ref(null); const tableData = ref([]); const finalStore = useFinal(); +let num = 1; const pagination = reactive({ page: 1, pageCount: 20, @@ -40,8 +41,40 @@ const initRem = () => { document.documentElement.style.fontSize = scale * rempPx + "px"; }; -function initData() { - query(1, 10); +async function initData( page: number, + pageSize: number, + filterId?: any, + taskName?: string) { + const asideParmas = unref(finalStore.getAsideValue); + // 有过滤配置的时候优先使用过滤配置,不要使用左侧参数 + // let params = filterId ? { userSearchId: filterId } : asideParmas + let params = asideParmas; + params = params?.izshowall ? {} : params; + + const result = await getFinalList({ + sortorder: sortorder.value, + pageSize, + currPage: page, + sortname: sortname.value, + taskName, + //isFail: true, + ...params, + }); + const { data, pageCount, totalCount } = result; + console.log(data, pageCount, totalCount); +//tableData.value = tableData.value.concat(data); + tableData.value = data; +console.log(tableData.value) + total.value = totalCount; + pagination.page = page; + pagination.pageCount = Math.ceil(totalCount / pageSize); + loading.value = false; + tableData.value.map((item) => { + if(isValidTimestamp(item.createdate)){ + item.createdate = formatToDateHMS(item.createdate); + }}); + + tableData.value = chunk(tableData.value, 4); } async function query( page: number, @@ -63,23 +96,51 @@ async function query( currPage: page, sortname: sortname.value, taskName, + //isFail: true, ...params, }); const { data, pageCount, totalCount } = result; console.log(data, pageCount, totalCount); - - tableData.value = data; - + let newlist=[] +let oldlist= tableData.value +if(oldlist.length>0){ + oldlist.map((item)=>{ + console.log(item) + if(item.length>0){ +item.map((itemx:any)=>{ + newlist.push(itemx) +}) + } + }) + data.map((item)=>{ +newlist.push(item) + }) + +}else{ + newlist=data +} +//tableData.value = tableData.value.concat(data); + tableData.value = newlist; +console.log(tableData.value) total.value = totalCount; pagination.page = page; pagination.pageCount = Math.ceil(totalCount / pageSize); loading.value = false; tableData.value.map((item) => { + if(isValidTimestamp(item.createdate)){ item.createdate = formatToDateHMS(item.createdate); - }); + }}); tableData.value = chunk(tableData.value, 4); } +function isValidTimestamp(value) { + if (typeof value !== 'number' || !Number.isInteger(value)) { + return false; // 首先确保值是一个整数数字 + } + const date = new Date(value); + return !isNaN(date.getTime()); // 验证能否转换为有效日期 +} + //查看详情页 function goDetail(row) { router.push({ @@ -113,7 +174,7 @@ function showModal(modalRef: any) { } onMounted(() => { initRem(); - initData(); + initData(1,20); }); const item = { img: testImg, @@ -175,7 +236,8 @@ function doAudit(param: any, row: any) { if (code === "OK") { message.success(res.message); //changecardstatus(3, row); - query(1, 10); + initData(1,20); + num=1 reload(); } else { message.error(res.message); @@ -206,6 +268,35 @@ function reload() { // const { page, pageSize } = unref(tableRef.value?.pagination) as PaginationProps // query(page!, pageSize!) } + +let debounceTimer; +// 检查是否滚动到底部 +function checkBottom() { + const container = scrollContainer.value; + // console.log(1) + if (!container) return; + + // const { scrollTop, clientHeight, scrollHeight } = container; + const scrollTop = window.pageYOffset || document.documentElement.scrollTop; + + // 获取视口的内部高度 + const clientHeight = + window.innerHeight || document.documentElement.clientHeight; + + // 获取整个文档的高度 + const scrollHeight = document.documentElement.scrollHeight; + + clearTimeout(debounceTimer); + debounceTimer = setTimeout(() => { + if (scrollTop + clientHeight >= scrollHeight - 10) { + num = num + 1; + console.log(num); + query(num, 20) + // fetchData(); // 接近底部时加载更多数据 + } + }, 500); +} +