|
|
|
|
<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>
|