From fbb9fdb5b11cd5ecd3ff19f41738bbd3b0afb82c Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 07 十一月 2025 11:04:21 +0800
Subject: [PATCH] fix: s
---
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue | 188 +++++++++++++++-------------------------------
1 files changed, 61 insertions(+), 127 deletions(-)
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index 96d7728..7ecb2b6 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -1,7 +1,7 @@
<template>
<LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
<ContentScrollView style="background-color: transparent">
- <Cell :title="detail?.name ?? ''" titleSize="large">
+ <TaskDetailView :detail="detail">
<template #title-right>
<img
v-if="from === 'apply'"
@@ -23,90 +23,32 @@
</div>
<div v-if="from === 'cancel'" :style="{ color: '#999999' }">宸插彇娑�</div>
</template>
- <div class="taskDetail-time">
- {{ dayjs(detail?.beginTime).format('YYYY骞碝M鏈圖D鏃�') }} 鑷�
- {{ dayjs(detail?.endTime).format('YYYY骞碝M鏈圖D鏃�') }}
- </div>
- <div class="task-card-welfare-wrapper">
- <div class="task-card-welfare-list">
- <div class="task-card-welfare-list-item">
- {{ EnumSettlementCycleText[detail.settlementCycle] }}
- </div>
- <!-- <div class="task-card-welfare-list-item">
- {{ TaskUtils.getGenderText(detail.genderLimit) }}
- </div> -->
- </div>
- <TaskPrice
- :value="toThousand(detail.serviceFee ?? 0)"
- :unit="BillingMethodEnumUnit[detail.billingMethod]"
- />
- </div>
- <div class="taskDetail-address-wrapper" @click="goMap">
- <div class="taskDetail-address-title-wrapper">
- <img :src="IconLocaltion" class="taskDetail-address-title-icon" />
- <div class="taskDetail-address-title">{{ detail?.addressName ?? '' }}</div>
- </div>
- <div class="taskDetail-address-info-wrapper">
- <div class="taskDetail-address-info">{{ detail?.addressDetail ?? '' }}</div>
- <RectRight :size="8" class="taskDetail-address-info-icon" />
- </div>
- </div>
- </Cell>
- <Cell :show-title="false">
- <CellChunk title="绂忓埄淇℃伅">
- <div class="taskDetail-welfare-list">
- <TaskDetailWelfareItem
- v-for="benefit in detail.benefits"
- :key="benefit.benefitCode"
- :icon="setOSSLink(benefit.benefitField2)"
- :text="benefit.benefitContent"
- />
- </div>
- </CellChunk>
- <CellChunk title="鎶ュ悕鏉′欢">
- <div class="taskDetail-limit-list">
- <div class="taskDetail-limit-list-item">
- <div class="taskDetail-limit-list-item-label">骞撮緞锛�</div>
- <div class="taskDetail-limit-list-item-text">
- {{ detail.ageMinLimit ?? 0 }}-{{ detail.ageMaxLimit ?? 0 }}宀�
- </div>
- </div>
- <div class="taskDetail-limit-list-item">
- <div class="taskDetail-limit-list-item-label">鎬у埆锛�</div>
- <div class="taskDetail-limit-list-item-text">
- {{ TaskUtils.getGenderText(detail.genderLimit) }}
- </div>
- </div>
- <div class="taskDetail-limit-list-item">
- <template v-if="detail?.credentialLimits?.length > 0">
- <div class="taskDetail-limit-list-item-label">璧勬牸璇佷功锛�</div>
- <div class="taskDetail-limit-list-item-text">
- {{ TaskUtils.getCredentialLimit(detail?.credentialLimits) }}
- </div>
- </template>
- </div>
- </div>
- </CellChunk>
- <CellChunk title="鍙戝竷鑰呬俊鎭�">
- <CompanyDesc
- @click="goCompanyDetail"
- :enterpriseName="detail?.enterpriseName ?? ''"
- :taskCount="detail?.taskCount ?? 0"
- ></CompanyDesc>
- </CellChunk>
- </Cell>
- <Cell>
- <template #title>
- <div class="safe-cell-title-wrapper">
- <img :src="IconSafe" class="safe-cell-title-icon" />
- <div class="safe-cell-title">瀹夊叏鎻愮ず</div>
- </div>
+ <template #companyDesc>
+ <CellChunk title="鍙戝竷鑰呬俊鎭�">
+ <CompanyDesc
+ @click="goCompanyDetail"
+ :enterpriseName="detail?.enterpriseName ?? ''"
+ :taskCount="detail?.taskCount ?? 0"
+ :isReal="detail?.isReal ?? false"
+ :supplierEnterpriseName="detail?.supplierEnterpriseName ?? ''"
+ ></CompanyDesc>
+ </CellChunk>
</template>
- <div class="safe-cell-content">
- 璇ヤ俊鎭敱鐢ㄦ埛鑷富鍙戝竷锛屽閬囪櫄鍋囦俊鎭�佽瘓楠椼�佷紶閿�绛夎繚娉曡繚瑙勮涓猴紝璇风珛鍗�
- <div class="safe-cell-content-btn" @click="goComplaint">鎶曡瘔涓炬姤</div>
- </div>
- </Cell>
+ <template #footer>
+ <Cell>
+ <template #title>
+ <div class="safe-cell-title-wrapper">
+ <img :src="IconSafe" class="safe-cell-title-icon" />
+ <div class="safe-cell-title">瀹夊叏鎻愮ず</div>
+ </div>
+ </template>
+ <div class="safe-cell-content">
+ 璇ヤ俊鎭敱鐢ㄦ埛鑷富鍙戝竷锛屽閬囪櫄鍋囦俊鎭�佽瘓楠椼�佷紶閿�绛夎繚娉曡繚瑙勮涓猴紝璇风珛鍗�
+ <div class="safe-cell-content-btn" @click="goComplaint">鎶曡瘔涓炬姤</div>
+ </div>
+ </Cell>
+ </template>
+ </TaskDetailView>
</ContentScrollView>
<PageFooter>
<PageFooterAction
@@ -122,7 +64,7 @@
@click="handleCall"
></PageFooterAction>
<PageFooterBtn
- v-if="from === 'sign'"
+ v-if="from === 'sign' && !!detail?.applyButton"
type="primary"
:disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
@click="handleSign"
@@ -130,7 +72,13 @@
{{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
</PageFooterBtn>
<PageFooterBtn
- v-if="from === 'hire'"
+ v-if="
+ from === 'hire' &&
+ !(
+ isContainCheckIn &&
+ detail?.hireButton === GetTaskInfoQueryResultHireButton.ApplyCheckReceive
+ )
+ "
type="primary"
:disabled="detail?.hireButton !== GetTaskInfoQueryResultHireButton.ApplyCheckReceive"
@click="handleHire"
@@ -159,23 +107,17 @@
import { useQuery } from '@tanstack/vue-query';
import * as taskServices from '@12333/services/apiV2/task';
import * as taskUserServices from '@12333/services/apiV2/taskUser';
-import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee';
import { useToggle } from 'senin-mini/hooks';
-import { TaskPrice, TaskDetailWelfareItem } from '@12333/components';
+import { TaskDetailView, Cell, CellChunk } from '@12333/components';
import IconAttention from '@/assets/task/icon-attention.png';
import IconAttentioActive from '@/assets/task/icon-attention-active.png';
-import { RectRight } from '@nutui/icons-vue-taro';
import IconShare from '@/assets/task/icon-share.png';
import IconPhone from '@/assets/task/icon-phone.png';
import IconSafe from '@/assets/task/icon-safe.png';
-import IconLocaltion from '@/assets/task/icon-localtion.png';
import './taskDetail.scss';
import CompanyDesc from '../components/CompanyDesc.vue';
-import dayjs from 'dayjs';
-import { TaskUtils, toThousand, setOSSLink, Message } from '@12333/utils';
+import { Message } from '@12333/utils';
import {
- EnumSettlementCycleText,
- BillingMethodEnumUnit,
EnumTaskReleaseStatus,
GetPersonalApplyTaskInfosQueryStatusColor,
GetTaskInfoQueryResultApplyButtonText,
@@ -183,8 +125,10 @@
GetTaskInfoQueryResultHireButtonText,
GetTaskInfoQueryResultHireButton,
GetTaskInfoQueryResultApplyButton,
+ EnumTaskCheckReceiveMethod,
} from '@12333/constants';
import { useAccessLogin } from '@/hooks';
+import { useTaskInfo } from '@12333/hooks';
defineOptions({
name: 'InnerPage',
@@ -198,26 +142,7 @@
const id = router.params?.id ?? '';
const from = router.params?.from ?? '';
-const {
- isLoading,
- isError,
- data: detail,
- refetch,
-} = useQuery({
- queryKey: ['taskServices/getTaskInfo', id],
- queryFn: async () => {
- return await taskServices.getTaskInfo(
- { id: id },
- {
- showLoading: false,
- }
- );
- },
- placeholderData: () => ({} as API.GetTaskInfoQueryResult),
- onSuccess(data) {
- // if (data.isExistTradeChatRecord) setTrue();
- },
-});
+const { isLoading, isError, detail, refetch, isContainCheckIn } = useTaskInfo({ id });
const { isCollapse, setTrue } = useToggle();
@@ -230,23 +155,28 @@
const goCompanyDetail = useAccessLogin(() => {
if (detail.value.enterpriseId) {
Taro.navigateTo({
- url: `${RouterPath.companyDetail}?id=${detail.value.enterpriseId}`,
+ url: `${RouterPath.companyDetail}?id=${detail.value.enterpriseId}&supplierEnterpriseId=${
+ detail.value.supplierEnterpriseId ?? ''
+ }`,
});
}
});
-const handleApply = useAccessLogin(async () => {
- try {
- let params: API.ApplyTaskCommand = {
- ids: [id],
- };
- let res = await taskUserServices.applyTask(params);
- if (res) {
- Message.success('鎶ュ悕鎴愬姛');
- refetch({ type: 'inactive' });
- }
- } catch (error) {}
-});
+const handleApply = useAccessReal(
+ async () => {
+ try {
+ let params: API.ApplyTaskCommand = {
+ ids: [id],
+ };
+ let res = await taskUserServices.applyTask(params);
+ if (res) {
+ Message.success('鎶ュ悕鎴愬姛');
+ refetch({ type: 'inactive' });
+ }
+ } catch (error) {}
+ },
+ { message: '瀹炲悕鎴愬姛鍚庢墠鍙姤鍚嶏紝璇峰墠寰�瀹炲悕璁よ瘉' }
+);
const handleAttention = useAccessLogin(async () => {
try {
@@ -295,4 +225,8 @@
scale: 18,
});
}
+
+Taro.useDidShow(() => {
+ refetch();
+});
</script>
--
Gitblit v1.9.1