2024-08-12 23:23:29 +08:00
|
|
|
|
<script setup>
|
2024-08-13 15:33:03 +08:00
|
|
|
|
import {getAssignmentList, getCanReceiveAssignment, acceptAssignment, receiveAssignment} from '@/apis/assignmentApi'
|
|
|
|
|
|
import {onMounted, reactive, ref} from "vue";
|
2024-08-13 23:04:17 +08:00
|
|
|
|
import AssignmentCard from "./components/AssignmentCard.vue"
|
|
|
|
|
|
const canReceiveAssignmentList = ref([]);
|
2024-08-12 23:23:29 +08:00
|
|
|
|
|
2024-08-13 23:04:17 +08:00
|
|
|
|
const assignmentList = ref([]);
|
|
|
|
|
|
const queryForm = reactive({
|
|
|
|
|
|
assignmentQueryState: "Progress"
|
2024-08-13 15:33:03 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
2024-08-13 23:04:17 +08:00
|
|
|
|
//当前选择table页
|
|
|
|
|
|
const currentTableSelect = ref("canAccept");
|
|
|
|
|
|
|
|
|
|
|
|
//切换tab
|
|
|
|
|
|
const changeClickTable = async (tabName) => {
|
|
|
|
|
|
console.log(tabName,"tabName")
|
|
|
|
|
|
switch (tabName) {
|
|
|
|
|
|
case "canAccept":
|
|
|
|
|
|
const {data: canReceiveAssignmentListData} = await getCanReceiveAssignment();
|
|
|
|
|
|
canReceiveAssignmentList.value = canReceiveAssignmentListData;
|
|
|
|
|
|
return;
|
|
|
|
|
|
case "progress":
|
|
|
|
|
|
queryForm.assignmentQueryState = "Progress";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "end":
|
|
|
|
|
|
queryForm.assignmentQueryState = "End";
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
const {data} = await getAssignmentList(queryForm);
|
|
|
|
|
|
assignmentList.value = data;
|
|
|
|
|
|
}
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
|
const {data: canReceiveAssignmentListData} = await getCanReceiveAssignment();
|
|
|
|
|
|
canReceiveAssignmentList.value = canReceiveAssignmentListData;
|
2024-08-13 15:33:03 +08:00
|
|
|
|
});
|
|
|
|
|
|
//刷新数据
|
2024-08-13 23:04:17 +08:00
|
|
|
|
const refreshData = async () => {
|
2024-08-13 15:33:03 +08:00
|
|
|
|
|
2024-08-13 23:04:17 +08:00
|
|
|
|
const {data: canReceiveAssignmentListData} = await getCanReceiveAssignment();
|
|
|
|
|
|
canReceiveAssignmentList.value = canReceiveAssignmentListData;
|
2024-08-13 15:33:03 +08:00
|
|
|
|
|
2024-08-13 23:04:17 +08:00
|
|
|
|
const {data} = await getAssignmentList(queryForm);
|
|
|
|
|
|
assignmentList.value = data;
|
2024-08-13 15:33:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//接收任务
|
2024-08-13 23:04:17 +08:00
|
|
|
|
const onClickAcceptAssignment = async (item) => {
|
|
|
|
|
|
await acceptAssignment(item.id);
|
|
|
|
|
|
await refreshData();
|
2024-08-13 15:33:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-13 23:04:17 +08:00
|
|
|
|
const onClickReceiveAssignment = async (id) => {
|
2024-08-13 15:33:03 +08:00
|
|
|
|
await receiveAssignment(id);
|
2024-08-13 23:04:17 +08:00
|
|
|
|
await refreshData();
|
2024-08-13 15:33:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//切换tab
|
2024-08-13 23:04:17 +08:00
|
|
|
|
const changeTab = async (state) => {
|
|
|
|
|
|
queryForm.assignmentQueryState = state;
|
|
|
|
|
|
await refreshData();
|
2024-08-13 15:33:03 +08:00
|
|
|
|
}
|
2024-08-13 23:04:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-08-12 23:23:29 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<template>
|
2024-08-13 23:04:17 +08:00
|
|
|
|
<div class="content-body">
|
|
|
|
|
|
<el-tabs
|
|
|
|
|
|
v-model="currentTableSelect"
|
|
|
|
|
|
type="border-card"
|
|
|
|
|
|
@tab-change="changeClickTable"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-tab-pane label="可接受" name="canAccept"/>
|
|
|
|
|
|
<el-tab-pane label="已接受" name="progress"/>
|
|
|
|
|
|
<el-tab-pane label="已结束" name="end"/>
|
|
|
|
|
|
|
|
|
|
|
|
<div v-for="item in canReceiveAssignmentList" v-if="currentTableSelect==='canAccept'">
|
|
|
|
|
|
<AssignmentCard :data="item" @onClick="onClickAcceptAssignment"/>
|
|
|
|
|
|
</div>
|
2024-08-13 15:33:03 +08:00
|
|
|
|
|
2024-08-13 23:04:17 +08:00
|
|
|
|
<div v-for="item in assignmentList" v-else>{{ item }}
|
|
|
|
|
|
<button type="button" @click="onClickReceiveAssignment(item.id)">领取奖励</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-tabs>
|
2024-08-13 15:33:03 +08:00
|
|
|
|
</div>
|
2024-08-13 23:04:17 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
|
.content-body{
|
|
|
|
|
|
|
|
|
|
|
|
padding: 30px ;
|
|
|
|
|
|
}
|
2024-08-13 15:33:03 +08:00
|
|
|
|
|
2024-08-13 23:04:17 +08:00
|
|
|
|
|
|
|
|
|
|
</style>
|