| | |
| | | </div> |
| | | </Modal> |
| | | <!--订单分包裹发货--> |
| | | <Modal v-model="groupShipModal" :loading="shipLoading" title="分包裹发快递" width="1000"> |
| | | <Modal v-model="groupShipModal" :loading="shipLoading" title="分包裹发快递" width="1300"> |
| | | <div> |
| | | <Form ref="groupOrderDeliveryForm" :model="groupOrderDeliveryForm" :label-width="90" :rules="groupOrderDeliverFormValidate" style="position: relative"> |
| | | <FormItem label="物流公司" prop="logisticsId"> |
| | |
| | | </div> |
| | | </template> |
| | | <template slot="numSlot" slot-scope="{ row, index }"> |
| | | <InputNumber :min="0" :max="row.___num - row.deliverNumber" v-model="data[index].canNum"> |
| | | <InputNumber :min="0" :max="row.___num - row.deliverNumber - row.returnGoodsNumber" v-model="data[index].canNum"> |
| | | </InputNumber> |
| | | </template> |
| | | </Table> |
| | |
| | | ); |
| | | }, |
| | | }, |
| | | { |
| | | title: "退款数量", |
| | | key: "returnGoodsNumber", |
| | | minWidth: 80, |
| | | }, |
| | | { |
| | | title: "退款金额", |
| | | key: "refundPrice", |
| | | minWidth: 80, |
| | | }, |
| | | { |
| | | title: "退款状态", |
| | | key: "isRefund", |
| | | minWidth: 80, |
| | | render:(h, params) => { |
| | | if(params.row.isRefund==='NO_REFUND'){ |
| | | return h( |
| | | "div", |
| | | "未退款" |
| | | ); |
| | | }else if(params.row.isRefund==='ALL_REFUND'){ |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "全部退款" |
| | | ); |
| | | }else if(params.row.isRefund==='PART_REFUND'){ |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "部分退款" |
| | | ); |
| | | }else if(params.row.isRefund==='REFUNDING'){ |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "退款中" |
| | | ); |
| | | } |
| | | else { |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "未知状态" |
| | | ); |
| | | } |
| | | |
| | | } |
| | | }, |
| | | ], |
| | | data: [], // 商品表单数据 |
| | | orderLogColumns: [ |
| | |
| | | return h("div", this.$options.filters.unitPrice(params.row.subTotal, "¥")); |
| | | }, |
| | | }, |
| | | { |
| | | title: "退款数量", |
| | | key: "returnGoodsNumber", |
| | | minWidth: 80, |
| | | }, |
| | | { |
| | | title: "退款金额", |
| | | key: "refundPrice", |
| | | minWidth: 80, |
| | | }, |
| | | { |
| | | title: "退款状态", |
| | | key: "isRefund", |
| | | minWidth: 80, |
| | | render:(h, params) => { |
| | | if(params.row.isRefund==='NO_REFUND'){ |
| | | return h( |
| | | "div", |
| | | "未退款" |
| | | ); |
| | | }else if(params.row.isRefund==='ALL_REFUND'){ |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "全部退款" |
| | | ); |
| | | }else if(params.row.isRefund==='PART_REFUND'){ |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "部分退款" |
| | | ); |
| | | }else if(params.row.isRefund==='REFUNDING'){ |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "退款中" |
| | | ); |
| | | } |
| | | else { |
| | | return h( |
| | | "div", |
| | | { style: {color:"red"} }, |
| | | "未知状态" |
| | | ); |
| | | } |
| | | |
| | | } |
| | | }, |
| | | ], |
| | | orderPackage: [], |
| | | packageTraceList: [] |
| | |
| | | // 直接从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, |
| | |
| | | num: item.num, |
| | | finalDeliveryNum: finalDeliveryNum |
| | | }); |
| | | |
| | | |
| | | return { |
| | | orderItemId: item.id, |
| | | deliveryNum: finalDeliveryNum, |
| | |
| | | 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; |
| | | |
| | | const defaultCanNum = item.num - item.deliverNumber - item.returnGoodsNumber; |
| | | |
| | | return { |
| | | ...item, |
| | | ___num: item.num, |
| | | _disabled: item.deliverNumber >= item.num, |
| | | // 如果弹窗已打开且用户已经修改过canNum且值合理,则保留;否则使用默认值 |
| | | canNum: (existingItem && existingItem.canNum !== undefined && existingItem.canNum <= defaultCanNum) |
| | | ? existingItem.canNum |
| | | canNum: (existingItem && existingItem.canNum !== undefined && existingItem.canNum <= defaultCanNum) |
| | | ? existingItem.canNum |
| | | : defaultCanNum |
| | | }; |
| | | }); |