|
@@ -7,6 +7,10 @@
|
|
|
:direction="direction"
|
|
|
size="50%">
|
|
|
<div class="content">
|
|
|
+ <div class="err" v-if="failOrder.length > 0">
|
|
|
+ <span>发货失败订单:</span>
|
|
|
+ <span class="error-page" v-for="item of failOrder" @click="exchangeTag(item)" :key="item">【{{item + 1 }}】</span>
|
|
|
+ </div>
|
|
|
<div class="order-top" v-if="data.length > 1">
|
|
|
<el-pagination
|
|
|
background
|
|
@@ -17,7 +21,7 @@
|
|
|
:total="data.length">
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
- <deliveryGoodsInfo :hideOrderCode="true" @editState="editState" @editResult="editResult" ref="info" />
|
|
|
+ <deliveryGoodsInfo @editState="editState" @editResult="editResult" ref="info" />
|
|
|
<!-- <deliveryPrice :data="priceObj[data[currentOrder].omsOrderIds]" ref="price" v-if="data[currentOrder] && priceObj[data[currentOrder].omsOrderIds]"
|
|
|
@prichChange="prichChange" :currentValue="currentPrice[data[currentOrder].omsOrderIds]" /> -->
|
|
|
</div>
|
|
@@ -54,9 +58,10 @@ export default class BatchbyOneModal extends Vue {
|
|
|
direction='rtl'
|
|
|
checked=false;
|
|
|
data:Array<any>=[];
|
|
|
- currentOrder=0;
|
|
|
- isSuccess=false;
|
|
|
- stopHandle=false;
|
|
|
+ currentOrder=0; //当前显示订单
|
|
|
+ isSuccess=false; //是否有成功订单
|
|
|
+ stopHandle=false; //是否停止操作
|
|
|
+ failOrder:Array<any>=[]; //
|
|
|
load = false;
|
|
|
priceObj:any={};
|
|
|
currentPrice:any={};
|
|
@@ -68,12 +73,17 @@ export default class BatchbyOneModal extends Vue {
|
|
|
this.stopHandle = false;
|
|
|
this.currentOrder = 0;
|
|
|
this.checked = false;
|
|
|
+ this.failOrder = [];
|
|
|
}
|
|
|
close(){
|
|
|
if(this.isSuccess){
|
|
|
this.$emit('handleSuccess');
|
|
|
}
|
|
|
}
|
|
|
+ exchangeTag(v:number){
|
|
|
+ this.currentOrder = v;
|
|
|
+ this.setInfo()
|
|
|
+ }
|
|
|
editResult(v:any){
|
|
|
this.data[this.currentOrder] = v;
|
|
|
// this.getStoreCount(v);
|
|
@@ -124,11 +134,13 @@ export default class BatchbyOneModal extends Vue {
|
|
|
if(item.items && item.items.length > 0){
|
|
|
for(const i of item.items){
|
|
|
let total:any = 0;
|
|
|
- if(Number(i.qty) && Number(i.price)){
|
|
|
+ if(Number(i.qty) && Number(i.price) && i.isGift !== 1){
|
|
|
total = multiply(Number(i.qty),Number(i.price))
|
|
|
}
|
|
|
|
|
|
obj.subItem.push({
|
|
|
+ isGift:i.isGift,
|
|
|
+ barCode:i.barCode,
|
|
|
requestId:requestId,
|
|
|
omsOrderId:item.id,
|
|
|
omsOrderItemId:i.itemId,
|
|
@@ -138,7 +150,7 @@ export default class BatchbyOneModal extends Vue {
|
|
|
tmsQuantity:i.qty,
|
|
|
tmsGoodsTotalPrice:total,
|
|
|
name:i.name,
|
|
|
- price:i.price,
|
|
|
+ price: i.isGift === 1 ? 0 : i.price,
|
|
|
weight:i.weight
|
|
|
})
|
|
|
}
|
|
@@ -294,66 +306,81 @@ export default class BatchbyOneModal extends Vue {
|
|
|
// params.priceId = this.currentPrice[item.omsOrderIds].id;
|
|
|
// }
|
|
|
params.omsOrderIds = [item.omsOrderIds];
|
|
|
- params.tmsMaterials=[];
|
|
|
- if(item.subItem){
|
|
|
- for(const i of item.subItem){
|
|
|
- params.tmsMaterials.push({
|
|
|
- storeHouseId:item.storeHouseId,
|
|
|
- materialSkuId:i.omsOrderItemId
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
+ // params.tmsMaterials=[];
|
|
|
+ // if(item.subItem){
|
|
|
+ // for(const i of item.subItem){
|
|
|
+ // params.tmsMaterials.push({
|
|
|
+ // storeHouseId:item.storeHouseId,
|
|
|
+ // materialSkuId:i.omsOrderItemId
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // }
|
|
|
delete params.subItem;
|
|
|
this.load = true;
|
|
|
- addmultiple(params).then((res:any) => {
|
|
|
- this.load = false;
|
|
|
- if(res.code == 200){
|
|
|
- this.isSuccess = true;
|
|
|
- this.$message({
|
|
|
- message:'订单:'+item.omsOrderIds+'发货成功!',
|
|
|
- type:'success'
|
|
|
- })
|
|
|
- for(let it of this.data){
|
|
|
- if(it.omsOrderIds == item.omsOrderIds){
|
|
|
- it.isSuccess=true;
|
|
|
- break;
|
|
|
+ const resHandle = (s:string,msg?:string) => {
|
|
|
+ for(let it of this.data){
|
|
|
+ if(it.omsOrderIds == item.omsOrderIds){
|
|
|
+ it.state = s;
|
|
|
+ if(msg){
|
|
|
+ it.msg = msg;
|
|
|
}
|
|
|
+ break;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- if(!isNext){
|
|
|
- //寻找未发货的订单
|
|
|
- this.noSentOrder();
|
|
|
- //是否是最后一单
|
|
|
- if(this.currentOrder >= this.data.length){
|
|
|
+ if(!isNext){
|
|
|
+ //寻找未发货的订单
|
|
|
+ this.noSentOrder();
|
|
|
+ //是否是最后一单
|
|
|
+ if(this.currentOrder >= this.data.length){
|
|
|
+ if(this.failOrder.length == 0){
|
|
|
this.drawer = false;
|
|
|
}else{
|
|
|
- let _item:any = this.data[this.currentOrder];
|
|
|
- this.sendGoods(_item);
|
|
|
- // if(this.currentPrice[_item.omsOrderIds]){
|
|
|
- // this.sendGoods(_item);
|
|
|
- // }
|
|
|
- // else{
|
|
|
- // this.getPriceInfo(_item,this.sendGoods)
|
|
|
- // // this.getStoreCount(_item,this.getPriceInfo);
|
|
|
- // }
|
|
|
+ (this.$refs.info as any).setValue(this.data[this.currentOrder-1]);
|
|
|
}
|
|
|
+
|
|
|
}else{
|
|
|
- if(this.currentOrder < this.data.length - 1) {
|
|
|
- this.currentOrder ++;
|
|
|
- this.setInfo();
|
|
|
- }
|
|
|
+ let _item:any = this.data[this.currentOrder];
|
|
|
+ this.sendGoods(_item);
|
|
|
+ // if(this.currentPrice[_item.omsOrderIds]){
|
|
|
+ // this.sendGoods(_item);
|
|
|
+ // }
|
|
|
+ // else{
|
|
|
+ // this.getPriceInfo(_item,this.sendGoods)
|
|
|
+ // // this.getStoreCount(_item,this.getPriceInfo);
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(this.currentOrder < this.data.length - 1) {
|
|
|
+ this.currentOrder ++;
|
|
|
+ this.setInfo();
|
|
|
}
|
|
|
- this.$forceUpdate();
|
|
|
}
|
|
|
- }).catch(() => {
|
|
|
+ this.$forceUpdate();
|
|
|
+ }
|
|
|
+ addmultiple(params).then((res:any) => {
|
|
|
this.load = false;
|
|
|
+ if(res.code == 200){
|
|
|
+ this.isSuccess = true;
|
|
|
+ this.$message({
|
|
|
+ message:'订单:'+item.omsOrderIds+'发货成功!',
|
|
|
+ type:'success'
|
|
|
+ })
|
|
|
+ resHandle('success')
|
|
|
+ }
|
|
|
+ }).catch((err:any) => {
|
|
|
+ this.load = false;
|
|
|
+ if(this.failOrder.indexOf(this.currentOrder) == -1){
|
|
|
+ this.failOrder.push(this.currentOrder);
|
|
|
+ }
|
|
|
+ resHandle('fail',err);
|
|
|
})
|
|
|
}
|
|
|
//寻找未发货订单
|
|
|
noSentOrder(){
|
|
|
this.currentOrder = this.data.length;
|
|
|
for(let i = 0; i < this.data.length; i++){
|
|
|
- if(!this.data[i].isSuccess){
|
|
|
+ if(!this.data[i].state){
|
|
|
this.currentOrder = i;
|
|
|
break
|
|
|
}
|
|
@@ -439,10 +466,32 @@ export default class BatchbyOneModal extends Vue {
|
|
|
box-sizing: border-box;
|
|
|
padding: 0 16px;
|
|
|
background-color: #FFF;
|
|
|
+ .err{
|
|
|
+ font-size: 14px;
|
|
|
+ color: #F00;
|
|
|
+ padding-bottom: 8px;
|
|
|
+ }
|
|
|
+ .error-page{
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
.order-top{
|
|
|
padding-bottom: 16px;
|
|
|
display: flex;
|
|
|
justify-content: center;
|
|
|
+ .item-page{
|
|
|
+ height: 28px;
|
|
|
+ width: 28px;
|
|
|
+ background-color: #F3F3F3;
|
|
|
+ color: #666;
|
|
|
+ font-size: 14px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ border-radius: 5px;
|
|
|
+ margin: 0 4px;
|
|
|
+ cursor: pointer;
|
|
|
+ font-weight: 700;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
.deli-footer{
|