<template>
|
<!-- 报工 -->
|
<div class="page">
|
<u-form
|
:model="form"
|
ref="uForm"
|
:label-width="200"
|
:rules="rules"
|
:error-type="['toast']"
|
>
|
<u-form-item label="车间" :border-bottom="false" prop="work">
|
<u-radio-group v-model="form.work" :disabled="subdisabled">
|
<u-radio name="dt">导体</u-radio>
|
<u-radio name="tg">铜杆</u-radio>
|
</u-radio-group>
|
</u-form-item>
|
<u-form-item label="报工单号" :border-bottom="false" prop="taskNo">
|
<u-input
|
v-model="form.taskNo"
|
type="select"
|
placeholder="请扫描报工单号"
|
@click="open"
|
/>
|
</u-form-item>
|
<u-form-item label="工序" :border-bottom="false" prop="name">
|
<u-input
|
v-model="form.name"
|
type="select"
|
placeholder="请扫描报工单号"
|
/>
|
</u-form-item>
|
<u-form-item label="订单号" :border-bottom="false" prop="moOn">
|
<u-input
|
v-model="form.moOn"
|
type="select"
|
placeholder="点击选择"
|
@click="openList"
|
/>
|
</u-form-item>
|
<u-form-item label="零件号" :border-bottom="false" prop="partNo">
|
<u-input v-model="form.partNo" placeholder="" disabled />
|
</u-form-item>
|
<u-form-item label="零件描述" :border-bottom="false" prop="partName">
|
<u-input v-model="form.partName" placeholder="" disabled />
|
</u-form-item>
|
<u-form-item label="批量大小" :border-bottom="false" prop="qtyrequired">
|
<u-input v-model="form.qtyrequired" placeholder="" disabled />
|
</u-form-item>
|
<u-form-item
|
label="剩余数量"
|
:border-bottom="false"
|
prop="Jianqtyfinished"
|
>
|
<u-input v-model="form.Jianqtyfinished" placeholder="" disabled />
|
</u-form-item>
|
<u-form-item label="库位" :border-bottom="false" prop="proposedLocation">
|
<u-input v-model="form.proposedLocation" placeholder="" disabled />
|
</u-form-item>
|
<u-form-item label="报工类型" prop="productType">
|
<u-radio-group v-model="form.productType">
|
<u-radio name="dep">下机报工</u-radio>
|
<u-radio name="ndep">未下机报工</u-radio>
|
</u-radio-group>
|
</u-form-item>
|
<u-form-item label="接收零件" prop="receive">
|
<u-radio-group v-model="form.receive">
|
<u-radio name="mo">车间订单</u-radio>
|
<u-radio name="part">替代零件</u-radio>
|
</u-radio-group>
|
</u-form-item>
|
<u-form-item label="物料" prop="materialcost">
|
<u-radio-group v-model="form.materialcost" :disabled="true">
|
<u-radio name="倒冲">倒冲</u-radio>
|
<u-radio name="投料">投料</u-radio>
|
</u-radio-group>
|
</u-form-item>
|
<u-form-item label="工序" prop="value11">
|
<u-checkbox-group>
|
<u-checkbox
|
:name="item.name"
|
v-for="(item, index) in checkboxList"
|
:key="index"
|
v-model="item.value11"
|
@change="changeCheckbox"
|
:disabled="subdisabled || item.disabled"
|
>
|
{{ item.name }}
|
</u-checkbox>
|
</u-checkbox-group>
|
</u-form-item>
|
<u-form-item label="产出列表" :border-bottom="false"></u-form-item>
|
</u-form>
|
<view class="wrap">
|
<scroll-view class="packing-registration-scroll-list" scroll-y="true">
|
<u-cell-group
|
class="packing-registration-scroll-list-group"
|
:border="false"
|
>
|
<view
|
class="content"
|
v-for="(item, index) in InventoryReceiptList"
|
:key="index"
|
:index="index"
|
>
|
<view class="content-header">
|
<view class="content-header-title">{{ index + 1 }}</view>
|
</view>
|
<view class="content-body">
|
<view class="row-list">
|
<view class="_label">
|
<view class="_label-name">批号:</view>
|
</view>
|
<view class="_content">
|
{{ item.productNo }}
|
</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">
|
<view class="_label-name">数量:</view>
|
</view>
|
<view class="_content">
|
{{ item.value1 }}
|
</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">
|
<view class="_label-name">库位:</view>
|
</view>
|
<view class="_content">
|
{{ item.proposedLocation }}
|
</view>
|
</view>
|
</view>
|
</view>
|
</u-cell-group>
|
</scroll-view>
|
</view>
|
<!-- 填写报工单 -->
|
<modalBg ref="modalBg" :confirm="confirm">
|
<u-field
|
v-model="form.taskNo"
|
label="报工单号"
|
placeholder="请输入"
|
:border-bottom="false"
|
>
|
</u-field>
|
</modalBg>
|
<saveForm
|
ref="saveForm"
|
:operationTaskId="this.form"
|
@update="handleUpdate"
|
/>
|
<scan></scan>
|
</div>
|
</template>
|
|
<script>
|
import modalBg from "@/components/modal/modal-bg.vue";
|
import saveForm from "./components/saveForm.vue";
|
import scan from "@/components/scan/scan.vue";
|
export default {
|
components: {
|
modalBg,
|
saveForm,
|
scan,
|
},
|
data() {
|
return {
|
checkboxList: [
|
{
|
name: "工序的自动报告",
|
value: false,
|
disabled: false,
|
},
|
{
|
name: "简化物料检查",
|
value: false,
|
disabled: false,
|
},
|
],
|
InventoryReceiptList: [],
|
form: {
|
work: "",
|
taskNo: "",
|
name: "",
|
moOn: "",
|
partNo: "",
|
partName: "",
|
qtyrequired: "",
|
Jianqtyfinished: "",
|
proposedLocation: "",
|
productType: "dep",
|
receive: "mo", // 复选框组的值
|
materialcost: "",
|
autoReport: false,
|
simplifyMaterials: false,
|
},
|
rules: {
|
work: [
|
{
|
required: true,
|
message: "请选择车间",
|
trigger: ["change"],
|
},
|
],
|
taskNo: [
|
{
|
required: true,
|
message: "请选择报工单号",
|
trigger: ["change", "blur"],
|
},
|
],
|
name: [
|
{
|
required: true,
|
message: "请选择工序",
|
trigger: ["change", "blur"],
|
},
|
],
|
moOn: [
|
{
|
required: true,
|
message: "请选择订单号",
|
trigger: ["change", "blur"],
|
},
|
],
|
productType: [
|
{
|
required: true,
|
message: "请选择报工类型",
|
trigger: ["change"],
|
},
|
],
|
receive: [
|
{
|
required: true,
|
message: "请选择接收零件类型",
|
trigger: ["change"],
|
},
|
],
|
},
|
showSave: false,
|
operationTaskId: "",
|
subdisabled: false,
|
};
|
},
|
// 点击提交按钮的事件处理函数
|
onNavigationBarButtonTap() {
|
this.$refs.uForm.validate((valid) => {
|
if (valid) {
|
console.log("验证通过");
|
// 处理提交逻辑
|
this.$u.api.workReporting
|
.operationTask({
|
id: this.form.id,
|
})
|
.then((res) => {
|
console.log("res", res);
|
this.$refs.saveForm.open(res);
|
});
|
} else {
|
console.log("验证失败");
|
// 可以获取具体的错误信息
|
const errors = this.$refs.uForm.getError();
|
console.log("错误信息:", errors);
|
}
|
});
|
},
|
onReady() {
|
this.$refs.uForm.setRules(this.rules);
|
},
|
onShow() {
|
let that = this;
|
console.log("1111111111111");
|
uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器
|
uni.$on("scan", function (data) {
|
console.log("onscan");
|
//扫码成功后的回调,你可以写自己的逻辑代码在这里
|
console.log("页面扫码结果:", data.code);
|
if (data.code) {
|
let codeInfo = JSON.parse(data.code);
|
if (codeInfo.moOn) {
|
// 扫描报工单二维码
|
that.saveForm(codeInfo);
|
that.$u.api.workReporting
|
.getProductMainV1({
|
current: 1,
|
size: -1,
|
operationTaskId: codeInfo.id,
|
})
|
.then((res) => {
|
console.log("res", res);
|
let InventoryReceiptList = JSON.parse(res.data.records);
|
that.saveInventory(InventoryReceiptList);
|
});
|
console.log("this.InventoryReceiptList", that.InventoryReceiptList);
|
}
|
}
|
});
|
},
|
watch: {
|
"form.taskNo": function (newVal, oldVal) {
|
console.log("taskNo changed:", newVal, oldVal);
|
this.subdisabled = false;
|
},
|
},
|
methods: {
|
saveInventory(val) {
|
this.InventoryReceiptList = val;
|
},
|
// 多选处理
|
changeCheckbox(val) {
|
if (val.name === "工序的自动报告") {
|
this.form.autoReport = val.value;
|
}
|
if (val.name === "简化物料检查") {
|
this.form.simplifyMaterials = val.value;
|
}
|
},
|
handleUpdate() {
|
this.subdisabled = true;
|
},
|
// 打开弹框--后面还需要监听扫码枪扫码结果,赋值给报工单号字段,然后打开弹框选择订单号等操作
|
open() {
|
this.$refs.modalBg.open();
|
},
|
// 弹框保存
|
confirm() {
|
console.log("保存", this.form.taskNo);
|
},
|
// 选择订单号
|
openList() {
|
if (this.form.taskNo === "") {
|
uni.showToast({
|
title: "请先扫描或输入报工单号",
|
icon: "none",
|
});
|
return;
|
}
|
uni.navigateTo({
|
url: "/pages/product/report/orderList",
|
});
|
},
|
// 存订单号
|
setNo(val) {
|
this.form.moOn = val.moNo;
|
},
|
// 回显扫码的信息-报工单
|
saveForm(val) {
|
console.log("回显的数据", val);
|
this.form = {
|
id: val.id,
|
work: val.work,
|
taskNo: val.taskNo,
|
name: val.name,
|
moOn: val.moOn,
|
partNo: val.partNo,
|
partName: val.partName,
|
qtyrequired: val.qtyrequired,
|
Jianqtyfinished: val.qtyrequired - val.qtyfinished,
|
proposedLocation: val.proposedLocation,
|
productType: "dep",
|
receive: "mo", // 复选框组的值
|
materialcost: val.materialcost,
|
autoReport: false,
|
simplifyMaterials: false,
|
};
|
if (this.form.materialcost == "倒冲") {
|
this.checkboxList[1].disabled = true;
|
}
|
},
|
},
|
};
|
</script>
|
|
<style lang="scss">
|
@import "index.scss";
|
</style>
|