| | |
| | | <img |
| | | :src="detail.isCollected ? IconAttentioActive : IconAttention" |
| | | class="taskDetail-attention-icon" |
| | | @click="handleAttention" |
| | | /> |
| | | </template> |
| | | <div class="taskDetail-time"> |
| | |
| | | :isFlex="false" |
| | | openType="share" |
| | | ></PageFooterAction> |
| | | <PageFooterAction :icon="IconPhone" text="手机" :isFlex="false"></PageFooterAction> |
| | | <PageFooterBtn v-if="detail.releaseStatus === EnumTaskReleaseStatus.InProcess" type="primary" |
| | | >报名(5人已报名)</PageFooterBtn |
| | | <PageFooterAction |
| | | :icon="IconPhone" |
| | | text="手机" |
| | | :isFlex="false" |
| | | @click="handleCall" |
| | | ></PageFooterAction> |
| | | <PageFooterBtn |
| | | v-if="detail.releaseStatus === EnumTaskReleaseStatus.InProcess" |
| | | type="primary" |
| | | @click="handleApply" |
| | | >{{ `报名(${detail?.applyCount ?? 0}人已报名)` }}</PageFooterBtn |
| | | > |
| | | <PageFooterBtn v-if="detail.releaseStatus === EnumTaskReleaseStatus.Stopped" color="#999999" |
| | | >已停止</PageFooterBtn |
| | |
| | | import Taro from '@tarojs/taro'; |
| | | import { useQuery } from '@tanstack/vue-query'; |
| | | import * as taskServices from '@12333/services/apiV2/task'; |
| | | import * as taskUserServices from '@12333/services/apiV2/taskUser'; |
| | | import { useToggle } from 'senin-mini/hooks'; |
| | | import { TaskPrice, TaskDetailWelfareItem } from '@12333/components'; |
| | | import IconAttention from '@/assets/task/icon-attention.png'; |
| | |
| | | import './taskDetail.scss'; |
| | | import CompanyDesc from '../components/CompanyDesc.vue'; |
| | | import dayjs from 'dayjs'; |
| | | import { TaskUtils, toThousand, setOSSLink } from '@12333/utils'; |
| | | import { TaskUtils, toThousand, setOSSLink, Message } from '@12333/utils'; |
| | | import { |
| | | EnumSettlementCycleText, |
| | | BillingMethodEnumUnit, |
| | |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | const handleApply = useAccessLogin(async () => { |
| | | try { |
| | | let params: API.ApplyTaskCommand = { |
| | | ids: [taskId], |
| | | }; |
| | | let res = await taskUserServices.applyTask(params); |
| | | if (res) { |
| | | Message.success('报名成功', { |
| | | onClosed() { |
| | | refetch({ type: 'inactive' }); |
| | | }, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | }); |
| | | |
| | | const handleAttention = useAccessLogin(async () => { |
| | | try { |
| | | await Message.confirm({ |
| | | message: `确定${detail.value?.isCollected ? '取消收藏' : '收藏'}吗?`, |
| | | }); |
| | | let params: API.CollectTaskCommand = { |
| | | ids: [taskId], |
| | | isCollect: !detail.value?.isCollected, |
| | | }; |
| | | let res = await taskUserServices.collectTask(params); |
| | | if (res) { |
| | | Message.success('操作成功', { |
| | | onClosed() { |
| | | refetch({ type: 'inactive' }); |
| | | }, |
| | | }); |
| | | } |
| | | } catch (error) {} |
| | | }); |
| | | |
| | | const handleCall = useAccessLogin(() => { |
| | | if (detail.value.contactPhoneNumber) { |
| | | Taro.makePhoneCall({ |
| | | phoneNumber: detail.value.contactPhoneNumber, |
| | | }); |
| | | } |
| | | }); |
| | | </script> |