From d33b55e5f1a22f77cb51c3da1a03a4fefccce71d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期日, 19 十月 2025 15:22:20 +0800
Subject: [PATCH] fix: 验收管理
---
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue | 126 ++++++++++++++++++++++++++---------------
1 files changed, 80 insertions(+), 46 deletions(-)
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index bc00fd5..20a4423 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -4,10 +4,24 @@
<Cell :title="detail?.name ?? ''" titleSize="large">
<template #title-right>
<img
+ v-if="from === 'apply'"
:src="detail.isCollected ? IconAttentioActive : IconAttention"
class="taskDetail-attention-icon"
@click="handleAttention"
/>
+ <div
+ v-if="from === 'sign'"
+ :style="{ color: GetPersonalApplyTaskInfosQueryStatusColor[detail.applyButton] }"
+ >
+ {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
+ </div>
+ <div
+ v-if="from === 'hire'"
+ :style="{ color: GetPersonalHireTaskInfosQueryStatusColor[detail.hireButton] }"
+ >
+ {{ GetTaskInfoQueryResultHireButtonText[detail.hireButton] }}
+ </div>
+ <div v-if="from === 'cancel'" :style="{ color: '#999999' }">宸插彇娑�</div>
</template>
<div class="taskDetail-time">
{{ dayjs(detail?.beginTime).format('YYYY骞碝M鏈圖D鏃�') }} 鑷�
@@ -23,11 +37,12 @@
</div> -->
</div>
<TaskPrice
+ v-if="detail.releaseStatus !== EnumTaskReleaseStatus.Stopped"
:value="toThousand(detail.serviceFee ?? 0)"
:unit="BillingMethodEnumUnit[detail.billingMethod]"
/>
</div>
- <div class="taskDetail-address-wrapper">
+ <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>
@@ -78,6 +93,7 @@
@click="goCompanyDetail"
:enterpriseName="detail?.enterpriseName ?? ''"
:taskCount="detail?.taskCount ?? 0"
+ :isReal="detail?.isReal ?? false"
></CompanyDesc>
</CellChunk>
</Cell>
@@ -107,40 +123,28 @@
:isFlex="false"
@click="handleCall"
></PageFooterAction>
- <template v-if="from === 'mine'">
- <PageFooterBtn
- v-if="detail.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
- color="#999999"
- disabled
- >寰呯‘璁�</PageFooterBtn
- >
- <!-- <PageFooterBtn
- v-if="detail.applyButton === GetTaskInfoQueryResultApplyButton.WaitSignContract"
- >鍘荤绾�</PageFooterBtn
- > -->
- <PageFooterBtn
- v-if="detail.hireButton === GetTaskInfoQueryResultHireButton.InProcess"
- color="#999999"
- disabled
- >杩涜涓�</PageFooterBtn
- >
- <!-- <PageFooterBtn
- v-if="detail.hireButton === GetTaskInfoQueryResultHireButton.ApplyCheckReceive"
- >鐢宠楠屾敹</PageFooterBtn
- > -->
- <PageFooterBtn
- v-if="detail.hireButton === GetTaskInfoQueryResultHireButton.Completed"
- color="#999999"
- disabled
- >宸插畬鎴�</PageFooterBtn
- >
- </template>
- <template v-else>
+ <PageFooterBtn
+ v-if="from === 'sign' && !!detail?.applyButton"
+ type="primary"
+ :disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
+ @click="handleSign"
+ >
+ {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
+ </PageFooterBtn>
+ <PageFooterBtn
+ v-if="from === 'hire'"
+ type="primary"
+ :disabled="detail?.hireButton !== GetTaskInfoQueryResultHireButton.ApplyCheckReceive"
+ @click="handleHire"
+ >
+ {{ GetTaskInfoQueryResultHireButtonText[detail.hireButton] }}
+ </PageFooterBtn>
+ <template v-if="from === 'apply'">
<PageFooterBtn
v-if="detail?.releaseStatus === EnumTaskReleaseStatus.InProcess"
type="primary"
@click="handleApply"
- :disabled="detail?.hireStatus"
+ :disabled="!!detail?.hireStatus"
>{{ `鎶ュ悕锛�${detail?.applyCount ?? 0}浜哄凡鎶ュ悕锛塦 }}</PageFooterBtn
>
@@ -157,6 +161,7 @@
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 IconAttention from '@/assets/task/icon-attention.png';
@@ -174,9 +179,12 @@
EnumSettlementCycleText,
BillingMethodEnumUnit,
EnumTaskReleaseStatus,
- EnumTaskUserHireStatus,
- GetTaskInfoQueryResultApplyButton,
+ GetPersonalApplyTaskInfosQueryStatusColor,
+ GetTaskInfoQueryResultApplyButtonText,
+ GetPersonalHireTaskInfosQueryStatusColor,
+ GetTaskInfoQueryResultHireButtonText,
GetTaskInfoQueryResultHireButton,
+ GetTaskInfoQueryResultApplyButton,
} from '@12333/constants';
import { useAccessLogin } from '@/hooks';
@@ -187,7 +195,7 @@
/**
* TODO 缂哄皯 鎶曡瘔涓炬姤鎺ュ彛
*/
-
+const { userDetail } = useUser();
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const from = router.params?.from ?? '';
@@ -229,18 +237,21 @@
}
});
-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 {
@@ -270,4 +281,27 @@
});
}
});
+
+function handleHire() {
+ Taro.navigateTo({
+ url: `${RouterPath.taskSubmitCheck}?id=${id}`,
+ });
+}
+const handleSign = useAccessReal(() => {
+ Taro.navigateTo({
+ url: `${RouterPath.mineAgreementSignDetail}?id=${detail.value?.enterpriseEmployeeId}`,
+ });
+});
+
+function goMap() {
+ Taro.openLocation({
+ latitude: detail.value?.latitude,
+ longitude: detail.value?.longitude,
+ scale: 18,
+ });
+}
+
+Taro.useDidShow(() => {
+ refetch();
+});
</script>
--
Gitblit v1.9.1