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/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue | 148 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 129 insertions(+), 19 deletions(-)
diff --git a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
index 5334987..e6a1e19 100644
--- a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
+++ b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
@@ -2,49 +2,159 @@
<div class="task-check-card-wrapper">
<TaskCheckPersonalView
class="task-check-card-view"
- :avatarUrl="avatarUrl"
+ :avatar="avatar"
:name="name"
- :genderType="genderType"
- :isRealName="isRealName"
- :contactPhone="contactPhone"
+ :gender="gender"
+ :isReal="isReal"
+ :contactPhoneNumber="contactPhoneNumber"
>
- <template #actions>
+ <template
+ #actions
+ v-if="
+ checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
+ checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit
+ "
+ >
+ <template v-if="OrderUtils.isContainCheckIn(checkReceiveMethods)">
+ <nut-button
+ v-if="
+ !checkHistoryType || checkHistoryType === EnumTaskUserSubmitCheckHistoryType.CheckIn
+ "
+ type="primary"
+ class="task-check-card-phone-btn"
+ @click.stop="handleMore"
+ >鎿嶄綔</nut-button
+ >
+ <nut-button
+ v-else
+ type="primary"
+ class="task-check-card-phone-btn"
+ @click.stop="emit('checkReceive')"
+ >楠屾敹</nut-button
+ >
+ </template>
<nut-button
- v-if="checkAcceptStatus === FlexTaskCheckAcceptStatusEnum.Wait"
+ v-else
type="primary"
class="task-check-card-phone-btn"
+ @click.stop="emit('checkReceive')"
>楠屾敹</nut-button
>
- <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
- {{ FlexTaskCheckAcceptStatusEnumText[checkAcceptStatus] }}
- </div>
</template>
</TaskCheckPersonalView>
</div>
</template>
<script setup lang="ts">
-import TaskCheckPersonalView from './TaskCheckPersonalView.vue';
-import { Colors, Gender } from '@12333/constants';
import {
- FlexTaskCheckAcceptStatusEnum,
- FlexTaskCheckAcceptStatusEnumText,
-} from '@12333/constants/task';
+ Colors,
+ EnumUserGender,
+ EnumTaskCheckReceiveStatus,
+ EnumTaskCheckReceiveStatusText,
+ EnumTaskCheckReceiveMethod,
+ EnumGetCheckReceiveTasksQueryResultItemCheckStatus,
+ EnumTaskUserSubmitCheckReceiveStatus,
+ EnumTaskUserSubmitCheckHistoryType,
+} from '@12333/constants';
+import { TaskCheckPersonalView } from '@12333/components';
+import { CheckInOrOutEventEnum } from '../constants';
+import { Portal } from 'senin-mini/components';
+import { ActionSheet } from '@nutui/nutui-taro';
+import { OrderUtils } from '@12333/utils';
defineOptions({
name: 'TaskCheckCard',
});
+enum ManageActions {
+ CheckIn = 1,
+ CheckOut,
+ OutWork,
+}
+
type Props = {
- avatarUrl?: string;
+ avatar?: string;
name?: string;
- genderType?: Gender;
- isRealName?: boolean;
- contactPhone?: string;
- checkAcceptStatus?: API.FlexTaskCheckAcceptStatusEnum;
+ gender?: EnumUserGender;
+ isReal?: boolean;
+ contactPhoneNumber?: string;
+ checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+ /** 绛惧埌鏃堕棿 */
+ checkInTime?: string;
+ /** 绛惧嚭鏃堕棿 */
+ checkOutTime?: string;
+ checkReceiveMethods?: EnumTaskCheckReceiveMethod[];
+
+ submitCheckReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
+
+ checkHistoryType?: EnumTaskUserSubmitCheckHistoryType;
};
const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+ (e: 'checkReceive'): void;
+ (e: 'checkInOrOut', ev: EnumTaskUserSubmitCheckHistoryType): void;
+}>();
+
+const menuList = computed(() => {
+ let _menuList = [];
+ if (OrderUtils.isContainCheckIn(props.checkReceiveMethods)) {
+ if (!props.checkInTime) {
+ _menuList.push({
+ name: '绛惧埌',
+ value: ManageActions.CheckIn,
+ });
+ } else if (!props.checkOutTime) {
+ _menuList.push({
+ name: '绛惧嚭',
+ value: ManageActions.CheckOut,
+ });
+ }
+ _menuList.push({
+ name: '鏈埌宀�',
+ value: ManageActions.OutWork,
+ });
+ }
+
+ return _menuList;
+});
+
+function handleMore() {
+ Portal.add((key) => {
+ return h(
+ Portal.Container,
+ { keyNumber: key, delayOpen: true },
+ {
+ default: ({ open, onClose }) =>
+ // @ts-ignore
+ h(ActionSheet, {
+ visible: open.value,
+ 'onUpdate:visible': () => onClose(),
+ menuItems: menuList.value,
+ onChoose: (item) => {
+ handleEmit(item);
+ onClose();
+ },
+ }),
+ }
+ );
+ });
+}
+
+function handleEmit(action: { name: string; value: number }) {
+ switch (action.value) {
+ case ManageActions.CheckIn:
+ emit('checkInOrOut', EnumTaskUserSubmitCheckHistoryType.CheckIn);
+ break;
+ case ManageActions.CheckOut:
+ emit('checkInOrOut', EnumTaskUserSubmitCheckHistoryType.CheckOut);
+ break;
+ case ManageActions.OutWork:
+ emit('checkInOrOut', EnumTaskUserSubmitCheckHistoryType.UnCheckIn);
+ break;
+ }
+}
</script>
<style lang="scss">
--
Gitblit v1.9.1