فهرست منبع

待出库详情

chenrui 3 سال پیش
والد
کامیت
036d922c68

+ 8 - 0
pages.json

@@ -94,6 +94,14 @@
 				"enablePullDownRefresh": false
 			}
 		},
+		{
+			"path" : "pages/replenishmentManage/outWarehousing",
+			"style" :
+			{
+				"navigationBarTitleText": "补货出库",
+				"enablePullDownRefresh": false
+			}
+		},
 		{
 			"path" : "pages/replenishmentManage/signWarehousing",
 			"style" :

+ 8 - 3
pages/common/partList.vue

@@ -13,16 +13,19 @@
 							<u-image :src="item.product&&item.product.productMsg?item.product.productMsg:`../../static/${theme}/def_img@2x.png`" width="128" height="128" border-radius="10"></u-image>
 						</view>
 						<view class="pinfo">
-							<view class="pname" v-if="pageType=='replenishmentSign'||pageType=='replenishmentDetail'||pageType=='replenishmentDetailc'">{{item.product&&item.product.name?item.product.name:'--'}}</view>
+							<view class="pname" v-if="pageType=='replenishmentSign'||pageType=='replenishmentOut'||pageType=='replenishmentDetail'||pageType=='replenishmentDetailc'">{{item.product&&item.product.name?item.product.name:'--'}}</view>
 							<view class="pname" v-else>{{item.productName}}</view>
 							<view class="ptxt flex align_center justify_between">
 								<view>
-									<text class="pcode" v-if="pageType=='replenishmentSign'||pageType=='replenishmentDetail'||pageType=='replenishmentDetailc'">{{item.product&&item.product.code?item.product.code:'--'}}</text>
+									<text class="pcode" v-if="pageType=='replenishmentSign'||pageType=='replenishmentOut'||pageType=='replenishmentDetail'||pageType=='replenishmentDetailc'">{{item.product&&item.product.code?item.product.code:'--'}}</text>
 									<text class="pcode" v-else>{{item.productCode}}</text>
 								</view>
 								<view v-if="pageType=='replenishmentSign'">
 									实发数量:<text class="pnums">{{item.confirmQty||item.confirmQty==0?item.confirmQty:'--'}}{{item.product&&item.product.unit?item.product.unit:'--'}}</text>
 								</view>
+								<view v-if="pageType=='replenishmentOut'">
+									x<text class="pnums">{{item.confirmQty||item.confirmQty==0?item.confirmQty:'--'}}</text>
+								</view>
 								<view v-if="pageType=='replenishmentDetail'">
 									应发<text class="pnums">{{item.qty||item.qty==0?item.qty:'--'}}</text>
 									实发<text class="pnums">{{item.confirmQty||item.confirmQty==0?item.confirmQty:'--'}}</text>
@@ -95,7 +98,7 @@
 				type: String,
 				default: 'checkbox'
 			},
-			// 那个功能页面调用,展示不同的字段,recall: 调回单,replenishmentSign:补货签收,replenishmentDetail:补货详情-已完成,replenishmentDetailc:补货详情-已取消
+			// 那个功能页面调用,展示不同的字段,recall: 调回单,replenishmentSign:补货签收,replenishmentOut:补货出库,replenishmentDetail:补货详情-已完成,replenishmentDetailc:补货详情-已取消
 			fromPage: {
 				type: String,
 				default: ''
@@ -108,6 +111,8 @@
 				newValue.map(item => {
 					if(_this.pageType=='replenishmentSign'){  // 补货签收
 						this.totalNums = this.totalNums + item.putQty
+					}else if(_this.pageType=='replenishmentOut'){  // 补货出库
+						this.totalNums = this.totalNums + item.confirmQty
 					}else if(_this.pageType=='replenishmentDetail'){  // 补货详情-已完成
 						this.totalNums = this.totalNums + item.putQty
 					}else if(_this.pageType=='replenishmentDetailc'){  // 补货详情-已取消

+ 3 - 3
pages/replenishmentManage/detail.vue

@@ -10,15 +10,15 @@
 				</view>
 				<view>
 					<view class="label"><u-icon name="icon_order" custom-prefix="iscm-icon" size="32"></u-icon><text>补货单号</text></view>
-					<view>{{basicInfoData.replenishBillNo || '--'}}</view>
+					<view class="info-txt">{{basicInfoData.replenishBillNo || '--'}}</view>
 				</view>
 				<view>
 					<view class="label"><u-icon name="ison_shelf" custom-prefix="iscm-icon" size="32"></u-icon><text>货架名称</text></view>
-					<view>{{basicInfoData.shelfName || '--'}}</view>
+					<view class="info-txt">{{basicInfoData.shelfName || '--'}}</view>
 				</view>
 				<view v-if="pageType=='success'">
 					<view class="label"><u-icon name="icon_delivery" custom-prefix="iscm-icon" size="32"></u-icon><text>配送方式</text></view>
-					<view>{{basicInfoData.dispatchTypeDictValue || '--'}}</view>
+					<view class="info-txt">{{basicInfoData.dispatchTypeDictValue || '--'}}</view>
 				</view>
 				<view v-if="pageType=='success'">
 					<view class="label"><u-icon name="icon_remark" custom-prefix="iscm-icon" size="32"></u-icon><text>出库备注</text></view>

+ 194 - 0
pages/replenishmentManage/outWarehousing.vue

@@ -0,0 +1,194 @@
+<template>
+	<view class="replenishment-outWarehousing-wrap" :style="`backgroundImage:linear-gradient(180deg, ${$config('primaryColor')}, #F5F6F7 12%)`">
+		<view class="replenishment-outWarehousing-body">
+			<view class="head-info" v-if="basicInfoData">
+				<view class="states">
+					<view>
+						<u-icon name="icon_out" custom-prefix="iscm-icon" size="48"></u-icon>
+						<text>待出库</text>
+					</view>
+				</view>
+				<view>
+					<view class="label"><u-icon name="ison_shelf" custom-prefix="iscm-icon" size="32"></u-icon><text>货架名称</text></view>
+					<view class="info-txt">{{basicInfoData.shelfName || '--'}}</view>
+				</view>
+				<view>
+					<view class="label"><u-icon name="icon_position" custom-prefix="iscm-icon" size="32"></u-icon><text>客户地址</text></view>
+					<view class="info-txt">{{basicInfoData.remarks || '--'}}</view>
+				</view>
+			</view>
+			<view class="part-list">
+				<!-- 配件列表 -->
+				<partList :list="partList" title="配件列表" model="view" fromPage="replenishmentOut" ref="partList" noDataText="暂无配件"></partList>
+			</view>
+		</view>
+		<view class="replenishment-outWarehousing-footer">
+			<u-button class="button" @click="confirmModal=true" :custom-style="customDefalutStyle" hover-class="none" shape="circle">打印标签</u-button>
+			<u-button class="button" @click="confirmModal=true" type="success" :custom-style="customStyle" hover-class="none" shape="circle">发货出库</u-button>
+		</view>
+		<!-- 确认弹框 -->
+		<common-modal :openModal="confirmModal" content="确认信息无误并进行出库吗?" confirmText="确认出库" @confirm="modalConfirm" @close="confirmModal=false" />
+	</view>
+</template>
+
+<script>
+	import commonModal from '@/pages/common/commonModal.vue'
+	import { shelfReplenishDetail, shelfReplenishDetailList, shelfReplenishPutStock } from '@/api/shelfReplenish'
+	import partList from '@/pages/common/partList.vue'
+	export default {
+		components: { partList, commonModal },
+		data() {
+			return {
+				replenishBillSn: '',
+				basicInfoData:null,
+				partList: [],
+				customStyle: {
+					borderRadius:'100rpx',
+					fontSize:'30rpx',
+					background: '#0485F6'
+				},
+				customDefalutStyle: {
+					borderRadius:'100rpx',
+					fontSize:'30rpx',
+					color: '#0485F6',
+					background: '#fff'
+				},
+				confirmModal: false
+			}
+		},
+		onReady() {
+			uni.setNavigationBarColor({
+				frontColor: '#ffffff',
+				backgroundColor: this.$config('primaryColor')
+			})
+		},
+		onLoad(option) {
+			this.replenishBillSn = option.replenishBillSn
+			this.getDetail()
+			this.getPartList()
+		},
+		methods: {
+			// 查询详情
+			getDetail(){
+				shelfReplenishDetail({ sn: this.replenishBillSn }).then(res => {
+					if(res.status == 200){
+						this.basicInfoData = res.data || null
+					}else{
+						this.basicInfoData = null
+					}
+				})
+			},
+			// 查询列表
+			getPartList(){
+				const _this = this
+				shelfReplenishDetailList({ replenishBillSn: this.replenishBillSn }).then(res => {
+					if(res.status == 200 && res.data){
+						res.data.map(item =>{
+							item.confirmQty = item.confirmQty ? Number(item.confirmQty) : 0
+						})
+						this.partList = res.data || []
+					}else{
+						this.partList = []
+					}
+				})
+			},
+			// 确认签收 confirm
+			modalConfirm(){
+				const arr = []
+				this.partList.map((item, index) => {
+				  if (item.putQty || item.putQty == 0) {
+				    arr.push({ productSn: item.productSn, putQty: item.putQty })
+				  }
+				})
+				const params = {
+				  replenishBillSn: this.replenishBillSn,
+				  detailList: arr
+				}
+				shelfReplenishPutStock(params).then(res => {
+					if(res.status == 200){
+						uni.$emit('refreshBL')
+						uni.navigateBack()
+					}
+					this.toashMsg(res.message)
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="less">
+.replenishment-outWarehousing-wrap{
+	position: relative;
+	width: 100%;
+	height: 100%;
+	overflow: hidden;
+	padding-bottom: 136upx;
+	.replenishment-outWarehousing-body{
+		padding: 0 30rpx;
+		height: 100%;
+		overflow: auto;
+		> view{
+			padding: 10rpx 25rpx;
+			background-color: #fff;
+			margin-bottom: 20rpx;
+			border-radius: 25rpx;
+			box-shadow: 2rpx 3rpx 5rpx #eee;
+		}
+		.head-info{
+			.states{
+				border: 0;
+				padding: 20rpx 0;
+				> view{
+					color: #191919;
+					text-align: center;
+					font-size: 40rpx;
+					text{
+						margin-left: 20rpx;
+					}
+				}
+			}
+			.info-txt{
+				word-break: break-word;
+			}
+			font-size: 30rpx;
+			> view{
+				display: flex;
+				border-bottom: 2rpx solid #f5f5f5;
+				padding: 20rpx 0;
+				> view:last-child{
+					flex-grow: 1;
+					width: 80%;
+				}
+				&:last-child{
+					border:0;
+				}
+			}
+			.label{
+				display: flex;
+				align-items: center;
+				width: 220rpx;
+				height: 44rpx;
+				color: #7C7D7E;
+				text{
+					margin-left: 10rpx;
+				}
+			}
+		}
+	}
+	.replenishment-outWarehousing-footer{
+		padding: 26upx 32upx 30upx;
+		background-color: #fff;
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		width: 100%;
+		box-shadow: 3px 1px 7px #eee;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		.button{
+			width: 45%;
+		}
+	}
+}
+</style>

+ 1 - 1
pages/replenishmentManage/replenishmentList.vue

@@ -175,7 +175,7 @@
 				if(item.billState=='WAIT_CONFIRM'){ // 待确认
 					uni.navigateTo({ url: "/pages/replenishmentManage/confirm?sn="+item.replenishBillSn })
 				}else if(item.billState=='WAIT_OUT_STOCK'){ // 待出库
-					uni.navigateTo({ url: "/pages/replenishmentManage/replenishmentList?sn="+item.replenishBillSn })
+					uni.navigateTo({ url: "/pages/replenishmentManage/outWarehousing?sn="+item.replenishBillSn })
 				}else if(item.billState=='WAIT_CHECK'){ // 待签收
 					uni.navigateTo({ url: "/pages/replenishmentManage/signWarehousing?sn="+item.replenishBillSn })
 				}else if(item.billState=='FINISH'){ // 已完成

+ 1 - 1
pages/replenishmentManage/signWarehousing.vue

@@ -10,7 +10,7 @@
 				</view>
 				<view>
 					<view class="label"><u-icon name="icon_delivery" custom-prefix="iscm-icon" size="32"></u-icon><text>配送方式</text></view>
-					<view>{{basicInfoData.dispatchTypeDictValue || '--'}}</view>
+					<view class="info-txt">{{basicInfoData.dispatchTypeDictValue || '--'}}</view>
 				</view>
 				<view>
 					<view class="label"><u-icon name="icon_remark" custom-prefix="iscm-icon" size="32"></u-icon><text>出库备注</text></view>