From d570bb61d6c325a7486ec7c23006f796901685c2 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 07 十一月 2025 17:20:33 +0800
Subject: [PATCH] feat: 接口
---
apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue | 261 ++--------------------------------------------------
1 files changed, 11 insertions(+), 250 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
index 533d72f..c3c7c19 100644
--- a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -16,123 +16,21 @@
<template #renderItem="{ item }">
<TaskCheckCard
:avatar="setOSSLink(item.avatar)"
- :name="item.name"
+ :name="item.name ?? ''"
:gender="item.gender"
:isReal="item.isReal"
:checkInTime="item.checkInTime"
:checkOutTime="item.checkOutTime"
:contactPhoneNumber="item.contactPhoneNumber"
:checkReceiveStatus="item.checkReceiveStatus"
- :checkReceiveMethod="detail?.checkReceiveMethod"
+ :checkReceiveMethods="detail?.checkReceiveMethods"
:submitCheckReceiveStatus="item.submitCheckReceiveStatus"
+ :checkHistoryType="item.checkHistoryType"
@checkReceive="goTaskDetail(item)"
@checkInOrOut="(ev) => checkReceiveTask(ev, item)"
/>
</template>
</InfiniteLoading>
- <nut-popup v-model:visible="dialogVisible">
- <div class="payroll-form-wrapper">
- <nut-form :model-value="form" ref="formRef">
- <nut-form-item
- label="鏈嶅姟璐�:"
- class="bole-form-item"
- prop="serviceFee"
- label-width="90px"
- >
- <div class="bole-form-input-wrapper">
- <NumberInput
- v-model.trim="form.serviceFee"
- class="nut-input-text bole-input-text"
- placeholder="璇疯緭鍏ユ湇鍔¤垂"
- :min="0"
- :max="999999999999"
- :precision="2"
- type="text"
- disabled
- />
- <div class="form-input-unit">鍏�</div>
- </div>
- </nut-form-item>
- <nut-form-item
- label="瓒呮椂:"
- class="bole-form-item"
- prop="timeoutHours"
- label-width="90px"
- >
- <div class="bole-form-input-wrapper">
- <NumberInput
- v-model.trim="form.timeoutHours"
- class="nut-input-text bole-input-text"
- placeholder="璇疯緭鍏ヨ秴鏃舵椂闀�"
- :min="0"
- :max="999999999999"
- :precision="2"
- type="text"
- @change="onTimeoutHoursChange"
- />
- <div class="form-input-unit">灏忔椂</div>
- </div>
- </nut-form-item>
- <nut-form-item
- label="瓒呮椂璐圭敤:"
- class="bole-form-item"
- prop="timeoutFee"
- label-width="90px"
- >
- <div class="bole-form-input-wrapper">
- <NumberInput
- v-model.trim="form.timeoutFee"
- class="nut-input-text bole-input-text"
- placeholder="璇疯緭鍏ヨ秴鏃惰垂鐢�"
- :min="0"
- :max="999999999999"
- :precision="2"
- type="text"
- />
- <div class="form-input-unit">鍏�</div>
- </div>
- </nut-form-item>
- <nut-form-item
- label="鍏朵粬璐圭敤:"
- class="bole-form-item"
- prop="otherFee"
- label-width="90px"
- >
- <div class="bole-form-input-wrapper">
- <NumberInput
- v-model.trim="form.otherFee"
- class="nut-input-text bole-input-text"
- placeholder="璇疯緭鍏ュ叾浠栬垂鐢�"
- :max="999999999999"
- :precision="2"
- type="text"
- />
- <div class="form-input-unit">鍏�</div>
- </div>
- </nut-form-item>
- <nut-form-item
- label="缁撶畻閲戦:"
- class="bole-form-item"
- prop="settlementAmount"
- label-width="90px"
- >
- {{ `${settlementAmount}鍏僠 }}
- </nut-form-item>
- <nut-form-item
- label="澶囨敞:"
- class="bole-form-item alignTop"
- prop="remark"
- label-width="90px"
- >
- <nut-textarea v-model="form.remark" rows="4" placeholder="璇疯緭鍏ュ娉�"> </nut-textarea>
- </nut-form-item>
- </nut-form>
- <div class="payroll-form-footer">
- <nut-button @click="handleCancel">鍙栨秷</nut-button>
- <nut-button type="primary" @click="handleConfirm">纭</nut-button>
- </div>
- </div>
- </nut-popup>
</LoadingLayout>
</template>
@@ -141,13 +39,14 @@
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import { useInfiniteLoading } from '@12333/hooks';
import TaskCheckCard from '../components/TaskCheckCard.vue';
-import { MyTaskCard, NumberInput } from '@12333/components';
+import { MyTaskCard, NumberInput, ChunkTitle } from '@12333/components';
import {
EnumTaskCheckReceiveMethod,
EnumTaskCheckReceiveStatus,
+ EnumTaskUserSubmitCheckHistoryType,
EnumTaskUserSubmitCheckReceiveStatus,
} from '@12333/constants';
-import { Message, setOSSLink } from '@12333/utils';
+import { Message, setOSSLink, toRound } from '@12333/utils';
import dayjs from 'dayjs';
defineOptions({
@@ -158,21 +57,6 @@
const id = router.params?.id ?? '';
const date = router.params?.date ?? '';
const checkReceiveStatus = Number(router.params?.checkReceiveStatus);
-
-const dialogVisible = ref(false);
-
-const form = reactive({
- serviceFee: 0,
- timeoutHours: 0,
- timeoutFee: 0,
- otherFee: 0,
- remark: '',
- timeoutServiceFee: 0,
-
- taskInfoId: '',
- checkInTime: '',
- checkoutTime: '',
-});
const detail = ref<API.GetCheckReceiveTasksQueryResultItem>();
@@ -199,116 +83,22 @@
}
);
-const settlementAmount = computed(() => sumSettlementAmount());
-
-function onTimeoutHoursChange(event: any) {
- form.timeoutFee = Number(form.timeoutServiceFee)
- ? form.timeoutServiceFee * event.detail.value
- : 0;
-}
-
-function sumSettlementAmount() {
- return (
- getFeeValue(Number(form.timeoutFee ?? 0)) +
- getFeeValue(Number(form.serviceFee ?? 0)) +
- getFeeValue(Number(form.otherFee ?? 0))
- );
-}
-
-function getFeeValue(val: number) {
- return val || 0;
-}
-
-async function openDialog(item: API.GetCheckReceiveTaskQueryResultItem) {
- let res = await calcTaskCheckReceive(item);
- if (res) {
- dialogVisible.value = true;
- form.taskInfoId = item.id;
- form.serviceFee = res.serviceFee ?? 0;
- form.timeoutHours = res.timeoutHours ?? 0;
- form.timeoutServiceFee = res.timeoutFee ?? 0;
- form.otherFee = 0;
- form.timeoutFee = 0;
- form.remark = '';
- }
-}
-
-function handleCancel() {
- dialogVisible.value = false;
-}
-
-async function handleConfirm() {
- try {
- let params: API.CheckReceiveTaskCommand = {
- taskInfoUserId: form.taskInfoId,
- date: dayjs(date).format('YYYY-MM-DD'),
- checkOutTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
- checkReceiveStatus: EnumTaskUserSubmitCheckReceiveStatus.Success,
- serviceFee: form.serviceFee,
- timeoutHours: form.timeoutHours,
- timeoutFee: form.timeoutFee,
- otherFee: form.otherFee,
- remark: form.remark,
- settlementAmount: settlementAmount.value,
- };
- let res = await taskCheckReceiveServices.checkReceiveTask(params);
- if (res) {
- Message.success('鎻愪氦鎴愬姛');
- dialogVisible.value = false;
- infiniteLoadingProps.value?.refetch?.();
- }
- } catch (error) {}
-}
-
-async function calcTaskCheckReceive(item: API.GetCheckReceiveTaskQueryResultItem) {
- try {
- let params: API.CalcTaskCheckReceiveCommand = {
- taskInfoId: id,
- checkInTime: dayjs(item.checkInTime).format('YYYY-MM-DD HH:mm:ss'),
- checkOutTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
- };
- return await taskCheckReceiveServices.calcTaskCheckReceive(params);
- } catch (error) {}
-}
-
function goTaskDetail(item: API.GetCheckReceiveTaskQueryResultItem) {
- if (detail.value.checkReceiveMethod !== EnumTaskCheckReceiveMethod.CheckIn) {
- if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed) {
- Taro.navigateTo({
- url: `${RouterPath.taskCheckedDetail}?id=${item.id}`,
- });
- }
- if (
- item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
- item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit
- ) {
- Taro.navigateTo({
- url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}&date=${date}`,
- });
- }
- }
+ Taro.navigateTo({
+ url: `${RouterPath.taskHandleCheckDetail}?id=${item.id}&date=${date}&taskInfoId=${id}`,
+ });
}
async function checkReceiveTask(
- ev: EnumTaskUserSubmitCheckReceiveStatus,
+ ev: EnumTaskUserSubmitCheckHistoryType,
item: API.GetCheckReceiveTaskQueryResultItem
) {
try {
let params: API.CheckReceiveTaskCommand = {
taskInfoUserId: item.id,
date: dayjs(date).format('YYYY-MM-DD'),
+ checkHistoryType: ev,
};
- if (ev === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive) {
- params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
- params.checkReceiveStatus = ev;
- } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Success) {
- openDialog(item);
- return;
- // params.checkOutTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
- // params.checkReceiveStatus = ev;
- } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Fail) {
- params.checkReceiveStatus = ev;
- }
let res = await taskCheckReceiveServices.checkReceiveTask(params);
if (res) {
Message.success('鎻愪氦鎴愬姛');
@@ -317,32 +107,3 @@
} catch (error) {}
}
</script>
-<style lang="scss">
-@import '@/styles/common.scss';
-
-.taskCheckDetail-page-wrapper {
- .bole-form-input-wrapper {
- display: flex;
- align-items: center;
- }
-
- .form-input-unit {
- margin-left: 10px;
- color: boleGetCssVar('text-color', 'primary');
- flex-shrink: 0;
- }
-
- .payroll-form-wrapper {
- width: 600px;
- }
-
- .payroll-form-footer {
- padding: 10px 20px;
- text-align: center;
-
- .nut-button + .nut-button {
- margin-left: 20px;
- }
- }
-}
-</style>
--
Gitblit v1.9.1