Browse Source

入库、出库、移库和盘库增加所属项目选择和展示;库存即可增加字段显示

htc 3 months ago
parent
commit
6cfa067c3f

+ 15 - 2
pagesStorage/checkStorage/add.vue

@@ -16,6 +16,12 @@
 						<text>{{checkDto.warehouseName}} ></text>
 					</div>
 				</div>
+				<div class="item" v-if="checkDto.projectName">
+					<div class="left">项目</div>
+					<div class="right">
+						<text>{{checkDto.projectName}} ></text>
+					</div>
+				</div>
 				<div class="item">
 					<div class="left">盈亏数</div>
 					<div class="right">
@@ -75,6 +81,8 @@
 					orderStatus: 1,
 					warehouseId: '',
 					warehouseName: '',
+					projectId: '',
+					projectName: '',
 					totalQuantity: 0,
 					details: []
 				},
@@ -88,6 +96,8 @@
 			this.checkDto.orderNo = generateNo('PK');
 			this.checkDto.warehouseId = option.warehouseId;
 			this.checkDto.warehouseName = option.warehouseName;
+			this.checkDto.projectId = option.projectId;
+			this.checkDto.projectName = option.projectName;
 			this.getGoodList();
 		},
 		// onReachBottom() {
@@ -97,7 +107,9 @@
 		methods:{
 			getGoodList(){
 				this.isLoading = true;
-				this.$api.get('/wms/inventory/boardList/item/?warehouseId='+this.checkDto.warehouseId+'&page='+this.page+'&limit=-1').then(res=>{
+				let url = '/wms/inventory/boardList/item/?warehouseId='+this.checkDto.warehouseId+'&page='+this.page+'&limit=-1';
+				if(this.checkDto.projectId) url = url+'&projectId='+this.checkDto.projectId
+				this.$api.get(url).then(res=>{
 					if(res.data.code===0){
 						// if(this.checkDto.details.length<res.data.data.total){
 							// this.page++;
@@ -116,7 +128,7 @@
 				let ids = this.goodsList.map(d=>d.skuId);
 				let exitIds = this.checkDto.details.map(d=>d.skuId);
 				uni.navigateTo({
-					url:'/pagesStorage/checkStorage/goods?ids='+ids+'&exitIds='+exitIds,
+					url:'/pagesStorage/checkStorage/goods?ids='+ids+'&exitIds='+exitIds+'&warehouseId='+this.checkDto.warehouseId+'&projectId='+this.checkDto.projectId,
 					events:{
 						addGoods:list=>{
 							this.goodsList = list;
@@ -158,6 +170,7 @@
 					    quantity: d.quantity,
 						checkQuantity:d.checkQuantity,
 					    warehouseId: this.checkDto.warehouseId,
+					    projectId: this.checkDto.projectId,
 					}
 				})
 				this.checkDto.details = details;

+ 6 - 2
pagesStorage/checkStorage/goods.vue

@@ -43,7 +43,9 @@
 				isOver:false,
 				params:{
 					page:1,
-					limit:99999
+					limit:99999,
+					warehouseId:'',
+					projectId:''
 				},
 				selectNum:0,
 				exitIds:[]
@@ -69,9 +71,11 @@
 			}
 		},
 		async onLoad(option) {
+			this.params.warehouseId = option.warehouseId;
+			this.params.projectId = option.projectId;
 			let exitIds = option.exitIds;
 			if(exitIds&&exitIds.indexOf(',')>-1) this.exitIds = exitIds.split(',');
-			else this.exitIds = exitIds;
+			else this.exitIds = [exitIds];
 			
 			await this.getList();
 			let ids = option.ids;

+ 32 - 2
pagesStorage/checkStorage/index.vue

@@ -50,12 +50,22 @@
 						<text class="tip" v-else>请选择仓库 ></text>
 					</div>
 				</div>
+				<div class="storage" style="margin-top: 20rpx;">
+					<div class="left">项目</div>
+					<div class="right" @tap="selectProject">
+						<text v-if="projectName">{{projectName}} ></text>
+						<text class="tip" v-else>请选择项目 ></text>
+					</div>
+				</div>
 				<div class="btn" @tap="addCheck">确定</div>
 			</div>
 		</u-popup>
 		<u-picker title="仓库" :show="warehouseShow" :columns="warehouseList" keyName="warehouseName" 
 			@cancel="warehouseShow=false" @confirm="warehouseConfirm">
 		</u-picker>
+		<u-picker title="项目" :show="projectShow" :columns="projectList" keyName="projectName" 
+			@cancel="projectShow=false" @confirm="projectConfirm" :immediateChange="true">
+		</u-picker>
 	</view>
 </template>
 
@@ -86,7 +96,11 @@
 				warehouseId:'',
 				warehouseName:'',
 				warehouseShow:false,
-				warehouseList:[]
+				warehouseList:[],
+				projectId:'',
+				projectName:'',
+				projectShow:false,
+				projectList:[]
 			}
 		},
 		async onLoad() {
@@ -132,8 +146,9 @@
 				});
 			},
 			addCheck(){
+				if(!this.warehouseId) return this.$showToast('请先选择仓库')
 				uni.navigateTo({
-					url:'/pagesStorage/checkStorage/add?warehouseId='+this.warehouseId+'&warehouseName='+this.warehouseName
+					url:'/pagesStorage/checkStorage/add?warehouseId='+this.warehouseId+'&warehouseName='+this.warehouseName+'&projectId='+this.projectId+'&projectName='+this.projectName
 				})
 			},
 			close(){
@@ -155,6 +170,21 @@
 				this.warehouseId = e.value[0].id;
 				this.warehouseName = e.value[0].warehouseName;
 				this.warehouseShow = false;
+			},
+			selectProject(){
+				this.projectShow = true;
+				this.$nextTick(()=>{
+					this.$api.get('/wms/project/page',{page:1,limit:-1}).then(res=>{
+						if(res.data.code===0){
+							this.projectList = [res.data.data.list];
+						}else this.$showToast(res.data.msg)
+					})
+				})
+			},
+			projectConfirm(e){
+				this.projectId = e.value[0].id;
+				this.projectName = e.value[0].projectName;
+				this.projectShow = false;
 			}
 		}
 	}

+ 33 - 2
pagesStorage/inStorage/add.vue

@@ -17,6 +17,13 @@
 						<text class="tip" v-else>请选择仓库 ></text>
 					</div>
 				</div>
+				<div class="item">
+					<div class="left"><span>*</span>所属项目</div>
+					<div class="right" @tap="selectProject">
+						<text v-if="receiptDto.projectName">{{receiptDto.projectName}} ></text>
+						<text class="tip" v-else>请选择项目 ></text>
+					</div>
+				</div>
 				<div class="item">
 					<div class="left"><span>*</span>入库类型</div>
 					<div class="right" @tap="selectReceiptType">
@@ -101,6 +108,9 @@
 		<u-picker title="仓库" :show="warehouseShow" :columns="warehouseList" keyName="warehouseName" 
 			@cancel="warehouseShow=false" @confirm="warehouseConfirm" :immediateChange="true">
 		</u-picker>
+		<u-picker title="所属项目" :show="projectShow" :columns="projectList" keyName="projectName" 
+			@cancel="projectShow=false" @confirm="projectConfirm" :immediateChange="true">
+		</u-picker>
 		<u-picker title="入库类型" :show="receiptTypeShow" :columns="receiptTypeList" keyName="dictLabel" 
 			@cancel="receiptTypeShow=false" @confirm="receiptTypeConfirm" :immediateChange="true">
 		</u-picker>
@@ -131,7 +141,9 @@
 					totalQuantity: 0,
 					purchaser:'',
 					arrivalDate:'',
-					details: []
+					details: [],
+					projectId:'',
+					projectName:''
 				},
 				warehouseShow:false,
 				warehouseList:[],
@@ -141,7 +153,9 @@
 				merchantList:[],
 				dateShow:false,
 				minDate:'',
-				maxDate:''
+				maxDate:'',
+				projectShow:false,
+				projectList:[]
 			}
 		},
 		mounted() {
@@ -165,6 +179,21 @@
 				this.receiptDto.warehouseName = e.value[0].warehouseName;
 				this.warehouseShow = false;
 			},
+			selectProject(){
+				this.projectShow = true;
+				this.$nextTick(()=>{
+					this.$api.get('/wms/project/page',{page:1,limit:-1}).then(res=>{
+						if(res.data.code===0){
+							this.projectList = [res.data.data.list];
+						}else this.$showToast(res.data.msg)
+					})
+				})
+			},
+			projectConfirm(e){
+				this.receiptDto.projectId = e.value[0].id;
+				this.receiptDto.projectName = e.value[0].projectName;
+				this.projectShow = false;
+			},
 			selectReceiptType(){
 				this.receiptTypeShow = true;
 				this.$nextTick(()=>{
@@ -262,6 +291,7 @@
 			saveReceipt(){
 				if(!this.receiptDto.orderNo) return this.$showToast('请输入入库单号');
 				if(!this.receiptDto.warehouseId) return this.$showToast('请选择仓库');
+				if(!this.receiptDto.projectId) return this.$showToast('请选择所属项目');
 				if(!this.receiptDto.optType) return this.$showToast('请选择入库类型');
 				if(!this.receiptDto.arrivalDate) return this.$showToast('请选择到货日期');
 				if(!this.receiptDto.purchaser) return this.$showToast('请输入采购负责人');
@@ -273,6 +303,7 @@
 					    amount: d.amount,
 					    quantity: d.quantity,
 					    warehouseId: this.receiptDto.warehouseId,
+					    projectId: this.receiptDto.projectId,
 					}
 				})
 				this.receiptDto.details = details;

+ 5 - 1
pagesStorage/inStorage/index.vue

@@ -35,10 +35,14 @@
 						<div class="title">采购人</div>
 						<div class="nr">{{ item.purchaser||'' }}</div>
 					</div>
-					<div class="pre bfb">
+					<div class="pre">
 						<div class="title">到货日期</div>
 						<div class="nr">{{ item.arrivalDate||'' }}</div>
 					</div>
+					<div class="pre">
+						<div class="title">所属项目</div>
+						<div class="nr">{{ item.projectName||'' }}</div>
+					</div>
 					<div class="pre bfb">
 						<div class="title">时间</div>
 						<div class="nr">{{ item.updateDate||'' }}</div>

+ 34 - 3
pagesStorage/moveStorage/add.vue

@@ -17,6 +17,13 @@
 						<text class="tip" v-else>请选择仓库 ></text>
 					</div>
 				</div>
+				<div class="item">
+					<div class="left"><span>*</span>所属项目</div>
+					<div class="right" @tap="selectProject">
+						<text v-if="movementDto.projectName">{{movementDto.projectName}} ></text>
+						<text class="tip" v-else>请选择项目 ></text>
+					</div>
+				</div>
 				<div class="item">
 					<div class="left"><span>*</span>目标仓库</div>
 					<div class="right" @tap="selectTargetWarehouse">
@@ -75,6 +82,9 @@
 		<u-picker title="源仓库" :show="sourceWarehouseShow" :columns="sourceWarehouseList" keyName="warehouseName" 
 			@cancel="sourceWarehouseShow=false" @confirm="sourceWarehouseConfirm" :immediateChange="true">
 		</u-picker>
+		<u-picker title="所属项目" :show="projectShow" :columns="projectList" keyName="projectName" 
+			@cancel="projectShow=false" @confirm="projectConfirm" :immediateChange="true">
+		</u-picker>
 		<u-picker title="目标仓库" :show="targetWarehouseShow" :columns="targetWarehouseList" keyName="warehouseName" 
 			@cancel="targetWarehouseShow=false" @confirm="targetWarehouseConfirm" :immediateChange="true">
 		</u-picker>
@@ -96,12 +106,16 @@
 					targetWarehouseId: '',
 					targetWarehouseName: '',
 					totalQuantity: 0,
-					details: []
+					details: [],
+					projectId:'',
+					projectName:''
 				},
 				sourceWarehouseShow:false,
 				sourceWarehouseList:[],
 				targetWarehouseShow:false,
 				targetWarehouseList:[],
+				projectShow:false,
+				projectList:[]
 			}
 		},
 		mounted() {
@@ -123,6 +137,21 @@
 				this.movementDto.sourceWarehouseName = e.value[0].warehouseName;
 				this.sourceWarehouseShow = false;
 			},
+			selectProject(){
+				this.projectShow = true;
+				this.$nextTick(()=>{
+					this.$api.get('/wms/project/page',{page:1,limit:-1}).then(res=>{
+						if(res.data.code===0){
+							this.projectList = [res.data.data.list];
+						}else this.$showToast(res.data.msg)
+					})
+				})
+			},
+			projectConfirm(e){
+				this.movementDto.projectId = e.value[0].id;
+				this.movementDto.projectName = e.value[0].projectName;
+				this.projectShow = false;
+			},
 			selectTargetWarehouse(){
 				this.targetWarehouseShow = true;
 				this.$nextTick(()=>{
@@ -147,10 +176,10 @@
 			},
 			toAddGoods(){
 				if(!this.movementDto.sourceWarehouseId) return this.$showToast('请选择源仓库')
-				if(!this.movementDto.targetWarehouseId) return this.$showToast('请选择目标仓库')
+				if(!this.movementDto.projectId) return this.$showToast('请选择项目')
 				let ids = this.movementDto.details.map(d=>d.skuId);
 				uni.navigateTo({
-					url:'/pagesStorage/moveStorage/goods?ids='+ids+'&warehouseId='+this.movementDto.sourceWarehouseId,
+					url:'/pagesStorage/moveStorage/goods?ids='+ids+'&warehouseId='+this.movementDto.sourceWarehouseId+'&projectId='+this.movementDto.projectId,
 					events:{
 						addGoods:list=>{
 							let aList = JSON.parse(JSON.stringify(list));
@@ -192,6 +221,7 @@
 			saveShipment(){
 				if(!this.movementDto.orderNo) return this.$showToast('请输入移库单号');
 				if(!this.movementDto.sourceWarehouseId) return this.$showToast('请选择源仓库')
+				if(!this.movementDto.projectId) return this.$showToast('请选择项目')
 				if(!this.movementDto.targetWarehouseId) return this.$showToast('请选择目标仓库')
 				
 				let temp = JSON.parse(JSON.stringify(this.movementDto.details));
@@ -201,6 +231,7 @@
 					    amount: d.amount,
 					    quantity: d.quantity,
 					    sourceWarehouseId: this.movementDto.sourceWarehouseId,
+					    projectId: this.movementDto.projectId,
 					    targetWarehouseId: this.movementDto.targetWarehouseId,
 					}
 				})

+ 4 - 1
pagesStorage/moveStorage/goods.vue

@@ -48,7 +48,8 @@
 					page:1,
 					limit:10,
 					minQuantity:1,
-					warehouseId:''
+					warehouseId:'',
+					projectId:''
 				},
 				selectNum:0,
 				ids:[]
@@ -74,6 +75,8 @@
 			}
 		},
 		onLoad(option) {
+			this.params.warehouseId = option.warehouseId;
+			this.params.projectId = option.projectId;
 			let ids = option.ids;
 			if(ids.indexOf(',')>-1) ids = ids.split(',');
 			else ids = [ids];

+ 4 - 0
pagesStorage/moveStorage/index.vue

@@ -27,6 +27,10 @@
 						<div class="title">目标仓库</div>
 						<div class="nr">{{ item.targetWarehouseName||'' }}</div>
 					</div>
+					<div class="pre">
+						<div class="title">所属项目</div>
+						<div class="nr">{{ item.projectName||'' }}</div>
+					</div>
 					<div class="pre">
 						<div class="title">移库人</div>
 						<div class="nr">{{ item.updaterName||'' }}</div>

+ 36 - 4
pagesStorage/outStorage/add.vue

@@ -17,6 +17,13 @@
 						<text class="tip" v-else>请选择仓库 ></text>
 					</div>
 				</div>
+				<div class="item">
+					<div class="left"><span>*</span>所属项目</div>
+					<div class="right" @tap="selectProject">
+						<text v-if="shipmentDto.projectName">{{shipmentDto.projectName}} ></text>
+						<text class="tip" v-else>请选择项目 ></text>
+					</div>
+				</div>
 				<div class="item">
 					<div class="left"><span>*</span>出库类型</div>
 					<div class="right" @tap="selectShipmentType">
@@ -98,6 +105,9 @@
 		<u-picker title="仓库" :show="warehouseShow" :columns="warehouseList" keyName="warehouseName" 
 			@cancel="warehouseShow=false" @confirm="warehouseConfirm" :immediateChange="true">
 		</u-picker>
+		<u-picker title="所属项目" :show="projectShow" :columns="projectList" keyName="projectName" 
+			@cancel="projectShow=false" @confirm="projectConfirm" :immediateChange="true">
+		</u-picker>
 		<u-picker title="出库类型" :show="ShipmentTypeShow" :columns="ShipmentTypeList" keyName="dictLabel" 
 			@cancel="ShipmentTypeShow=false" @confirm="ShipmentTypeConfirm" :immediateChange="true">
 		</u-picker>
@@ -128,7 +138,9 @@
 					totalQuantity: 0,
 					shipmentDate:'',
 					collector:'',
-					details: []
+					details: [],
+					projectId:'',
+					projectName:''
 				},
 				warehouseShow:false,
 				warehouseList:[],
@@ -138,7 +150,9 @@
 				merchantList:[],
 				dateShow:false,
 				minDate:'',
-				maxDate:''
+				maxDate:'',
+				projectShow:false,
+				projectList:[]
 			}
 		},
 		mounted() {
@@ -162,6 +176,21 @@
 				this.shipmentDto.warehouseName = e.value[0].warehouseName;
 				this.warehouseShow = false;
 			},
+			selectProject(){
+				this.projectShow = true;
+				this.$nextTick(()=>{
+					this.$api.get('/wms/project/page',{page:1,limit:-1}).then(res=>{
+						if(res.data.code===0){
+							this.projectList = [res.data.data.list];
+						}else this.$showToast(res.data.msg)
+					})
+				})
+			},
+			projectConfirm(e){
+				this.shipmentDto.projectId = e.value[0].id;
+				this.shipmentDto.projectName = e.value[0].projectName;
+				this.projectShow = false;
+			},
 			selectShipmentType(){
 				this.ShipmentTypeShow = true;
 				this.$nextTick(()=>{
@@ -199,10 +228,11 @@
 				this.shipmentDto.totalAmount = this.shipmentDto.details.reduce((cur,pre)=>cur+(+pre.amount||0),0);
 			},
 			toAddGoods(){
-				if(!this.shipmentDto.warehouseId) return this.$showToast('请先选择仓库')
+				if(!this.shipmentDto.warehouseId) return this.$showToast('请选择仓库')
+				if(!this.shipmentDto.projectId) return this.$showToast('请选择项目')
 				let ids = this.shipmentDto.details.map(d=>d.skuId);
 				uni.navigateTo({
-					url:'/pagesStorage/outStorage/goods?ids='+ids+'&warehouseId='+this.shipmentDto.warehouseId,
+					url:'/pagesStorage/outStorage/goods?ids='+ids+'&warehouseId='+this.shipmentDto.warehouseId+'&projectId='+this.shipmentDto.projectId,
 					events:{
 						addGoods:list=>{
 							let aList = JSON.parse(JSON.stringify(list));
@@ -244,6 +274,7 @@
 			saveShipment(){
 				if(!this.shipmentDto.orderNo) return this.$showToast('请输入出库单号');
 				if(!this.shipmentDto.warehouseId) return this.$showToast('请选择仓库');
+				if(!this.shipmentDto.projectId) return this.$showToast('请选择所属项目');
 				if(!this.shipmentDto.optType) return this.$showToast('请选择出库类型');
 				if(!this.shipmentDto.shipmentDate) return this.$showToast('请选择出库日期');
 				if(!this.shipmentDto.collector) return this.$showToast('请输入领料人');
@@ -255,6 +286,7 @@
 					    amount: d.amount,
 					    quantity: d.quantity,
 					    warehouseId: this.shipmentDto.warehouseId,
+					    projectId: this.shipmentDto.projectId,
 					}
 				})
 				this.shipmentDto.details = details;

+ 3 - 1
pagesStorage/outStorage/goods.vue

@@ -45,7 +45,8 @@
 					page:1,
 					limit:10,
 					minQuantity:1,
-					warehouseId:''
+					warehouseId:'',
+					projectId:''
 				},
 				selectNum:0,
 				ids:[]
@@ -72,6 +73,7 @@
 		},
 		async onLoad(option) {
 			this.params.warehouseId = option.warehouseId;
+			this.params.projectId = option.projectId;
 			let ids = option.ids;
 			if(ids.indexOf(',')>-1) ids = ids.split(',');
 			else ids = [ids];

+ 5 - 1
pagesStorage/outStorage/index.vue

@@ -35,10 +35,14 @@
 						<div class="title">领料人</div>
 						<div class="nr">{{ item.collector||'' }}</div>
 					</div>
-					<div class="pre bfb">
+					<div class="pre">
 						<div class="title">出库日期</div>
 						<div class="nr">{{ item.shipmentDate||'' }}</div>
 					</div>
+					<div class="pre">
+						<div class="title">所属项目</div>
+						<div class="nr">{{ item.projectName||'' }}</div>
+					</div>
 					<div class="pre bfb">
 						<div class="title">时间</div>
 						<div class="nr">{{ item.updateDate||'' }}</div>

+ 10 - 2
pagesStorage/storageRecord/detail.vue

@@ -26,11 +26,11 @@
 			</div>
 			<div class="item">
 				<div class="left">操作前</div>
-				<div class="right jc">{{storageDto.beforeQuantity||''}}</div>
+				<div class="right jc">{{storageDto.beforeQuantity||0}}</div>
 			</div>
 			<div class="item">
 				<div class="left">操作后</div>
-				<div class="right jc">{{storageDto.afterQuantity||''}}</div>
+				<div class="right jc">{{storageDto.afterQuantity||0}}</div>
 			</div>
 			<div class="item">
 				<div class="left">数量</div>
@@ -42,6 +42,14 @@
 			</div>
 			<div class="item">
 				<div class="left">操作时间</div>
+				<div class="right">{{storageDto.optDate||''}}</div>
+			</div>
+			<div class="item">
+				<div class="left">操作人</div>
+				<div class="right">{{storageDto.operator||''}}</div>
+			</div>
+			<div class="item">
+				<div class="left">系统时间</div>
 				<div class="right">{{storageDto.createDate||''}}</div>
 			</div>
 		</div>

+ 9 - 1
pagesStorage/storageRecord/index.vue

@@ -42,7 +42,15 @@
 							<div class="info">
 								<div class="iitem">
 									<div class="pre pre1">
-										操作时间:<span>{{good.createDate||''}}</span>
+										操作时间:<span>{{good.optDate||''}}</span>
+									</div>
+									<div class="pre">
+										操作人:<span>{{good.operator||''}}</span>
+									</div>
+								</div>
+								<div class="iitem">
+									<div class="pre pre1">
+										系统时间:<span>{{good.createDate||''}}</span>
 									</div>
 									<div class="pre">
 										数量:<span class="jc"><span v-if="good.quantity>0">+</span>{{good.quantity||0}}</span>