|
|
@@ -25,22 +25,19 @@
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in workOrderList"
|
|
|
- :key="item.workord"
|
|
|
- :label="item.workord"
|
|
|
- :value="item.workord"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="物料编号" prop="ItemNum">
|
|
|
- <el-date-picker
|
|
|
+ <el-input
|
|
|
v-model="formData.ItemNum"
|
|
|
- type="date"
|
|
|
- placeholder="选择日期"
|
|
|
- format="YYYY-MM-DD"
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
- style="width: 100%"
|
|
|
+ placeholder="请输入物料编号"
|
|
|
+ disabled
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -49,12 +46,20 @@
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="工序" prop="OP">
|
|
|
- <el-input v-model="formData.OP" placeholder="请输入工序" />
|
|
|
+ <el-input
|
|
|
+ v-model="formData.OP"
|
|
|
+ placeholder="请输入工序"
|
|
|
+ :disabled="props.mode === 'edit'"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="工序名称" prop="Descr">
|
|
|
- <el-input v-model="formData.Descr" placeholder="请输入工序名称" />
|
|
|
+ <el-input
|
|
|
+ v-model="formData.Descr"
|
|
|
+ placeholder="请输入工序名称"
|
|
|
+ :disabled="props.mode === 'edit'"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -70,9 +75,9 @@
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in workCenterList"
|
|
|
- :key="item.WorkCtr"
|
|
|
- :label="`${item.WorkCtr} ${item.Descr}`"
|
|
|
- :value="item.WorkCtr"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
@@ -87,9 +92,9 @@
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in productionLineList"
|
|
|
- :key="item.Line"
|
|
|
- :label="`${item.Line} ${item.Describe}`"
|
|
|
- :value="item.Line"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
@@ -151,9 +156,9 @@
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in supplierList"
|
|
|
- :key="item.Supp"
|
|
|
- :label="item.SuppName"
|
|
|
- :value="item.Supp"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
@@ -290,15 +295,15 @@
|
|
|
import { ref, reactive, computed, watch } from 'vue'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
import {
|
|
|
+ getWorkOrderRoutingPage,
|
|
|
+ createWorkOrderRouting,
|
|
|
+ updateWorkOrderRouting,
|
|
|
getWorkOrderList,
|
|
|
getWorkCenterList,
|
|
|
getProductionLineList,
|
|
|
getSupplierList,
|
|
|
- addWorkOrderProcess,
|
|
|
- updateWorkOrderProcess,
|
|
|
- checkWorkOrderProcessExists,
|
|
|
- checkProcessHasCompleteQty
|
|
|
-} from '@/api/jiaohuo/production'
|
|
|
+ getWorkOrderInfo
|
|
|
+} from '@/api/makeplan/workorderRouting'
|
|
|
|
|
|
const props = defineProps({
|
|
|
visible: {
|
|
|
@@ -410,29 +415,29 @@ watch(
|
|
|
(newData) => {
|
|
|
if (newData) {
|
|
|
Object.assign(formData, {
|
|
|
- RecID: newData.RecID || '',
|
|
|
- WorkOrd: newData.WorkOrd || '',
|
|
|
- ItemNum: newData.ItemNum || '',
|
|
|
- OP: newData.OP || '',
|
|
|
- Descr: newData.Descr || '',
|
|
|
- WorkCtr: newData.WorkCtr || '',
|
|
|
- ProdLine: newData.ProdLine || '',
|
|
|
- StdSetupTime: newData.StdSetupTime || 0,
|
|
|
- QtyOrded: newData.QtyOrded || 0,
|
|
|
- MilestoneOp: newData.MilestoneOp === '是' ? true : false,
|
|
|
- ProcessOut: newData.ProcessOut === '是' ? 1 : 0,
|
|
|
- ProcessOutSupp: newData.ProcessOutSupp || '',
|
|
|
- ProcessOutDay: newData.ProcessOutDay || 0,
|
|
|
- Machine: newData.Machine || '',
|
|
|
- ToolCode: newData.ToolCode || '',
|
|
|
- RunCrew: newData.RunCrew || 0,
|
|
|
- Engineer: newData.Engineer || '',
|
|
|
- MachBdnRate: newData.MachBdnRate || 0,
|
|
|
- WorkCode: newData.WorkCode || 'M',
|
|
|
- Setup: newData.Setup || 0,
|
|
|
- MachinesperOp: newData.MachinesperOp || 0,
|
|
|
- Labor: newData.Labor || 0,
|
|
|
- ChargeCode: newData.ChargeCode || ''
|
|
|
+ RecID: newData.id || newData.RecID || newData.recID || '',
|
|
|
+ WorkOrd: newData.workOrd || newData.WorkOrd || '',
|
|
|
+ ItemNum: newData.itemNum || newData.ItemNum || '',
|
|
|
+ OP: newData.op || newData.OP || '',
|
|
|
+ Descr: newData.descr || newData.Descr || newData.opName || '',
|
|
|
+ WorkCtr: newData.workCtr || newData.WorkCtr || '',
|
|
|
+ ProdLine: newData.prodLine || newData.ProdLine || '',
|
|
|
+ StdSetupTime: newData.stdSetupTime || newData.StdSetupTime || 0,
|
|
|
+ QtyOrded: newData.qtyOrded || newData.QtyOrded || 0,
|
|
|
+ MilestoneOp: (newData.milestoneOp === 1 || newData.MilestoneOp === 1) ? true : false,
|
|
|
+ ProcessOut: (newData.processOut === 1 || newData.ProcessOut === 1) ? 1 : 0,
|
|
|
+ ProcessOutSupp: newData.processOutSupp || newData.ProcessOutSupp || '',
|
|
|
+ ProcessOutDay: newData.processOutDay || newData.ProcessOutDay || 0,
|
|
|
+ Machine: newData.machine || newData.Machine || '',
|
|
|
+ ToolCode: newData.toolCode || newData.ToolCode || '',
|
|
|
+ RunCrew: newData.runCrew || newData.RunCrew || 0,
|
|
|
+ Engineer: newData.engineer || newData.Engineer || '',
|
|
|
+ MachBdnRate: newData.machBdnRate || newData.MachBdnRate || 0,
|
|
|
+ WorkCode: newData.workCode || newData.WorkCode || 'M',
|
|
|
+ Setup: newData.setup || newData.Setup || 0,
|
|
|
+ MachinesperOp: newData.machinesPerOp || newData.MachinesperOp || 0,
|
|
|
+ Labor: newData.labor || newData.Labor || 0,
|
|
|
+ ChargeCode: newData.chargeCode || newData.ChargeCode || ''
|
|
|
})
|
|
|
} else {
|
|
|
resetForm()
|
|
|
@@ -448,6 +453,21 @@ watch(dialogVisible, (val) => {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+// 监听工单选择变化 - 暂时注释以排查构建问题
|
|
|
+// watch(() => formData.WorkOrd, async (newWorkOrd, oldWorkOrd) => {
|
|
|
+// // 只在添加模式且工单真正改变时才执行
|
|
|
+// if (newWorkOrd && newWorkOrd !== oldWorkOrd && props.mode === 'add') {
|
|
|
+// try {
|
|
|
+// const res = await getWorkOrderInfo(newWorkOrd)
|
|
|
+// if (res && res.itemNum) {
|
|
|
+// formData.ItemNum = res.itemNum
|
|
|
+// }
|
|
|
+// } catch (error) {
|
|
|
+// console.error('获取工单信息失败:', error)
|
|
|
+// }
|
|
|
+// }
|
|
|
+// })
|
|
|
+
|
|
|
// 加载下拉框数据
|
|
|
const loadDropdownData = async () => {
|
|
|
try {
|
|
|
@@ -457,10 +477,10 @@ const loadDropdownData = async () => {
|
|
|
getProductionLineList(),
|
|
|
getSupplierList()
|
|
|
])
|
|
|
- workOrderList.value = workOrders.data || []
|
|
|
- workCenterList.value = workCenters.data || []
|
|
|
- productionLineList.value = prodLines.data || []
|
|
|
- supplierList.value = suppliers.data || []
|
|
|
+ workOrderList.value = workOrders || []
|
|
|
+ workCenterList.value = workCenters || []
|
|
|
+ productionLineList.value = prodLines || []
|
|
|
+ supplierList.value = suppliers || []
|
|
|
} catch (error) {
|
|
|
console.error('加载下拉框数据失败:', error)
|
|
|
}
|
|
|
@@ -473,36 +493,38 @@ const handleSubmit = async () => {
|
|
|
|
|
|
submitLoading.value = true
|
|
|
|
|
|
- // 检查工单中是否已有相同工序编号
|
|
|
- const processExistsRes = await checkWorkOrderProcessExists({
|
|
|
- WorkOrd: formData.WorkOrd,
|
|
|
- OP: formData.OP,
|
|
|
- RecID: formData.RecID
|
|
|
- })
|
|
|
- if (processExistsRes.data.exists) {
|
|
|
- ElMessage.error('该工单中已存在相同工序编号,无法保存')
|
|
|
- submitLoading.value = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 检查后序是否已有完成数量
|
|
|
- const hasCompleteQtyRes = await checkProcessHasCompleteQty({
|
|
|
- WorkOrd: formData.WorkOrd,
|
|
|
- OP: formData.OP
|
|
|
- })
|
|
|
- if (hasCompleteQtyRes.data.hasCompleteQty) {
|
|
|
- ElMessage.error('该工单后序已有完成数量,无法保存')
|
|
|
- submitLoading.value = false
|
|
|
- return
|
|
|
+ // 保存数据
|
|
|
+ const saveData = {
|
|
|
+ id: formData.RecID || undefined,
|
|
|
+ workOrd: formData.WorkOrd,
|
|
|
+ itemNum: formData.ItemNum,
|
|
|
+ op: formData.OP,
|
|
|
+ descr: formData.Descr,
|
|
|
+ workCtr: formData.WorkCtr,
|
|
|
+ prodLine: formData.ProdLine,
|
|
|
+ stdSetupTime: formData.StdSetupTime,
|
|
|
+ qtyOrded: formData.QtyOrded,
|
|
|
+ milestoneOp: formData.MilestoneOp ? 1 : 0,
|
|
|
+ processOut: formData.ProcessOut,
|
|
|
+ processOutSupp: formData.ProcessOutSupp,
|
|
|
+ processOutDay: formData.ProcessOutDay,
|
|
|
+ machine: formData.Machine,
|
|
|
+ toolCode: formData.ToolCode,
|
|
|
+ runCrew: formData.RunCrew,
|
|
|
+ engineer: formData.Engineer,
|
|
|
+ machBdnRate: formData.MachBdnRate,
|
|
|
+ workCode: formData.WorkCode,
|
|
|
+ setup: formData.Setup,
|
|
|
+ machinesPerOp: formData.MachinesperOp,
|
|
|
+ labor: formData.Labor,
|
|
|
+ chargeCode: formData.ChargeCode
|
|
|
}
|
|
|
|
|
|
- // 保存数据
|
|
|
- const saveData = { ...formData }
|
|
|
if (props.mode === 'add') {
|
|
|
- await addWorkOrderProcess(saveData)
|
|
|
+ await createWorkOrderRouting(saveData)
|
|
|
ElMessage.success('添加成功')
|
|
|
} else {
|
|
|
- await updateWorkOrderProcess(formData.RecID, saveData)
|
|
|
+ await updateWorkOrderRouting(saveData)
|
|
|
ElMessage.success('更新成功')
|
|
|
}
|
|
|
|