From e3ae5da789eb35217a4a377cab0ff3241ceaf72a Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 11 八月 2025 13:42:07 +0800
Subject: [PATCH] feat: 接口对接
---
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue | 117 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 81 insertions(+), 36 deletions(-)
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index 763c349..6a0d918 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -1,26 +1,38 @@
<template>
<LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
<ContentScrollView style="background-color: transparent">
- <Cell :title="'瀹㈡埧鏈嶅姟鍛�'" titleSize="large">
+ <Cell :title="detail?.name ?? ''" titleSize="large">
<template #title-right>
- <img :src="IconAttentioActive" class="taskDetail-attention-icon" />
+ <img
+ :src="detail.isCollected ? IconAttentioActive : IconAttention"
+ class="taskDetail-attention-icon"
+ />
</template>
- <div class="taskDetail-time">2025骞�2鏈�5鏃� 鑷� 2025骞�3鏈�5鏃�</div>
+ <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">鏃ョ粨</div>
- <div class="task-card-welfare-list-item">鐢峰コ涓嶉檺</div>
- <div class="task-card-welfare-list-item">鍖呬笁椁�</div>
+ <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="212" />
+ <TaskPrice
+ :value="toThousand(detail.serviceFee ?? 0)"
+ :unit="BillingMethodEnumUnit[detail.billingMethod]"
+ />
</div>
<div class="taskDetail-address-wrapper">
<div class="taskDetail-address-title-wrapper">
- <img :src="IconAttentioActive" class="taskDetail-address-title-icon" />
- <div class="taskDetail-address-title">瀹佹尝鏌忔偊閰掑簵</div>
+ <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">瀹佹尝甯傞劄宸炲尯涓滈挶婀栧ぇ鍫拌矾188鍙峰畞娉㈡煆鎮﹂厭搴�</div>
+ <div class="taskDetail-address-info">{{ detail?.addressDetail ?? '' }}</div>
<RectRight :size="8" class="taskDetail-address-info-icon" />
</div>
</div>
@@ -28,31 +40,44 @@
<Cell :show-title="false">
<CellChunk title="绂忓埄淇℃伅">
<div class="taskDetail-welfare-list">
- <TaskDetailWelfareItem />
- <TaskDetailWelfareItem />
- <TaskDetailWelfareItem />
- <TaskDetailWelfareItem />
- <TaskDetailWelfareItem />
+ <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">18-45宀�</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">涓嶉檺</div>
+ <div class="taskDetail-limit-list-item-text">
+ {{ TaskUtils.getGenderText(detail.genderLimit) }}
+ </div>
</div>
<div class="taskDetail-limit-list-item">
- <div class="taskDetail-limit-list-item-label">璧勬牸璇佷功锛�</div>
- <div class="taskDetail-limit-list-item-text">鍋ュ悍璇�</div>
+ <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"></CompanyDesc>
+ <CompanyDesc
+ @click="goCompanyDetail"
+ :enterpriseName="detail?.enterpriseName ?? ''"
+ :taskCount="detail?.taskCount ?? 0"
+ ></CompanyDesc>
</CellChunk>
</Cell>
<Cell>
@@ -75,8 +100,13 @@
:isFlex="false"
openType="share"
></PageFooterAction>
- <PageFooterAction :icon="IconShare" text="鎵嬫満" :isFlex="false"></PageFooterAction>
- <PageFooterBtn type="primary">鎶ュ悕</PageFooterBtn>
+ <PageFooterAction :icon="IconPhone" text="鎵嬫満" :isFlex="false"></PageFooterAction>
+ <PageFooterBtn v-if="detail.releaseStatus === EnumTaskReleaseStatus.InProcess" type="primary"
+ >鎶ュ悕锛�5浜哄凡鎶ュ悕锛�</PageFooterBtn
+ >
+ <PageFooterBtn v-if="detail.releaseStatus === EnumTaskReleaseStatus.Stopped" color="#999999"
+ >宸插仠姝�</PageFooterBtn
+ >
</PageFooter>
</LoadingLayout>
</template>
@@ -84,21 +114,34 @@
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
-import * as orderServices from '@12333/services/api/Order';
+import * as taskServices from '@12333/services/apiV2/task';
import { useToggle } from 'senin-mini/hooks';
-import { TaskPrice } from '@12333/components';
+import { TaskPrice, TaskDetailWelfareItem } 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 TaskDetailWelfareItem from '../components/TaskDetailWelfareItem.vue';
import CompanyDesc from '../components/CompanyDesc.vue';
+import dayjs from 'dayjs';
+import { TaskUtils, toThousand, setOSSLink } from '@12333/utils';
+import {
+ EnumSettlementCycleText,
+ BillingMethodEnumUnit,
+ EnumTaskReleaseStatus,
+} from '@12333/constants';
+import { useAccessLogin } from '@/hooks';
defineOptions({
name: 'InnerPage',
});
+
+/**
+ * TODO 缂哄皯宸叉姤鍚嶄汉鏁� 鎵嬫満 鎶曡瘔涓炬姤鎺ュ彛 鎶ュ悕鎺ュ彛
+ */
const router = Taro.useRouter();
const taskId = router.params?.id ?? '';
@@ -109,32 +152,34 @@
data: detail,
refetch,
} = useQuery({
- queryKey: ['orderServices/getOrdeForDetail', taskId],
+ queryKey: ['taskServices/getTaskInfo', taskId],
queryFn: async () => {
- return await orderServices.getOrdeForDetail(
+ return await taskServices.getTaskInfo(
{ id: taskId },
{
showLoading: false,
}
);
},
- placeholderData: () => ({} as API.OrderInfoDto),
+ placeholderData: () => ({} as API.GetTaskInfoQueryResult),
onSuccess(data) {
- if (data.isExistTradeChatRecord) setTrue();
+ // if (data.isExistTradeChatRecord) setTrue();
},
});
const { isCollapse, setTrue } = useToggle();
-function goComplaint() {
+const goComplaint = useAccessLogin(() => {
Taro.navigateTo({
url: `${RouterPath.complaint}?id=${taskId}`,
});
-}
+});
-function goCompanyDetail() {
- Taro.navigateTo({
- url: `${RouterPath.companyDetail}?id=${taskId}`,
- });
-}
+const goCompanyDetail = useAccessLogin(() => {
+ if (detail.value.enterpriseId) {
+ Taro.navigateTo({
+ url: `${RouterPath.companyDetail}?id=${detail.value.enterpriseId}`,
+ });
+ }
+});
</script>
--
Gitblit v1.9.1