|
|
|
|
@ -0,0 +1,281 @@
|
|
|
|
|
<template>
|
|
|
|
|
<view class="page-product-receipt">
|
|
|
|
|
|
|
|
|
|
<page-head title="白坯检验" />
|
|
|
|
|
|
|
|
|
|
<u-form id="form" class="page-form" ref="form" label-width="180rpx">
|
|
|
|
|
<u-form-item required label="日期">
|
|
|
|
|
<u-input @click="showCalendar = true" placeholder="请选择日期" v-model="form.checkDate" :clearable="true" readonly :disabled="true" />
|
|
|
|
|
<u-icon name="close-circle-fill" @click="clearDate" color="rgb(96, 98, 102)" size="28"></u-icon>
|
|
|
|
|
</u-form-item>
|
|
|
|
|
<u-form-item required label="物料清单">
|
|
|
|
|
<u-input @click="clickShowList" v-model="form.materialName" placeholder="请选择物料清单" :show-action="false" readonly :disabled="true"></u-input>
|
|
|
|
|
<u-icon name="close-circle-fill" @click="clearMaterial" color="rgb(96, 98, 102)" size="28"></u-icon>
|
|
|
|
|
</u-form-item>
|
|
|
|
|
<u-form-item required label="检查数量">
|
|
|
|
|
<u-input placeholder="请输入检查数量(PC)" v-model="form.checkNum" :show-action="false"></u-input>
|
|
|
|
|
</u-form-item>
|
|
|
|
|
|
|
|
|
|
<u-form-item required label="是否合格">
|
|
|
|
|
<jPicker sureColor="#ff0000" moren="请选择是否合格" @bindpicker="selectIsQualified" showKey="key" valKey="value" :val="form.isQualified" :options="optionResults" />
|
|
|
|
|
</u-form-item>
|
|
|
|
|
|
|
|
|
|
<u-form-item label="不良数量">
|
|
|
|
|
<u-input placeholder="请输入不良数量(PC)" v-model="form.badNum" :show-action="false"></u-input>
|
|
|
|
|
</u-form-item>
|
|
|
|
|
|
|
|
|
|
<u-form-item label="不良选项">
|
|
|
|
|
<jPicker sureColor="#ff0000" moren="请选择不良选项" @bindpicker="selectBadItem" showKey="className" valKey="id" :val="form.badItem" :options="optionDefects" />
|
|
|
|
|
</u-form-item>
|
|
|
|
|
|
|
|
|
|
<u-form-item label="不合格原因">
|
|
|
|
|
<u-input placeholder="请填写不合格原因" v-model="form.remark" :show-action="false"></u-input>
|
|
|
|
|
</u-form-item>
|
|
|
|
|
|
|
|
|
|
</u-form>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<view id="button" class="bottom-bar">
|
|
|
|
|
<u-button type="primary" @click="submit" >提交</u-button>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<u-calendar v-model="showCalendar" :mode="'date'" @change="changeDate"></u-calendar>
|
|
|
|
|
|
|
|
|
|
<u-popup id="popup" v-model="showList" mode="center" width="90%" height="60%">
|
|
|
|
|
<scroll-view id="list" scroll-y="true" :style="{ height: listHeight + 'px' }" :lower-threshold="50">
|
|
|
|
|
<u-form class="list">
|
|
|
|
|
<view v-if="list.length > 0">
|
|
|
|
|
<view class="list-item" v-for="(item, index) in list" :key="index" @click="clickItem(index)" >
|
|
|
|
|
<lj-list-row label="物料编号:" :value="item.materialCode" />
|
|
|
|
|
<lj-list-row label="白坯名称:" :value="item.materialName" />
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view v-else> 暂无数据 </view>
|
|
|
|
|
</u-form>
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
|
|
|
|
</u-popup>
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
|
|
|
|
|
|
|
|
import PageHead from "@/components/lanju/page-head/index.vue";
|
|
|
|
|
import LjListRow from "@/components/lanju/lj-list-row/index.vue";
|
|
|
|
|
import JPicker from "@/components/J-Picker/jPicker.vue";
|
|
|
|
|
import {getCheckBpList, getQcDefectTypeClassList, submitCheckResult} from "@/pages/quality/BpCheck/model";
|
|
|
|
|
import {BasePage} from "@/components/base/page";
|
|
|
|
|
import {Component} from "vue-property-decorator";
|
|
|
|
|
import {removeLeadingZeros} from "@/utils/tool";
|
|
|
|
|
import {session} from "@/store/modules/session";
|
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
methods: { removeLeadingZeros },
|
|
|
|
|
components: {
|
|
|
|
|
JPicker,
|
|
|
|
|
LjListRow,
|
|
|
|
|
PageHead
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
export default class checkBp extends BasePage {
|
|
|
|
|
userinfo: any = uni.getStorageSync('userinfo');
|
|
|
|
|
|
|
|
|
|
form = {
|
|
|
|
|
checkDate:undefined,
|
|
|
|
|
materialCode:undefined,
|
|
|
|
|
materialName:undefined,
|
|
|
|
|
checkNum:undefined,
|
|
|
|
|
badNum:undefined,
|
|
|
|
|
isQualified:undefined,
|
|
|
|
|
badItem:undefined,
|
|
|
|
|
remark:undefined,
|
|
|
|
|
createBy: this.userinfo.userName,
|
|
|
|
|
createUserName: this.userinfo.nickName,
|
|
|
|
|
factoryCode: session.FactoryCode,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resetForm = {
|
|
|
|
|
checkDate:undefined,
|
|
|
|
|
materialCode:undefined,
|
|
|
|
|
materialName:undefined,
|
|
|
|
|
checkNum:undefined,
|
|
|
|
|
badNum:undefined,
|
|
|
|
|
isQualified:undefined,
|
|
|
|
|
badItem:undefined,
|
|
|
|
|
remark:undefined,
|
|
|
|
|
createBy: this.userinfo.userName,
|
|
|
|
|
createUserName: this.userinfo.nickName,
|
|
|
|
|
factoryCode: session.FactoryCode,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
showCalendar = false
|
|
|
|
|
showList = false
|
|
|
|
|
listHeight = 500
|
|
|
|
|
list = []
|
|
|
|
|
optionResults =[
|
|
|
|
|
{ key:"合格", value: "Y" },
|
|
|
|
|
{ key:"不合格", value: "N" },
|
|
|
|
|
]
|
|
|
|
|
optionDefects = []
|
|
|
|
|
|
|
|
|
|
rules = {
|
|
|
|
|
checkDate:"请选择日期",
|
|
|
|
|
materialCode:"请选择物料",
|
|
|
|
|
checkNum:"请填写检查数量",
|
|
|
|
|
isQualified:"请选择是否合格"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
unqualifiedRules = {
|
|
|
|
|
badNum:"请填写不良数量",
|
|
|
|
|
badItem:"请选择不良项"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onReady() {
|
|
|
|
|
getQcDefectTypeClassList(
|
|
|
|
|
{defectCode:"20240822001"}
|
|
|
|
|
).then(res=>{
|
|
|
|
|
if (res){
|
|
|
|
|
for (const item of res.rows){
|
|
|
|
|
if (item.remark === "白坯专用"){
|
|
|
|
|
this.optionDefects.push(item)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
clickItem(e){
|
|
|
|
|
this.form.materialCode = this.list[e].materialCode
|
|
|
|
|
this.form.materialName = this.list[e].materialName
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
this.showList = false
|
|
|
|
|
},200)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
changeDate(e){
|
|
|
|
|
this.form.checkDate = e.result;
|
|
|
|
|
this.clearMaterial()
|
|
|
|
|
getCheckBpList(this.form).then(res=>{
|
|
|
|
|
this.list = res
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
clearDate(){
|
|
|
|
|
this.form.checkDate = ""
|
|
|
|
|
this.clearMaterial()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
clearMaterial(){
|
|
|
|
|
this.form.materialCode = ""
|
|
|
|
|
this.form.materialName = ""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
clickShowList(){
|
|
|
|
|
if (!this.form.checkDate){
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: '请选择日期',
|
|
|
|
|
icon: 'none',
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.showList = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
submit(){
|
|
|
|
|
console.log(this.form)
|
|
|
|
|
|
|
|
|
|
for (const key in this.form){
|
|
|
|
|
if (!this.form[key] && this.rules[key]){
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: this.rules[key],
|
|
|
|
|
icon: 'none',
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//不合格
|
|
|
|
|
if (this.form.isQualified === "N"){
|
|
|
|
|
for (const key in this.form){
|
|
|
|
|
if (!this.form[key] && this.unqualifiedRules[key]){
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: this.unqualifiedRules[key],
|
|
|
|
|
icon: 'none',
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
submitCheckResult(this.form).then(res=>{
|
|
|
|
|
if (res.code === 200){
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: "提交成功",
|
|
|
|
|
icon: 'success',
|
|
|
|
|
mask: true,
|
|
|
|
|
duration: 1000
|
|
|
|
|
});
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.form = this.resetForm;
|
|
|
|
|
}, 1000);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
selectIsQualified(res : any){
|
|
|
|
|
this.form.isQualified = res.pickerName.value
|
|
|
|
|
if (this.form.isQualified === "Y"){
|
|
|
|
|
this.form.badNum = 0
|
|
|
|
|
}else {
|
|
|
|
|
this.form.badNum = undefined
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
selectBadItem(res : any){
|
|
|
|
|
this.form.badItem = res.pickerName.id
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
.list {
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
padding: 20rpx 20rpx 25rpx;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
color: #8d8989;
|
|
|
|
|
|
|
|
|
|
.list-item {
|
|
|
|
|
padding: 20rpx;
|
|
|
|
|
margin-bottom: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 奇数行背景色 */
|
|
|
|
|
.list-item:nth-child(odd) {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 偶数行背景色 */
|
|
|
|
|
.list-item:nth-child(even) {
|
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.list-item:hover{
|
|
|
|
|
box-shadow: 0 0 0 3px #0c7bf3;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::v-deep .list-item {
|
|
|
|
|
width: 100% !important;
|
|
|
|
|
}
|
|
|
|
|
</style>
|