chenrui 2 anni fa
parent
commit
6a2096bf0b

+ 7 - 6
pages/shuntBackManage/addBackOrder.vue

@@ -64,7 +64,7 @@
 							</view>
 							<view class="pcurnums flex align_center">
 								<text>调回数量</text>
-								<view class="u-ninput"><u-number-box color="#000" bg-color="#fff" :input-height="60" v-model="item.confirmQty" :min="1" :max="item.qty"></u-number-box></view>
+								<view class="u-ninput"><u-number-box color="#000" bg-color="#fff" :input-height="60" v-model="item.confirmQty" :min="1" :max="item.qty - item.recallBillQty>0 ?item.qty - item.recallBillQty :0"></u-number-box></view>
 							</view>
 						</view>
 					</view>
@@ -135,10 +135,11 @@ export default {
 	},
 	onLoad(options) {
 		const _this = this
-		this.theme = getApp().globalData.theme;
-		this.shelfSn = options.shelfSn;
-		this.shelfName = options.shelfName;
-		this.queryParam.shelfSn = options.shelfSn
+		_this.theme = getApp().globalData.theme;
+		_this.shelfSn = options.shelfSn;
+		_this.shelfName = options.shelfName;
+		_this.queryParam.shelfSn = options.shelfSn
+		// _this.recallBillList = _this.$store.state.vuex_tempBackData || []
 		uni.$on("chooseBackProduct",function(data){
 			_this.recallBillList = _this.recallBillList.concat(data).sort(function(a,b){
 				return (a.shelfPlaceCode+'').localeCompare(b.shelfPlaceCode+'');
@@ -179,7 +180,7 @@ export default {
 				chooseKey :this.chooseKey
 			}
 			uni.navigateTo({
-				url: "/pages/shuntBackManage/chooseProduct??data="+encodeURIComponent(JSON.stringify(nowData))
+				url: "/pages/shuntBackManage/chooseProduct?data="+encodeURIComponent(JSON.stringify(nowData))
 			})
 		},
 		//清空列表

+ 170 - 45
pages/shuntBackManage/chooseProduct.vue

@@ -16,7 +16,7 @@
 				<view class="input">
 					<u-search 
 					v-model="keyword" 
-					@change="$u.debounce(getSearchCon, 800)"
+					@change="getSearchCon"
 					@search="getSearchCon"
 					@custom="getSearchCon"
 					@clear="clearSearch"
@@ -37,10 +37,14 @@
 			<view class="f-left">
 				<u-checkbox size="40" @change="allCheckeChange" v-model="allChecked" shape="circle">{{allChecked?'取消全选':'全选'}}</u-checkbox>
 			</view>
-			<view class="f-mid">
+			<view class="f-mid u-flex">
 				<view v-if="totalCategory">
 					已选<text>{{totalCategory}}</text>款产品
 				</view>
+				<view class="f-seeInfo" @click="isDetailShow=true" v-if="totalCategory">
+					查看详情
+					<u-icon name="arrow-up" color="#999" size="28"></u-icon>
+				</view>
 			</view>
 			<view class="f-btns">
 				<u-button size="medium" @click="submitOrder" :custom-style="customBtnStyle" shape="circle" type="primary" hover-class="none" >确定选择</u-button>
@@ -61,6 +65,64 @@
 				</view>
 			</view>
 		</u-popup>
+		<!-- 详情弹窗 -->
+		<u-popup v-model="isDetailShow" mode="bottom" height="800" border-radius="25">
+				<view class="head u-flex u-row-between">
+					<text>已选产品</text>
+					<text @click="clearChoose">清空列表</text>
+				</view>
+				<scroll-view scroll-y class="scroll-view" v-if="chooseList.length>0">
+					<view class="partList-list-box" v-for="(item,index) in chooseList" :key="item.id">
+						<view class="product flex align_center">
+							<view class="uni-col-1" @click="delDetail(item,index)">
+								<u-icon name="close-circle" color="#999" size="35"></u-icon>
+							</view>
+							<view class="flex flex_1">
+								<view class="pimgs">
+									<u-image :src="item.productImageUrl?item.productImageUrl:`../../static/${$config('themePath')}/def_img@2x.png`" width="120" height="120" border-radius="10"></u-image>
+								</view>
+								<view class="pinfo">
+									<view class="pname item-name">
+										<text>{{item.shelfPlaceCode}}</text>
+										{{item.productCode}}
+									</view>
+									<view class="productName u-line-2">
+										{{item.productName}}
+									</view>
+									<view class="ptxt flex align_center">
+										<view>
+											最大库容
+											<text class="pnums">{{item.maxQty}}</text>
+										</view>
+										<view>
+											/货架库存
+											<text class="pnums">{{item.qty}}</text>
+										</view>
+										<view>
+											/滞销
+											<text class="pnums">{{!item.unsalableDays || (item.unsalableDays&&item.unsalableDays) == 0 ?'--天':item.unsalableDays}}</text>
+										</view>
+									</view>
+								</view>
+							</view>
+							</u-checkbox>
+						</view>
+						<view class="ptools flex align_center">
+							<view class="ptools_l u-flex">
+								<view v-if="item.replenishBillQty && item.replenishBillQty!=0">
+									补货在途
+									<text class="pnums">{{item.replenishBillQty}}</text>
+								</view>
+								<view v-if="item.recallBillQty && item.recallBillQty!=0">
+									{{item.replenishBillQty && item.replenishBillQty!=0 ? '/':''}}调回在途
+									<text class="pnums">{{item.recallBillQty}}</text>
+								</view>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+				<u-empty :src="`/static/${$config('themePath')}/def_no_data@3x.png`" icon-size="200" text="暂无选中回调单" img-width="120" v-else></u-empty>
+			</u-popup>
 	</view>
 </template>
 
@@ -85,6 +147,7 @@
 					backgroundColor: this.$config('primaryColor'),
 					color: '#fff'
 				},
+				isDetailShow:false,//详情弹窗显示
 				chooseList: [],
 				chooseShow:false,
 				queryParam: { //  查询条件
@@ -178,9 +241,6 @@
 			// 获取数字货架列表
 			loadData(params) {
 				const _this = this;
-				_this.clearChoose()
-				_this.partList = []
-				_this.$refs.productList && _this.$refs.productList.setData(_this.partList)
 				uni.showLoading({
 					mask:true,
 					title:"正在加载..."
@@ -189,14 +249,13 @@
 					if (res.status == 200) {
 						res.data.forEach(item=>{
 							item.isChecked= false
-							item.confirmQty = item.qty - item.recallBillQty>0 ?item.qty - item.recallBillQty>0: 0;
+							item.confirmQty = item.qty - item.recallBillQty>0 ?item.qty - item.recallBillQty: 0;
 						})
 						_this.partList=res.data;
 					}else{
 						_this.partList =[]
 					}
-					// 赋值
-					// 赋值
+					//过滤之前选过的值
 					if(_this.nowData.chooseKey.length){
 						_this.partList = _this.partList.filter(item => {
 							const row = _this.nowData.chooseKey.findIndex(k => k == item.id)
@@ -204,6 +263,7 @@
 						})
 					}
 					// 已选
+					console.log('1111111:',this.chooseList)
 					_this.partList.map(item => {
 						const row = _this.chooseList.find(k => k.id == item.id)
 						item.checked = !!row
@@ -246,6 +306,15 @@
 					}
 				})
 			},
+			delDetail(con,pot){
+				this.$refs.productList.setChecked(con.id,false)
+				this.chooseList.splice(pot,1);
+				this.allChecked = false
+				// 全部清空
+				if(this.chooseList.length==0){
+					this.clearChoose()
+				}
+			},
 			// 扫描结果
 			scanResult(data){
 				// 二维码
@@ -413,43 +482,7 @@
 			}
 		}
 	}
-	// 筛选
-	.tabBox{
-		height: 100vh;
-		.tabs{
-			overflow: auto;
-			padding: 20rpx;
-			> view{
-				flex-wrap: wrap;
-				justify-content: space-between;
-				> view{
-					width: 98%;
-					border: 1rpx solid #eee;
-					padding: 15rpx;
-					border-radius: 50rpx;
-					text-align: center;
-					margin-bottom: 15rpx;
-					/deep/ .u-checkbox__label{
-						flex-grow: 1;
-					}
-				}
-				&:first-child{
-					> view{
-						width: 100%;
-					}
-				}
-			}
-		}
-		.btns{
-			display: flex;
-			padding: 40upx 20upx 20upx;
-			justify-content: space-between;
-			.handle-btn {
-				font-size: 28upx;
-			}
-		}
-	}
-	// 弹窗样式
+	//滞销天数弹窗样式
 	.choosePopup {
 		padding: 30rpx 20rpx;
 		box-sizing: border-box;
@@ -469,5 +502,97 @@
 			}
 		}
 	}
+	// 详情页弹窗样式
+	.head{
+			width: 100%;
+			box-sizing: border-box;
+			padding:30rpx 20rpx;
+			background: #e0e0e0;
+			text{
+				&:first-child{
+					font-weight: bold;
+				}
+			}
+		}
+		.scroll-view{
+			height: 584rpx;
+			.partList-list-box {
+				width: 700rpx;
+				margin:0 auto;
+				padding: 10px 0;
+				border-bottom: 2rpx solid #f5f5f5;
+				&:last-child {
+					border: 0;
+				}
+				.product {
+					flex-grow: 1;
+					.checkbox {
+						width: 60rpx;
+					}
+					.pinfo {
+						flex-grow: 1;
+						padding-left: 20rpx;
+						.pname {
+							font-size: 26rpx;
+							color:#222;
+							text {
+								font-weight: normal;
+								margin-right: 10rpx;
+								padding: 0 10rpx;
+								background: rgba(3, 54, 146, 0.15);
+								border-radius: 30rpx;
+								color: #033692;
+								font-size: 24rpx;
+							}
+						}
+						.productName{
+							width: 100%;
+							font-size: 26rpx;
+							margin:6rpx 0;
+						}
+						.pno {
+							background-color: rgba(3, 54, 146, 0.15);
+							border-radius: 50rpx;
+							padding: 0 20rpx;
+							color: #033692;
+							font-size: 24rpx;
+							margin-right: 10rpx;
+						}
+						.ptxt {
+							font-size: 24rpx;
+							color: #999;
+							.pnums {
+								color: #222;
+								padding: 0 4upx;
+							}
+						}
+					}
+				}
+				.ptools {
+					margin-top: 30rpx;
+					margin-left: 60rpx;
+					.ptools_l{
+						font-size: 24rpx;
+						color: #999;
+						view{
+							:nth-child(2)::before{
+								content: '/';
+							}
+						}
+						.pnums {
+							color: #ff5500;
+							padding: 0 4rpx;
+						}
+					}
+					.pcurnums {
+						> text {
+							font-size: 24rpx;
+							color: #999;
+							margin-right: 20rpx;
+						}
+					}
+				}
+			}
+		}
 }
 </style>