diff --git a/packages/mobile/src/views/Rebuild/Rebuild.vue b/packages/mobile/src/views/Rebuild/Rebuild.vue
index 8fb51ce..e9408e1 100644
--- a/packages/mobile/src/views/Rebuild/Rebuild.vue
+++ b/packages/mobile/src/views/Rebuild/Rebuild.vue
@@ -5,7 +5,7 @@
-
+
审批通过
@@ -57,29 +57,55 @@ import { request } from '../../../../shared/utils/request'
const router = useRouter()
const loading = ref(false)
const finished = ref(false)
+const loaded = ref(false)
+
+const pageNum = ref(1)
+const pageSize = 10
onMounted(() => {
- getData()
+ getData({ reset: true })
})
-const getData = async () => {
- const params = {
- pageNum: 1,
- pageSize: 999,
- }
- if (searchValue.value) {
- params.districtName = searchValue.value
+const getData = async ({ reset = false } = {}) => {
+ if (loading.value) return
+
+ if (reset) {
+ pageNum.value = 1
+ finished.value = false
+ loaded.value = false
+ list.value = []
}
+
+ if (finished.value) return
+
loading.value = true
- const res = await request({
- url: '/snow-ops-platform/recovery/list',
- method: 'GET',
- params,
- })
- if (res.code === '00000') {
- list.value = res.data.records
+
+ try {
+ const params = {
+ pageNum: pageNum.value,
+ pageSize,
+ }
+ if (searchValue.value) {
+ params.districtName = searchValue.value.trim()
+ }
+ const res = await request({
+ url: '/snow-ops-platform/recovery/list',
+ method: 'GET',
+ params,
+ })
+ if (res.code === '00000' && res.data?.records) {
+ list.value = reset ? res.data.records : [...list.value, ...res.data.records]
+ const total = Number(res.data.total || 0)
+ finished.value = list.value.length >= total || res.data.records.length < pageSize
+ pageNum.value += 1
+ }
+ } catch (error) {
+ console.error('获取列表失败:', error)
+ finished.value = true
+ } finally {
+ loading.value = false
+ loaded.value = true
}
- loading.value = false
}
// 搜索关键词
@@ -111,10 +137,15 @@ const handleAddDevice = () => {
// });
}
+const handleLoadMore = () => {
+ if (!loaded.value) return
+ getData()
+}
+
watch(
() => searchValue.value,
() => {
- getData()
+ getData({ reset: true })
},
)