From 474c2a6516139ccbafecd5fc3d139ee9104ecfd5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 31 三月 2026 17:28:21 +0800
Subject: [PATCH] 军泰伟业app 1.销售台账、采购台账选择产品逻辑修改 2.新增生产订单时将产品那边的图纸带过来 3.生产订单增加退料功能
---
src/views/productionManagement/productionOrder/New.vue | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 105 insertions(+), 14 deletions(-)
diff --git a/src/views/productionManagement/productionOrder/New.vue b/src/views/productionManagement/productionOrder/New.vue
index 2109385..e5831e2 100644
--- a/src/views/productionManagement/productionOrder/New.vue
+++ b/src/views/productionManagement/productionOrder/New.vue
@@ -402,6 +402,28 @@
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 // 鏍囪涓哄凡瀛樺湪鐨勬枃浠�
+ }));
+ // 鍚屾鍒癴ileList鐢ㄤ簬鍙嶆樉
+ 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. 閫氳繃浜у搧鑷甫鐨剅outeId鑾峰彇宸ュ簭鍒楄〃
@@ -614,26 +636,66 @@
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) => {
+ // 浠巗alesLedgerFiles涓Щ闄ゅ搴旂殑鏂囦欢
+ if (formState.value.salesLedgerFiles) {
+ const index = formState.value.salesLedgerFiles.findIndex(item => {
+ // 鏍规嵁id鎴杢empId鍖归厤
+ 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 = () => {
@@ -644,10 +706,6 @@
proxy.$modal.msgError("璇烽�夋嫨浜у搧");
return;
}
- if (!formState.value.productModelId) {
- proxy.$modal.msgError("璇烽�夋嫨瑙勬牸");
- return;
- }
// 澶勭悊鎻愪氦鏁版嵁 - 灏唘serPower鏁扮粍杞崲涓洪�楀彿鍒嗛殧鐨勫瓧绗︿覆
const processedProcessRouteItems = processRouteItems.value.map(item => ({
@@ -655,12 +713,45 @@
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 => {
--
Gitblit v1.9.3