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