|
|
@@ -122,14 +122,16 @@
|
|
|
</el-table>
|
|
|
|
|
|
<div class="workspace-footer">
|
|
|
- <span class="workspace-footer__meta">共 {{ tableData.length }} 条任务</span>
|
|
|
+ <span class="workspace-footer__meta">共 {{ totalCount }} 条任务</span>
|
|
|
<el-pagination
|
|
|
background
|
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="tableData.length"
|
|
|
+ :total="totalCount"
|
|
|
:page-sizes="[10, 20, 50]"
|
|
|
v-model:current-page="currentPage"
|
|
|
v-model:page-size="pageSize"
|
|
|
+ @current-change="handlePageChange"
|
|
|
+ @size-change="handlePageSizeChange"
|
|
|
/>
|
|
|
</div>
|
|
|
</section>
|
|
|
@@ -148,12 +150,10 @@ const statusFilter = ref("");
|
|
|
const tableData = ref([]);
|
|
|
const currentPage = ref(1);
|
|
|
const pageSize = ref(10);
|
|
|
-
|
|
|
-const totalCount = computed(() => tableData.value.length);
|
|
|
+const totalCount = ref(0);
|
|
|
|
|
|
const pagedData = computed(() => {
|
|
|
- const start = (currentPage.value - 1) * pageSize.value;
|
|
|
- return tableData.value.slice(start, start + pageSize.value);
|
|
|
+ return tableData.value;
|
|
|
});
|
|
|
|
|
|
const loadData = async () => {
|
|
|
@@ -161,8 +161,11 @@ const loadData = async () => {
|
|
|
const result = await listTasksApi({
|
|
|
keyword: keyword.value?.trim() || undefined,
|
|
|
status: statusFilter.value || undefined,
|
|
|
+ pageNum: currentPage.value,
|
|
|
+ pageSize: pageSize.value,
|
|
|
});
|
|
|
- tableData.value = Array.isArray(result) ? result : [];
|
|
|
+ tableData.value = Array.isArray(result?.list) ? result.list : [];
|
|
|
+ totalCount.value = Number(result?.total || 0);
|
|
|
} catch (error) {
|
|
|
ElMessage.error(error.message || "加载任务列表失败");
|
|
|
}
|
|
|
@@ -180,6 +183,17 @@ const handleReset = async () => {
|
|
|
await loadData();
|
|
|
};
|
|
|
|
|
|
+const handlePageChange = async (page) => {
|
|
|
+ currentPage.value = page;
|
|
|
+ await loadData();
|
|
|
+};
|
|
|
+
|
|
|
+const handlePageSizeChange = async (size) => {
|
|
|
+ pageSize.value = size;
|
|
|
+ currentPage.value = 1;
|
|
|
+ await loadData();
|
|
|
+};
|
|
|
+
|
|
|
const openCreatePage = () => {
|
|
|
router.push("/tasks/create");
|
|
|
};
|