<apex:page Controller="EquipmentSetShippmentReceived1Controller" showHeader="false" sidebar="false" id="allPage" action="{!init}" title="备品出库入库">
|
<head>
|
<meta name="format-detection" content="telephone=no"/>
|
</head>
|
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.instascan)}"/>
|
<apex:stylesheet value="{!URLFOR($Resource.EquipmentSetShippmentReceivedcss)}"/>
|
<script type="text/javascript">
|
function savejs() {
|
blockme();
|
var saveable = true;
|
j$("input[name$='inspectionResult']:checked").each(function() {
|
if (j$(this).parent().children("[name='onetoone']").size() > 0) {
|
var val = j$(this).parent().children("[name='onetoone']").val();
|
if (j$("input[name='onetoone_main'][value='"+val+"']").size() == 0) {
|
saveable = false;
|
} else {
|
if (j$("input[name='onetoone_main'][value='"+val+"']").parent().children("[name$='inspectionResult']").attr("checked") != "checked") saveable = false;
|
var stockdown = j$("input[name='onetoone_main'][value='"+val+"']").parent().find("[name='onetoone_main_down']").val();
|
if (stockdown == 'true') saveable = true;
|
}
|
}
|
})
|
if (saveable) {
|
save();
|
} else {
|
alert("一对一分配附属品不能单独下架!")
|
unblockUI();
|
}
|
}
|
function filljs1(ele) {
|
j$(ele).prop("disabled", true);
|
var cnt = {!esdListSize};
|
//获取两组元素
|
var checked = true
|
if(j$(ele).val() == "全部OK") {
|
checked = true;
|
j$(ele).val("全部取消");
|
} else {
|
checked = false;
|
j$(ele).val("全部OK");
|
}
|
for (var i=0; i<=cnt-1; i++) {
|
var targetSelect = document.getElementById('allPage:allForm:esdList:'+i+':inspectionResult');
|
if (targetSelect != null) {
|
// if (targetSelect.checked) checked=false;
|
targetSelect.checked=checked;
|
}
|
}
|
j$(ele).prop("disabled", false);
|
}
|
function filljsQR(qrcode) {
|
blockme();
|
var cbox = j$("[data-qr='"+qrcode+"']").children("input[type='checkbox']");
|
if (cbox.size() > 1) {
|
alert("数量管理附属品请手动打勾!");
|
}else {
|
cbox.prop('checked',true);
|
}
|
j$("#scanedqr").append("<li>"+qrcode+"</li>");
|
j$("#scanedqr").animate({ scrollTop: j$("#scanedqr").prop("scrollHeight")}, 1000);
|
unblockUI();
|
}
|
function checkMessage() {
|
if (j$(escapeVfId('allPage:allForm:done_flg')).val() == 'true') {
|
alert("保存完了");
|
}
|
}
|
|
function resetDetailDivMargintop() {
|
var handerHeight = document.getElementById('hander').clientHeight;
|
document.getElementById('detailDiv').style.marginTop = handerHeight + 'px';
|
}
|
|
window.onload = function hiddenName(){
|
if( document.getElementById('allPage:allForm:CDS_staff_mlktp')){
|
document.getElementById('allPage:allForm:CDS_staff_mlktp').style.visibility="hidden" ;
|
document.getElementById('allPage:allForm:CDS_staff_mlktp').style.width="200px" ;
|
}
|
resetDetailDivMargintop();
|
}
|
</script>
|
<style type="text/css">
|
.menu div.m_title{
|
width: 308px;
|
text-align: left;
|
margin: 0;
|
background:#DCDCDC;
|
/*height: 42px;*/
|
}
|
.dateFormat {
|
display: none;
|
}
|
#Step_tab {
|
list-style-type: none;
|
padding: 0;
|
height: 25px;
|
border-bottom: 5px solid #3b5998;
|
}
|
#Step_tab li {
|
position: relative;
|
width: 20%;
|
float: left;
|
margin: 0;
|
padding: 0;
|
text-align: center;
|
cursor: pointer;
|
}
|
#Step_tab li span {
|
margin: 0;
|
padding: 15px 0 11px;
|
color: #2daae1;
|
font-size: 12px;
|
font-weight: bold;
|
line-height: 1;
|
}
|
#Step_tab li.selected {
|
background: #3b5998;
|
}
|
#Step_tab li.selected span {
|
color: #fff;
|
}
|
|
div#main {
|
width: 320px;
|
}
|
|
div.rtop, div.rbottom {display:block; background: transparent; font-size:1px;}
|
div.rtop div {background:#DCDCDC;}
|
div.r1, div.r2, div.r3, div.r4 {display:block; overflow:hidden;}
|
div.r1, div.r2, div.r3 {height:1px;}
|
div.r2, div.r3, div.r4 {border-left:1px solid silver; border-right:1px solid silver;}
|
div.r1 {margin: 0 5px; background:silver;}
|
div.r2 {margin: 0 3px; border-width:0 2px;}
|
div.r3 {margin: 0 2px;}
|
div.r4 {margin: 0 1px; height: 2px;}
|
hr {
|
border-top: 2px dotted #f00;
|
color: #fff;
|
background-color: #fff;
|
height: 1px;
|
width: 90%;
|
}
|
.close {
|
color: #aaaaaa;
|
float: right;
|
font-size: 28px;
|
font-weight: bold;
|
}
|
.close:hover,
|
.close:focus {
|
color: #000;
|
text-decoration: none;
|
cursor: pointer;
|
}
|
.menu blockquote{
|
margin: 0;
|
padding: 1px;
|
list-style: none;
|
border-top: 1px solid #ddd;
|
}
|
</style>
|
<div id="myModal" class="modal">
|
|
<!-- Modal content -->
|
<div class="modal-content" >
|
<span class="close" onclick="stopScan()">×</span>
|
<p>扫描中</p>
|
<p>Code:<input type="text" id="qrcode"/></p>
|
<video playsinline="true" id="preview" style="width: 100%;z-index: 11;transform: scaleX(-1);margin-top: 10px;"></video>
|
扫码履历:
|
<ul id="scanedqr" style="list-style-type: none; text-align: center;padding: 0;width: 100%; height: 100px; overflow: auto">
|
</ul>
|
|
</div>
|
|
</div>
|
<apex:form id="allForm">
|
<apex:actionFunction name="save" action="{!save}" rerender="detail,message,done_flg" onComplete="unblockUI();checkMessage();resetDetailDivMargintop();" />
|
<apex:actionFunction name="Shippment1" action="{!Shippment1}" />
|
<apex:actionFunction name="Shippment2" action="{!Shippment2}" />
|
<apex:inputHidden value="{!done_flg}" id="done_flg"/>
|
<div id="main">
|
<div id="hander" class="freezehander">
|
<apex:outputPanel id="message">
|
<apex:pageMessages />
|
</apex:outputPanel>
|
<div style="text-align: right;margin-top: 10px;">
|
<apex:commandButton styleClass="commandbutton" onclick="savejs();" value="保存" rerender="dummy" rendered="{!IF(open_type='web', true, false)}" disabled="{!saveBtnDisabled}"/>
|
</div>
|
<apex:outputText id="saveBtnDisabled" value="{!saveBtnDisabled}" style="display: none;"/>
|
<!-- <apex:outputText value="(出库指示后取消)" style="color:red;" rendered="{!IF(SR_status='Received' && es.cancel_after_loaner_arranged__c, true, false)}"/> -->
|
<table style="border-collapse: collapse; font-size:13px;">
|
<colgroup>
|
<col width="150" />
|
<col width="170" />
|
</colgroup>
|
<tr>
|
<!-- 状态切换btn -->
|
<th colspan="2" style="font-size:20px;text-align: center;width:380px;">
|
<ul id="Step_tab">
|
<apex:outputPanel layout="none" rendered="{!IF(SR_status='Shippment', true, false)}">
|
<apex:outputPanel layout="none" rendered="{!IF(Step_status='下架', true, false)}">
|
<li class="selected"><span class="tabsize">下架</span></li>
|
<li onclick="javascript:Shippment2();"><span class="tabsize">出库检测</span></li>
|
</apex:outputPanel>
|
</apex:outputPanel>
|
|
</ul>
|
</th>
|
</tr>
|
</table>
|
<div style="text-align: right">
|
<apex:commandButton styleClass="commandbutton" onclick="qrsacn()" value="扫一扫" rerender="dummy" rendered="{!IF(Step_status='下架', true, false)}"/>
|
<apex:commandButton styleClass="commandbutton" onclick="filljs1(this);" value="全部OK" rerender="dummy" rendered="{!IF(Step_status='下架', true, false)}"/>
|
</div>
|
</div>
|
<apex:outputPanel id="detail">
|
|
<div id="detailDiv" class="detail">
|
<apex:variable var="indexloop" value="{!0}" />
|
<apex:variable var="SetName" value="" />
|
<apex:repeat value="{!esdList}" var="esdInfo" id="esdList" rendered="{!IF(SR_status='Shippment', true, false)}">
|
<apex:variable var="indexloop" value="{!indexloop+1}"/>
|
<apex:variable var="SetName" value="{!IF(SetName='', esdInfo.rec['Rental_Apply_Equipment_Set__r'].Id, SetName)}" />
|
<apex:outputPanel layout="none" rendered="{!IF(SetName=esdInfo.rec['Rental_Apply_Equipment_Set__r'].Id && indexloop != 1, true, false)}">
|
<br/>
|
</apex:outputPanel>
|
<apex:outputPanel layout="none" rendered="{!IF(SetName=esdInfo.rec['Rental_Apply_Equipment_Set__r'].Id, false, true)}">
|
<hr/>
|
<h3 style="padding: 5px;" class="detailtab">{!esdInfo.rec.Rental_Apply_Equipment_Set__r.Name}:{!esdInfo.rec.Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name}</h3>
|
<apex:variable var="SetName" value="{!esdInfo.rec['Rental_Apply_Equipment_Set__r'].Id}" />
|
</apex:outputPanel>
|
|
<apex:outputPanel layout="none" rendered="{!IF(indexloop == 1, true, false)}">
|
<h3 style="padding: 5px;" class="detailtab">{!esdInfo.rec.Rental_Apply_Equipment_Set__r.Name}:{!esdInfo.rec.Rental_Apply_Equipment_Set__r.Fixture_Set__r.Name}</h3>
|
</apex:outputPanel>
|
<div class="rtop">
|
<div class="r1"></div>
|
<div class="r2"></div>
|
<div class="r3"></div>
|
<div class="r4"></div>
|
</div>
|
<div class="menu">
|
<h2><div class="m_title"> <apex:outputField value="{!esdInfo.rec.Fixture_Name_F__c}" />
|
</div></h2>
|
<!-- TODO 回库はSet単位で、明細一つ一つのquickCheck要らないが、SetのquickCheck要る? -->
|
<ul style="{!IF(esdInfo.quickCheck, 'background:#BBFF66;', '')}">
|
<apex:outputPanel layout="none" rendered="{!IF(Step_status='下架', true, false)}">
|
<!-- <div style="position: relative; padding-left: 50px; background:{!IF(esdInfo.quickCheck, '#BBFF66', '')}"> -->
|
<li data-qr="{!esdInfo.rec.Fixture_QRCode_F__c}">
|
<!-- 202107721 ljh 1719 start -->
|
<!-- <span>{!$ObjectType.Rental_Apply_Equipment_Set_Detail__c.fields.StockDown__c.label}: </span> -->
|
<span>下架: </span>
|
<!-- 202107721 ljh 1719 end -->
|
<apex:outputPanel layout="none" rendered="{!esdInfo.editable}">
|
<apex:inputField id="inspectionResult" value="{!esdInfo.rec.StockDown__c}" style="margin:3px;width:75px;" />
|
</apex:outputPanel>
|
<apex:outputPanel layout="none" rendered="{!NOT(esdInfo.editable)}">
|
<span><apex:outputField id="inspectionResult1" value="{!esdInfo.rec.StockDown__c}" style="margin:3px;width:75px;" /></span>
|
</apex:outputPanel>
|
<apex:outputPanel layout="none" rendered="{!esdInfo.rec.FSD_OneToOneAccessory_Cnt__c > 0 && esdInfo.rec.Is_Body__c}">
|
<input type="hidden" name="onetoone_main" value="{!esdInfo.rec.Rental_Apply_Equipment_Set__c}"/>
|
<input type="hidden" name="onetoone_main_down" value="{!esdInfo.rec.StockDown__c}"/>
|
</apex:outputPanel>
|
<apex:outputPanel layout="none" rendered="{!esdInfo.rec.FSD_OneToOneAccessory_Cnt__c > 0 && esdInfo.rec.FSD_Is_OneToOne__c && esdInfo.rec.OneToOne_Flag__c}">
|
<input type="hidden" name="onetoone" value="{!esdInfo.rec.Rental_Apply_Equipment_Set__c}"/>
|
</apex:outputPanel>
|
</li>
|
<li>
|
<span>{!$ObjectType.Asset.fields.WH_location__c.label}: </span>
|
<span><apex:outputField value="{!esdInfo.rec.Asset__r.WH_location__c}" style="margin:3px;width:75px;"/></span>
|
</li>
|
<li>
|
<span>上次回收后检测时间: </span>
|
<span><apex:outputField value="{!esdInfo.rec.Asset__r.Pre_Reserve_RAES_Detail__r.After_Inspection_time__c}" style="margin:3px;width:75px;"/></span>
|
</li>
|
<li>
|
<span>{!$ObjectType.Rental_Apply_Equipment_Set_Detail__c.fields.Pre_After_Inspection_elapsed_days__c.label}: </span>
|
<span><apex:outputField value="{!esdInfo.rec.Pre_After_Inspection_elapsed_days__c}" style="margin:3px;width:75px;"/></span>
|
</li>
|
<li>
|
<span>{!$ObjectType.Rental_Apply_Equipment_Set_Detail__c.fields.SerialNumber_F__c.label}: </span>
|
<span><apex:outputField value="{!esdInfo.rec.SerialNumber_F__c}" style="margin:3px;width:75px;"/></span>
|
</li>
|
<!-- </div> -->
|
</apex:outputPanel>
|
</ul>
|
</div>
|
<div class="rbottom">
|
<div class="r4"></div>
|
<div class="r3"></div>
|
<div class="r2"></div>
|
<div class="r1"></div>
|
</div>
|
|
</apex:repeat>
|
</div>
|
</apex:outputPanel>
|
</div>
|
<script type="text/javascript">
|
var standalone = window.navigator.standalone,
|
userAgent = window.navigator.userAgent.toLowerCase(),
|
safari = /safari/.test( userAgent ),
|
ios = /iphone|ipod|ipad/.test( userAgent ),
|
ver = (navigator.userAgent).match(/OS (\d)?\d_\d(_\d)?/i)[0].split('_')[0].replace("OS ","");
|
|
let scanner = new Instascan.Scanner({ video: document.getElementById('preview'), refractoryPeriod: 5000,scanPeriod: 5 ,mirror: false});
|
scanner.addListener('scan', function (content) {
|
filljsQR(content);
|
});
|
|
function qrsacn() {
|
if (!standalone && !safari && ios) {
|
window.location.href="sfqr://scan";
|
} else {
|
j$(".modal").show();
|
//add by rentx 20210927 start 154PB-7 扫描的对话框显示靠右 不要挡住数据展示
|
j$(".modal-content").css("margin-left","350px");
|
//add by rentx 20210927 end 154PB-7 扫描的对话框显示靠右 不要挡住数据展示
|
Instascan.Camera.getCameras().then(function (cameras) {
|
if (cameras.length > 0) {
|
if (ver >= 13) {
|
scanner.start(cameras[1]);
|
} else {
|
scanner.start(cameras[0]);
|
}
|
} else {
|
console.error('No cameras found.');
|
}
|
}).catch(function (e) {
|
console.error(e);
|
});
|
}
|
}
|
|
function stopScan() {
|
scanner.stop().then(function () {
|
j$(".modal").hide();
|
});
|
j$("#scanedqr").children().remove();
|
}
|
|
j$(document).ready(function(){
|
j$( '#qrcode' ).unbind();
|
j$( '#qrcode' ).keypress( function ( e ) {
|
if ( e.which == 13 ) {
|
filljsQR(j$( '#qrcode' ).val());
|
return false;
|
}
|
});
|
});
|
</script>
|
</apex:form>
|
</apex:page>
|