浏览代码

回显功能优化

htc 4 月之前
父节点
当前提交
b7f4f95662

+ 2 - 1
pagesStorage/checkStorage/goods.vue

@@ -75,7 +75,8 @@
 			
 			await this.getList();
 			let ids = option.ids;
-			if(ids&&ids.indexOf(',')>-1) ids = ids.split(',');
+			if(ids.indexOf(',')>-1) ids = ids.split(',');
+			else ids = [ids];
 			if(ids&&ids.length){
 				ids.forEach(item=>{
 					let fi = this.list.findIndex(l=>l.skuId===item);

+ 11 - 4
pagesStorage/inStorage/add.vue

@@ -183,13 +183,18 @@
 					url:'/pagesStorage/inStorage/goods?ids='+ids,
 					events:{
 						addGoods:list=>{
-							this.receiptDto.details = list;
-							this.receiptDto.details.forEach((d,i)=>{
+							let aList = JSON.parse(JSON.stringify(list));
+							this.receiptDto.details.forEach(d=>{
+								aList = list.filter(l=>l.skuId!=d.skuId)
+							})
+							aList.forEach((d,i)=>{
 								let amount = d.checknum*d.itemSku.costPrice;
-								this.$set(this.receiptDto.details[i],'amount',amount);
-								this.$set(this.receiptDto.details[i],'quantity',d.checknum);
+								this.$set(aList[i],'amount',amount);
+								this.$set(aList[i],'quantity',d.checknum);
 							})
+							this.receiptDto.details = [...this.receiptDto.details,...aList];
 							this.computeNum();
+							this.autoCalculate();
 						}
 					}
 				})
@@ -198,6 +203,7 @@
 				this.receiptDto.details.splice(index,1);
 				this.$nextTick(()=>{
 					this.computeNum();
+					this.autoCalculate();
 				})
 			},
 			changeRkNum(e,index){
@@ -208,6 +214,7 @@
 			},
 			changeRkMoney(e,index){
 				this.$set(this.receiptDto.details[index],'amount',e.value);
+				this.autoCalculate();
 			},
 			computeNum(){
 				this.receiptDto.totalQuantity = this.receiptDto.details.reduce((cur,pre)=>cur+pre.quantity,0);

+ 7 - 10
pagesStorage/inStorage/goods.vue

@@ -45,7 +45,8 @@
 					page:1,
 					limit:10
 				},
-				selectNum:0
+				selectNum:0,
+				ids:[]
 			}
 		},
 		onReachBottom() {
@@ -69,14 +70,10 @@
 		},
 		async onLoad(option) {
 			let ids = option.ids;
-			if(ids&&ids.indexOf(',')>-1) ids = ids.split(',');
-			await this.getList();
-			if(ids&&ids.length){
-				ids.forEach(item=>{
-					let fi = this.list.findIndex(l=>l.skuId===item);
-					if(fi>-1) this.$set(this.list[fi],'checked',true);
-				})
-			}
+			if(ids.indexOf(',')>-1) ids = ids.split(',');
+			else ids = [ids];
+			this.ids = ids;
+			this.getList();
 		},
 		methods:{
 			async getList(){
@@ -86,7 +83,7 @@
 						this.params.page++;
 						this.list = [...this.list,...res.data.data.list];
 						this.list.forEach((d,i)=>{
-							this.$set(this.list[i],'checked',false);
+							this.$set(this.list[i],'checked',this.ids.includes(d.skuId)?true:false);
 							this.$set(this.list[i],'checknum',1);
 						})
 					}else this.isOver = true

+ 11 - 4
pagesStorage/moveStorage/add.vue

@@ -153,13 +153,18 @@
 					url:'/pagesStorage/moveStorage/goods?ids='+ids+'&warehouseId='+this.movementDto.sourceWarehouseId,
 					events:{
 						addGoods:list=>{
-							this.movementDto.details = list;
-							this.movementDto.details.forEach((d,i)=>{
+							let aList = JSON.parse(JSON.stringify(list));
+							this.movementDto.details.forEach(d=>{
+								aList = list.filter(l=>l.skuId!=d.skuId)
+							})
+							aList.forEach((d,i)=>{
 								let amount = d.checknum*d.itemSku.costPrice;
-								this.$set(this.movementDto.details[i],'amount',amount);
-								this.$set(this.movementDto.details[i],'quantity',d.checknum);
+								this.$set(aList[i],'amount',amount);
+								this.$set(aList[i],'quantity',d.checknum);
 							})
+							this.movementDto.details = [...this.movementDto.details,...aList];
 							this.computeNum();
+							this.autoCalculate();
 						}
 					}
 				})
@@ -168,6 +173,7 @@
 				this.movementDto.details.splice(index,1);
 				this.$nextTick(()=>{
 					this.computeNum();
+							this.autoCalculate();
 				})
 			},
 			changeRkNum(e,index){
@@ -178,6 +184,7 @@
 			},
 			changeRkMoney(e,index){
 				this.$set(this.movementDto.details[index],'amount',e.value);
+				this.autoCalculate();
 			},
 			computeNum(){
 				this.movementDto.totalQuantity = this.movementDto.details.reduce((cur,pre)=>cur+pre.quantity,0);

+ 8 - 12
pagesStorage/moveStorage/goods.vue

@@ -50,7 +50,8 @@
 					minQuantity:1,
 					warehouseId:''
 				},
-				selectNum:0
+				selectNum:0,
+				ids:[]
 			}
 		},
 		onReachBottom() {
@@ -72,17 +73,12 @@
 				immediate:true
 			}
 		},
-		async onLoad(option) {
+		onLoad(option) {
 			let ids = option.ids;
-			if(ids&&ids.indexOf(',')>-1) ids = ids.split(',');
-			this.params.warehouseId = option.warehouseId;
-			await this.getList();
-			if(ids&&ids.length){
-				ids.forEach(item=>{
-					let fi = this.list.findIndex(l=>l.skuId===item);
-					if(fi>-1) this.$set(this.list[fi],'checked',true);
-				})
-			}
+			if(ids.indexOf(',')>-1) ids = ids.split(',');
+			else ids = [ids];
+			this.ids = ids;
+			this.getList();
 		},
 		methods:{
 			async getList(){
@@ -92,7 +88,7 @@
 						this.params.page++;
 						this.list = [...this.list,...res.data.data.list];
 						this.list.forEach((d,i)=>{
-							this.$set(this.list[i],'checked',false);
+							this.$set(this.list[i],'checked',this.ids.includes(d.skuId)?true:false);
 							this.$set(this.list[i],'checknum',1);
 						})
 					}else this.isOver = true

+ 11 - 4
pagesStorage/outStorage/add.vue

@@ -184,13 +184,18 @@
 					url:'/pagesStorage/outStorage/goods?ids='+ids+'&warehouseId='+this.shipmentDto.warehouseId,
 					events:{
 						addGoods:list=>{
-							this.shipmentDto.details = list;
-							this.shipmentDto.details.forEach((d,i)=>{
+							let aList = JSON.parse(JSON.stringify(list));
+							this.shipmentDto.details.forEach(d=>{
+								aList = list.filter(l=>l.skuId!=d.skuId)
+							})
+							aList.forEach((d,i)=>{
 								let amount = d.checknum*d.itemSku.costPrice;
-								this.$set(this.shipmentDto.details[i],'amount',amount);
-								this.$set(this.shipmentDto.details[i],'quantity',d.checknum);
+								this.$set(aList[i],'amount',amount);
+								this.$set(aList[i],'quantity',d.checknum);
 							})
+							this.shipmentDto.details = [...this.shipmentDto.details,...aList];
 							this.computeNum();
+							this.autoCalculate();
 						}
 					}
 				})
@@ -199,6 +204,7 @@
 				this.shipmentDto.details.splice(index,1);
 				this.$nextTick(()=>{
 					this.computeNum();
+					this.autoCalculate();
 				})
 			},
 			changeRkNum(e,index){
@@ -209,6 +215,7 @@
 			},
 			changeRkMoney(e,index){
 				this.$set(this.shipmentDto.details[index],'amount',e.value);
+				this.autoCalculate();
 			},
 			computeNum(){
 				this.shipmentDto.totalQuantity = this.shipmentDto.details.reduce((cur,pre)=>cur+pre.quantity,0);

+ 7 - 11
pagesStorage/outStorage/goods.vue

@@ -47,7 +47,8 @@
 					minQuantity:1,
 					warehouseId:''
 				},
-				selectNum:0
+				selectNum:0,
+				ids:[]
 			}
 		},
 		onReachBottom() {
@@ -71,15 +72,10 @@
 		},
 		async onLoad(option) {
 			let ids = option.ids;
-			if(ids&&ids.indexOf(',')>-1) ids = ids.split(',');
-			this.params.warehouseId = option.warehouseId;
-			await this.getList();
-			if(ids&&ids.length){
-				ids.forEach(item=>{
-					let fi = this.list.findIndex(l=>l.skuId===item);
-					if(fi>-1) this.$set(this.list[fi],'checked',true);
-				})
-			}
+			if(ids.indexOf(',')>-1) ids = ids.split(',');
+			else ids = [ids];
+			this.ids = ids;
+			this.getList();
 		},
 		methods:{
 			async getList(){
@@ -89,7 +85,7 @@
 						this.params.page++;
 						this.list = [...this.list,...res.data.data.list];
 						this.list.forEach((d,i)=>{
-							this.$set(this.list[i],'checked',false);
+							this.$set(this.list[i],'checked',this.ids.includes(d.skuId)?true:false);
 							this.$set(this.list[i],'checknum',1);
 						})
 					}else this.isOver = true