|
|
@@ -19,7 +19,7 @@
|
|
|
<el-button type="danger" icon="edit" @click="del_ddzlClick" v-if="table_del=== true" :disabled="table_Selection === ''" class="bt" title="选中复选框进行删除订单数据">删除订单资料</el-button>
|
|
|
<el-button type="danger" icon="edit" @click="delgd_delclick" v-if="delall=== true" :disabled="ysSelection === ''" class="bt" title="选中复选框进行删除颜色数据">删除颜色资料</el-button>
|
|
|
<!-- <el-button type="danger" icon="edit" @click="delgy_delclick" v-if="delall=== true" :disabled="gySelection === ''" class="bt" title="选中复选框进行删除工艺数据">删除工艺资料</el-button> -->
|
|
|
- <el-button type="primary" icon="edit" @click="copyProductData" :disabled="!_Gd_gdbh" class="bt" title="复制产品资料">复制产品资料</el-button>
|
|
|
+ <el-button type="primary" icon="edit" @click="copyProductData" :disabled="!_Gd_gdbh" class="bt" title="复制订单工艺">复制订单工艺</el-button>
|
|
|
<el-button type="primary" icon="upload" @click="openImportProcessDialog" :disabled="!_Gd_gdbh" class="bt" title="导入工艺资料">导入工艺资料</el-button>
|
|
|
<el-button type="primary" icon="search" :loading="processProductionChecking" @click="openProcessProductionDialog" :disabled="!_Gd_gdbh" class="bt" title="工序产量核查">工序产量核查</el-button>
|
|
|
|
|
|
@@ -403,26 +403,30 @@
|
|
|
</div>
|
|
|
<div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
<span style="width: 60px; text-align: right; margin-right: 8px;">接单日期:</span>
|
|
|
- <el-input v-model="gyDetailFormData.接单日期" disabled style="width: 160px;" />
|
|
|
+ <el-input v-model="gyDetailFormData.接单日期" disabled style="width: 120px;" />
|
|
|
</div>
|
|
|
</el-row>
|
|
|
<el-row :gutter="20" style="width: max-content; display: flex; align-items: center; margin-top: 10px;">
|
|
|
<div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
<span style="width: 80px; text-align: right; margin-right: 8px;">落货日期:</span>
|
|
|
- <el-input v-model="gyDetailFormData.落货日期" disabled style="width: 160px;" />
|
|
|
+ <el-input v-model="gyDetailFormData.落货日期" disabled style="width: 120px;" />
|
|
|
</div>
|
|
|
<div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
- <span style="width: 80px; text-align: right; margin-right: 8px;">审核日期:</span>
|
|
|
- <el-input v-model="gyDetailFormData.审核日期" disabled style="width: 160px;" />
|
|
|
+ <span style="width: 80px; text-align: right; margin-right: 8px;">制单日期:</span>
|
|
|
+ <el-input v-model="gyDetailFormData.制单日期" disabled style="width: 160px;" />
|
|
|
</div>
|
|
|
<div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
- <span style="width: 60px; text-align: right; margin-right: 8px;">审核人:</span>
|
|
|
- <el-input v-model="gyDetailFormData.审核" disabled style="width: 100px;" />
|
|
|
- </div>
|
|
|
- <div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
- <span style="width: 80px; text-align: right; margin-right: 8px;">订单数量:</span>
|
|
|
- <el-input v-model="gyDetailFormData.订单数量" disabled style="width: 100px;" />
|
|
|
- </div>
|
|
|
+ <span style="width: 60px; text-align: right; margin-right: 8px;">制单人:</span>
|
|
|
+ <el-input v-model="gyDetailFormData.制单人" disabled style="width: 100px;" />
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
+ <span style="width: 90px; text-align: right; margin-right: 8px;">工单完工日期:</span>
|
|
|
+ <el-input v-model="gyDetailFormData.工单完工日期" disabled style="width: 120px;" />
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
+ <span style="width: 80px; text-align: right; margin-right: 8px;">订单数量:</span>
|
|
|
+ <el-input v-model="gyDetailFormData.订单数量" disabled style="width: 80px;" />
|
|
|
+ </div>
|
|
|
<div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
<span
|
|
|
style="width: 100px; text-align: right; margin-right: 8px; cursor: pointer;"
|
|
|
@@ -430,17 +434,21 @@
|
|
|
>计划制造工分:</span>
|
|
|
<el-input
|
|
|
v-model="gyDetailFormData.计划制造工分"
|
|
|
- style="width: 120px;"
|
|
|
+ style="width: 100px;"
|
|
|
:readonly="!gyDetailPlanManufactureEditing"
|
|
|
@click="startGyDetailPlanManufactureEdit"
|
|
|
/>
|
|
|
<template v-if="gyDetailPlanManufactureEditing">
|
|
|
- <el-button style="margin-left: 10px;" @click="cancelGyDetailPlanManufactureEdit">取消</el-button>
|
|
|
- <el-button type="primary" style="margin-left: 8px;" :loading="gyDetailPlanManufactureSaving" @click="confirmGyDetailPlanManufactureEdit">确认修改</el-button>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
+ <el-button style="margin-left: 10px;" @click="cancelGyDetailPlanManufactureEdit">取消</el-button>
|
|
|
+ <el-button type="primary" style="margin-left: 8px;" :loading="gyDetailPlanManufactureSaving" @click="confirmGyDetailPlanManufactureEdit">确认修改</el-button>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; align-items: center; white-space: nowrap;">
|
|
|
+ <span style="width: 60px; text-align: right; margin-right: 8px;">备注:</span>
|
|
|
+ <el-input v-model="gyDetailFormData.备注" disabled style="width: 300px;" />
|
|
|
+ </div>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
|
|
|
<!-- 工艺列表表格(虚拟滚动 + 底部横向滚动条) -->
|
|
|
<div ref="gyDetailTableWrapRef" class="gy-detail-table-wrap">
|
|
|
@@ -2211,17 +2219,21 @@
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <!-- 复制产品资料弹窗 -->
|
|
|
- <el-dialog v-model="copyProductDialogVisible" title="复制产品资料">
|
|
|
- <div style=" padding: 0px; align-items: center;">
|
|
|
- <el-form-item label="订单编号" prop="processName" class="mab">
|
|
|
- <el-input v-model="copyProductFormData['gdbh']" disabled style="width: 23%;" />
|
|
|
+ <!-- 复制工艺资料弹窗 -->
|
|
|
+ <el-dialog v-model="copyProductDialogVisible" title="复制工艺资料">
|
|
|
+ <div style=" padding: 0px; align-items: center; display: flex; flex-wrap: wrap;">
|
|
|
+ <el-form-item label="当前订单" prop="processName" class="mab">
|
|
|
+ <el-input v-model="copyProductFormData['gdbh']" disabled style="width: 150px;" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="生产款号" prop="生产款号" class="mab">
|
|
|
+ <el-input v-model="copyProductFormData['生产款号']" disabled style="width: 200px;" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="款式" prop="processName" class="mab">
|
|
|
- <el-input v-model="copyProductFormData['ks']" disabled style="width: 23%;" />
|
|
|
+ <el-form-item label="搜索订单" prop="processName" class="mab" style="width: 50%;">
|
|
|
+ <el-input v-model="copyProductSearchText" placeholder="请输入订单编号或生产款号搜索" style="width: 70%;" @keydown.enter.prevent="copyProductSearch" />
|
|
|
+ <el-button type="primary" @click="copyProductSearch" style="margin-left: 10px;">搜索</el-button>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="产品列表" prop="processName" class="mab" >
|
|
|
- <span style="color:red">请选择要复制的产品资料</span>
|
|
|
+ <el-form-item prop="processName" class="mab" style="width: 100%;">
|
|
|
+ <span style="color:red">请选择要复制工艺的源订单</span>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div slot="footer" class="dialog-footer" style="text-align: right;margin-left: 25%">
|
|
|
@@ -2237,15 +2249,18 @@
|
|
|
@row-click="copyProductTableRowClick"
|
|
|
highlight-current-row="true"
|
|
|
style="width: 100%;height: 30vh;" border tooltip-effect="dark"
|
|
|
- :data="copyProductTableData" row-key="产品编号">
|
|
|
- <el-table-column align="left" label="产品编号" width="100">
|
|
|
- <template v-slot="{ row }"><span>{{ row.产品编号 }}</span></template>
|
|
|
+ :data="copyProductTableData" row-key="订单编号">
|
|
|
+ <el-table-column align="left" label="订单编号" width="120">
|
|
|
+ <template v-slot="{ row }"><span>{{ row.订单编号 }}</span></template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="left" label="产品类型" width="100">
|
|
|
- <template v-slot="{ row }"><span>{{ row.产品类型 }}</span></template>
|
|
|
+ <el-table-column align="left" label="生产款号" width="200">
|
|
|
+ <template v-slot="{ row }"><span>{{ row.生产款号 }}</span></template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column align="left" label="产品名称">
|
|
|
- <template v-slot="{ row }"><span>{{ row.产品名称 }}</span></template>
|
|
|
+ <el-table-column align="left" label="客户编号" width="100">
|
|
|
+ <template v-slot="{ row }"><span>{{ row.客户编号 }}</span></template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="left" label="款式" width="150">
|
|
|
+ <template v-slot="{ row }"><span>{{ row.款式 }}</span></template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
@@ -2460,7 +2475,7 @@
|
|
|
printDetailAdd,PrintDetailDel,orderDataDel,getWorkOrder,
|
|
|
getSuborder,PrintDataEdit,WorkOrderEdit,gdAnnexAdd,upload,OrderAttachments,
|
|
|
getPonumber,FabricEdit,orderBomList,FabricDetail,fabricList,Bomdel,delfujian,Read_File,Read_Add,PartList,GetProcessList,
|
|
|
- AddPart,UpdatePartInfo,DeletePart,AddProcess,UpdateProcess,DeleteProcess,getproducttype,workorderprocessCopy,sortProcess,getProductStyleList,
|
|
|
+ AddPart,UpdatePartInfo,DeletePart,AddProcess,UpdateProcess,DeleteProcess,getproducttype,workorderprocessCopy,sortProcess,getProductStyleList,copyProcessToCurrentWorkOrder,
|
|
|
importProcess,getWorkOrderProcess,updateWorkOrderPlanManufacture,checkProcessReport,confirmProcessSplit} from '@/api/mes/job'
|
|
|
import {ParList,ProcessList} from '@/api/yunyin/product'
|
|
|
import PrintPage from './components/print.vue'
|
|
|
@@ -3795,6 +3810,7 @@ const copyProductFormData = ref({
|
|
|
const copyProductTableData = ref([])
|
|
|
const copyProductSelectedRow = ref(null)
|
|
|
const copyProductTableRef = ref(null)
|
|
|
+const copyProductSearchText = ref('')
|
|
|
|
|
|
// 排序相关常量
|
|
|
const PROCESS_ADD_STAGE_ORDER = ['裁剪', '车缝', '手工', '大烫', '总检']
|
|
|
@@ -4718,62 +4734,75 @@ const sortTableData = ref([])
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 复制产品资料
|
|
|
- const copyProductData = async () => {
|
|
|
- if(!_Gd_gdbh.value || !_Gd_ks.value){
|
|
|
+ // 复制产品资料 - 打开弹窗
|
|
|
+ const copyProductData = () => {
|
|
|
+ if(!_Gd_gdbh.value){
|
|
|
ElMessage.warning('请先选择具体的工单')
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ copyProductTableData.value = []
|
|
|
+ copyProductFormData.value.gdbh = _Gd_gdbh.value
|
|
|
+ copyProductFormData.value.ks = ''
|
|
|
+ copyProductSelectedRow.value = null
|
|
|
+ copyProductSearchText.value = ''
|
|
|
+ copyProductDialogVisible.value = true
|
|
|
+ }
|
|
|
+
|
|
|
+ // 复制产品资料搜索
|
|
|
+ const copyProductSearch = async () => {
|
|
|
+ if(!copyProductSearchText.value.trim()){
|
|
|
+ ElMessage.warning('请输入搜索内容')
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
- // 调用getproducttype接口,传入款式参数
|
|
|
- const res = await getproducttype({ product: _Gd_ks.value })
|
|
|
- if (res?.code === 0 && Array.isArray(res.data)) {
|
|
|
- copyProductTableData.value = res.data
|
|
|
- copyProductFormData.value.gdbh = _Gd_gdbh.value
|
|
|
- copyProductFormData.value.ks = _Gd_ks.value
|
|
|
+ const res = await WorkOrderList({ search: copyProductSearchText.value, page: 1, limit: 100 })
|
|
|
+ if (res?.code === 0 && res.data && Array.isArray(res.data.data)) {
|
|
|
+ copyProductTableData.value = res.data.data
|
|
|
copyProductSelectedRow.value = null
|
|
|
- copyProductDialogVisible.value = true
|
|
|
} else {
|
|
|
- ElMessage.error('获取产品列表失败')
|
|
|
+ copyProductTableData.value = []
|
|
|
+ ElMessage.info('未找到匹配的工单')
|
|
|
}
|
|
|
} catch (e) {
|
|
|
- console.error('获取产品列表失败', e)
|
|
|
- ElMessage.error('获取产品列表失败')
|
|
|
+ console.error('搜索工单失败', e)
|
|
|
+ ElMessage.error('搜索工单失败')
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 复制产品资料表格行点击
|
|
|
const copyProductTableRowClick = (row) => {
|
|
|
copyProductSelectedRow.value = row
|
|
|
+ copyProductFormData.value['生产款号'] = row.生产款号 || ''
|
|
|
}
|
|
|
|
|
|
// 复制产品资料确认
|
|
|
const copyProductHandleConfirm = async () => {
|
|
|
if(!copyProductSelectedRow.value) {
|
|
|
- ElMessage.warning('请选择要复制的产品资料')
|
|
|
+ ElMessage.warning('请选择要复制的工单')
|
|
|
return
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
- // 调用workorderprocessCopy接口
|
|
|
- const res = await workorderprocessCopy({
|
|
|
- workorder: _Gd_gdbh.value,
|
|
|
- product_code: copyProductSelectedRow.value.产品编号,
|
|
|
+ // 调用copyProcessToCurrentWorkOrder接口
|
|
|
+ const res = await copyProcessToCurrentWorkOrder({
|
|
|
+ target_workorder: copyProductSelectedRow.value.订单编号,
|
|
|
+ current_workorder: _Gd_gdbh.value,
|
|
|
sys_id: userStore.userInfo.nickName
|
|
|
})
|
|
|
|
|
|
if (res?.code === 0) {
|
|
|
- ElMessage.success('复制产品资料成功')
|
|
|
+ ElMessage.success('复制工艺资料成功')
|
|
|
copyProductDialogVisible.value = false
|
|
|
// 刷新数据
|
|
|
await loadPartAndProcessData()
|
|
|
} else {
|
|
|
- ElMessage.error('复制产品资料失败')
|
|
|
+ ElMessage.error('复制工艺资料失败')
|
|
|
}
|
|
|
} catch (e) {
|
|
|
- console.error('复制产品资料失败', e)
|
|
|
- ElMessage.error('复制产品资料失败')
|
|
|
+ console.error('复制工艺资料失败', e)
|
|
|
+ ElMessage.error('复制工艺资料失败')
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -4967,6 +4996,8 @@ const sortTableData = ref([])
|
|
|
审核: '',
|
|
|
订单数量: '',
|
|
|
计划制造工分: '',
|
|
|
+ 工单完工日期: '',
|
|
|
+ 备注: '',
|
|
|
Sys_id: '',
|
|
|
Sys_rq: '',
|
|
|
img: '',
|
|
|
@@ -5022,11 +5053,15 @@ const sortTableData = ref([])
|
|
|
gyDetailFormData.生产款号 = data['生产款号'] || ''
|
|
|
gyDetailFormData.款式 = data['款式'] || ''
|
|
|
gyDetailFormData.落货日期 = data['落货日期'] || ''
|
|
|
- gyDetailFormData.审核日期 = data['审核日期'] || ''
|
|
|
+ gyDetailFormData.制单日期 = data['Sys_rq'] || ''
|
|
|
gyDetailFormData.接单日期 = data['接单日期'] || ''
|
|
|
- gyDetailFormData.审核 = data['审核'] || ''
|
|
|
+ // 制单人:如果有/则显示/后的值,否则全部显示
|
|
|
+ const sysId = data['Sys_id'] || ''
|
|
|
+ gyDetailFormData.制单人 = sysId.includes('/') ? sysId.split('/')[1] : sysId
|
|
|
gyDetailFormData.订单数量 = data['订单数量'] || ''
|
|
|
gyDetailFormData.计划制造工分 = data['计划制造工分'] || ''
|
|
|
+ gyDetailFormData.工单完工日期 = data['工单完工日期'] || ''
|
|
|
+ gyDetailFormData.备注 = data['remark'] || ''
|
|
|
gyDetailFormData.Sys_id = data['Sys_id'] || data['sys_id'] || row?.['Sys_id'] || row?.['sys_id'] || ''
|
|
|
gyDetailFormData.Sys_rq = data['Sys_rq'] || data['sys_rq'] || ''
|
|
|
gyDetailFormData.Uniqid = data['Uniqid'] || ''
|