| | |
| | | formState.value.productModelId = product.id; |
| | | formState.value.unit = product.unit; |
| | | formState.value.routeId = product.routeId; |
| | | |
| | | // 保存产品原有的图纸文件 |
| | | if (product.salesLedgerFiles && product.salesLedgerFiles.length > 0) { |
| | | formState.value.salesLedgerFiles = product.salesLedgerFiles.map(file => ({ |
| | | id: file.id, |
| | | name: file.name, |
| | | url: file.url, |
| | | type: file.type, |
| | | isExisting: true // 标记为已存在的文件 |
| | | })); |
| | | // 同步到fileList用于反显 |
| | | fileList.value = formState.value.salesLedgerFiles.map(file => ({ |
| | | id: file.id, |
| | | name: file.name, |
| | | url: file.url, |
| | | isExisting: true |
| | | })); |
| | | } else { |
| | | formState.value.salesLedgerFiles = []; |
| | | fileList.value = []; |
| | | } |
| | | |
| | | showProductSelectDialog.value = false; |
| | | |
| | | // 1. 通过产品自带的routeId获取工序列表 |
| | |
| | | return true; |
| | | }; |
| | | |
| | | const handleDrawingUploadSuccess = (response, file, fileList) => { |
| | | const handleDrawingUploadSuccess = (response, file, uploadFileList) => { |
| | | console.log('上传成功响应', response); |
| | | console.log('response.data', response.data); |
| | | if (response.code === 200) { |
| | | formState.value.tempFileIds = [response.data?.tempId]; |
| | | formState.value.salesLedgerFiles = [{ |
| | | // 将新上传的文件添加到salesLedgerFiles中 |
| | | const newFile = { |
| | | tempId: response.data?.tempId, |
| | | originalName: response.data?.originalName || file.name, |
| | | name: response.data?.originalName || file.name, |
| | | tempPath: response.data?.tempPath, |
| | | type: response.data?.type || 14 |
| | | }]; |
| | | type: response.data?.type || 14, |
| | | isNew: true // 标记为新上传的文件 |
| | | }; |
| | | |
| | | // 添加新文件到salesLedgerFiles |
| | | if (!formState.value.salesLedgerFiles) { |
| | | formState.value.salesLedgerFiles = []; |
| | | } |
| | | formState.value.salesLedgerFiles.push(newFile); |
| | | |
| | | // 更新tempFileIds |
| | | formState.value.tempFileIds = formState.value.salesLedgerFiles |
| | | .filter(f => f.tempId) |
| | | .map(f => f.tempId); |
| | | |
| | | proxy.$modal.msgSuccess("上传成功"); |
| | | } else { |
| | | proxy.$modal.msgError(response.msg || "上传失败"); |
| | | } |
| | | }; |
| | | |
| | | const handleDrawingRemove = (file) => { |
| | | formState.value.tempFileIds = []; |
| | | formState.value.salesLedgerFiles = []; |
| | | const handleDrawingRemove = (file, uploadFileList) => { |
| | | // 从salesLedgerFiles中移除对应的文件 |
| | | if (formState.value.salesLedgerFiles) { |
| | | const index = formState.value.salesLedgerFiles.findIndex(item => { |
| | | // 根据id或tempId匹配 |
| | | if (file.id && item.id === file.id) return true; |
| | | if (file.response?.data?.tempId && item.tempId === file.response.data.tempId) return true; |
| | | if (file.name && item.name === file.name) return true; |
| | | return false; |
| | | }); |
| | | |
| | | if (index > -1) { |
| | | const removedFile = formState.value.salesLedgerFiles[index]; |
| | | // 标记为已删除(用于后端处理) |
| | | if (removedFile.id) { |
| | | removedFile.isDeleted = true; |
| | | } else { |
| | | // 新上传的文件直接移除 |
| | | formState.value.salesLedgerFiles.splice(index, 1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 更新tempFileIds |
| | | formState.value.tempFileIds = formState.value.salesLedgerFiles |
| | | .filter(f => f.tempId && !f.isDeleted) |
| | | .map(f => f.tempId); |
| | | |
| | | // 同步更新fileList |
| | | fileList.value = uploadFileList || []; |
| | | }; |
| | | |
| | | const handleSubmit = () => { |
| | |
| | | proxy.$modal.msgError("请选择产品"); |
| | | return; |
| | | } |
| | | if (!formState.value.productModelId) { |
| | | proxy.$modal.msgError("请选择规格"); |
| | | return; |
| | | } |
| | | |
| | | // 处理提交数据 - 将userPower数组转换为逗号分隔的字符串 |
| | | const processedProcessRouteItems = processRouteItems.value.map(item => ({ |
| | |
| | | userPower: Array.isArray(item.userPower) ? item.userPower.join(',') : item.userPower |
| | | })); |
| | | |
| | | // 处理文件数据 - 包含已存在的、新上传的和已删除的 |
| | | const processedFiles = (formState.value.salesLedgerFiles || []).map(file => { |
| | | if (file.isNew) { |
| | | // 新上传的文件 |
| | | return { |
| | | tempId: file.tempId, |
| | | name: file.name, |
| | | tempPath: file.tempPath, |
| | | type: file.type, |
| | | isNew: true |
| | | }; |
| | | } else if (file.isDeleted) { |
| | | // 已删除的原有文件 |
| | | return { |
| | | id: file.id, |
| | | name: file.name, |
| | | url: file.url, |
| | | type: file.type, |
| | | isDeleted: true |
| | | }; |
| | | } else { |
| | | // 保留的原有文件 |
| | | return { |
| | | id: file.id, |
| | | name: file.name, |
| | | url: file.url, |
| | | type: file.type, |
| | | isExisting: true |
| | | }; |
| | | } |
| | | }); |
| | | |
| | | // 组装提交数据 |
| | | const submitData = { |
| | | ...formState.value, |
| | | processRouteItems: processedProcessRouteItems, |
| | | productStructureRecords: productStructureRecords.value, |
| | | files: formState.value.salesLedgerFiles, |
| | | salesLedgerFiles: processedFiles, |
| | | files: processedFiles, |
| | | }; |
| | | |
| | | addProductOrder(submitData).then(res => { |