You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

318 lines
9.5 KiB

<template>
<page-meta root-font-size="16px"></page-meta>
<uni-popup ref="popupResult" type="center">
<view class="uni-popup-view">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">零件号</view>
</view>
<view class="uni-list-cell-db">
<view class="uni-flex uni-row space-between">
<input class="uni-input" type="text" :disabled="true" v-model="itemDetail.itemCode" />
<view class="state-style type-style" :class="itemDetail.inspectType | inspectTypeStyle">
{{itemDetail.inspectType | inspectTypeDesc}}
</view>
</view>
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">数量</view>
</view>
<view class="uni-list-cell-db">
<view class="uni-flex space-between">
<input class="qty-input" type="text" :disabled="true" v-model="qty" />
<input class="qty-input" type="text" :disabled="true" v-model="uom"
style="width: 30%; padding:15rpx 5rpx" />
</view>
</view>
</view>
<!--<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">单位</view>
</view>
<view class="uni-list-cell-db">
<input class="uni-input" type="text" :disabled="true" v-model="uom" />
</view>
</view> -->
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">检验数量</view>
</view>
<view class="uni-list-cell-db">
<input class="uni-input" type="text" :disabled="true" v-model="itemDetail.inspectQty" />
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">不合格数量</view>
</view>
<view class="uni-list-cell-db">
<uni-easyinput :inputBorder="false" class="pda-easyinput" type="number" placeholder="请输入数字"
v-model="itemDetail.failedQty" @confirm="failedQtyConfirm" @blur="failedQtyConfirm" />
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">不合格原因</view>
</view>
<view class="uni-list-cell-db">
<uni-data-picker class='uni-data-picker' :border="false" placeholder="请选择原因" popup-title="不合格原因"
:localdata="failedReasonArray" v-model="itemDetail.failedReason">
</uni-data-picker>
<!-- <picker @change="failedReasonChange" :value="failedReasonIndex" :range="failedReasonArray"
range-key="name" placeholder="请选择原因">
<view class="uni-input">{{failedReasonArray[failedReasonIndex].name}}</view>
</picker> -->
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">报废数量</view>
</view>
<view class="uni-list-cell-db">
<uni-easyinput :inputBorder="false" placeholder="请输入数字" type="number"
v-model="itemDetail.crackQty">
</uni-easyinput>
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">下一步动作</view>
</view>
<view class="uni-list-cell-db">
<uni-data-picker class='uni-data-picker' :border="false" placeholder="请选择下一步动作"
popup-title="下一步动作" @change="nextStepChange" :localdata="nextStepArray" v-model="nextStep">
</uni-data-picker>
<!-- <picker :value="nextStepIndex" :range="nextStepArray" range-key="name" placeholder="请选择下一步动作"
@change="nextStepChange">
<view class="uni-input">{{nextStepArray[nextStepIndex].name}}</view>
</picker> -->
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">最终不合格</view>
</view>
<view class="uni-list-cell-db">
<uni-easyinput :inputBorder="false" placeholder="待计算" type="number" :disabled="true"
v-model="itemDetail.notPassedQty">
</uni-easyinput>
</view>
</view>
</view>
<view class="uni-popup-button-box">
<button class="uni-popup-button" type="primary" @click="submit">确定</button>
</view>
</view>
</uni-popup>
</template>
<script>
import {
getInspectTypeStyle,
getInspectTypeDesc
} from '@/common/basic.js';
export default {
data() {
return {
itemDetail: {},
failedReasonIndex: 0,
failedReasonArray: [{
text: '外观不良',
value: '外观不良'
}, {
text: '尺寸超差',
value: '尺寸超差'
}, {
text: '功能失效',
value: '功能失效'
}, {
text: '标签不符',
value: '标签不符'
}, {
text: '检验报告异常',
value: '检验报告异常'
}, {
text: '其他',
value: '其他'
}],
nextStep: '',
nextStepIndex: 0,
nextStepArray: [{
text: '部分不合格',
value: '部分不合格'
}, {
text: '全部不合格',
value: '全部不合格'
}, {
text: '挑选',
value: '挑选'
}],
inspectType: '', //免检 全检 抽检 挑选
failedQty: 0,
qty: 0,
uom: ''
}
},
props: {
itemCode: "",
},
filters: {
inspectTypeStyle: function(val) {
return getInspectTypeStyle(val);
},
inspectTypeDesc: function(val) {
return getInspectTypeDesc(val);
}
},
created() {
},
methods: {
openPopup(itemdetail) {
this.itemDetail = itemdetail;
this.qty = itemdetail.receiveQty.qty;
this.uom = itemdetail.receiveQty.uom;
this.inspectType = getInspectTypeDesc(this.itemDetail.inspectType);
this.$refs['popupResult'].open("center");
},
//不合格原因
failedReasonChange: function(e) {
// console.log('picker发送选择改变,携带值为:' + e.detail.value)
// this.failedReasonIndex = e.detail.value
// this.itemDetail.failedReason = this.failedReasonArray[this.failedReasonIndex].name;
},
//不合格数量确认事件
failedQtyConfirm() {
if (this.inspectType === '全检') //全检
{
this.itemDetail.notPassedQty = this.itemDetail.failedQty;
}
},
//清空不合格数量
failedQtyClear(value) {
},
//切换下一步动作
nextStepChange: function(e) {
// this.nextStepIndex = e.detail.value
//如果是抽检有下一步动作
if (this.inspectType === '抽检') //全检
{
// console.log('picker发送选择改变,携带值为:' + e.detail.value)
let isSucce = true;
let qty = this.itemDetail.receiveQty.qty //收货数量
let crackQty = this.itemDetail.crackQty; //报废数量
let failedQty = this.itemDetail.failedQty; //不合格数量
//不合格数量
if (failedQty < 0) {
uni.showToast({
title: '不合格数量不能小于0',
icon: 'error'
});
isSucce = false;
} else if (failedQty > 0) {
if (failedQty > qty) {
uni.showToast({
title: '不合格数量' + failedQty + '不能大于收货数量' + qty,
icon: 'error'
});
isSucce = false;
}
}
//报废数量
if (crackQty < 0) {
uni.showToast({
title: '报废数量不能小于0',
icon: 'error'
});
isSucce = false;
} else {
if (crackQty > qty) {
uni.showToast({
title: '报废数量' + crackQty + '不能大于收货数量' + qty,
icon: 'error'
});
isSucce = false;
}
}
if (isSucce) {
this.calcSampleFiledCount();
// this.$emit("inspectResult", this.itemDetail);
// this.$refs['popupResult'].close();
}
}
},
//计算最终不合格数量
// 如果是抽检:用户填了不合格数量,如果下一步动作是挑选,最终不合格数量就是填写的不合格数量
// 如果下一步动作是全部不合格,最终不合格数量等于 到货数量-报废数量
// 如果下一步动作是部分不合格,最终不合格数量等于 用户填写的不合格数量
//计算抽检的不合格数量
calcSampleFiledCount() {
//let nextStep = this.nextStepArray[this.nextStepIndex].name;
// 如果下一步动作是挑选,最终不合格数量就是填写的不合格数量
//如果下一步动作是全部不合格,最终不合格数量等于 到货数量-报废数量
//如果下一步动作是部分不合格,最终不合格数量等于 用户填写的不合格数量
if (this.nextStep === "挑选" || this.nextStep === "部分不合格") {
this.itemDetail.notPassedQty = this.itemDetail.failedQty;
} else if (this.nextStep === "全部不合格") {
this.itemDetail.notPassedQty = this.itemDetail.receiveQty.qty - this.itemDetail.crackQty;
}
},
//确定
submit() {
if (this.itemDetail.failedQty === '') {
uni.showToast({
title: '不合格数量不能为空',
icon: 'error',
duration: 2000
})
} else if (this.itemDetail.crackQty === '') {
uni.showToast({
title: '报废数量不能为空',
icon: 'error',
duration: 2000
})
} else if (this.itemDetail.failedReason === '') {
uni.showToast({
title: '不合格原因不能为空',
icon: 'error',
duration: 2000
})
} else {
this.$emit("inspectResult", this.itemDetail);
this.$refs['popupResult'].close();
}
}
}
}
</script>
<style scoped lang="scss">
.qty-input {
height: 50rpx;
padding: 15rpx 25rpx;
line-height: 50rpx;
font-size: 28rpx;
background: #FFF;
// flex: 1;
}
/deep/ .input-value {
font-size: 16px;
}
</style>