wupengfei
6 天以前 1b8dde1c63097f957f0bb4caec53df16969d66f9
apps/underTakeMiniApp/src/subpackages/task/components/TaskCheckCard.vue
@@ -1,5 +1,5 @@
<template>
  <div class="task-check-card-wrapper" @click.stop="emit('checkReceive')">
  <div class="task-check-card-wrapper">
    <TaskCheckPersonalView
      class="task-check-card-view"
      :avatar="avatar"
@@ -9,12 +9,47 @@
      :contactPhoneNumber="contactPhoneNumber"
    >
      <template #actions>
        <div
          class="task-check-card-phone-status"
          :style="{ color: EnumTaskCheckReceiveStatusColor[checkReceiveStatus] }"
        <template
          v-if="
            (checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitCheckReceive ||
              checkReceiveStatus === EnumTaskCheckReceiveStatus.WaitSubmit) &&
            isInternal
          "
        >
          {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
        </div>
          <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-else
            type="primary"
            class="task-check-card-phone-btn"
            @click.stop="emit('checkReceive')"
            >验收</nut-button
          >
        </template>
        <template v-else>
          <div
            class="task-check-card-phone-status"
            :style="{ color: EnumTaskCheckReceiveStatusColor[checkReceiveStatus] }"
          >
            {{ EnumTaskCheckReceiveStatusText[checkReceiveStatus] }}
          </div>
        </template>
      </template>
    </TaskCheckPersonalView>
  </div>
@@ -29,6 +64,7 @@
  EnumTaskCheckReceiveMethod,
  EnumGetCheckReceiveTasksQueryResultItemCheckStatus,
  EnumTaskUserSubmitCheckReceiveStatus,
  EnumTaskUserSubmitCheckHistoryType,
  EnumTaskCheckReceiveStatusColor,
} from '@12333/constants';
import { TaskCheckPersonalView } from '@12333/components';
@@ -61,34 +97,38 @@
  checkReceiveMethods?: EnumTaskCheckReceiveMethod[];
  submitCheckReceiveStatus?: EnumTaskUserSubmitCheckReceiveStatus;
  checkHistoryType?: EnumTaskUserSubmitCheckHistoryType;
  isInternal?: boolean;
};
const props = withDefaults(defineProps<Props>(), {});
const emit = defineEmits<{
  (e: 'checkReceive'): void;
  (e: 'checkInOrOut', ev: EnumTaskUserSubmitCheckReceiveStatus): void;
  (e: 'checkInOrOut', ev: EnumTaskUserSubmitCheckHistoryType): void;
}>();
const menuList = computed(() => {
  let _menuList = [];
  // if (props.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn) {
  _menuList.push({
    name: '未到岗',
    value: ManageActions.OutWork,
  });
  if (!props.checkInTime) {
  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.CheckIn,
    });
  } else if (!props.checkOutTime) {
    _menuList.push({
      name: '签出',
      value: ManageActions.CheckOut,
      name: '未到岗',
      value: ManageActions.OutWork,
    });
  }
  // }
  return _menuList;
});
@@ -118,13 +158,13 @@
function handleEmit(action: { name: string; value: number }) {
  switch (action.value) {
    case ManageActions.CheckIn:
      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive);
      emit('checkInOrOut', EnumTaskUserSubmitCheckHistoryType.CheckIn);
      break;
    case ManageActions.CheckOut:
      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Success);
      emit('checkInOrOut', EnumTaskUserSubmitCheckHistoryType.CheckOut);
      break;
    case ManageActions.OutWork:
      emit('checkInOrOut', EnumTaskUserSubmitCheckReceiveStatus.Fail);
      emit('checkInOrOut', EnumTaskUserSubmitCheckHistoryType.UnCheckIn);
      break;
  }
}