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.
345 lines
8.6 KiB
345 lines
8.6 KiB
<template> |
|
<ifrm ref="ifrm"> |
|
<!-- 工序检验 --> |
|
<u-sticky offset-top="10"> |
|
<uni-forms ref="form" err-show-type="toast"> |
|
<uni-forms-item name="allegation" |
|
><input |
|
type="text" |
|
v-model="value" |
|
@confirm="proConfrim" |
|
class="uni-input-border" |
|
placeholder="流程卡" |
|
/></uni-forms-item> |
|
</uni-forms> |
|
</u-sticky> |
|
|
|
<t-table> |
|
<t-tr> |
|
<t-td>流程卡号</t-td> |
|
<t-td>{{ tableObj.cardNo }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>车间订单号</t-td> |
|
<t-td>{{ tableObj.woCode }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>批单号</t-td> |
|
<t-td>{{ tableObj.batchNo }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>零件编码</t-td> |
|
<t-td>{{ tableObj.partCode }}</t-td> |
|
</t-tr> |
|
<!-- <t-tr> |
|
<t-td>零件名称</t-td> |
|
<t-td>{{ tableObj.partName }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>上序号</t-td> |
|
<t-td>{{ tableObj.frontOrders }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>上序名称</t-td> |
|
<t-td>{{ tableObj.frontPpsName }}</t-td> |
|
</t-tr> --> |
|
<t-tr> |
|
<t-td>工序号</t-td> |
|
<t-td>{{ tableObj.orders }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>工序名称</t-td> |
|
<t-td>{{ tableObj.ppsName }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>班组</t-td> |
|
<t-td>{{ tableObj.makeTeam }}</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>检验数量</t-td> |
|
<t-td><input type="number" v-model="tableObj.makeQty" /></t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>是否合格</t-td> |
|
<t-td> |
|
<picker |
|
@change="bindPickerChange" |
|
:value="pickerIndex" |
|
:range="array" |
|
> |
|
<view>{{ array[pickerIndex] || "请选择" }}</view> |
|
</picker> |
|
</t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>合格数量</t-td> |
|
<t-td |
|
><input |
|
:disabled="pickerIndex > 0" |
|
type="number" |
|
v-model="fillInObj.qualifiedQty" |
|
/></t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>不合格数量</t-td> |
|
<t-td |
|
><input |
|
:disabled="pickerIndex > 0" |
|
type="number" |
|
v-model="fillInObj.unqualifiedQty" |
|
/></t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td style="color: red">比例(%)</t-td> |
|
<t-td><input type="" type="number" v-model="fillInObj.scale" /></t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>不良原因</t-td> |
|
<t-td |
|
><uni-data-select |
|
v-model="fillInObj.poorReason" |
|
:localdata="reasonArr" |
|
></uni-data-select |
|
></t-td> |
|
</t-tr> |
|
<t-tr> |
|
<t-td>不良描述</t-td> |
|
<t-td |
|
><uni-easyinput |
|
type="textarea" |
|
v-model="fillInObj.poorMemo" |
|
></uni-easyinput |
|
></t-td> |
|
</t-tr> |
|
</t-table> |
|
<view class="buttonBox" |
|
><button |
|
class="button" |
|
type="primary" |
|
:disabled="!(Object.keys(tableObj).length > 1)" |
|
@click="submitClick" |
|
> |
|
保存 |
|
</button></view |
|
> |
|
</ifrm> |
|
</template> |
|
|
|
<script> |
|
import ifrm from "@/pages/index/ifrm"; |
|
import tTable from "@/components/t-table/t-table.vue"; |
|
import tTh from "@/components/t-table/t-th.vue"; |
|
import tTr from "@/components/t-table/t-tr.vue"; |
|
import tTd from "@/components/t-table/t-td.vue"; |
|
import scan from "../../mixin/scan.js"; |
|
export default { |
|
mixins: [scan], |
|
components: { |
|
ifrm, |
|
tTable, |
|
tTh, |
|
tTr, |
|
tTd, |
|
}, |
|
data() { |
|
return { |
|
value: "", |
|
tableObj: { |
|
makeQty: null, |
|
}, |
|
fillInObj: { |
|
qualifiedQty: null, |
|
unqualifiedQty: null, |
|
poorReason: "", |
|
poorMemo: "", |
|
}, |
|
pickerIndex: null, |
|
array: ["合格", "不合格", "NA"], |
|
reasonArr: [], |
|
}; |
|
}, |
|
onLoad() { |
|
this.reasonArr = []; |
|
uni.showLoading({ |
|
title: "加载中...", |
|
}); |
|
this.$u.api.dictionaryNew({ code: "defective_cause" }).then((res) => { |
|
let data = res.data; |
|
data.forEach((item) => { |
|
this.reasonArr.push({ |
|
value: item.dictKey, |
|
text: item.dictValue, |
|
}); |
|
uni.hideLoading(); |
|
}); |
|
}); |
|
// this.$ajax.request({ |
|
// url: "comBox/product/queryPoorReason", |
|
// method: "POST", |
|
// data: { |
|
// filterValue: null, |
|
// paging: { |
|
// pageSize: 9999999, |
|
// pageNumber: 1, |
|
// }, |
|
// baseParams: {}, |
|
// }, |
|
// success: (data) => { |
|
// data.list.forEach((item) => { |
|
// this.reasonArr.push({ |
|
// value: item.bcId, |
|
// text: item.name, |
|
// }); |
|
// }); |
|
// }, |
|
// }); |
|
}, |
|
methods: { |
|
bindPickerChange: function (e) { |
|
if (e.detail.value == 1) { |
|
this.fillInObj.unqualifiedQty = this.tableObj.makeQty; |
|
this.fillInObj.qualifiedQty = 0; |
|
} else { |
|
this.fillInObj.unqualifiedQty = 0; |
|
this.fillInObj.qualifiedQty = this.tableObj.makeQty; |
|
} |
|
this.pickerIndex = e.detail.value; |
|
}, |
|
getBarCode(code) { |
|
this.getData(code); |
|
}, |
|
proConfrim(e) { |
|
uni.showLoading({ |
|
title: "加载中...", |
|
}); |
|
this.getBarCode(e.target.value); |
|
}, |
|
getData(code) { |
|
if (!code) return; |
|
this.value = code; |
|
this.$u.api |
|
.loadProTest({ cardNo: code }) |
|
.then((res) => { |
|
let data = res.data; |
|
this.value = ""; |
|
this.tableObj = data; |
|
this.pickerIndex = 0; |
|
this.fillInObj = { |
|
unqualifiedQty: 0, |
|
qualifiedQty: this.tableObj.makeQty, |
|
poorReason: "", |
|
poorMemo: "", |
|
}; |
|
uni.showToast({ |
|
title: "数据获取成功", |
|
}); |
|
uni.hideLoading(); |
|
}) |
|
.catch((err) => {}); |
|
// this.$ajax.request({ |
|
// url: "pdaLoad/loadProTest/" + code, |
|
// method: "GET", |
|
// success: (data) => { |
|
// this.value = ""; |
|
// this.tableObj = data.pdaProRelevant; |
|
// this.pickerIndex = 0; |
|
// this.fillInObj = { |
|
// unqualifiedQty: 0, |
|
// qualifiedQty: this.tableObj.makeQty, |
|
// poorReason: "", |
|
// poorMemo: "", |
|
// }; |
|
// uni.showToast({ |
|
// title: "数据获取成功", |
|
// }); |
|
// }, |
|
// }); |
|
}, |
|
submitClick() { |
|
const num = |
|
Number(this.fillInObj.unqualifiedQty) + |
|
Number(this.fillInObj.qualifiedQty); |
|
if (num > this.tableObj.makeQty) { |
|
return uni.showToast({ |
|
title: "合格与不合格数量之和不能大于检验数量", |
|
icon: "none", |
|
}); |
|
} |
|
if (this.pickerIndex == 1) { |
|
if (this.fillInObj.poorReason == "" || this.fillInObj.poorMemo == "") { |
|
return uni.showToast({ |
|
title: "请填写原因或描述!!!", |
|
icon: "none", |
|
}); |
|
} |
|
} |
|
if ( |
|
Number(this.fillInObj.scale) > 100 || |
|
Number(this.fillInObj.scale) < 0 |
|
) { |
|
return uni.showToast({ |
|
title: "比例所填值的范围在 0~100!!!", |
|
icon: "none", |
|
}); |
|
} |
|
uni.showLoading({ |
|
title: "加载中...", |
|
}); |
|
this.fillInObj.checkResult = this.pickerIndex + 1; |
|
this.fillInObj.makeQty = this.tableObj.makeQty; |
|
this.fillInObj.wpId = this.tableObj.wpId; |
|
this.$u.api.saveProCheck(this.fillInObj).then((res) => { |
|
uni.showToast({ |
|
title: "检验成功", |
|
}); |
|
this.pickerIndex = null; |
|
this.tableObj = { |
|
makeQty: null, |
|
}; |
|
this.fillInObj = { |
|
qualifiedQty: null, |
|
unqualifiedQty: null, |
|
poorReason: "", |
|
poorMemo: "", |
|
}; |
|
this.value = ""; |
|
uni.hideLoading(); |
|
}); |
|
// this.$ajax.request({ |
|
// url: "pdaSave/saveProCheck", |
|
// method: "POST", |
|
// data: this.fillInObj, |
|
// success: (data) => { |
|
// uni.showToast({ |
|
// title: "检验成功", |
|
// }); |
|
// this.pickerIndex = null; |
|
// this.tableObj = { |
|
// makeQty: null, |
|
// }; |
|
// this.fillInObj = { |
|
// qualifiedQty: null, |
|
// unqualifiedQty: null, |
|
// poorReason: "", |
|
// poorMemo: "", |
|
// }; |
|
// this.value = ""; |
|
// }, |
|
// }); |
|
}, |
|
}, |
|
onNavigationBarButtonTap(btn) { |
|
this.$refs.ifrm.topMenuClick(btn); |
|
}, |
|
onShow() {}, |
|
}; |
|
</script> |
|
|
|
<style scoped> |
|
.tabsBox { |
|
margin-top: 40rpx; |
|
} |
|
|
|
.contentBox { |
|
} |
|
</style> |