From 318a7bbb40a8f37f825f9eb4ee1bcd84c6020a09 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 13 八月 2025 16:00:34 +0800
Subject: [PATCH] feat: 接口对接
---
apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue | 80 +++++++++++--------
apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue | 34 +++++++-
apps/cMiniApp/src/pages/task/InnerPage.vue | 36 +++++---
packages/hooks/task.ts | 32 ++++++++
4 files changed, 128 insertions(+), 54 deletions(-)
diff --git a/apps/cMiniApp/src/pages/task/InnerPage.vue b/apps/cMiniApp/src/pages/task/InnerPage.vue
index 7de494e..81dc2bb 100644
--- a/apps/cMiniApp/src/pages/task/InnerPage.vue
+++ b/apps/cMiniApp/src/pages/task/InnerPage.vue
@@ -1,7 +1,7 @@
<template>
- <Calendar v-model="queryMenuState.time"></Calendar>
+ <Calendar v-model="queryState.date"></Calendar>
<ProTabs
- v-model="queryMenuState.checkReceiveStatus"
+ v-model="queryState.checkReceiveStatus"
name="task-tab"
:showPaneContent="false"
class="task-tabs"
@@ -9,14 +9,17 @@
title-gutter="8"
title-scroll
>
- <ProTabPane :title="`寰呮彁浜" :pane-key="EnumTaskCheckReceiveStatus.Wait"></ProTabPane>
- <ProTabPane :title="`寰呴獙鏀禶" :pane-key="EnumTaskCheckReceiveStatus.Wait"></ProTabPane>
+ <ProTabPane :title="`寰呮彁浜" :pane-key="EnumTaskCheckReceiveStatus.WaitSubmit"></ProTabPane>
+ <ProTabPane
+ :title="`寰呴獙鏀禶"
+ :pane-key="EnumTaskCheckReceiveStatus.WaitCheckReceive"
+ ></ProTabPane>
<ProTabPane :title="`宸查獙鏀禶" :pane-key="EnumTaskCheckReceiveStatus.Completed"></ProTabPane>
</ProTabs>
<InfiniteLoading
scrollViewClassName="common-infinite-scroll-list task-list"
v-bind="infiniteLoadingProps"
- :key="queryMenuState.checkReceiveStatus"
+ :key="queryState.checkReceiveStatus"
>
<template #renderItem="{ item }">
<MyTaskCard
@@ -33,23 +36,26 @@
<script setup lang="ts">
import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components';
import Taro from '@tarojs/taro';
-import { useTaskList } from '@12333/hooks';
+import { useCheckReceiveTasks, useTaskList } from '@12333/hooks';
import { EnumTaskCheckReceiveStatus } from '@12333/constants';
defineOptions({
name: 'InnerPage',
});
-const { queryMenuState, infiniteLoadingProps } = useTaskList({
- defaultQueryMenuState: {
- checkReceiveStatus: EnumTaskCheckReceiveStatus.Wait,
- },
-});
+const { queryState, infiniteLoadingProps } = useCheckReceiveTasks();
-function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) {
- Taro.navigateTo({
- url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
- });
+function goSubmitTaskDetail(item: API.GetCheckReceiveTasksQueryResultItem) {
+ if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit) {
+ Taro.navigateTo({
+ url: `${RouterPath.taskSubmitCheck}?id=${item.id}`,
+ });
+ }
+ if (item.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed) {
+ Taro.navigateTo({
+ url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
+ });
+ }
}
</script>
diff --git a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
index 4979b79..c91b50a 100644
--- a/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -1,36 +1,47 @@
<template>
<ContentScrollView style="background-color: transparent">
<MyTaskCard :showMyTaskArrow="false"></MyTaskCard>
- <div class="taskCheckDetail-status-wrapper">
- <div class="taskCheckDetail-status-title">楠屾敹鐓х墖</div>
- <div
- class="taskCheckDetail-status"
- :style="{
- color: Colors.Warning,
- }"
- >
- 寰呴獙鏀�
- </div>
- </div>
- <div class="taskCheckDetail-time">2024.11.14 9:28:39</div>
- <nut-grid
- square
- :column-num="3"
- :border="false"
- :gutter="20"
- v-if="list.length > 0"
- class="taskCheckDetail-img-grid"
+ <InfiniteLoading
+ scrollViewClassName="common-infinite-scroll-list task-list"
+ v-bind="infiniteLoadingProps"
>
- <nut-grid-item
- v-for="(item, index) in list"
- :key="item"
- class="publish-circle-friend-file-grid-item"
- >
- <div class="taskCheckDetail-img-grid-item">
- <PreviewImage :src="item" class="taskCheckDetail-img" :urls="list" />
+ <template #renderItem="{ item }">
+ <div class="taskCheckDetail-status-wrapper">
+ <div class="taskCheckDetail-status-title">楠屾敹鐓х墖</div>
+ <div
+ class="taskCheckDetail-status"
+ :style="{
+ color: Colors.Warning,
+ }"
+ >
+ 寰呴獙鏀�
+ </div>
</div>
- </nut-grid-item>
- </nut-grid>
+ <div class="taskCheckDetail-time">2024.11.14 9:28:39</div>
+ <nut-grid
+ square
+ :column-num="3"
+ :border="false"
+ :gutter="20"
+ v-if="item?.files?.length > 0"
+ class="taskCheckDetail-img-grid"
+ >
+ <nut-grid-item
+ v-for="(itema, index) in item.files"
+ :key="index"
+ class="publish-circle-friend-file-grid-item"
+ >
+ <div class="taskCheckDetail-img-grid-item">
+ <PreviewImage
+ :src="setOSSLink(itema)"
+ class="taskCheckDetail-img"
+ :urls="item.files"
+ />
+ </div>
+ </nut-grid-item>
+ </nut-grid>
+ </template>
+ </InfiniteLoading>
</ContentScrollView>
<!-- <div class="taskCheckDetail-tips-wrapper">
<div class="taskCheckDetail-tips-text">鎮ㄥ皻鏈粦瀹氶摱琛屽崱锛屾殏鏃舵棤娉曠粨绠楁湇鍔¤垂</div>
@@ -41,17 +52,18 @@
<script setup lang="ts">
import { MyTaskCard, PreviewImage } from '@12333/components';
import { Colors } from '@12333/constants';
+import Taro from '@tarojs/taro';
+import { useCheckReceiveTaskUserSubmits } from '@12333/hooks';
+import { setOSSLink } from '@12333/utils';
defineOptions({
name: 'InnerPage',
});
-const list = ref([
- 'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg',
- 'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg',
- 'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg',
- 'https://storage.360buyimg.com/jdc-article/fristfabu.jpg',
-]);
+const route = Taro.useRouter();
+const id = route.params?.id as string;
+
+const { infiniteLoadingProps } = useCheckReceiveTaskUserSubmits({ id: id });
</script>
<style lang="scss">
diff --git a/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
index a7af757..05900ca 100644
--- a/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskSubmitCheck/InnerPage.vue
@@ -1,9 +1,9 @@
<template>
<ContentScrollView :paddingH="false">
<nut-form :model-value="form" ref="formRef" :rules="rules">
- <nut-form-item label="涓婁紶鐓х墖:" class="bole-form-item alignTop" prop="imgUrl" required>
+ <nut-form-item label="涓婁紶鐓х墖:" class="bole-form-item alignTop" prop="files" required>
<Uploader
- v-model:file-list="form.imgUrl"
+ v-model:file-list="form.files"
:maximum="9"
:limitFileSize="10"
class="bole-uploader nopaddingtop"
@@ -20,18 +20,24 @@
<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 } from '@12333/utils';
+import { FormValidator, Message } from '@12333/utils';
+import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
+import Taro from '@tarojs/taro';
+import { goBack } from '@/utils';
defineOptions({
name: 'InnerPage',
});
+const route = Taro.useRouter();
+const id = route.params?.id as string;
+
const form = reactive({
- imgUrl: [] as FileItem[],
+ files: [] as FileItem[],
});
const rules = reactive<FormRules>({
- imgUrl: [{ required: true, message: '璇蜂笂浼犵収鐗�', validator: FormValidator.validatorArray }],
+ files: [{ required: true, message: '璇蜂笂浼犵収鐗�', validator: FormValidator.validatorArray }],
});
const formRef = ref<any>(null);
@@ -40,9 +46,27 @@
if (!formRef.value) return;
formRef.value.validate().then(({ valid, errors }: any) => {
if (valid) {
+ submitCheckReceiveTask();
}
});
}
+
+async function submitCheckReceiveTask() {
+ try {
+ let params: API.SubmitCheckReceiveTaskCommand = {
+ taskInfoId: id,
+ files: form.files.map((x) => x.path),
+ };
+ let res = await taskCheckReceiveServices.submitCheckReceiveTask(params);
+ if (res) {
+ Message.success('鎻愪氦鎴愬姛', {
+ onClosed() {
+ goBack();
+ },
+ });
+ }
+ } catch (error) {}
+}
</script>
<style lang="scss">
diff --git a/packages/hooks/task.ts b/packages/hooks/task.ts
index d092212..9cc65d2 100644
--- a/packages/hooks/task.ts
+++ b/packages/hooks/task.ts
@@ -145,3 +145,35 @@
infiniteLoadingProps,
};
}
+
+type UseCheckReceiveTaskUserSubmitsOptions = {
+ id?: string;
+};
+
+export function useCheckReceiveTaskUserSubmits(
+ options: UseCheckReceiveTaskUserSubmitsOptions = {}
+) {
+ const { id } = options;
+ const { infiniteLoadingProps } = useInfiniteLoading(
+ ({ pageParam }) => {
+ let params: API.GetCheckReceiveTaskUserSubmitsQuery = {
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ },
+ id: id,
+ };
+
+ return taskCheckReceiveServices.getCheckReceiveTaskUserSubmits(params, {
+ showLoading: false,
+ });
+ },
+ {
+ queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmits', id],
+ }
+ );
+
+ return {
+ infiniteLoadingProps,
+ };
+}
--
Gitblit v1.9.1