From 79a8edd4558b22cdd53365135cef37bf28031b44 Mon Sep 17 00:00:00 2001 From: sexygoat <1538832180@qq.com> Date: Sat, 25 Apr 2026 15:21:40 +0800 Subject: [PATCH] fix: ui --- .../agent-system/enterprise-devices/index.vue | 189 ++++++++++-------- 1 file changed, 108 insertions(+), 81 deletions(-) diff --git a/src/pages/agent-system/enterprise-devices/index.vue b/src/pages/agent-system/enterprise-devices/index.vue index 2353cd0..670289e 100644 --- a/src/pages/agent-system/enterprise-devices/index.vue +++ b/src/pages/agent-system/enterprise-devices/index.vue @@ -8,10 +8,9 @@ const enterpriseId = ref(0) const deviceList = ref([]) const loading = ref(false) const searchKeyword = ref('') - -const filteredDevices = computed(() => { - return deviceList.value -}) +const page = ref(1) +const pageSize = 20 +const hasMore = ref(true) const stats = computed(() => { const total = deviceList.value.length @@ -22,7 +21,13 @@ onMounted(() => { loadEnterpriseDevices() }) -async function loadEnterpriseDevices() { +async function loadEnterpriseDevices(isRefresh = false) { + if (isRefresh) { + page.value = 1 + hasMore.value = true + deviceList.value = [] + } + loading.value = true try { @@ -40,23 +45,29 @@ async function loadEnterpriseDevices() { } const params: any = { - page: 1, - page_size: 100, + page: page.value, + page_size: pageSize, } if (searchKeyword.value) { params.virtual_no = searchKeyword.value } const devicesData = await getEnterpriseDevices(enterpriseId.value, params) - deviceList.value = devicesData?.items || [] - } - catch (error: any) { + const items = devicesData?.items || [] + if (page.value === 1) { + deviceList.value = items + } else { + deviceList.value.push(...items) + } + + hasMore.value = items.length >= pageSize + page.value++ + } catch (error: any) { console.error('加载企业设备列表失败:', error) if (error instanceof Error && error.message && !error.statusCode) { uni.$u.toast(error.message) } - } - finally { + } finally { loading.value = false } } @@ -81,96 +92,112 @@ function formatAuthorizedTime(time: string) { } function handleSearch() { - deviceList.value = [] - loadEnterpriseDevices() + loadEnterpriseDevices(true) +} + +function loadMore() { + if (hasMore.value && !loading.value) { + loadEnterpriseDevices() + } +} + +function onScroll(e: any) { + const { scrollTop, scrollHeight, clientHeight } = e.target + if (scrollHeight - scrollTop - clientHeight < 100) { + loadMore() + } }