zhengyiming
3 天以前 c4a05d1cd214627d1f62a71b72f7f32087cee92d
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;
  }
}