acc_detail.html 14.7 KB
<!--验收 -  详情页 - wwb-->
<!doctype html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="import" href="./detail_tpl.html" id="acc_detail_tpl"/>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<link href="../../css/mui.min.css" rel="stylesheet" />
		<link href="../../css/themes.css" rel="stylesheet" />
		<link href="../../css/check.css"  rel="stylesheet"/>
		<link href="../../css/index_view.css" rel="stylesheet" />
		
	</head>

	<body>
		<div class="mui-content detailRow">
			<form class="mui-input-group" id="detailContent" style="background:none;">
				<ul class="mui-table-view" style="margin-bottom:12px;">
					<li class="mui-table-view-cell mui-collapse">
						<a class="mui-navigate-right" href="#">产品信息</a>
						<div class="mui-collapse-content">
								
						</div>
					</li>
				</ul>
			</form>
			<form id="List">
				
			</form>
		</div>
		
		<script src="../../js/mui.min.js"></script>
		<script src="../../js/jquery.min.js" ></script>
		<script src="../../js/template-web.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../js/utils.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../js/common.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript" src="../../js/request.js" ></script>
		<script type="text/javascript">
			
			(function($,$$) {
				var utils = new Utils();
				utils.appendModule('#acc_detail_tpl');
				
				function showData(data){
					var html = template('detail_tpl', data);
					if(html){
						document.getElementById('detailContent').innerHTML = html;
					}
				}
				var checkType = undefined, 
					type = undefined, 
					data = null, 
					details = undefined, 
					barcode = undefined,
					isPsList = undefined,
					url = '/a/exam/detail', // 分页接口
					titleUrl = '/a/exam/detailhead',// 头部接口
					checkUrl = '/a/checkacceptdetail/checkList';
				$.plusReady(function(){
					$.init({
						beforeback: function() {
					        var list = plus.webview.currentWebview().opener();  
					        console.log(details.selectTabs)
					        mui.fire(list, 'pagefresh',{ selectTabs: details.selectTabs === 1 ? '1': '0' , query: details.query }); 
					        return true;  
				    	}
					})
					
					var self = plus.webview.currentWebview();
					details = JSON.parse(self.details);//获得参数
					checkType = details.checkType;
					status = details.status;
					barcode = details.barcode;
					isPsList = details.isPsList;
					console.log(JSON.stringify(details) );
					console.log(typeof details.selectTabs)
					var postData = {
						distributeCode: details.distributeCode,
						status: details.status,
						id: details.id
					};
					if(barcode){
						postData.barcode = barcode;
					}
					var detailData = {};
					plus.nativeUI.showWaiting('加载中...');
					mui.ajaxRequest(titleUrl,{
						type: 'POST',
						data: { distributeCode: postData.distributeCode },
						success: function(data){
							if(data.code === 200){
								for(var key in data.data){
									detailData[key] = data.data[key];					
								}
								detailData.isPsList = details.isPsList;
								detailData.barcode = details.barcode;
								detailData.checkType = details.checkType;
								mui.ajaxRequest(url,{
									type: 'POST',
									data: postData,
									success: function(data){
										plus.nativeUI.closeWaiting();
										if(data.code === 200){
											detailData.list = data.data.list;
											console.log(detailData)
											
											showData(detailData);
											if(details.hasAcceptance){
												setTimeout(function(){
													// showOrHideBtn()
													var acceptanceBtn = '<button type="button" id="acceptance" class="mui-btn mui-btn-warning mui-btn-block" style="margin-bottom: 20px;" data-loading-text = "提交中" data-loading-icon-position="right">确认验收</button>'
													document.querySelector('.detailRow').insertAdjacentHTML("beforeEnd",acceptanceBtn);
												},100)
											}
											
										}else{
											mui.toast(data.msg,{ type: 'div' });
										}
									},
									error: function(xhr,type,errorThrown){
										console.log(xhr.responseText)
			                		}
								});
							}else{
								mui.toast(data.msg,{ type: 'div' });
							}
							
						},
						error: function(xhr,type,errorThrown){
							console.log(xhr.responseText)
                		}
					});
					
					// checkType  1 2 4 配送单 可编辑     其余 出库单  不能编辑
					function showOrHideBtn(){
						if(checkType === 1 && (details.isPsList || details.barcode) && status === '1' && detailData.list[0].isUsual === 0){	
							var node = '<div id="addBtn"><button class="mui-btn mui-btn-block btn">+ 增加批号</button></div>';
							document.querySelector('#List').insertAdjacentHTML('afterEnd',node);
						}
					}
				
				
				/*
				 *2 点击添加按钮 增加选填项    开始
				 * 
				 * 拖拽后显示操作图标,点击操作图标删除元素
				 */
					var itemNum = 0, orderList = [];
					mui(".detailRow").on('tap', '.btn', function() {
						var ParentDiv = document.createElement("div")
						ParentDiv.className = "mui-table-view-cell slide-main";
						ParentDiv.setAttribute('data-index', itemNum);
						ParentDiv.innerHTML = '<div class="mui-slider-handle">' +
							'<div class="mui-input-group">' +
							'<div class="mui-input-row">' +
							'<label>生产批号</label>' +
							'<input type="text" name="acc_lot" class="mui-input-clear mui-input mui-input-ph"  placeholder="请输入" >' +
							'</div>' +
							'<div class="mui-input-row">' +
							'<label>数量</label>' +
							'<input type="number" name="acc_num" class="mui-input-clear mui-input mui-input-num"  value="0" placeholder="请输入" >' +
							'</div>' +
							'</div>' +
							'</div>' +
							'<div class="mui-slider-right mui-disabled">' +
							'<a class="mui-btn mui-btn-red">删除</a>' +
							'</div>';
						document.getElementById("List").appendChild(ParentDiv);
						itemNum++;
						addSlideDelete(); //添加侧滑删除
					})
					function addSlideDelete() {
						mui('.slide-main').off('tap', '.mui-btn').on('tap', '.mui-btn', function(event) {
							var elem = this;
							var li = elem.parentNode.parentNode;
							var btnArray = ['确认', '取消'];
							mui.confirm('确认删除该条记录?', '操作提醒', btnArray, function(e) {
								if(e.index == 0) {
									setTimeout(function() {
										mui.swipeoutClose(li);
									}, 0);
									itemNum--;
									li.parentNode.removeChild(li);
									var index = li.getAttribute('data-index');
								} else {
									setTimeout(function() {
										mui.swipeoutClose(li);
									}, 0);
								}
							},'div');
						});
					}
					
					mui('#List').on('keypress','input',function(e){
						if(e.keyCode === 13){
							
						}
					})
					
					// 验收
					mui('.detailRow').on('tap','#acceptance',function(event){
						let postData = [],submitData = {};
						
						if((details.isPsList || details.barcode) && detailData.list[0].isUsual === 0){ // 配送单验收  可以修改
							// 获取产品信息详情中编辑字段值
							
							var phValue = document.querySelector('.mui-input').value; // 批号文号
							var phList = document.querySelector('#List').querySelectorAll('.mui-input-ph'); // 新增批号数据
							var numList = document.querySelector('#List').querySelectorAll('.mui-input-num'); // 批号对应的数值
							var editBatchNo = document.querySelector('.BatchNo').value;
							var realProductTime = document.querySelector('.realProductTime').value;
							var realValidEndDate = document.querySelector('.realValidEndDate').value;
							if(details.isShowTemprature === 1){
								realAcceptanceTemperature = document.querySelector('.realAcceptanceTemperature').value;
							}
							var realReceiveQuantiry = document.querySelector('.realReceiveQuantiry').value;
							let parentData = {
								productBatchNo: detailData.list[0].productBatchNo,
								realReceiveQuantiry: realReceiveQuantiry,
								realProductTime: realProductTime,
								realValidEndDate: realValidEndDate,
								isUsual: detailData.list[0].isUsual,
								id: detailData.list[0].id,
								drugCode: detailData.list[0].drugCode,
								parentId: null,
							}
							if(phList.length){
								postData.push(parentData);
								for (let i = 0 ;i < phList.length; i++) {
									let values = {};
									values.productBatchNo =  phList[i].value;
									values.realReceiveQuantiry = numList[i].value;
									values.realProductTime = realProductTime;
									values.realValidEndDate = realValidEndDate;
									if(details.isShowTemprature === 1){
										values.realAcceptanceTemperature = realAcceptanceTemperature;
									}
									values.isUsual = detailData.list[0].isUsual;
									values.drugCode = detailData.list[0].drugCode;
									values.distributeCode = detailData.list[0].distributeCode;
									values.rowNo = detailData.list[0].rowNo;
									values.id = null;
									values.parentId = detailData.list[0].id;
									postData.push(values);
								}
							}else{
								let values = {};
								values.productBatchNo = editBatchNo;
								values.realProductTime = realProductTime;
								values.realValidEndDate = realValidEndDate;
								if(details.isShowTemprature === 1){
									values.realAcceptanceTemperature = realAcceptanceTemperature;
								}
								values.realReceiveQuantiry = realReceiveQuantiry;
								values.drugCode = detailData.list[0].drugCode;
								values.isUsual = detailData.list[0].isUsual;
								values.id = detailData.list[0].id;
								values.distributeCode = detailData.list[0].distributeCode;
								values.rowNo = detailData.list[0].rowNo;
								values.parentId = null;
								postData.push(values);
							}
						}else{
							// 非配送单验收,不能修改
							let values = {};
							values.productBatchNo = detailData.list[0].productBatchNo;
							values.realProductTime = detailData.list[0].realProductTime;
							values.realValidEndDate = detailData.list[0].realValidEndDate;
							if(defaultStatus.isShowTemprature === 1){
								values.realAcceptanceTemperature = detailData.list[0].realAcceptanceTemperature;
							}
							values.realReceiveQuantiry = detailData.list[0].realNum;//应海洪要求改的
							values.drugCode = detailData.list[0].drugCode;
							values.isUsual = detailData.list[0].isUsual;
							values.id = detailData.list[0].id;
							values.parentId = detailData.list[0].id;
							values.distributeCode = detailData.list[0].distributeCode;
							values.rowNo = detailData.list[0].rowNo;
							postData.push(values);
						}
						
						submitData.detailList = postData;
						submitData.distributeCode = detailData.distributeCode;
						if(barcode){
							submitData.barcode = barcode;
						}
						let count = 0;
						mui.each(submitData.detailList,function(index,item){
							count += Number(item.realReceiveQuantiry)
						});
						if(count > detailData.list[0].realNum){
							mui.toast('请注意:实到数量比配送数量多');
						}
						console.log(submitData,'submitData'); // 批号 数据
						document.activeElement.blur(); // 隐藏软键盘
						var btnArray = ['否', '是'];
						mui.confirm('是否确认验收?', '确认', btnArray, function(e) {
							if (e.index == 1) {
								
								var data = submitData;
								mui.ajaxRequest(checkUrl,{
									type: 'POST',
									data: submitData,
									showWaiting: true,
									contentType: "application/json",
									success: function(data){
										if(data.code === 200){
											var text = "验收成功!";
											if(data.data[0]){
												text = data.data[0];
											}
											mui.alert(text,'提示','确定',function (e) {
												var page =  plus.webview.getWebviewById('acc_not_list');
												mui.fire(page,'pagefresh',{ selectTabs: '1', query:{} });
												common.gotowin('acc_not_list',{  });
												plus.webview.currentWebview().close();
											},'div');
										}else{
											mui.alert(data.msg,'提示','确定',function (e) {},'div');
										}
									},
									error: function(xhr,type,errorThrown){
										console.log(xhr.responseText)
			                		}
								})
							}
						},'div')
					})
					
					
					//绑定输入实到数量验证
					var countModal = false;
					$$('.detailRow').on('keyup','.realReceiveQuantiry',function(){
						
						var _this = this,$this = $$(this);
						var value = Number(this.value?this.value:0);
						var realDeliveryQuantiry = detailData.list[0].realDeliveryQuantiry?detailData.list[0].realDeliveryQuantiry:0;
						var realReceiveQuantiry = detailData.list[0].realNum?detailData.list[0].realNum:0;
						var compareNum = realDeliveryQuantiry;
						var text = "实到数量不能大于配送数量"+compareNum+",且不能小于0!";
						if(barcode){
							compareNum = realReceiveQuantiry;
							text = "实到数量不能大于条码数量"+compareNum+",且不能小于0!";
						}
						
						if(!countModal){
							if(value<0 || value>compareNum){
								countModal = true;
								mui.alert(text,'提示','确定',function (e) {
									countModal = false;
									_this.value = compareNum;
								},'div')
							} 
						}
					});
					
					
					//生产日期与有效日期验证
					$$('.detailRow').on('change','.realProductTime,.realValidEndDate',function(){
						
						var _this = this,$this = $$(this),cls = this.className;
						var realProductTime = detailData.list[0].realProductTime?detailData.list[0].realProductTime:"0";
						var realValidEndDate = detailData.list[0].realValidEndDate?detailData.list[0].realValidEndDate:"0";
						var value = this.value?this.value:"0";
						var _realProductTime = "",_realValidEndDate = "";
						if(realProductTime.indexOf("-") != -1){
							_realProductTime = Number(realProductTime.replace(/-/g,""));
						}
						if(realValidEndDate.indexOf("-") != -1){
							_realValidEndDate = Number(realValidEndDate.replace(/-/g,""));
						}
						if(value.indexOf("-") != -1){
							value = Number(value.replace(/-/g,""));
						}
						if(cls.indexOf("realProductTime")!=-1){//生产日期
							var text1 = "生产日期不能大于有效日期!";
							if(value > _realValidEndDate){
								mui.alert(text1,'提示','确定',function (e) {
									_this.value = realProductTime;
								},'div')
							}
						}else if(cls.indexOf("realValidEndDate")!=-1){//有效期至
						var text2 = "有效日期不能小于生产日期!";
							if(value < _realProductTime){
								mui.alert(text2,'提示','确定',function (e) {
									_this.value = realValidEndDate;
								},'div')
							}
						}
					});
					
				})
			})(mui,jQuery);
		
		</script>
	</body>

</html>