From f95d3066203612a450e462edd679eb5a4973f35c Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 10 十一月 2025 16:59:29 +0800
Subject: [PATCH] fix: bug
---
apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue | 103 ++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 80 insertions(+), 23 deletions(-)
diff --git a/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
index 05900ca..6aec0e3 100644
--- a/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
@@ -1,29 +1,52 @@
<template>
- <ContentScrollView :paddingH="false">
- <nut-form :model-value="form" ref="formRef" :rules="rules">
- <nut-form-item label="涓婁紶鐓х墖:" class="bole-form-item alignTop" prop="files" required>
- <Uploader
- v-model:file-list="form.files"
- :maximum="9"
- :limitFileSize="10"
- class="bole-uploader nopaddingtop"
+ <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
+ <ContentScrollView :paddingH="false">
+ <nut-form :model-value="form" ref="formRef" :rules="rules">
+ <nut-form-item
+ label="涓婁紶鐓х墖:"
+ class="bole-form-item alignTop"
+ prop="files"
+ :required="!isContainCheckIn"
>
- </Uploader>
- </nut-form-item>
- </nut-form>
- </ContentScrollView>
- <PageFooter :isOnlyAction="false">
- <PageFooterBtn type="primary" @click="handleSubmit()">鎻愪氦</PageFooterBtn>
- </PageFooter>
+ <Uploader
+ v-model:file-list="form.files"
+ :maximum="9"
+ :limitFileSize="10"
+ class="bole-uploader nopaddingtop"
+ :sourceType="['camera']"
+ >
+ </Uploader>
+ </nut-form-item>
+ </nut-form>
+ </ContentScrollView>
+ <PageFooter :isOnlyAction="false">
+ <template v-if="isContainCheckIn">
+ <PageFooterBtn type="primary" v-if="!detail.userCheckHistoryType" @click="handleCheckIn()"
+ >绛惧埌</PageFooterBtn
+ >
+ <PageFooterBtn
+ v-else-if="detail.userCheckHistoryType === EnumTaskUserSubmitCheckHistoryType.CheckIn"
+ type="primary"
+ @click="handleCheckOut()"
+ >绛惧嚭</PageFooterBtn
+ >
+ </template>
+ <PageFooterBtn v-else type="primary" @click="handleSubmit()">鎻愪氦</PageFooterBtn>
+ </PageFooter>
+ </LoadingLayout>
</template>
<script setup lang="ts">
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { FileItem } from '@nutui/nutui-taro/dist/types/__VUE/uploader/type';
-import { FormValidator, Message } from '@12333/utils';
+import { FormValidator, Message, OrderUtils, convertApiPath2Url } from '@12333/utils';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import Taro from '@tarojs/taro';
import { goBack } from '@/utils';
+import { useQueryClient } from '@tanstack/vue-query';
+import dayjs from 'dayjs';
+import { useCheckReceiveTaskUserSubmit } from '@12333/hooks';
+import { EnumTaskUserSubmitCheckHistoryType } from '@12333/constants';
defineOptions({
name: 'InnerPage',
@@ -31,16 +54,48 @@
const route = Taro.useRouter();
const id = route.params?.id as string;
+const date = route.params?.date as string;
+const queryClient = useQueryClient();
+
+const { isLoading, isError, detail, refetch, isContainCheckIn } = useCheckReceiveTaskUserSubmit({
+ params: {
+ taskInfoId: id,
+ date: dayjs(date).format('YYYY-MM-DD'),
+ },
+ onSuccess(data) {
+ if (data.files?.length > 0) {
+ form.files = data.files.map(convertApiPath2Url);
+ }
+ },
+});
const form = reactive({
files: [] as FileItem[],
});
const rules = reactive<FormRules>({
- files: [{ required: true, message: '璇蜂笂浼犵収鐗�', validator: FormValidator.validatorArray }],
+ files: [{ message: '璇蜂笂浼犵収鐗�', validator: FormValidator.validatorArray }],
});
const formRef = ref<any>(null);
+
+function handleCheckIn() {
+ submitCheckReceiveTask(EnumTaskUserSubmitCheckHistoryType.CheckIn);
+ // if (!formRef.value) return;
+ // formRef.value.validate().then(({ valid, errors }: any) => {
+ // if (valid) {
+ // }
+ // });
+}
+
+function handleCheckOut() {
+ submitCheckReceiveTask(EnumTaskUserSubmitCheckHistoryType.CheckOut);
+ // if (!formRef.value) return;
+ // formRef.value.validate().then(({ valid, errors }: any) => {
+ // if (valid) {
+ // }
+ // });
+}
function handleSubmit() {
if (!formRef.value) return;
@@ -51,24 +106,26 @@
});
}
-async function submitCheckReceiveTask() {
+async function submitCheckReceiveTask(userCheckHistoryType?: EnumTaskUserSubmitCheckHistoryType) {
try {
let params: API.SubmitCheckReceiveTaskCommand = {
taskInfoId: id,
+ date: dayjs(date).format('YYYY-MM-DD'),
files: form.files.map((x) => x.path),
+ userCheckHistoryType,
};
let res = await taskCheckReceiveServices.submitCheckReceiveTask(params);
if (res) {
+ refetch();
Message.success('鎻愪氦鎴愬姛', {
onClosed() {
- goBack();
+ if (userCheckHistoryType !== EnumTaskUserSubmitCheckHistoryType.CheckIn) {
+ goBack();
+ }
+ queryClient.invalidateQueries(['taskServices/getTaskInfo', id]);
},
});
}
} catch (error) {}
}
</script>
-
-<style lang="scss">
-@import '@/styles/common.scss';
-</style>
--
Gitblit v1.9.1