From 9a9eb80d409a72fec9be4e965dec0c99702b66eb Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 9 Jan 2026 17:20:31 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=E6=9C=BA=E5=8A=A0?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E9=A1=B5=E9=9D=A2=E3=80=81=E6=8A=A5=E5=B7=A5?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mes/orderInfo/editProductPlan.vue | 31 +- src/views/mes/orderInfo/index.vue | 58 +- src/views/mes/planInfo/JJPlanIndex.vue | 861 ++++++++++++++++++ .../mes/prodReport/components/CurrentTask.vue | 446 +++++++++ .../prodReport/components/PendingTasks.vue | 157 ++++ .../components/ProcessDocuments.vue | 227 +++++ .../components/WorkReportRecord.vue | 126 +++ src/views/mes/prodReport/index.vue | 468 ++++++++++ 8 files changed, 2362 insertions(+), 12 deletions(-) create mode 100644 src/views/mes/planInfo/JJPlanIndex.vue create mode 100644 src/views/mes/prodReport/components/CurrentTask.vue create mode 100644 src/views/mes/prodReport/components/PendingTasks.vue create mode 100644 src/views/mes/prodReport/components/ProcessDocuments.vue create mode 100644 src/views/mes/prodReport/components/WorkReportRecord.vue create mode 100644 src/views/mes/prodReport/index.vue diff --git a/src/views/mes/orderInfo/editProductPlan.vue b/src/views/mes/orderInfo/editProductPlan.vue index 71d8fab..c0bf2c3 100644 --- a/src/views/mes/orderInfo/editProductPlan.vue +++ b/src/views/mes/orderInfo/editProductPlan.vue @@ -231,7 +231,7 @@ width="150" > + formData.orderStatus!==ORDER_STATUS.DELETED">删除 @@ -278,7 +277,14 @@ import { reactive, onMounted, ref } from 'vue' import { useRouter, useRoute } from 'vue-router' import { ElMessage, ElMessageBox } from 'element-plus' import { getOrderInfo } from '@/api/mes/orderInfo' -import { getBaseRouteProcesses, getDispatchCode, getPlanCode, selectProductPlans, orderAddProductPlanList } from '@/api/mes/planInfo' +import { + getBaseRouteProcesses, + getDispatchCode, + getPlanCode, + selectProductPlans, + orderAddProductPlanList, + orderAddProductPlanJJList +} from '@/api/mes/planInfo'; import { getStationInfoList } from '@/api/mes/baseStationInfo' @@ -305,6 +311,13 @@ const PLAN_STATUS = { FINISHED: '3' // 已完成 } +const planStatusTextMap = { + '0': '待派工', + '1': '已派工', + '2': '已开始', + '3': '已完成' +} + const orderStatusTextMap = { '0': '待生产', '1': '生产中', @@ -360,6 +373,10 @@ const getOrderStatusText = (status) => { return orderStatusTextMap[status] || `未知状态(${status})` } +const getPlanStatusText = (status) => { + return planStatusTextMap[status] || `未知状态(${status})` +} + const fetchOrderInfo = async (productOrderId) => { // console.log('Fetching order info for ID', productOrderId) try { @@ -458,7 +475,7 @@ const groupProductPlans = async (productPlans) => { planBeginTime: productPlan.planBeginTime || formData.value.planBeginTime || '', planEndTime: productPlan.planEndTime || formData.value.planEndTime || '', planStatus: productPlan.planStatus, - materialId: productPlan.materialId || formData.value.materialId, + materialId: formData.value.materialId, materialBomId: productPlan.materialBomId || formData.value.materialBomId, productOrderId: productPlan.productOrderId || formData.value.productOrderId, saleOrderId: productPlan.saleOrderId || formData.value.saleOrderId || null, @@ -583,7 +600,7 @@ const submitForm = async () => { planBeginTime: planBeginTime, planEndTime: planEndTime, planStatus: PLAN_STATUS.TO_DISPATCH, - materialId: Number(formData.value.materialId), + materialId: formData.value.materialId, materialBomId: Number(formData.value.materialBomId), productOrderId: Number(formData.value.productOrderId), saleOrderId: formData.value.saleOrderId ? Number(formData.value.saleOrderId) : null, @@ -622,7 +639,7 @@ const submitForm = async () => { console.log('提交数据:', JSON.stringify(submitData, null, 2)) - const res = await orderAddProductPlanList(submitData); + const res = await orderAddProductPlanJJList(submitData); if (res.code === 200) { ElMessage.success('提交成功'); diff --git a/src/views/mes/orderInfo/index.vue b/src/views/mes/orderInfo/index.vue index 4835970..806fbf0 100644 --- a/src/views/mes/orderInfo/index.vue +++ b/src/views/mes/orderInfo/index.vue @@ -469,15 +469,63 @@ const data = reactive>({ factoryId: undefined, params: {} }, - rules: { - planAmount: [ - { required: true, message: '计划数量不能为空', trigger: 'blur' } - ], - } + rules: {} }); const { queryParams, form, rules } = toRefs(data); +// 设置验证规则 +data.rules = { + planAmount: [ + { required: true, message: '计划数量不能为空', trigger: 'blur' } + ], + planBeginTime: [ + { + validator: (rule: any, value: any, callback: any) => { + if (!value) { + callback(); + return; + } + if (data.form.planEndTime && value > data.form.planEndTime) { + callback(new Error('计划开始时间不能大于计划结束时间')); + } else { + callback(); + } + }, + trigger: 'change' + } + ], + planEndTime: [ + { + validator: (rule: any, value: any, callback: any) => { + if (!value) { + callback(); + return; + } + if (data.form.planBeginTime && value < data.form.planBeginTime) { + callback(new Error('计划结束时间不能小于计划开始时间')); + } else { + callback(); + } + }, + trigger: 'change' + } + ] +}; + +// 监听时间变化,自动触发另一个字段的验证 +watch(() => form.value.planBeginTime, () => { + if (form.value.planEndTime) { + orderInfoFormRef.value?.validateField('planEndTime'); + } +}); + +watch(() => form.value.planEndTime, () => { + if (form.value.planBeginTime) { + orderInfoFormRef.value?.validateField('planBeginTime'); + } +}); + /** 查询生产订单信息列表 */ const getList = async () => { loading.value = true; diff --git a/src/views/mes/planInfo/JJPlanIndex.vue b/src/views/mes/planInfo/JJPlanIndex.vue new file mode 100644 index 0000000..7d5ce68 --- /dev/null +++ b/src/views/mes/planInfo/JJPlanIndex.vue @@ -0,0 +1,861 @@ + + + + diff --git a/src/views/mes/prodReport/components/CurrentTask.vue b/src/views/mes/prodReport/components/CurrentTask.vue new file mode 100644 index 0000000..dbd5006 --- /dev/null +++ b/src/views/mes/prodReport/components/CurrentTask.vue @@ -0,0 +1,446 @@ + + + + + diff --git a/src/views/mes/prodReport/components/PendingTasks.vue b/src/views/mes/prodReport/components/PendingTasks.vue new file mode 100644 index 0000000..232a0aa --- /dev/null +++ b/src/views/mes/prodReport/components/PendingTasks.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/src/views/mes/prodReport/components/ProcessDocuments.vue b/src/views/mes/prodReport/components/ProcessDocuments.vue new file mode 100644 index 0000000..a71ab5d --- /dev/null +++ b/src/views/mes/prodReport/components/ProcessDocuments.vue @@ -0,0 +1,227 @@ +