中航光电PDA端
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

3 weeks ago
<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>
3 weeks ago
<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>
3 weeks ago
</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: [],
3 weeks ago
};
},
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() {},
};
3 weeks ago
</script>
<style scoped>
.tabsBox {
margin-top: 40rpx;
}
3 weeks ago
.contentBox {
}
3 weeks ago
</style>