|  |  |  | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #renderItem="{ item }"> | 
|---|
|  |  |  | <TaskCard | 
|---|
|  |  |  | :id="item.id" | 
|---|
|  |  |  | :name="item.name" | 
|---|
|  |  |  | :address-name="item.addressName" | 
|---|
|  |  |  | :begin-time="item.beginTime" | 
|---|
|  |  |  | 
|---|
|  |  |  | :billing-method="item.billingMethod" | 
|---|
|  |  |  | :settlement-cycle="item.settlementCycle" | 
|---|
|  |  |  | :benefits="item.benefits" | 
|---|
|  |  |  | :show-actions="true" | 
|---|
|  |  |  | :release-status="item.releaseStatus" | 
|---|
|  |  |  | :hireStatus="item.hireStatus" | 
|---|
|  |  |  | @apply="goTaskDetail" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <template #actions> | 
|---|
|  |  |  | <nut-button @click="goTaskDetail(item)" type="primary">报名</nut-button> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </TaskCard> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </InfiniteLoading> | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script setup lang="ts"> | 
|---|
|  |  |  | import { TaskCard } from '@12333/components'; | 
|---|
|  |  |  | import { useUserStore } from '@/stores/modules/user'; | 
|---|
|  |  |  | import { useTaskList } from '@12333/hooks'; | 
|---|
|  |  |  | import * as taskServices from '@12333/services/apiV2/task'; | 
|---|
|  |  |  | import * as taskUserServices from '@12333/services/apiV2/taskUser'; | 
|---|
|  |  |  | import { useInfiniteLoading, useTaskList } from '@12333/hooks'; | 
|---|
|  |  |  | import Taro from '@tarojs/taro'; | 
|---|
|  |  |  | import { Message } from '@12333/utils'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | name: 'InnerPage', | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { infiniteLoadingProps } = useTaskList({ | 
|---|
|  |  |  | defaultQueryMenuState: {}, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( | 
|---|
|  |  |  | ({ pageParam }) => { | 
|---|
|  |  |  | let params: API.GetTaskInfosQuery = { | 
|---|
|  |  |  | pageModel: { | 
|---|
|  |  |  | rows: 20, | 
|---|
|  |  |  | page: pageParam, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | isCollected: true, | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goTaskDetail(item: API.GetTaskInfosQueryResultItem) { | 
|---|
|  |  |  | return taskServices.getTaskInfos(params, { | 
|---|
|  |  |  | showLoading: false, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | queryKey: ['taskServices/getTaskInfos'], | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function goTaskDetail(id: string) { | 
|---|
|  |  |  | Taro.navigateTo({ | 
|---|
|  |  |  | url: `${RouterPath.taskCheckDetail}?id=${item.id}`, | 
|---|
|  |  |  | url: `${RouterPath.taskDetail}?id=${id}&from=apply`, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function clearExpiredTask() {} | 
|---|
|  |  |  | async function clearExpiredTask() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | await Message.confirm({ | 
|---|
|  |  |  | message: '确定要清空已失效任务吗?', | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | let res = await taskUserServices.clearTaskCollect({}); | 
|---|
|  |  |  | if (res) { | 
|---|
|  |  |  | Message.success('清空成功'); | 
|---|
|  |  |  | invalidateQueries(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (error) {} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style lang="scss"> | 
|---|