From b9fa1c266e2d51388a757cf361680d82f6edfbea Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期一, 08 十二月 2025 15:49:59 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 118 insertions(+), 0 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
index 10c0027..ffbf370 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -19,6 +19,8 @@
import {multiply} from "@/utils/decimal";
import MaterialAddition from "@/views/mm/ingredientStock/MaterialAddition.vue";
import {copyTableCellValue} from "@/hook/copyTableCellValue";
+import SelectOrderList from "@/views/sd/delivery/SelectOrderList.vue";
+import { ElDialog } from "element-plus";
//璇█鑾峰彇
const { t } = useI18n()
@@ -35,6 +37,19 @@
let otherMoneyVisible = ref(false)
let otherMoney = ref(null)
+const dialogSelectOrderVisible = ref(false); // 鎺у埗寮圭獥鏄剧ず
+const currentOrderIds = ref([]); // 宸叉湁鐨勮鍗旾D锛岀敤浜庢帓闄�
+
+
+// 鍒濆鍖栧凡閫夎鍗旾D锛堝湪onMounted涓皟鐢級
+const initCurrentOrderIds = () => {
+ if (produceList && produceList.length > 0) {
+ const orderIds = produceList.map(item => item.orderId);
+ currentOrderIds.value = [...new Set(orderIds)];
+ }else {
+ currentOrderIds.value = [];
+ }
+};
const hasDecimal=(value)=>{
const regex=/\./ // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鏌ユ壘灏忔暟鐐�
@@ -209,6 +224,7 @@
//绂佺敤鎸夐挳
gridOptions.toolbarConfig.buttons[2].disabled = true
gridOptions.toolbarConfig.buttons[3].disabled = true
+ //gridOptions.toolbarConfig.buttons[4].disabled = false
//鏄剧ず澶嶉�夋
xGrid.value.showColumn("select")
gridOptions.loading=false
@@ -245,6 +261,7 @@
if(titleUploadData.value.deliveryState!==0){
gridOptions.toolbarConfig.buttons[2].disabled = true
gridOptions.toolbarConfig.buttons[1].disabled = true
+ //gridOptions.toolbarConfig.buttons[4].disabled = true
}
if(titleUploadData.value.deliveryState===0){
gridOptions.toolbarConfig.buttons[3].disabled = true
@@ -370,6 +387,7 @@
{'code': 'addToExamine', 'name': t('reportingWorks.saveAndReview'),status: 'primary',icon: 'vxe-icon-save'},
{'code': 'toExamine', 'name': t('basicData.review'),status: 'primary'},
{'code': 'CounterExamination', 'name': t('basicData.cancelReview'),status: 'primary'},
+ //{'code': 'addOtherOrders','name': t('璁㈠崟娣诲姞'),'status': 'primary'}
//{'code': 'glassShelf', 'name': t('finishedGlassShelf.finishedGlassShelfEmit'),status: 'primary'}
],
/*import: false,
@@ -616,6 +634,13 @@
})
break
}
+ case 'addOtherOrders': {
+ // 鏄剧ず寮圭獥鍓嶆洿鏂板凡閫夎鍗旾D
+ initCurrentOrderIds();
+ // 鏄剧ず寮圭獥
+ dialogSelectOrderVisible.value = true;
+ break;
+ }
}
}
},
@@ -826,7 +851,83 @@
};
+// 澶勭悊浠嶴electOrderList閫変腑鐨勮鍗�
+const handleSelectedOrders = async (selectedOrders) => {
+ if (!selectedOrders || selectedOrders.length === 0) return;
+ // 鍏抽棴寮圭獥
+ dialogSelectOrderVisible.value = false;
+
+ // 楠岃瘉閫変腑鐨勮鍗曟槸鍚︾鍚堟潯浠�
+ const { customerId, project } = titleUploadData.value;
+ const invalidOrders = selectedOrders.filter(order =>
+ order.customerId !== parseInt(customerId) || order.project !== project
+ );
+
+ if (invalidOrders.length > 0) {
+ ElMessage.warning(t('delivery.onlySameCustomerProject'));
+ return;
+ }
+
+ try {
+ // 鏄剧ず鍔犺浇鐘舵��
+ gridOptions.loading = true;
+
+ // 鎵归噺鏌ヨ璁㈠崟鏄庣粏锛堟寜璁㈠崟ID锛�
+ const orderIds = selectedOrders.map(order => order.orderId).join('|');
+ filterData.value.orderId=orderIds
+ request.post("/delivery/getSelectShippingOrderDetails/1/100",filterData.value).then((res) => {
+ if (res.code == 200) {
+ // 澶勭悊杩斿洖鐨勬槑缁嗘暟鎹�
+ const orderDetails = res.data.data || [];
+ //鍚堝苟鏁版嵁
+ mergeData(orderDetails);
+ } else {
+ ElMessage.warning(res.msg || t('basicData.msg.data鑾峰彇澶辫触'));
+ }
+ })
+ } catch (error) {
+ ElMessage.error(t('basicData.msg.ServerConnectionError'));
+ console.error('鏌ヨ璁㈠崟鏄庣粏澶辫触:', error);
+ } finally {
+ // 鍏抽棴鍔犺浇鐘舵��
+ gridOptions.loading = false;
+ }
+};
+
+// 鍚堝苟鏁版嵁锛氬垽鏂璷rderId銆乷rderNumber銆乥oxNo鏄惁鐩稿悓锛岀浉鍚屽垯绱姞鏁伴噺锛屼笉鍚屽垯鏂板
+const mergeData = (newDataList) => {
+ // 澶嶅埗鐜版湁鏁版嵁锛堥伩鍏嶇洿鎺ヤ慨鏀瑰搷搴斿紡婧愭暟鎹級
+ const currentList = [...produceList];
+
+ newDataList.forEach(newItem => {
+ // 鎻愬彇鏂版暟鎹殑鍏抽敭姣斿瀛楁
+ const newOrderId = newItem.orderId;
+ const newOrderNumber = newItem.orderNumber;
+ const newBoxNo = newItem.finishedGoodsInventory?.boxNo || ''; // 澶勭悊鍙兘鐨剈ndefined
+
+ // 鍦ㄧ幇鏈夋暟鎹腑鏌ユ壘鍖归厤椤癸紙涓変釜瀛楁瀹屽叏鐩稿悓锛�
+ const matchedItem = currentList.find(item =>
+ item.orderId === newOrderId &&
+ item.orderNumber === newOrderNumber &&
+ (item.finishedGoodsInventory?.boxNo || '') === newBoxNo
+ );
+
+ if (matchedItem) {
+ // 鎵惧埌鍖归厤椤癸細绱姞鏁伴噺锛堢‘淇濇槸鏁板�肩被鍨嬶級
+ matchedItem.deliveryDetail.quantity = (Number(matchedItem.deliveryDetail.quantity) || 0) +
+ (Number(newItem.deliveryDetail.quantity) || 0);
+ } else {
+ // 鏈壘鍒板尮閰嶉」锛氭柊澧炰竴鏉℃暟鎹�
+ currentList.push(newItem);
+ }
+ });
+
+ // 鏇存柊鍝嶅簲寮忔暟鎹�
+ produceList = currentList;
+ // 鍒锋柊琛ㄦ牸
+ xGrid.value.reloadData(produceList);
+};
</script>
@@ -997,6 +1098,23 @@
@handle-result="handleChildResult2"
/>
</el-dialog>
+
+ <el-dialog
+ v-model="dialogSelectOrderVisible"
+ :title="t('璁㈠崟娣诲姞')"
+ style="width: 70%;height:75% "
+ destroy-on-close
+ :close-on-click-modal="false"
+ :close-on-press-escape="false">
+ >
+ <SelectOrderList
+ style="width: 100%;height: 600px"
+ :customer-id="titleUploadData.customerId"
+ :project="titleUploadData.project"
+ :exclude-order-ids="currentOrderIds"
+ @select-orders="handleSelectedOrders"
+ />
+ </el-dialog>
</div>
</template>
--
Gitblit v1.8.0