yxk_h5_master/pages/waitingDetection/processCheckout.vue

361 lines
12 KiB
Vue

<template>
<view class="page">
<view class="example-b">
<view class="item">
<view class="itemname fz36">报工单号</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="code" />
</view>
</view>
<view class="item">
<view class="itemname">工序名</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="processName"/>
</view>
</view>
<view class="item">
<view class="itemname">检验方案</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="checkPlanName" />
</view>
</view>
<view class="item">
<view class="itemname">产品</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="materielName" />
</view>
</view>
<view class="item">
<view class="itemname">供应商</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="supplierName" />
</view>
</view>
<view class="item">
<view class="itemname">主计量单位</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="unitUomlName" />
</view>
</view>
<view class="item">
<view class="itemname">辅助单位</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="supportUomName" />
</view>
</view>
<view class="item">
<view class="itemname">换算系数</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="convCoefficient" />
</view>
</view>
<view class="item">
<view class="itemname">报检数量(主单位)</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="checkCount" />
</view>
</view>
<view class="item redMi">
<view class="itemname">报检数量(辅单位)</view>
<view class="itemtext">
<input type="number" class="iteminput" v-model="checkCountSupport" placeholder="请输入报检数量(辅单位)" @input='toFixed1'/>
</view>
</view>
<view class="item">
<view class="itemname">合格数量(主单位)</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="conformityCount" />
</view>
</view>
<view class="item">
<view class="itemname">返工数量(主单位)</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="reworkCount" />
</view>
</view>
<view class="item">
<view class="itemname">报废数量(主单位)</view>
<view class="itemtext">
<input class="iteminput" disabled v-model="scrapCount" />
</view>
</view>
<view class="item redMi">
<view class="itemname">合格数量(辅单位)</view>
<view class="itemtext">
<input type="number" class="iteminput" v-model="conformityCountSupport" placeholder="请输入合格数量(辅单位)" @input='toFixed2'/>
</view>
</view>
<view class="item redMi">
<view class="itemname">返工数量(辅单位)</view>
<view class="itemtext">
<input type="number" class="iteminput" v-model="reworkCountSupport" placeholder="请输入退工数量(辅单位)" @input='toFixed3'/>
</view>
</view>
<view class="item redMi">
<view class="itemname">报废数量(辅单位)</view>
<view class="itemtext">
<input type="number" class="iteminput" v-model="scrapCountSupport" placeholder="请输入报废数量(辅单位)" @input='toFixed4'/>
</view>
</view>
</view>
<view class="fixMargin"></view>
<view class="fixBottom">
<view class="uni-flex uni-row">
<view style="-webkit-flex:1;flex: 1;">
<button type="primary" plain="true" style="width: 90%; background: #fff;" @click="gotoDetail">编辑检验明细</button>
</view>
<view style="-webkit-flex:1;flex: 1;">
<button type="primary" style="width: 90%;" @click="gotoMain">取消</button>
</view>
</view>
</view>
<mpvue-picker themeColor="#007AFF" ref="mpvuePicker" mode="selector" :deepLength="deepLength"
@onConfirm="pickerConfirm" :pickerValueArray="check_type"></mpvue-picker>
<mpvue-picker themeColor="#007AFF" ref="mpvuePicker2" mode="selector" :deepLength="deepLength"
@onConfirm="pickerConfirmType" :pickerValueArray="process_type"></mpvue-picker>
<view class="goHome" @click='goMain()'>
<img src="../../static/img/gohome.png">
</view>
</view>
</template>
<script>
import uniIcons from '@/components/uni-icons/uni-icons.vue';
import mpvuePicker from '@/components/mpvue-picker/mpvuePicker.vue';
import mpvuePicker1 from '@/components/mpvue-picker/mpvuePicker.vue';
export default {
components: {
uniIcons,mpvuePicker
},
data() {
return {
showPicker: false,
deepLength:1,
check_type: [],
process_type: [],
reportId: '',
code: '',
processName: '',
checkPlanName: '',
checkPlanId: '',
supplierName: '',
supplierId: '',
materielName: '',
materielId: '',
checkCount: '',
conformityCount: '',
reworkCount: '',
scrapCount: '',
unitUomName:'',
checkCountSupport:'',
conformityCountSupport:'',
reworkCountSupport:"",
scrapCountSupport:"",
supportUom:"",
supportUomName:"",
convCoefficient:"",
quantityAccuracy:'',
info: {
},
itemList: [],
deletDetailIds:[],
currentIndex: 0,
processDetail: [],
}
},
onLoad(option) {
var processCheckoutInfo = uni.getStorageSync('processCheckoutInfo');
if(processCheckoutInfo!=''&&processCheckoutInfo!=undefined){
this.itemList=processCheckoutInfo;
}
this.reportId = option.id;
this.getReport();
//初始化获取 检验结果
var _this = this;
this.$http.request({
url: '/apis/dict/getDictsByType',
params: {
type: 'check_result'
},
}).then(res=>{
if(res.statusCode == '200'){
var useType = res.data.datas;
for (let i = 0; i < useType.length; i++) {
var myVal=
{
'label': useType[i].name,
'value': useType[i].id
}
_this.check_type.push(myVal);
}
}
}).catch(err=>{
console.log(err);
});
//初始化获取 处理方式
var _this = this;
this.$http.request({
url: '/apis/dict/getDictsByType',
params: {
type: 'process_mode'
},
}).then(res=>{
if(res.statusCode == '200'){
var useType = res.data.datas;
for (let i = 0; i < useType.length; i++) {
var myVal=
{
'label': useType[i].name,
'value': useType[i].id
}
_this.process_type.push(myVal);
}
}
}).catch(err=>{
console.log(err);
});
},
methods: {
//报检数量
toFixed1() {
if (!isNaN(this.convCoefficient) && !isNaN(this.checkCountSupport)){
this.checkCountSupport = Number(this.checkCountSupport).toFixed(this.quantityAccuracy)
this.checkCount = Number(this.convCoefficient)*Number(this.checkCountSupport).toFixed(this.quantityAccuracy)
}
},
//合格数量
toFixed2() {
if (!isNaN(this.convCoefficient) && !isNaN(this.conformityCountSupport)){
this.conformityCountSupport = Number(this.conformityCountSupport).toFixed(this.quantityAccuracy)
this.conformityCount = Number(this.convCoefficient)*Number(this.conformityCountSupport).toFixed(this.quantityAccuracy)
}
},
//返工数量
toFixed3() {
if (!isNaN(this.convCoefficient) && !isNaN(this.reworkCountSupport)){
this.reworkCountSupport = Number(this.reworkCountSupport).toFixed(this.quantityAccuracy)
this.reworkCount = Number(this.convCoefficient)*Number(this.reworkCountSupport).toFixed(this.quantityAccuracy)
}
},
//返工数量
toFixed4() {
if (!isNaN(this.convCoefficient) && !isNaN(this.scrapCountSupport)){
this.scrapCountSupport = Number(this.scrapCountSupport).toFixed(this.quantityAccuracy)
this.scrapCount = Number(this.convCoefficient)*Number(this.scrapCountSupport).toFixed(this.quantityAccuracy)
}
},
//是否检验
checkboxChange(e,index){
if(e.detail.value.length==0){
this.$set(this.itemList[index],'whetherCheck',0)
}else{
this.$set(this.itemList[index],'whetherCheck',1)
}
},
getReport() {
var filterRes = {};
filterRes.reportId = this.reportId
this.$http.request({
url: '/apis/mes/reportCheck/buttonOfCheck',
params: filterRes,
})
.then(res => {
if(res.data.code == 0) {
this.code = res.data.HeadDetail.code?res.data.HeadDetail.code:''
this.processName = res.data.HeadDetail.processName?res.data.HeadDetail.processName:''
this.checkPlanName = res.data.HeadDetail.checkPlanName?res.data.HeadDetail.checkPlanName:''
this.checkPlanId = res.data.HeadDetail.checkPlanId?res.data.HeadDetail.checkPlanId:''
this.supplierName = res.data.HeadDetail.supplierName?res.data.HeadDetail.supplierName:''
this.supplierId = res.data.HeadDetail.supplierId? res.data.HeadDetail.supplierId:''
this.materielName = res.data.HeadDetail.materielName?res.data.HeadDetail.materielName:''
this.materielId = res.data.HeadDetail.materielId?res.data.HeadDetail.materielId:''
this.checkCount = 0
this.conformityCount =0
this.reworkCount = 0
this.scrapCount =0
this.unitUomlName = res.data.HeadDetail.unitUomlName?res.data.HeadDetail.unitUomlName:''
this.checkCountSupport = 0
this.conformityCountSupport = res.data.HeadDetail.conformityCountSupport?res.data.HeadDetail.conformityCountSupport:''
this.reworkCountSupport = res.data.HeadDetail.reworkCountSupport?res.data.HeadDetail.reworkCountSupport:''
this.scrapCountSupport = res.data.HeadDetail.scrapCountSupport?res.data.HeadDetail.scrapCountSupport:''
this.supportUom = res.data.HeadDetail.supportUom?res.data.HeadDetail.supportUom:''
this.supportUomName = res.data.HeadDetail.supportUomName?res.data.HeadDetail.supportUomName:''
this.convCoefficient = res.data.HeadDetail.convCoefficient?res.data.HeadDetail.convCoefficient:''
this.quantityAccuracy = res.data.HeadDetail.quantityAccuracy
if(!isNaN(this.convCoefficient)){
this.checkCountSupport = res.data.HeadDetail.checkCountSupport?res.data.HeadDetail.checkCountSupport:''
this.checkCount = Number(this.checkCountSupport)*Number(this.convCoefficient).toFixed(this.quantityAccuracy)
}
res.data.BadyDetail.forEach(item=>{
this.$set(item,'old',true);
})
this.itemList =this.itemList.length==0?res.data.BadyDetail:this.itemList
}
})
},
gotoDetail() {
if(this.conformityCountSupport ==''){
uni.showToast({
title: '请输入合格数量(辅单位)',
duration: 2000,
icon:"none"
});
return
} else {
let a=this.conformityCount?this.conformityCount:0;
let b=this.reworkCount?this.reworkCount:0;
let c=this.scrapCount?this.scrapCount:0;
let d=parseFloat(a)+parseFloat(b)+parseFloat(c);
if(d!=this.checkCount){
uni.showToast({
title: '合格数量、返工数量、报废数量的总和必须等于报检数量',
icon: "none",
duration: 2000
});
return
}
this.reworkCount = this.reworkCount?this.reworkCount:0
this.scrapCount = this.scrapCount?this.scrapCount:0
uni.navigateTo({
url: 'checkDetail?reportId='+this.reportId+"&reworkCount="+this.reworkCount+"&scrapCount="+this.scrapCount+"&conformityCount="+this.conformityCount+"&conformityCountSupport="+this.conformityCountSupport+"&reworkCountSupport="+this.reworkCountSupport+"&scrapCountSupport="+this.scrapCountSupport+"&checkCountSupport="+this.checkCountSupport
});
}
},
gotoMain() {
uni.switchTab({
url: "../main/main"
});
},
},
onBackPress(options) { //取消默认的返回事件.用来返回上一页时重新加载页面,删除本地缓存的巡检操作
if (options.from === 'backButton' || options.from === 'backbutton' || options.from === 'navigateBack') {
uni.redirectTo({
url: 'reportList'
});
return true;
}
},
}
</script>
<style scoped>
.fz36 {
font-size: 32upx !important;
font-weight: 700;
}
.mt {
margin-top: 20upx !important;
}
</style>