| | |
| | | import type { MesMdWorkstationApi } from '#/api/mes/md/workstation'; |
| | | import type { PendingTask, WorkbenchTabItem, WorkbenchTabKey } from './types'; |
| | | |
| | | import { computed, ref, watch } from 'vue'; |
| | | import { computed, onMounted, ref, watch } from 'vue'; |
| | | |
| | | import { confirm } from '@vben/common-ui'; |
| | | import { MesProWorkRecordTypeEnum } from '@vben/constants'; |
| | | import { IconifyIcon } from '@vben/icons'; |
| | | |
| | | import { Button } from 'ant-design-vue'; |
| | | import { Button, message } from 'ant-design-vue'; |
| | | |
| | | import { |
| | | clockInWorkRecord, |
| | | clockOutWorkRecord, |
| | | getMyWorkRecord, |
| | | } from '#/api/mes/pro/workrecord'; |
| | | import { getPendingFeedbackPage } from '#/api/mes/pro/task'; |
| | | import { router } from '#/router'; |
| | | |
| | |
| | | function handleWorkstationSelect(ws: MesMdWorkstationApi.Workstation) { |
| | | workstation.value = ws; |
| | | } |
| | | |
| | | // --- 上工/下工 --- |
| | | const isClockIn = ref(false); |
| | | |
| | | async function loadClockStatus() { |
| | | const record = await getMyWorkRecord(); |
| | | isClockIn.value = record?.type === MesProWorkRecordTypeEnum.CLOCK_IN; |
| | | } |
| | | |
| | | /** 上工:默认使用当前选中的工作站,弹窗确认 */ |
| | | async function handleClockIn() { |
| | | if (!workstationId.value) return; |
| | | try { |
| | | await confirm( |
| | | `确认上工到当前工作站「${workstation.value?.code} - ${workstation.value?.name}」?`, |
| | | ); |
| | | } catch { |
| | | return; |
| | | } |
| | | await clockInWorkRecord(workstationId.value); |
| | | message.success('上工成功'); |
| | | isClockIn.value = true; |
| | | } |
| | | |
| | | /** 下工 */ |
| | | async function handleClockOut() { |
| | | try { |
| | | await confirm('确认下工当前工作站?'); |
| | | } catch { |
| | | return; |
| | | } |
| | | await clockOutWorkRecord(); |
| | | message.success('下工成功'); |
| | | isClockIn.value = false; |
| | | } |
| | | |
| | | onMounted(loadClockStatus); |
| | | |
| | | // --- 任务列表 --- |
| | | const taskList = ref<PendingTask[]>([]); |
| | |
| | | <!-- 工作站选择面板 --> |
| | | <WorkstationPanel |
| | | :workstation="workstation" |
| | | :is-clock-in="isClockIn" |
| | | @change="openWorkstationSelect" |
| | | @clock-in="handleClockIn" |
| | | @clock-out="handleClockOut" |
| | | /> |
| | | |
| | | <!-- 工单列表 --> |