Files
rd_mes_uniapp/pages/wms/pwoIn/pwoTask.vue
2025-12-18 14:11:48 +08:00

327 lines
9.9 KiB
Vue

<template>
<view>
<uni-collapse>
<uni-forms :modelValue="jobInForm" ref="jobInForm" :rules="rules">
<uni-collapse-item title="生产任务单" :open="true">
<uni-forms-item label="工单" :labelWidth='90' name="pwoCode">
<uni-easyinput type="text" disabled v-model="jobInForm.pwoCode"></uni-easyinput>
</uni-forms-item>
<uni-forms-item label="生产入库任务单" :labelWidth='90' name="pwoJobCode">
<uni-easyinput suffixIcon="scan" @iconClick="scanBar" type="text" @confirm="scanJobCode"
v-model="jobInForm.pwoJobCode"></uni-easyinput>
</uni-forms-item>
<uni-forms-item label="仓库编码" :labelWidth='90' name="equipmentCode">
<uni-easyinput suffixIcon="scan" :disabled=flag ref="equipmentCode" @iconClick="scanBar1"
type="text" v-model="equipmentCode">
</uni-easyinput>
</uni-forms-item>
</uni-collapse-item>
<uni-collapse-item title="生产任务单单明细" :open="true">
<!-- <u-button type="primary" @click="addDetail">新增</u-button>
<u-button type="primary" @click="submit">确认</u-button> -->
<uni-swipe-action>
<uni-swipe-action-item :rightOptions="rightOptions" :key="index"
v-for="(item, index) in jobInForm.mesPwoJobCvDetailList"
@click="(data) => clickDetail(index,data)" @change="swipChange">
<uni-badge :text="index+1" type="primary"></uni-badge>
<uni-forms-item label="物料" :labelWidth='90'
:name="'mesPwoJobCvDetailList.'+ index +'.materialCode'">
<uni-easyinput type="text" disabled v-model="item.materialCode"></uni-easyinput>
</uni-forms-item>
<uni-forms-item label="物料批号" :labelWidth='90'
:name="'mesPwoJobCvDetailList.'+ index +'.materialBatch'">
<uni-easyinput type="text" disabled v-model="item.materialBatch"></uni-easyinput>
</uni-forms-item>
<uni-forms-item label="物料箱号" :labelWidth='90'
:name="'mesPwoJobCvDetailList.'+ index +'.whCodeDest'">
<uni-easyinput type="text" disabled v-model="item.whCodeDest"></uni-easyinput>
</uni-forms-item>
<uni-forms-item label="数量" :labelWidth='90'
:name="'mesPwoJobCvDetailList.'+ index +'.locCodeDest'">
<uni-easyinput type="text" disabled v-model="item.locCodeDest"></uni-easyinput>
</uni-forms-item>
</uni-swipe-action-item>
</uni-swipe-action>
</uni-collapse-item>
</uni-forms>
</uni-collapse>
<u-button type="primary" @click="jobInSubmit">提交</u-button>
</view>
</template>
<script>
import {
handleConvert,
getEquipment,
addConversion,
listEmpEqpHistory,
listEmployee,
listConversion
} from "@/api/mes/jobIn.js";
import {
updatePwoJob,
listEquipment,
getPwoJob,
listPwoJob
} from "@/api/mes/jobReport.js"
export default {
data() {
return {
jobInForm: {
mesPwoJobCvDetailList: [],
},
equipmentCode: null,
flag: true,
show: false,
operateBy: null,
operateByCode: null,
rightOptions: [{
text: '删除',
style: {
backgroundColor: '#ff2a17'
}
}, ],
rules: {
materialCode: [{
required: true,
errorMessage: '请输入物料编码!'
}],
materialName: [{
required: false,
errorMessage: '请输入物料名称!'
}],
number: [{
required: true,
errorMessage: '请输入转移数量!'
}],
equipmentCode: [{
required: true,
errorMessage: '请输入设备编码!'
}]
}
}
},
mounted() {},
methods: {
addDetail() {
this.jobInForm.mesPwoJobCvDetailList.push({});
},
deleteDetail(index) {
console.log(index);
console.log(this.mesPwoJobCvDetailList);
this.jobInForm.mesPwoJobCvDetailList.splice(index, 1);
console.log(this.mesPwoJobCvDetailList);
},
clickDetail(itemIndex, {
position,
index
}) {
if (index == 0) {
this.deleteDetail(itemIndex);
}
},
reset(code) {
this.jobInForm = {
pwoJobCode: code,
mesPwoJobCvDetailList: [],
};
this.equipmentCode = null;
this.operateBy = null;
this.operateByCode = null;
},
eqpBind() {
let id = Number(this.jobInForm.pwoJobCode.substring(4));
console.log(id);
//判断是否有该设备
if (this.equipmentCode != "" && this.equipmentCode) {
let query = {
equipmentCode: this.equipmentCode
}
listEquipment(query).then(async res => {
if (res.rows.length != 0) {
//绑定设备
let data = {
id: this.jobInForm.pwoJobCode.slice(4),
eqpId: res.rows[0].id
}
// await getEquipment(response.jobInfo.eqpId).then(response => {
// this.equipmentCode = response.data.equipmentCode; //赋值设备编码
// console.log(response);
// })
updatePwoJob(data).then(res => {
this.$modal.msgSuccess("绑定成功!");
this.show = false;
this.flag = true;
this.scanJobCode(this.jobInForm.pwoJobCode);
})
} else {
this.$modal.msg("未查询到该设备编码!");
}
});
// listEmpEqpHistory(query).then(async res=>{
// if(res.rows.length!=0){
// this.operateBy = res.rows[res.rows.length-1].empName;
// this.operateByCode = res.rows[res.rows.length-1].empCode;
// }
// });
// handleConvert(id).then(async response => {
// console.log(response);
// this.jobInForm.pwoJobId = response.jobInfo.id;
// this.jobInForm.powJobCode = response.jobInfo.code;
// this.jobInForm.pwoId = response.jobInfo.pwoId;
// this.jobInForm.pwoCode = response.jobInfo.pwoCode;
// this.jobInForm.type = 2;
// console.log(this.jobInForm);
// if (response.materials != null && response.materials.length > 0){
// for (let i in response.materials){
// let obj = {};
// obj.materialCode = response.materials[i].cPtNo;
// obj.materialName = response.materials[i].cTitle;
// obj.whCodeDest = "op-" + response.jobInfo.opCode;
// obj.locCodeDest = this.equipmentCode + "-01";
// this.jobInForm.mesPwoJobCvDetailList.push(obj);
// }
// }else{
// this.$modal.msg("未查询到可转入的原材料!");
// }
// });
} else {
this.$modal.msg("请输入设备编码!");
}
},
scanJobCode(code) {
if (code) {
this.reset(code);
let id = Number(code.substring(4));
// getPwoJob(id).then(async res =>{
// console.log(res);
// })
let obj = {
code: code
}
listPwoJob(obj).then(async res => {
console.log(res);
if (res.rows.length != 0) {
if (!res.rows[0].eqpId) { //未绑定设备,设备编码框可用,绑定按钮显示
console.log('no');
this.$modal.msg("该作业未绑定设备,请绑定设备!");
this.flag = false;
this.show = true;
} else { //已绑定设备,
handleConvert(id).then(async response => {
await getEquipment(response.jobInfo.eqpId).then(response => {
this.equipmentCode = response.data
.equipmentCode; //赋值设备编码
console.log(response);
});
let query = {
equipmentCode: this.equipmentCode
}
listEmpEqpHistory(query).then(async res => {
if (res.rows.length != 0) {
this.operateBy = res.rows[res.rows.length -
1].empName;
this.operateByCode = res.rows[res.rows
.length - 1].empCode;
}
});
console.log(response);
this.jobInForm.pwoJobId = response.jobInfo.id;
this.jobInForm.powJobCode = response.jobInfo.code;
this.jobInForm.pwoId = response.jobInfo.pwoId;
this.jobInForm.pwoCode = response.jobInfo.pwoCode;
this.jobInForm.type = 2;
if (response.materials != null && response.materials.length >
0) {
for (let i in response.materials) {
let obj = {};
obj.materialCode = response.materials[i].cPtNo;
obj.materialName = response.materials[i].cTitle;
obj.materialBatch = response.materials[i].batchNo;
obj.whCodeDest = "op-" + response.jobInfo.opCode;
obj.availableNum = response.materials[i].availableNum;
obj.locCodeDest = this.equipmentCode + "-01";
this.jobInForm.mesPwoJobCvDetailList.push(obj);
}
} else {
this.$modal.msg("未查询到可转入的原材料!");
}
});
}
}
});
}
},
scanBarOperateBy() {
let obj = {
empCode: this.operateByCode
}
listEmployee(obj).then(async res => {
if (res.rows.length != 0) {
this.operateBy = res.rows[0].name;
} else {
this.$modal.msg("未查询到该人员信息!");
}
});
},
jobInSubmit() {
this.jobInForm.operateBy = this.operateBy
console.log(this.jobInForm);
this.$refs["jobInForm"].validate().then(valid => {
//作业转入
this.jobInForm.operateBy = this.operateBy
console.log(this.jobInForm);
addConversion(this.jobInForm).then(response => {
this.$modal.msgSuccess("转入成功!");
setTimeout(() => {
this.$tab.switchTab("/pages/work/index");
}, 500);
});
});
},
//作业编码
scanBar() {
const _this = this;
uni.scanCode({
scanType: ['barCode', 'qrCode'],
success: function(res) {
_this.jobInForm.pwoJobCode = res.result;
_this.scanJobCode(_this.jobInForm.pwoJobCode);
}
});
},
//设备编码
scanBar1() {
const _this = this;
uni.scanCode({
scanType: ['barCode', 'qrCode'],
success: function(res) {
_this.equipmentCode = res.result;
}
});
},
//操作人编码
scanBar2() {
const _this = this;
uni.scanCode({
scanType: ['barCode', 'qrCode'],
success: function(res) {
_this.operateByCode = res.result;
_this.scanBarOperateBy();
}
});
},
}
}
</script>
<style>
</style>