From bcf714a7c8e659509f910fd3ab3ade6cf22e382f Mon Sep 17 00:00:00 2001 From: hwj Date: Fri, 12 Jun 2026 16:21:12 +0800 Subject: [PATCH] =?UTF-8?q?style=EF=BC=9A=E6=A8=A1=E5=85=B7=E7=BB=84-?= =?UTF-8?q?=E4=B8=8B=E6=A8=A1=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/erp/mold/index.ts | 2 + src/locales/en.ts | 3 ++ src/locales/zh-CN.ts | 3 ++ .../erp/mold/components/MoldOperateView.vue | 3 ++ src/views/erp/mold/index.vue | 47 +++++++++++++++++-- 5 files changed, 54 insertions(+), 4 deletions(-) diff --git a/src/api/erp/mold/index.ts b/src/api/erp/mold/index.ts index 7a2dc54f..56c7aba4 100644 --- a/src/api/erp/mold/index.ts +++ b/src/api/erp/mold/index.ts @@ -15,6 +15,8 @@ export interface MoldBrandVO { status?: number // 状态 currentPosition?: string // 当前位置 currentDevice?: string // 当前设备 + deviceId?: number // 当前设备ID + deviceName?: string // 当前设备 machineName?: string // 当前设备 useTime?: number // 预期寿命(小时) maintainType?: number // 维保模式 diff --git a/src/locales/en.ts b/src/locales/en.ts index 7a322e7a..654f69ba 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -2602,6 +2602,9 @@ export default { detail: 'Detail', moldUp: 'Mold Up', moldDown: 'Mold Down', + confirmMoldDown: 'Confirm mold down?', + currentDeviceRequired: 'Current mold has no linked device, unable to mold down', + currentOperatorRequired: 'Current login operator was not found, unable to mold down', repair: 'Repair', qrcode: 'QR Code', edit: 'Edit', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 2d4610b0..a0259e6b 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -2079,6 +2079,9 @@ export default { detail: '详情', moldUp: '上模', moldDown: '下模', + confirmMoldDown: '是否确认下模?', + currentDeviceRequired: '当前模具未关联设备,无法下模', + currentOperatorRequired: '未获取到当前登录操作人,无法下模', repair: '维修', qrcode: '二维码', edit: '编辑', diff --git a/src/views/erp/mold/components/MoldOperateView.vue b/src/views/erp/mold/components/MoldOperateView.vue index e7ca8a09..d5825f41 100644 --- a/src/views/erp/mold/components/MoldOperateView.vue +++ b/src/views/erp/mold/components/MoldOperateView.vue @@ -251,6 +251,9 @@ const submitOperateForm = async () => { await MoldOperateApi.createMoldOperate(submitData) message.success(props.type === 1 ? t('MoldManagement.MoldBrandPage.moldUpSuccess') : t('MoldManagement.MoldBrandPage.moldDownSuccess')) fetchRecentOperateList() + if (props.type === 1) { + await new Promise((resolve) => setTimeout(resolve, 2000)) + } emit('success') } catch (error) { console.error(t('MoldManagement.MoldBrandPage.submitFailed'), error) diff --git a/src/views/erp/mold/index.vue b/src/views/erp/mold/index.vue index eab90e0c3..50b371d7 100644 --- a/src/views/erp/mold/index.vue +++ b/src/views/erp/mold/index.vue @@ -149,11 +149,13 @@ import { defineAsyncComponent } from 'vue' import { ProductApi, type ProductVO } from '@/api/erp/product/product' import { MoldBrandApi, type MoldBrandVO } from '@/api/erp/mold' +import { MoldOperateApi } from '@/api/mes/moldoperate' import { DeviceLedgerApi, type DeviceLedgerVO } from '@/api/mes/deviceledger' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' -import { dateFormatter } from '@/utils/formatTime' +import { dateFormatter, formatDate } from '@/utils/formatTime' import download from '@/utils/download' import QrcodeActionCard from '@/components/QrcodeActionCard/index.vue' +import { useUserStore } from '@/store/modules/user' defineOptions({ name: 'MoldBrand' }) @@ -161,6 +163,7 @@ const { t } = useI18n() const message = useMessage() const { push } = useRouter() const route = useRoute() +const userStore = useUserStore() const loading = ref(false) const exportLoading = ref(false) const list = ref([]) @@ -335,7 +338,42 @@ const openDetail = (id: number) => { } // 上下模操作函数 -const openOperateForm = (type: number, row: MoldBrandVO) => { +const getCurrentOperatorId = () => { + const user = userStore.getUser as any + return user?.operatorId ?? user?.id +} + +const handleMoldDown = async (row: MoldBrandVO) => { + try { + await message.confirm(t('MoldManagement.MoldBrandPage.confirmMoldDown')) + const deviceId = (row as any).deviceId + const operatorId = getCurrentOperatorId() + if (!deviceId) { + message.warning(t('MoldManagement.MoldBrandPage.currentDeviceRequired')) + return + } + if (!operatorId) { + message.warning(t('MoldManagement.MoldBrandPage.currentOperatorRequired')) + return + } + await MoldOperateApi.createMoldOperate({ + operateType: 2, + moldId: row.id, + deviceId, + lineName: '', + operateTime: formatDate(new Date()), + operatorId: String(operatorId) + } as any) + message.success(t('MoldManagement.MoldBrandPage.moldDownSuccess')) + await getList() + } catch {} +} + +const openOperateForm = async (type: number, row: MoldBrandVO) => { + if (type === 2) { + await handleMoldDown(row) + return + } operateType.value = type currentMold.value = row operateFormVisible.value = true @@ -353,8 +391,9 @@ const closeOperateForm = () => { currentMold.value = null } -const onOperateSuccess = () => { - // 提交成功后的回调 +const onOperateSuccess = async () => { + closeOperateForm() + await getList() } // 维护操作函数