|
|
@@ -2,43 +2,51 @@
|
|
|
@section('title')缓存架入库-入库管理@endsection
|
|
|
|
|
|
@section('content')
|
|
|
- <div class="container-fluid" id="container">
|
|
|
+ <div class="container-fluid d-none" id="container">
|
|
|
<div class="row">
|
|
|
<div class="card offset-md-1 col-md-5 col-sm-12">
|
|
|
<div class="card-body">
|
|
|
- <div class="form-group text-center font-weight-bold h4">
|
|
|
+ <div class="form-group text-center font-weight-bold h4 mt-2" id="header_title">
|
|
|
入库信息
|
|
|
</div>
|
|
|
<div class="form-group row">
|
|
|
<label for="asn" class="col-sm-2 col-3 text-right">ASN号:</label>
|
|
|
- <input type="text" class="form-control col-8" :class="errors.asn ? 'is-invalid' : ''" id="asn" v-model="info.asn" @blur="checkAsn()" placeholder="只需填写后几位,自动补充">
|
|
|
+ <div tabindex="0" @keydown="enterVal($event,'asn')" class="form-control col-8 overflow-hidden" :contenteditable="!isOnlyKeyboardEnter" :class="errors.asn ? 'is-invalid' : ''"
|
|
|
+ id="asn" @blur="checkAsn()">@{{ info.asn ? info.asn : '只需填写后几位,自动补充' }}</div>
|
|
|
<span class="invalid-feedback offset-2" role="alert" v-if="errors.asn">
|
|
|
<strong>@{{ errors.asn[0] }}</strong>
|
|
|
</span>
|
|
|
</div>
|
|
|
<div class="form-group row">
|
|
|
<label for="ide" class="col-sm-2 col-3 text-right">料箱号:</label>
|
|
|
- <input type="text" class="form-control col-8" :class="errors.ide ? 'is-invalid' : ''" id="ide" v-model="info.ide" @blur="checkIde()" placeholder="只需填写后几位,自动补充">
|
|
|
+ <div tabindex="0" @keydown="enterVal($event,'ide')" class="form-control col-8 overflow-hidden" :contenteditable="!isOnlyKeyboardEnter" :class="errors.ide ? 'is-invalid' : ''"
|
|
|
+ id="ide" @blur="checkIde()">@{{ info.ide ? info.ide : '只需填写后几位,自动补充' }}</div>
|
|
|
<span class="invalid-feedback offset-2" role="alert" v-if="errors.ide">
|
|
|
<strong>@{{ errors.ide[0] }}</strong>
|
|
|
</span>
|
|
|
</div>
|
|
|
- <div class="input-group row">
|
|
|
+ <div class="form-group row">
|
|
|
<label for="barCode" class="col-sm-2 col-3 text-right">条码:</label>
|
|
|
- <input type="text" class="form-control rounded col-sm-5 col-8 ml-sm-1 ml-2" :class="errors.barCode ? 'is-invalid' : ''" id="barCode" @blur="codeBlur()" @keydown.enter="checkInfo()" v-model="info.barCode">
|
|
|
- <div class="input-group-append mt-sm-0 mt-4">
|
|
|
- <span class="input-group-text d-none d-sm-block">@数量</span>
|
|
|
- <label for="amount" class="d-sm-none col-4 text-right">数量:</label>
|
|
|
- <span class="input-group-text p-0 border-0">
|
|
|
- <input class="form-control" type="number" :class="errors.amount ? 'is-invalid' : ''" step="1" min="1" id="amount" v-model="info.amount">
|
|
|
- </span>
|
|
|
- </div>
|
|
|
+ <div tabindex="0" @keydown="enterVal($event,'barCode')" class="form-control col-8 overflow-hidden" :contenteditable="!isOnlyKeyboardEnter" :class="errors.barCode ? 'is-invalid' : ''"
|
|
|
+ id="barCode">@{{ info.barCode }}</div>
|
|
|
<span class="invalid-feedback offset-2" role="alert" v-if="errors.barCode">
|
|
|
<strong>@{{ errors.barCode[0] }}</strong>
|
|
|
</span>
|
|
|
</div>
|
|
|
+ <div class="form-group row">
|
|
|
+ <label for="amount" class="col-sm-2 col-3 text-right">数量:</label>
|
|
|
+ <div tabindex="0" @keydown="enterVal($event,'amount')" class="form-control col-8 overflow-hidden"
|
|
|
+ :class="errors.amount ? 'is-invalid' : ''" id="amount" type="number" :contenteditable="!isOnlyKeyboardEnter" >@{{ info.amount }}</div>
|
|
|
+ <span class="invalid-feedback offset-2" role="alert" v-if="errors.amount">
|
|
|
+ <strong>@{{ errors.amount[0] }}</strong>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
<div class="input-group row mt-5">
|
|
|
- <button type="submit" class="btn btn-success offset-2 col-9" @click="checkInfo()">提交</button>
|
|
|
+ <button type="submit" class="btn btn-success offset-2 col-6 col-sm-8" @click="checkInfo()">提交</button>
|
|
|
+ <div class="custom-control custom-checkbox mt-2 d-sm-none">
|
|
|
+ <input type="checkbox" class="custom-control-input" id="customCheck" v-model="isOnlyKeyboardEnter">
|
|
|
+ <label class="custom-control-label" for="customCheck">键盘</label>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -99,14 +107,31 @@
|
|
|
errors:{},
|
|
|
shelfOccupy:{},
|
|
|
selectedBox:{},
|
|
|
+ isAndroid:false,
|
|
|
+ isOnlyKeyboardEnter:true,
|
|
|
},
|
|
|
mounted(){
|
|
|
+ if (navigator.userAgent.indexOf("Android")!==-1)this.isAndroid = true;
|
|
|
@foreach($storages as $storage)this.$set(this.shelfOccupy,"{{$storage->station->code}}",true);@endforeach
|
|
|
- this.codeFocus();
|
|
|
- this.globalClick();
|
|
|
+ //this.codeFocus();
|
|
|
+ //this.globalClick();
|
|
|
this.createBefore();
|
|
|
+ this.pageInit();
|
|
|
+ $("#container").removeClass("d-none");
|
|
|
},
|
|
|
methods:{
|
|
|
+ //页面初始化
|
|
|
+ pageInit(){
|
|
|
+ if (!this.isAndroid)return;
|
|
|
+ let element = document.getElementById("navbarSupportedContent").parentElement;
|
|
|
+ element.className = "row";
|
|
|
+ element.children[0].className += " col-5";
|
|
|
+ element.innerHTML = element.children[0].outerHTML;
|
|
|
+ document.getElementById("header_title").className += " col-5";
|
|
|
+ element.append(document.getElementById("header_title"));
|
|
|
+ document.getElementById("menu").remove();
|
|
|
+ document.getElementById("demand-div").remove();
|
|
|
+ },
|
|
|
//选中填充料箱
|
|
|
fillingBox(ideCode){
|
|
|
this.$set(this.selectedBox,ideCode,this.selectedBox[ideCode] ? !this.selectedBox[ideCode] : true);
|
|
|
@@ -144,11 +169,11 @@
|
|
|
},
|
|
|
codeBlur(){
|
|
|
if (this.info.asn && this.info.ide && !this.info.amount){
|
|
|
- this.globalClick(false);
|
|
|
+ //this.globalClick(false);
|
|
|
window.tempTip.inputVal('请输入数量:',(amount)=>{
|
|
|
this.$set(this.info,'amount',amount);
|
|
|
if (this.info.asn && this.info.ide && this.info.barCode && this.info.amount)this.checkInfo();
|
|
|
- this.globalClick();
|
|
|
+ //this.globalClick();
|
|
|
});
|
|
|
}
|
|
|
},
|
|
|
@@ -206,6 +231,32 @@
|
|
|
ides.forEach((ideCode)=>{
|
|
|
this.$set(this.selectedBox,ideCode,this.selectedBox[ideCode] ? !this.selectedBox[ideCode] : true);
|
|
|
});
|
|
|
+ },
|
|
|
+ enterVal(e,type){
|
|
|
+ /*if (e.keyCode === 8 && this.info[type] && this.isOnlyKeyboardEnter){this.$set(this.info,type,this.info[type].slice(0,-1));return;}
|
|
|
+ if (type === 'amount'){
|
|
|
+ if((e.keyCode>=48 && e.keyCode<=57) || (e.keyCode>=96 && e.keyCode<=105)){
|
|
|
+ if (!this.isOnlyKeyboardEnter)return;
|
|
|
+ if (this.info[type])this.$set(this.info,type,this.info[type] += e.key);
|
|
|
+ else this.$set(this.info,type,e.key);
|
|
|
+ }else e.preventDefault();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!this.isOnlyKeyboardEnter)return;
|
|
|
+ if ((e.keyCode<48 || e.keyCode>105) || (e.keyCode>57 && e.keyCode<65) || (e.keyCode>90 && e.keyCode<96))return;
|
|
|
+ if (this.info[type])this.$set(this.info,type,this.info[type] += e.key);
|
|
|
+ else this.$set(this.info,type,e.key);*/
|
|
|
+ if (e.keyCode === 229){e.preventDefault();return;}
|
|
|
+ if (e.keyCode === 8 && this.info[type]){this.$set(this.info,type,this.info[type].slice(0,-1));return;}
|
|
|
+ if (e.key.length>1)return;
|
|
|
+ if (e.key.match(/[a-zA-Z0-9\-]/g)===null)return;
|
|
|
+ if (type === 'amount'){
|
|
|
+ if (e.key.match(/[0-9]/g)===null)return;
|
|
|
+ if (this.info.maximum && Number((this.info[type] ? this.info[type] : '0')+e.key)>this.info.maximum) return;
|
|
|
+ }
|
|
|
+ if (this.info[type])this.$set(this.info,type,this.info[type] += e.key);
|
|
|
+ else this.$set(this.info,type,e.key);
|
|
|
+ this.downSign();
|
|
|
}
|
|
|
},
|
|
|
});
|