From c4a05d1cd214627d1f62a71b72f7f32087cee92d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 22 十月 2025 19:50:55 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
---
apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue | 3
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.config.ts | 3
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.vue | 13 +++
apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue | 105 ++++++++++++++++++++++++++
packages/components/src/Card/TaskCheckPersonalView.vue | 0
apps/cMiniApp/src/pages/task/InnerPage.vue | 29 +++++--
apps/cMiniApp/project.private.config.json | 4
apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue | 50 ++++++++----
apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue | 17 +++-
packages/components/src/index.ts | 2
apps/cMiniApp/src/constants/router.ts | 1
apps/cMiniApp/src/app.config.ts | 1
packages/components/src/Card/TaskCheckHistoryCard.vue | 0
apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue | 3
apps/bMiniApp/src/subpackages/businessCard/components/BusinessCardDetailInfoView.vue | 2
15 files changed, 196 insertions(+), 37 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/businessCard/components/BusinessCardDetailInfoView.vue b/apps/bMiniApp/src/subpackages/businessCard/components/BusinessCardDetailInfoView.vue
index dc7b383..5ab8a2b 100644
--- a/apps/bMiniApp/src/subpackages/businessCard/components/BusinessCardDetailInfoView.vue
+++ b/apps/bMiniApp/src/subpackages/businessCard/components/BusinessCardDetailInfoView.vue
@@ -27,13 +27,13 @@
</template>
<script setup lang="ts">
-import TaskCheckPersonalView from '../../task/components/TaskCheckPersonalView.vue';
import BusinessCardDetailItem from './BusinessCardDetailItem.vue';
import IconWechat from '@/assets/businessCard/icon-wechat.png';
import IconPosition from '@/assets/businessCard/icon-position.png';
import IconEmail from '@/assets/businessCard/icon-email.png';
import IconCompany from '@/assets/businessCard/icon-company.png';
import IconAddress from '@/assets/businessCard/icon-address.png';
+import { TaskCheckPersonalView } from '@12333/components';
defineOptions({
name: 'BusinessCardDetailInfoView',
diff --git a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
index c74a2cc..02cda1e 100644
--- a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
+++ b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
@@ -27,9 +27,20 @@
<div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
{{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
</div> -->
- <nut-button type="primary" class="task-check-card-phone-btn" @click.stop="handleMore"
- >鎿嶄綔</nut-button
+ <template
+ v-if="props.submitCheckReceiveStatus !== EnumTaskUserSubmitCheckReceiveStatus.Fail"
>
+ <nut-button
+ v-if="!checkInTime || !checkOutTime"
+ type="primary"
+ class="task-check-card-phone-btn"
+ @click.stop="handleMore"
+ >鎿嶄綔</nut-button
+ >
+ <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
+ {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
+ </div>
+ </template>
</template>
<template v-else>
<nut-button
@@ -48,14 +59,16 @@
</template>
<script setup lang="ts">
-import TaskCheckPersonalView from './TaskCheckPersonalView.vue';
import {
Colors,
EnumUserGender,
EnumTaskCheckReceiveStatus,
EnumTaskCheckReceiveStatusText,
EnumTaskCheckReceiveMethod,
+ EnumGetCheckReceiveTasksQueryResultItemCheckStatus,
+ EnumTaskUserSubmitCheckReceiveStatus,
} from '@12333/constants';
+import { TaskCheckPersonalView } from '@12333/components';
import { CheckInOrOutEventEnum } from '../constants';
import { Portal } from 'senin-mini/components';
import { ActionSheet } from '@nutui/nutui-taro';
@@ -82,32 +95,35 @@
/** 绛惧嚭鏃堕棿 */
checkOutTime?: string;
checkReceiveMethod?: EnumTaskCheckReceiveMethod;
+
+ submitCheckReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
};
const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{
(e: 'checkReceive'): void;
- (e: 'checkInOrOut', ev: CheckInOrOutEventEnum): void;
+ (e: 'checkInOrOut', ev: EnumTaskUserSubmitCheckReceiveStatus): void;
}>();
const menuList = computed(() => {
let _menuList = [];
if (props.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
- _menuList.push(
- {
+ _menuList.push({
+ name: '鏈埌宀�',
+ value: ManageActions.OutWork,
+ });
+ if (!props.checkInTime) {
+ _menuList.push({
name: '绛惧埌',
value: ManageActions.CheckIn,
- },
- {
+ });
+ } else if (!props.checkOutTime) {
+ _menuList.push({
name: '绛惧嚭',
value: ManageActions.CheckOut,
- },
- {
- name: '鏈埌宀�',
- value: ManageActions.OutWork,
- }
- );
+ });
+ }
}
return _menuList;
@@ -138,13 +154,13 @@
function handleEmit(action: { name: string; value: number }) {
switch (action.value) {
case ManageActions.CheckIn:
- emit('checkInOrOut', CheckInOrOutEventEnum.CheckIn);
+ emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive);
break;
case ManageActions.CheckOut:
- emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut);
+ emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Success);
break;
case ManageActions.OutWork:
- emit('checkInOrOut', CheckInOrOutEventEnum.CheckOut);
+ emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Fail);
break;
}
}
diff --git a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
index d7cc662..77591a8 100644
--- a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -24,6 +24,7 @@
:contactPhoneNumber="item.contactPhoneNumber"
:checkReceiveStatus="item.checkReceiveStatus"
:checkReceiveMethod="detail?.checkReceiveMethod"
+ :submitCheckReceiveStatus="item.submitCheckReceiveStatus"
@checkReceive="goTaskDetail(item)"
@checkInOrOut="(ev) => checkReceiveTask(ev, item.id)"
/>
@@ -38,7 +39,11 @@
import { useInfiniteLoading } from '@12333/hooks';
import TaskCheckCard from '../components/TaskCheckCard.vue';
import { MyTaskCard } from '@12333/components';
-import { EnumTaskCheckReceiveMethod, EnumTaskCheckReceiveStatus } from '@12333/constants';
+import {
+ EnumTaskCheckReceiveMethod,
+ EnumTaskCheckReceiveStatus,
+ EnumTaskUserSubmitCheckReceiveStatus,
+} from '@12333/constants';
import { Message, setOSSLink } from '@12333/utils';
import dayjs from 'dayjs';
import { CheckInOrOutEventEnum } from '../constants';
@@ -95,16 +100,20 @@
}
}
-async function checkReceiveTask(ev: CheckInOrOutEventEnum, taskInfoUserId: string) {
+async function checkReceiveTask(ev: EnumTaskUserSubmitCheckReceiveStatus, taskInfoUserId: string) {
try {
let params: API.CheckReceiveTaskCommand = {
taskInfoUserId: taskInfoUserId,
date: dayjs(date).format('YYYY-MM-DD'),
};
- if (ev === CheckInOrOutEventEnum.CheckIn) {
+ if (ev === EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive) {
params.checkInTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
- } else if (ev === CheckInOrOutEventEnum.CheckOut) {
+ params.checkReceiveStatus = ev;
+ } else if (ev === EnumTaskUserSubmitCheckReceiveStatus.Success) {
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) {
diff --git a/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue
index 0711fb0..c2e2779 100644
--- a/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskHandleCheckDetail/InnerPage.vue
@@ -36,8 +36,7 @@
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
-import TaskCheckPersonalView from '../components/TaskCheckPersonalView.vue';
-import { TaskCheckFileCard } from '@12333/components';
+import { TaskCheckFileCard, TaskCheckPersonalView } from '@12333/components';
import { Colors, EnumTaskUserSubmitCheckReceiveStatus } from '@12333/constants';
import { Message, setOSSLink } from '@12333/utils';
import dayjs from 'dayjs';
diff --git a/apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
index aeece0f..0bb2284 100644
--- a/apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
@@ -57,8 +57,7 @@
import Taro from '@tarojs/taro';
import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
import { useInfiniteLoading } from '@12333/hooks';
-import TaskCheckHistoryCard from '../components/TaskCheckHistoryCard.vue';
-import { ProTabs, ProTabPane } from '@12333/components';
+import { ProTabs, ProTabPane, TaskCheckHistoryCard } from '@12333/components';
import {
EnumTaskUserSubmitCheckHistoryTypeText,
EnumTaskUserSubmitCheckHistoryTypeColor,
diff --git a/apps/cMiniApp/project.private.config.json b/apps/cMiniApp/project.private.config.json
index 81e4067..35a4f34 100644
--- a/apps/cMiniApp/project.private.config.json
+++ b/apps/cMiniApp/project.private.config.json
@@ -26,8 +26,8 @@
"name": "浠诲姟",
"pathName": "pages/task/task",
"query": "",
- "scene": null,
- "launchMode": "default"
+ "launchMode": "default",
+ "scene": null
},
{
"name": "绠�鍘嗚缁嗕俊鎭�",
diff --git a/apps/cMiniApp/src/app.config.ts b/apps/cMiniApp/src/app.config.ts
index fa41cff..d661c02 100644
--- a/apps/cMiniApp/src/app.config.ts
+++ b/apps/cMiniApp/src/app.config.ts
@@ -120,6 +120,7 @@
'companyDetail/companyDetail',
'taskSubmitCheck/taskSubmitCheck',
'taskCheckDetail/taskCheckDetail',
+ 'taskUserSubmitCheckHistories/taskUserSubmitCheckHistories',
],
},
{
diff --git a/apps/cMiniApp/src/constants/router.ts b/apps/cMiniApp/src/constants/router.ts
index ad70779..60edb1b 100644
--- a/apps/cMiniApp/src/constants/router.ts
+++ b/apps/cMiniApp/src/constants/router.ts
@@ -14,6 +14,7 @@
companyDetail = '/subpackages/task/companyDetail/companyDetail',
taskSubmitCheck = '/subpackages/task/taskSubmitCheck/taskSubmitCheck',
taskCheckDetail = '/subpackages/task/taskCheckDetail/taskCheckDetail',
+ taskUserSubmitCheckHistories = '/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories',
// userInfo = '/subpackages/setting/userInfo/userInfo',
// setting = '/subpackages/setting/setting/setting',
diff --git a/apps/cMiniApp/src/pages/task/InnerPage.vue b/apps/cMiniApp/src/pages/task/InnerPage.vue
index 4d79b33..6be8d8a 100644
--- a/apps/cMiniApp/src/pages/task/InnerPage.vue
+++ b/apps/cMiniApp/src/pages/task/InnerPage.vue
@@ -28,7 +28,10 @@
:addressName="item.addressName"
:begin-time="item.beginTime"
:end-time="item.endTime"
- showActions
+ :showActions="
+ item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn &&
+ queryState.checkReceiveStatus === EnumTaskCheckReceiveStatus.Completed
+ "
@click="goSubmitTaskDetail(item)"
/>
</template>
@@ -40,7 +43,7 @@
import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components';
import Taro from '@tarojs/taro';
import { useCheckReceiveTasks, useTaskList } from '@12333/hooks';
-import { EnumTaskCheckReceiveStatus } from '@12333/constants';
+import { EnumTaskCheckReceiveStatus, EnumTaskCheckReceiveMethod } from '@12333/constants';
defineOptions({
name: 'InnerPage',
@@ -54,13 +57,21 @@
url: `${RouterPath.taskSubmitCheck}?id=${item.id}&date=${queryState.date}`,
});
}
- if (
- Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
- Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed
- ) {
- Taro.navigateTo({
- url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
- });
+ if (item.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
+ if (Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed) {
+ Taro.navigateTo({
+ url: `${RouterPath.taskUserSubmitCheckHistories}?id=${item.id}&date=${queryState.date}`,
+ });
+ }
+ } else {
+ if (
+ Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
+ Number(queryState.checkReceiveStatus) === EnumTaskCheckReceiveStatus.Completed
+ ) {
+ Taro.navigateTo({
+ url: `${RouterPath.taskCheckDetail}?id=${item.id}`,
+ });
+ }
}
}
</script>
diff --git a/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
new file mode 100644
index 0000000..0bb2284
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/InnerPage.vue
@@ -0,0 +1,105 @@
+<template>
+ <LoadingLayout>
+ <ContentView>
+ <ChunkTitle :title="title" />
+ </ContentView>
+ <ProTabs
+ v-model="queryState.type"
+ name="taskUserSubmitCheckHistories-tab"
+ :showPaneContent="false"
+ class="taskUserSubmitCheckHistories-tabs"
+ isTransparent
+ title-gutter="8"
+ title-scroll
+ >
+ <ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
+ <ProTabPane
+ :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckIn]"
+ :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckIn"
+ ></ProTabPane>
+ <ProTabPane
+ :title="EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.CheckOut]"
+ :pane-key="EnumTaskUserSubmitCheckHistoryType.CheckOut"
+ ></ProTabPane>
+ <ProTabPane
+ :title="
+ EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckIn]
+ "
+ :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckIn"
+ ></ProTabPane>
+ <ProTabPane
+ :title="
+ EnumTaskUserSubmitCheckHistoryTypeText[EnumTaskUserSubmitCheckHistoryType.UnCheckOut]
+ "
+ :pane-key="EnumTaskUserSubmitCheckHistoryType.UnCheckOut"
+ ></ProTabPane>
+ </ProTabs>
+ <InfiniteLoading
+ scrollViewClassName="common-infinite-scroll-list"
+ v-bind="infiniteLoadingProps"
+ >
+ <template #renderItem="{ item }">
+ <TaskCheckHistoryCard
+ :avatar="setOSSLink(item.avatar)"
+ :name="item.name"
+ :gender="item.gender"
+ :isReal="item.isReal"
+ :contactPhoneNumber="item.contactPhoneNumber"
+ :type="item.type"
+ :checkTime="item.checkTime"
+ />
+ </template>
+ </InfiniteLoading>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import Taro from '@tarojs/taro';
+import * as taskCheckReceiveServices from '@12333/services/apiV2/taskCheckReceive';
+import { useInfiniteLoading } from '@12333/hooks';
+import { ProTabs, ProTabPane, TaskCheckHistoryCard } from '@12333/components';
+import {
+ EnumTaskUserSubmitCheckHistoryTypeText,
+ EnumTaskUserSubmitCheckHistoryTypeColor,
+ EnumTaskUserSubmitCheckHistoryType,
+ WeekCN,
+} from '@12333/constants';
+import { Message, setOSSLink } from '@12333/utils';
+import dayjs from 'dayjs';
+
+defineOptions({
+ name: 'InnerPage',
+});
+
+const router = Taro.useRouter();
+const id = router.params?.id ?? '';
+const date = router.params?.date ?? '';
+
+const title = `${dayjs(date).format('YYYY骞碝M鏈圖D鏃�')} 鏄熸湡${WeekCN[dayjs(date).day()]}`;
+
+const queryState = reactive({
+ type: 0 as any as EnumTaskUserSubmitCheckHistoryType,
+});
+
+const { infiniteLoadingProps } = useInfiniteLoading(
+ async ({ pageParam }) => {
+ let params: API.GetCheckReceiveTaskUserSubmitCheckHistoriesQuery = {
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ },
+ taskInfoId: id,
+ date: dayjs(date).format('YYYY-MM-DD'),
+ type: queryState.type,
+ };
+
+ let res = await taskCheckReceiveServices.getCheckReceiveTaskUserSubmitCheckHistories(params, {
+ showLoading: false,
+ });
+ return res;
+ },
+ {
+ queryKey: ['taskCheckReceiveServices/getCheckReceiveTaskUserSubmitCheckHistories', queryState],
+ }
+);
+</script>
diff --git a/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.config.ts b/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.vue b/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.vue
new file mode 100644
index 0000000..5ff25c8
--- /dev/null
+++ b/apps/cMiniApp/src/subpackages/task/taskUserSubmitCheckHistories/taskUserSubmitCheckHistories.vue
@@ -0,0 +1,13 @@
+<template>
+ <PageLayoutWithBg class="taskUserSubmitCheckHistories-page-wrapper" title="楠屾敹璇︽儏">
+ <InnerPage />
+ </PageLayoutWithBg>
+</template>
+
+<script setup lang="ts">
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'taskUserSubmitCheckHistories',
+});
+</script>
diff --git a/apps/bMiniApp/src/subpackages/task/components/TaskCheckHistoryCard.vue b/packages/components/src/Card/TaskCheckHistoryCard.vue
similarity index 100%
rename from apps/bMiniApp/src/subpackages/task/components/TaskCheckHistoryCard.vue
rename to packages/components/src/Card/TaskCheckHistoryCard.vue
diff --git a/apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue b/packages/components/src/Card/TaskCheckPersonalView.vue
similarity index 100%
rename from apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue
rename to packages/components/src/Card/TaskCheckPersonalView.vue
diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts
index 40631bb..1656d39 100644
--- a/packages/components/src/index.ts
+++ b/packages/components/src/index.ts
@@ -33,6 +33,8 @@
export { default as BindWalletView } from './Card/BindWalletView.vue';
export { default as TaskPrice } from './Card/TaskPrice.vue';
export { default as TaskDetailWelfareItem } from './Card/TaskDetailWelfareItem.vue';
+export { default as TaskCheckPersonalView } from './Card/TaskCheckPersonalView.vue';
+export { default as TaskCheckHistoryCard } from './Card/TaskCheckHistoryCard.vue';
export { default as FlexJobTopView } from './Card/FlexJobTopView.vue';
export { default as QueryMenuView } from './Menu/QueryMenuView.vue';
export { default as QueryMenuItem } from './Menu/QueryMenuItem.vue';
--
Gitblit v1.9.1