- 移除硬编码的任务数量(12/5/28/3) - 加载所有任务后统计各状态数量 - 后端任务API page_size限制调整为500
This commit is contained in:
@@ -28,22 +28,22 @@
|
||||
<el-tabs v-model="activeTab" @tab-click="handleTabClick">
|
||||
<el-tab-pane label="进行中" name="ongoing">
|
||||
<span slot="label">
|
||||
进行中 <el-badge :value="12" class="tab-badge" />
|
||||
进行中 <el-badge :value="taskCounts.ongoing" class="tab-badge" v-if="taskCounts.ongoing > 0" />
|
||||
</span>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="待开始" name="pending">
|
||||
<span slot="label">
|
||||
待开始 <el-badge :value="5" class="tab-badge" />
|
||||
待开始 <el-badge :value="taskCounts.pending" class="tab-badge" v-if="taskCounts.pending > 0" />
|
||||
</span>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="已完成" name="completed">
|
||||
<span slot="label">
|
||||
已完成 <el-badge :value="28" class="tab-badge" />
|
||||
已完成 <el-badge :value="taskCounts.completed" class="tab-badge" v-if="taskCounts.completed > 0" />
|
||||
</span>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="已过期" name="expired">
|
||||
<span slot="label">
|
||||
已过期 <el-badge :value="3" class="tab-badge" />
|
||||
已过期 <el-badge :value="taskCounts.expired" class="tab-badge" v-if="taskCounts.expired > 0" />
|
||||
</span>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
@@ -383,6 +383,14 @@ const taskStats = ref([
|
||||
// 任务列表数据
|
||||
const allTasks = ref<Task[]>([])
|
||||
|
||||
// 各状态任务数量
|
||||
const taskCounts = reactive({
|
||||
ongoing: 0,
|
||||
pending: 0,
|
||||
completed: 0,
|
||||
expired: 0
|
||||
})
|
||||
|
||||
// 任务表单
|
||||
const taskForm = reactive({
|
||||
title: '',
|
||||
@@ -417,9 +425,6 @@ const rules = reactive<FormRules>({
|
||||
|
||||
// 根据当前标签页筛选的任务列表
|
||||
const taskList = computed(() => {
|
||||
if (activeTab.value === 'ongoing') {
|
||||
return allTasks.value
|
||||
}
|
||||
return allTasks.value.filter(task => task.status === activeTab.value)
|
||||
})
|
||||
|
||||
@@ -442,15 +447,20 @@ const loadTaskStats = async () => {
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载任务列表
|
||||
* 加载任务列表(加载所有任务,前端筛选)
|
||||
*/
|
||||
const loadTasks = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const status = activeTab.value === 'ongoing' ? 'ongoing' : activeTab.value
|
||||
const res = await getTasks({ status })
|
||||
// 不传status参数,获取所有任务
|
||||
const res = await getTasks({ page_size: 500 })
|
||||
if (res.code === 200 && res.data) {
|
||||
allTasks.value = res.data.items
|
||||
// 统计各状态任务数量
|
||||
taskCounts.ongoing = allTasks.value.filter(t => t.status === 'ongoing').length
|
||||
taskCounts.pending = allTasks.value.filter(t => t.status === 'pending').length
|
||||
taskCounts.completed = allTasks.value.filter(t => t.status === 'completed').length
|
||||
taskCounts.expired = allTasks.value.filter(t => t.status === 'expired').length
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error('加载任务列表失败:', error)
|
||||
|
||||
Reference in New Issue
Block a user