| | |
| | | |
| | | // 分包裹发货 |
| | | groupShipModal: false, |
| | | groupShipModalOpened: false, // 标识分包裹发货弹窗是否已打开过 |
| | | shipLoading: true, |
| | | groupOrderDeliveryForm: { |
| | | logisticsNo: "", //发货单号 |
| | |
| | | methods: { |
| | | // 选中 |
| | | selectGroupShipGoodsMethods (selected) { |
| | | console.log('selectGroupShipGoodsMethods被调用, selected:', JSON.stringify(selected)); |
| | | // 简化逻辑,直接保存选中的商品,数量在提交时从data数组获取 |
| | | this.selectGroupShipGoods = selected; |
| | | console.log('selectGroupShipGoods已更新'); |
| | | }, |
| | | // 分包裹发货 |
| | | groupShip () { |
| | | this.groupShipModal = true; |
| | | this.groupShipModalOpened = true; // 标记弹窗已打开 |
| | | this.groupOrderDeliveryForm = { |
| | | logisticsNo: "", //发货单号 |
| | | logisticsId: "", //物流公司 |
| | | } |
| | | this.getLogisticsList(); |
| | | }, |
| | | // 分页获取物流公司 |
| | |
| | | }, |
| | | // 分包裹发货 |
| | | confirmShipGroupGoods () { |
| | | console.log('表单原始数据--------------------------》',JSON.stringify(this.selectGroupShipGoods)) |
| | | this.$refs.groupOrderDeliveryForm.validate(async (valid) => { |
| | | if (valid) { |
| | | if (this.selectGroupShipGoods.length) { |
| | |
| | | ...this.groupOrderDeliveryForm, |
| | | orderSn: this.sn, |
| | | partDeliveryDTOList: this.selectGroupShipGoods.map((item) => { |
| | | // 直接从data数组中获取最新的canNum值,而不依赖选择时的数据 |
| | | const currentDataItem = this.data.find(d => d.id === item.id); |
| | | const finalDeliveryNum = currentDataItem ? currentDataItem.canNum : item.num; |
| | | |
| | | console.log('处理商品项:', { |
| | | id: item.id, |
| | | selectedCanNum: item.canNum, |
| | | dataCanNum: currentDataItem?.canNum, |
| | | num: item.num, |
| | | finalDeliveryNum: finalDeliveryNum |
| | | }); |
| | | |
| | | return { |
| | | orderItemId: item.id, |
| | | deliveryNum: item.canNum ? item.canNum : item.num, |
| | | deliveryNum: finalDeliveryNum, |
| | | }; |
| | | }), |
| | | }; |
| | | console.log('---------------------->',JSON.stringify(submit)); |
| | | const res = await API_Order.partDelivery(this.sn, submit); |
| | | if (res.success) { |
| | | this.$Message.success("发货成功!"); |
| | | this.shipLoading = false; |
| | | // 清空选中的商品数据,避免数据残留 |
| | | this.selectGroupShipGoods = []; |
| | | // 重置弹窗打开标识,下次打开时显示默认值 |
| | | this.groupShipModalOpened = false; |
| | | this.getDataDetail(); |
| | | this.getOrderPackage(); |
| | | this.groupShipModal = false; |
| | |
| | | this.allowOperation = res.result.allowOperationVO; |
| | | if (res.result.orderItems.length) { |
| | | this.data = res.result.orderItems.map((item) => { |
| | | // 只在弹窗打开状态下才保留用户修改的canNum值 |
| | | const existingItem = this.groupShipModalOpened ? this.data.find(d => d.id === item.id) : null; |
| | | const defaultCanNum = item.num - item.deliverNumber; |
| | | |
| | | return { |
| | | ...item, |
| | | ___num: item.num, |
| | | _disabled: item.deliverNumber >= item.num, |
| | | canNum: item.num - item.deliverNumber |
| | | // 如果弹窗已打开且用户已经修改过canNum且值合理,则保留;否则使用默认值 |
| | | canNum: (existingItem && existingItem.canNum !== undefined && existingItem.canNum <= defaultCanNum) |
| | | ? existingItem.canNum |
| | | : defaultCanNum |
| | | }; |
| | | }); |
| | | console.log('---------------------->订单详情',this.data) |
| | | } |
| | | this.orderLogData = res.result.orderLogs; |
| | | this.typeList = JSON.parse(JSON.stringify(res.result.order.priceDetailDTO.discountPriceDetail)); |