Browse Source

修改到货检验参数

wms3.0_pda
李俊城 1 year ago
parent
commit
da79f72625
  1. 29
      common/basic.js
  2. 1
      mycomponents/qty/RecommendQty.vue
  3. 11
      pages/inspect/coms/inspectComDetailCard.vue
  4. 108
      pages/inspect/job/inspectDetail.vue
  5. 16
      pages/inspect/job/inspectJob.vue
  6. 206
      pages/inspect/job/inspectResult.vue
  7. 7
      pages/purchaseReceipt/job/receiptDetail.vue
  8. 880
      pages/putaway/record/putawayRecord.vue

29
common/basic.js

@ -4,7 +4,7 @@ export {
} }
let jobStatusList = []; let jobStatusList = [];
let itemStatusList =[]; let itemStatusList = [];
let locationTypeList = []; let locationTypeList = [];
let uomList = []; let uomList = [];
let inventoryStatusList = []; let inventoryStatusList = [];
@ -635,12 +635,12 @@ export function queryManageModel(managementList, itemCode) {
} }
} }
export function getPackingNumberAndBatch(managementList, itemCode,packingNumber,batch) { export function getPackingNumberAndBatch(managementList, itemCode, packingNumber, batch) {
var itemInfo = { var itemInfo = {
packingNumber: "", packingNumber: "",
batch: "" batch: ""
} }
var manageType = queryManageModel(managementList, itemCode) var manageType = queryManageModel(managementList, itemCode)
if (manageType == "BY_QUANTITY") { if (manageType == "BY_QUANTITY") {
itemInfo.packingNumber = "" itemInfo.packingNumber = ""
@ -677,19 +677,26 @@ export function getPackingNumberAndBatch(managementList, itemCode,packingNumber,
// scanErrorAudio(); // scanErrorAudio();
// } // }
export function compare(key) { export function compareTime() {
return function(a, b) {
// 按照时间降序
return Date.parse(a.time) - Date.parse(a.time)
}
}
//升序
export function compareAsc(key) {
return function(a, b) { return function(a, b) {
var val1 = a[key]; var val1 = a[key];
var val2 = b[key]; var val2 = b[key];
return val2 - val1; return val1 - val2;
} }
} }
//倒序
export function compareDesc(key) { export function compareDesc(key) {
return function(a, b) { return function(a, b) {
var val1 = a[key]; var val1 = a[key];
var val2 = b[key]; var val2 = b[key];
return val1 - val2; return val2 - val1;
} }
} }
@ -704,9 +711,9 @@ export function goHome() {
*/ */
export function getTodayDate() { export function getTodayDate() {
var startTime = new Date(new Date().toLocaleDateString()).getTime(); var startTime = new Date(new Date().toLocaleDateString()).getTime();
var endTime = startTime+24*60*60*1000-1 var endTime = startTime + 24 * 60 * 60 * 1000 - 1
console.log("获取时间",startTime+","+endTime) console.log("获取时间", startTime + "," + endTime)
return startTime+","+endTime; return startTime + "," + endTime;
} }
export function getCurrDate() { export function getCurrDate() {
@ -835,7 +842,7 @@ export function getDataSource(subList) {
item.subList.push(newDetail); item.subList.push(newDetail);
items.push(item) items.push(item)
} else { } else {
item.qty += Number(detail.qty) item.qty += Number(detail.qty)
let newDetail = createDetailInfo(detail); // let newDetail = createDetailInfo(detail); //
item.subList.push(newDetail); item.subList.push(newDetail);
} }

1
mycomponents/qty/RecommendQty.vue

@ -1,6 +1,5 @@
<template> <template>
<view> <view>
推荐
<view class="uni-flex uni-row center"> <view class="uni-flex uni-row center">
<status v-if="isShowStatus" :status='dataContent.inventoryStatus'></status> <status v-if="isShowStatus" :status='dataContent.inventoryStatus'></status>
<view class="text_recommend "> <view class="text_recommend ">

11
pages/inspect/coms/inspectComDetailCard.vue

@ -2,6 +2,9 @@
<view class="" style="background-color: #fff;"> <view class="" style="background-color: #fff;">
<view class=""> <view class="">
<view class="" style="font-size: 32rpx;margin-left: 20rpx;"> <view class="" style="font-size: 32rpx;margin-left: 20rpx;">
<view class="">
检验类型 : {{getInspectType(jobContent.inspectType)}}
</view>
<view class=""> <view class="">
收货数量 : {{jobContent.receiveQty}}{{getUnitInfo(jobContent.uom)}} 收货数量 : {{jobContent.receiveQty}}{{getUnitInfo(jobContent.uom)}}
</view> </view>
@ -73,9 +76,9 @@
getDetailEditRemoveOption, getDetailEditRemoveOption,
getDetailRemoveOption getDetailRemoveOption
} from '@/common/array.js'; } from '@/common/array.js';
import { import {
getUnitInfo getUnitInfo,
getInspectType
} from '@/common/directory.js'; } from '@/common/directory.js';
export default { export default {
@ -144,6 +147,10 @@
}, },
methods: { methods: {
getInspectType(value){
return getInspectType(value)
},
swipeClick(e, item,index) { swipeClick(e, item,index) {
if (e.content.text == "详情") { if (e.content.text == "详情") {
this.detail(item) this.detail(item)

108
pages/inspect/job/inspectDetail.vue

@ -45,7 +45,7 @@
} from '@/common/basic.js'; } from '@/common/basic.js';
import { import {
getInventoryStatusName, getInventoryStatusName,
} from '@/common/directory.js'; } from '@/common/directory.js';
import { import {
@ -89,25 +89,28 @@
locationTypeList: [], locationTypeList: [],
managementList: [], managementList: [],
selectedItem: {}, selectedItem: {},
failedQty:0, failedQty: 0,
crackQty:0 crackQty: 0,
inspectType: ""
}; };
}, },
onLoad(option) { onLoad(option) {
this.id = option.id; this.id = option.id;
this.failedQty = option.failedQty; this.failedQty = option.failedQty;
this.crackQty = option.crackQty; this.crackQty = option.crackQty;
this.inspectType = option.inspectType;
if (this.id != undefined) {
if (this.id != undefined && this.inspectType == "FULL") {
// // // //
// if (option.status == "1") { if (option.status == "1") {
// this.receive((callback => { this.receive((callback => {
// this.received = true; this.received = true;
// this.getDetail(); this.getDetail();
// })); }));
// } else { } else {
// this.getDetail(); this.getDetail();
// } }
} else {
this.getDetail(); this.getDetail();
} }
@ -119,24 +122,24 @@
} }
}, },
// onBackPress(e) { onBackPress(e) {
// // //
// if (e.from == 'backbutton') { if (e.from == 'backbutton') {
// if (this.received) { if (this.received) {
// // //
// cancleTakeInspectJob(this.id).then(res => { cancleTakeInspectJob(this.id).then(res => {
// uni.navigateBack(); uni.navigateBack();
// }).catch(error => { }).catch(error => {
// uni.navigateBack(); uni.navigateBack();
// }) })
// } else { } else {
// uni.navigateBack(); uni.navigateBack();
// } }
// return true; return true;
// } }
// }, },
onPullDownRefresh() { onPullDownRefresh() {
this.getDetail(); this.getDetail();
@ -178,7 +181,7 @@
} else { } else {
if (res.data.subList.length > 0) { if (res.data.subList.length > 0) {
that.jobContent = res.data; that.jobContent = res.data;
that.jobContent.failedQty= this.failedQty that.jobContent.failedQty = this.failedQty
that.jobContent.crackQty = this.crackQty; that.jobContent.crackQty = this.crackQty;
that.subList = res.data.subList; that.subList = res.data.subList;
that.subList.forEach(res => { that.subList.forEach(res => {
@ -318,13 +321,9 @@
this.showErrorMessage("扫描数为0,请先扫描") this.showErrorMessage("扫描数为0,请先扫描")
return; return;
} }
// //
if (this.scanCount == this.subList.length) { if (this.inspectType == "FULL") {
this.submitJob(); if (this.scanCount == this.subList.length) {
} else if (this.scanCount < this.subList.length) {
//
if (this.jobContent.allowPartialComplete == "TRUE") {
//
this.submitJob(); this.submitJob();
} else { } else {
// //
@ -336,7 +335,28 @@
} }
}); });
} }
} else {
//
if (this.scanCount == this.subList.length) {
this.submitJob();
} else if (this.scanCount < this.subList.length) {
//
if (this.jobContent.allowPartialComplete == "TRUE") {
//
this.submitJob();
} else {
//
this.$refs.comMessage.showErrorMessage('请完成扫描后,再进行提交<br>' + "已经扫描[" + this.scanCount +
"]箱总共[" + this
.subList.length + "]箱", res => {
if (res) {
this.openScanPopup();
}
});
}
}
} }
}, },
submitJob() { submitJob() {
@ -442,12 +462,12 @@
} }
// detail.singlePrice = detail.balance.singlePrice; // detail.singlePrice = detail.balance.singlePrice;
// detail.amount = detail.balance.singlePrice * detail.handleQty; // detail.amount = detail.balance.singlePrice * detail.handleQty;
// detail.arriveDate = detail.balance.arriveDate; // detail.arriveDate = detail.balance.arriveDate;
// detail.produceDate = detail.balance.produceDate; // detail.produceDate = detail.balance.produceDate;
// detail.expireDate = detail.balance.expireDate; // detail.expireDate = detail.balance.expireDate;
}else { } else {
detail.sampleQty = detail.qty; detail.sampleQty = detail.qty;
detail.failedQty = 0; detail.failedQty = 0;
detail.crackQty = 0; detail.crackQty = 0;
@ -456,7 +476,7 @@
detail.inspectUser = this.$store.state.user.id detail.inspectUser = this.$store.state.user.id
detail.toInventoryStatus = "OK" detail.toInventoryStatus = "OK"
} }
list.push(detail) list.push(detail)
}) })
}) })
@ -473,7 +493,7 @@
}) })
}, },
} }
} }

16
pages/inspect/job/inspectJob.vue

@ -173,14 +173,22 @@
}, },
openJobDetail(item) { openJobDetail(item) {
// uni.navigateTo({ // uni.navigateTo({
// url: './inspectDetail?id=' + item.id + '&status=' + item.status // url: './inspectDetail?id=' + item.id + '&status=' + item.status
// }); // });
uni.navigateTo({
url: './inspectResult?id=' + item.id + '&status=' + item.status if(item.inspectType=="FULL"){
}); uni.navigateTo({
url: './inspectDetail?id=' + item.id + '&status=' + item.status+'&inspectType=' + item.inspectType
});
}else {
uni.navigateTo({
url: './inspectResult?id=' + item.id + '&status=' + item.status
});
}
}, },
showItemList(itemList) { showItemList(itemList) {

206
pages/inspect/job/inspectResult.vue

@ -50,9 +50,9 @@
<view class="pda-list-cell-left"> <view class="pda-list-cell-left">
<view class="uni-label">不合格数量</view> <view class="uni-label">不合格数量</view>
</view> </view>
<view class="pda-list-cell-db" > <view class="pda-list-cell-db">
<uni-easyinput :inputBorder="true" type="number" placeholder="请输入数字" <uni-easyinput :inputBorder="true" type="number" placeholder="请输入数字" v-model="jobContent.failedQty"
v-model="jobContent.failedQty" @blur="failedQtyConfirm" class="count-input"> @blur="failedQtyConfirm" class="count-input">
</uni-easyinput> </uni-easyinput>
</view> </view>
</view> </view>
@ -62,18 +62,18 @@
<view class="pda-list-cell-left"> <view class="pda-list-cell-left">
<view class="uni-label">报废数量</view> <view class="uni-label">报废数量</view>
</view> </view>
<view class="pda-list-cell-db" > <view class="pda-list-cell-db">
<uni-easyinput placeholder="请输入数字" type="number" v-model="jobContent.crackQty" @blur="" <uni-easyinput placeholder="请输入数字" type="number" v-model="jobContent.crackQty" @blur=""
class="count-input"> class="count-input">
</uni-easyinput> </uni-easyinput>
</view> </view>
</view> </view>
<view class="pda-list-cell" > <view class="pda-list-cell">
<view class="pda-list-cell-left"> <view class="pda-list-cell-left">
<view class="uni-label">下一步动作</view> <view class="uni-label">下一步动作</view>
</view> </view>
<view class="pda-list-cell-db" > <view class="pda-list-cell-db">
<uni-data-picker class='uni-data-picker' placeholder="请选择下一步动作" popup-title="下一步动作" <uni-data-picker class='uni-data-picker' placeholder="请选择下一步动作" popup-title="下一步动作"
@change="nextStepChange" :localdata="nextActionList" v-model="nextAction"> @change="nextStepChange" :localdata="nextActionList" v-model="nextAction">
</uni-data-picker> </uni-data-picker>
@ -84,9 +84,9 @@
<view class="pda-list-cell-left"> <view class="pda-list-cell-left">
<view class="uni-label">最终不合格</view> <view class="uni-label">最终不合格</view>
</view> </view>
<view class="pda-list-cell-db" > <view class="pda-list-cell-db">
<uni-easyinput placeholder="待计算" type="number" :disabled="true" <uni-easyinput placeholder="待计算" type="number" :disabled="true" v-model="jobContent.notPassedQty"
v-model="jobContent.notPassedQty" class="count-input"> class="count-input">
</uni-easyinput> </uni-easyinput>
</view> </view>
</view> </view>
@ -148,7 +148,7 @@
cancleTakeInspectJob, cancleTakeInspectJob,
inspectJobSubmit inspectJobSubmit
} from '@/api/request2.js'; } from '@/api/request2.js';
import { import {
getInspectFailedReasonList, getInspectFailedReasonList,
getNextActionList, getNextActionList,
@ -211,28 +211,28 @@
} else { } else {
uni.navigateBack(); uni.navigateBack();
} }
return true; return true;
} }
}, },
methods: { methods: {
// //
receive(callback) { receive(callback) {
uni.showLoading({ uni.showLoading({
title: "加载中....", title: "加载中....",
mask: true mask: true
}); });
if (this.id != null) { if (this.id != null) {
takeInspectJob(this.id).then(res => { takeInspectJob(this.id).then(res => {
uni.hideLoading(); uni.hideLoading();
callback(); callback();
}).catch(error => { }).catch(error => {
uni.hideLoading(); uni.hideLoading();
this.showErrorMessage(error) this.showErrorMessage(error)
}) })
} }
}, },
getDetail() { getDetail() {
var that = this; var that = this;
uni.showLoading({ uni.showLoading({
@ -248,11 +248,11 @@
if (res.data.subList.length > 0) { if (res.data.subList.length > 0) {
that.jobContent = res.data; that.jobContent = res.data;
that.detailList = res.data.subList; that.detailList = res.data.subList;
that.inspectType =that.jobContent.inspectType; that.inspectType = that.jobContent.inspectType;
that.jobContent.goodQty = null, // that.jobContent.goodQty = null, //
that.jobContent.failedQty = null,// that.jobContent.failedQty = null, //
that.jobContent.crackQty = null,// that.jobContent.crackQty = null, //
that.jobContent.notPassedQty = null; // that.jobContent.notPassedQty = null; //
} else { } else {
that.showMessage('列表数据为0'); that.showMessage('列表数据为0');
} }
@ -290,36 +290,37 @@
getUnitInfo(value) { getUnitInfo(value) {
return getUnitInfo(value).label return getUnitInfo(value).label
}, },
nextStepChange(e){ nextStepChange(e) {
this.nextAction = e.detail.value[0].value; this.nextAction = e.detail.value[0].value;
this.calcNotPassQty(); this.calcNotPassQty();
}, },
calcNotPassQty(){ calcNotPassQty() {
var failedQty = Number(this.jobContent.failedQty == null ? 0 : this.jobContent.failedQty) var failedQty = Number(this.jobContent.failedQty == null ? 0 : this.jobContent.failedQty)
//() //()
if (this.inspectType == 'FUll' ) { if (this.inspectType == 'FUll') {
// //
this.jobContent.notPassedQty = failedQty this.jobContent.notPassedQty = failedQty
}else if(this.inspectType == 'SAMPLING'){ } else if (this.inspectType == 'SAMPLING') {
// //
// //
// //
if (this.nextAction == "FULL_INSPECT"||this.nextAction == "PARTIAL_OK") { if (this.nextAction == "FULL_INSPECT" || this.nextAction == "PARTIAL_OK") {
// = // =
this.jobContent.notPassedQty = failedQty this.jobContent.notPassedQty = failedQty
}else if(this.nextAction=="ALL_NOK"){ } else if (this.nextAction == "ALL_NOK") {
//=- //=-
this.jobContent.notPassedQty = Number(this.jobContent.receiveQty)-Number(this.jobContent.crackQty==null?0:this.jobContent.crackQty) this.jobContent.notPassedQty = Number(this.jobContent.receiveQty) - Number(this.jobContent
.crackQty == null ? 0 : this.jobContent.crackQty)
} }
} }
}, },
commit() { commit() {
if (this.jobContent.failedQty == null) { if (this.jobContent.failedQty == null) {
this.showMessage("请输入不合格数量") this.showMessage("请输入不合格数量")
return return
@ -342,24 +343,38 @@
//==0() //==0()
if (failedQty == 0) { if (failedQty == 0) {
// if (crackQty == 0) {
this.jobContent.subList.forEach(res=>{ //==0
res.handleQty = res.qty this.jobContent.subList.forEach(res => {
res.failedQty = 0; res.handleQty = res.qty
res.notPassedQty = 0; res.failedQty = 0;
res.crackQty = 0; res.notPassedQty = 0;
res.goodQty = this.jobContent.receiveQty; res.crackQty = 0;
res.toInventoryStatus = res.inventoryStatus res.goodQty = res.qty;
res.failedReason =""; res.failedReason = "";
res.photos = "" res.photos = ""
res.inspectResult ="" res.inspectResult = ""
res.inspectUser =this.$store.state.user.id res.toInventoryStatus = "OK"
}) res.inspectUser = this.$store.state.user.id
})
this.jobContent.nextAction = this.nextAction;
this.submitJob(this.jobContent) this.jobContent.nextAction = "";
this.jobContent.goodQty = this.jobContent.receiveQty
this.submitJob(this.jobContent)
} else {
//0
//
uni.navigateTo({
url: './inspectDetail?id=' + this.id +
'&status=' + this.status +
'&failedQty=' + this.jobContent.failedQty +
'&crackQty=' + this.jobContent.crackQty
});
}
} else { } else {
//>0 //>0
// //
if (this.nextAction == null) { if (this.nextAction == null) {
@ -369,79 +384,88 @@
// //
if (this.nextAction == "ALL_NOK") { if (this.nextAction == "ALL_NOK") {
// //
this.jobContent.subList.forEach(res=>{ this.jobContent.subList.forEach(res => {
res.handleQty = res.qty res.handleQty = res.qty
res.failedQty = this.jobContent.receiveQty; res.failedQty = res.qty;
res.notPassedQty = this.jobContent.receiveQty; res.notPassedQty = res.qty;
res.crackQty = 0; res.crackQty = 0;
res.goodQty = 0; res.goodQty = 0;
res.toInventoryStatus = "NOK" res.failedReason = "";
res.failedReason ="";
res.photos = "" res.photos = ""
res.inspectResult ="" res.inspectResult = ""
re.inspectUser =this.$store.state.user.id res.toInventoryStatus = "NOK"
re.inspectUser = this.$store.state.user.id
}) })
this.jobContent.nextAction = this.nextAction; this.jobContent.nextAction = this.nextAction;
this.jobContent.goodQty = 0
this.submitJob(this.jobContent) this.submitJob(this.jobContent)
// //
} else if (this.nextAction == "PARTIAL_OK") { } else if (this.nextAction == "PARTIAL_OK") {
// //
uni.navigateTo({ uni.navigateTo({
url: './inspectDetail?id=' + this.id + url: './inspectDetail?id=' + this.id +
'&status=' + this.status+ '&status=' + this.status +
'&failedQty=' + this.jobContent.failedQty+ '&failedQty=' + this.jobContent.failedQty +
'&crackQty=' + this.jobContent.crackQty '&crackQty=' + this.jobContent.crackQty
}); });
//=== //
} else if (this.nextAction == "FULL_INSPECT") { } else if (this.nextAction == "FULL_INSPECT") {
// //
this.jobContent.subList.forEach(res=>{ this.jobContent.subList.forEach(res => {
res.handleQty = res.qty res.handleQty = res.qty
res.failedQty = 0; res.failedQty = 0;
res.notPassedQty = 0; res.notPassedQty = 0;
res.crackQty = 0; res.crackQty = 0;
res.goodQty = this.jobContent.receiveQty; res.goodQty = res.qty;
res.toInventoryStatus = res.inventoryStatus res.failedReason = "";
res.failedReason ="";
res.photos = "" res.photos = ""
res.inspectResult ="" res.inspectResult = ""
res.toInventoryStatus = "OK"
res.inspectUser = this.$store.state.user.id res.inspectUser = this.$store.state.user.id
}) })
this.jobContent.goodQty = this.jobContent.receiveQty
this.jobContent.nextAction = this.nextAction; this.jobContent.nextAction = this.nextAction;
this.submitJob(this.jobContent) this.submitJob(this.jobContent)
} }
} }
}, },
submitJob(params){ submitJob(params) {
uni.showLoading({ uni.showLoading({
title: "提交中....", title: "提交中....",
mask: true mask: true
}); });
console.log("提交参数", JSON.stringify(params)); console.log("提交参数", JSON.stringify(params));
inspectJobSubmit(params).then(res=>{ inspectJobSubmit(params).then(res => {
uni.hideLoading() uni.hideLoading()
if (res.data) { if (res.data) {
this.showCommitSuccessMessage("提交成功<br>生成到货检验记录" + res.data, ) var hint="";
if(this.jobContent.nextAction=="FULL_INSPECT"){
hint ="提交成功<br>生成到货检验任务" + res.data
}else {
hint ="提交成功<br>生成到货检验记录" + res.data
}
this.showCommitSuccessMessage(hint)
} else { } else {
this.showErrorMessage("提交失败["+res.msg+"]") this.showErrorMessage("提交失败[" + res.msg + "]")
} }
}).catch(error=>{ }).catch(error => {
uni.hideLoading() uni.hideLoading()
this.showErrorMessage(error) this.showErrorMessage(error)
}) })
}, },
showCommitSuccessMessage(hint) { showCommitSuccessMessage(hint) {
this.$refs.comMessage.showSuccessMessage(hint, res => { this.$refs.comMessage.showSuccessMessage(hint, res => {
uni.navigateTo({ uni.navigateTo({
url: './inspectJob' url: './inspectJob'
}) })
}) })
}, },
showErrorMessage(message) { showErrorMessage(message) {
this.$refs.comMessage.showErrorMessage(message, res => { this.$refs.comMessage.showErrorMessage(message, res => {
if (res) { if (res) {}
}
}); });
}, },

7
pages/purchaseReceipt/job/receiptDetail.vue

@ -45,7 +45,8 @@
goHome, goHome,
getCurrDateTime, getCurrDateTime,
getPackingNumberAndBatch, getPackingNumberAndBatch,
updateTitle updateTitle,
compareAsc
} from '@/common/basic.js'; } from '@/common/basic.js';
import { import {
@ -107,7 +108,6 @@
} else { } else {
this.getDetail(); this.getDetail();
} }
} }
}, },
// //
@ -208,11 +208,14 @@
this.showMessage("箱码【" + packingNumber + "】已经扫描") this.showMessage("箱码【" + packingNumber + "】已经扫描")
} else { } else {
itemDetail.scaned = true; itemDetail.scaned = true;
this.detailSource[0].subList.sort(compareAsc('scaned')); //
itemDetail.handleQty = Number(result.label.qty); itemDetail.handleQty = Number(result.label.qty);
itemDetail.toLocationCode = this.toLocationCode; itemDetail.toLocationCode = this.toLocationCode;
itemDetail.labelQty = Number(result.label.qty); itemDetail.labelQty = Number(result.label.qty);
calcHandleQty(this.detailSource); calcHandleQty(this.detailSource);
this.continueScan() this.continueScan()
this.$forceUpdate()
var list =this.detailSource[0].subList;
} }
} }
} }

880
pages/putaway/record/putawayRecord.vue

@ -1,439 +1,441 @@
<template> <template>
<view class="page-wraper"> <view class="page-wraper">
<view class=""> <view class="">
<com-blank-view @goScan='showFromLocationPopup' v-if="detailSource.length==0"></com-blank-view> <com-blank-view @goScan='showFromLocationPopup' v-if="detailSource.length==0"></com-blank-view>
</view> </view>
<view class="page-wraper" v-if="detailSource.length>0"> <view class="page-wraper" v-if="detailSource.length>0">
<view class="page-main"> <view class="page-main">
<scroll-view scroll-y="true" class="page-main-scroll"> <scroll-view scroll-y="true" class="page-main-scroll">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id"> <view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
<view class=""> <view class="">
<record-com-detail-card :dataContent="item" :index="index" :settingParam="jobContent" <record-com-detail-card :dataContent="item" :index="index" :settingParam="jobContent"
@removeItem="removeItem(index,item)" @updateData="updateData" @removePack="removePack"> @removeItem="removeItem(index,item)" @updateData="updateData" @removePack="removePack">
</record-com-detail-card> </record-com-detail-card>
</view> </view>
<u-line /> <u-line />
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
<requiredLocation v-if="showToLoaction" title="目标库位" :locationCode="toLocationCode" @getLocation='getToLocationCode' <requiredLocation v-if="showToLoaction" title="目标库位" :locationCode="toLocationCode"
:locationTypeList="tolocationTypeList"></requiredLocation> @getLocation='getToLocationCode' :locationTypeList="tolocationTypeList"></requiredLocation>
<view class="page-footer"> <view class="page-footer">
<view class="uni-flex u-col-center space-between padding_10" <view class="uni-flex u-col-center space-between padding_10"
style="background-color:ghostwhite; width: 100%; "> style="background-color:ghostwhite; width: 100%; ">
<view class=""> <view class="">
</view> </view>
<view class=" uni-flex uni-row"> <view class=" uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button> <button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
</view> </view>
</view> </view>
</view> </view>
<win-scan-button @goScan='openScanPopup'></win-scan-button> <win-scan-button @goScan='openScanPopup'></win-scan-button>
</view> </view>
<win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult'></win-scan-pack-and-location> <win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult'></win-scan-pack-and-location>
<comMessage ref="comMessage"></comMessage> <comMessage ref="comMessage"></comMessage>
<win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getLocation' <win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getLocation'
:locationTypeList="fromlocationTypeList"></win-scan-location> :locationTypeList="fromlocationTypeList"></win-scan-location>
</view> </view>
</template> </template>
<script> <script>
import { import {
putawayRequestSubmit, putawayRequestSubmit,
putawayRecordSubmit putawayRecordSubmit
} from '@/api/request2.js'; } from '@/api/request2.js';
import { import {
goHome, goHome,
updateTitle, updateTitle,
getCurrDateTime, getCurrDateTime,
getPackingNumberAndBatch getPackingNumberAndBatch
} from '@/common/basic.js'; } from '@/common/basic.js';
import { import {
getInventoryStatusDesc, getInventoryStatusDesc,
getDirectoryItemArray getDirectoryItemArray
} from '@/common/directory.js'; } from '@/common/directory.js';
import { import {
getDetailOption, getDetailOption,
getDetailRemoveOption, getDetailRemoveOption,
getDetailEditRemoveOption getDetailEditRemoveOption
} from '@/common/array.js'; } from '@/common/array.js';
import { import {
getBusinessType, getBusinessType,
createItemInfo, createItemInfo,
createDetailInfo, createDetailInfo,
calcHandleQty calcHandleQty
} from '@/common/record.js'; } from '@/common/record.js';
import { import {
getManagementPrecisions getManagementPrecisions
} from '@/common/balance.js'; } from '@/common/balance.js';
import winScanButton from '@/mycomponents/scan/winScanButton.vue' import winScanButton from '@/mycomponents/scan/winScanButton.vue'
import winScanPack from '@/mycomponents/scan/winScanPack.vue' import winScanPack from '@/mycomponents/scan/winScanPack.vue'
import requiredLocation from '@/mycomponents/location/requiredLocation.vue' import requiredLocation from '@/mycomponents/location/requiredLocation.vue'
import comBlankView from '@/mycomponents/common/comBlankView.vue' import comBlankView from '@/mycomponents/common/comBlankView.vue'
import winScanLocation from "@/mycomponents/scan/winScanLocation.vue" import winScanLocation from "@/mycomponents/scan/winScanLocation.vue"
import comMessage from '@/mycomponents/common/comMessage.vue' import comMessage from '@/mycomponents/common/comMessage.vue'
import winScanPackAndLocation from "@/mycomponents/scan/winScanPackAndLocation.vue" import winScanPackAndLocation from "@/mycomponents/scan/winScanPackAndLocation.vue"
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue' import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
export default { export default {
components: { components: {
winScanButton, winScanButton,
winScanPack, winScanPack,
requiredLocation, requiredLocation,
comBlankView, comBlankView,
winScanLocation, winScanLocation,
comMessage, comMessage,
winScanPackAndLocation, winScanPackAndLocation,
recordComDetailCard recordComDetailCard
}, },
data() { data() {
return { return {
id: '', id: '',
receiptJob: {}, receiptJob: {},
received: false, received: false,
jobContent: {}, // jobContent: {}, //
detailSource: [], // detailSource: [], //
locationTypeList: [], locationTypeList: [],
businessTypeInfo: {}, businessTypeInfo: {},
fromLocationInfo: {}, fromLocationInfo: {},
fromLocationCode: "", fromLocationCode: "",
toLocationCode: "", toLocationCode: "",
isShowLocation: false, isShowLocation: false,
fromlocationTypeList: [], fromlocationTypeList: [],
tolocationTypeList: [], tolocationTypeList: [],
inInventoryStatus: "", // inInventoryStatus: "", //
outInventoryStatus: "", // outInventoryStatus: "", //
businessType: {}, businessType: {},
fromType: "", fromType: "",
showToLoaction:true showToLoaction: true
}; };
}, },
onLoad(option) { onLoad(option) {
this.fromType = option.fromType this.fromType = option.fromType
if(this.fromType=="requestType"){ this.showToLoaction=false if (this.fromType == "requestType") {
updateTitle("原料上架申请") }else { this.showToLoaction = false
updateTitle("原料上架记录") updateTitle("原料上架申请")
this.showToLoaction=true } else {
} updateTitle("原料上架记录")
var typeCode = "PurchasePutaway" this.showToLoaction = true
getBusinessType(typeCode, res => {
if (res.success) { }
this.businessType = res.businessType; var typeCode = "PurchasePutaway"
this.fromlocationTypeList = res.fromlocationTypeList; getBusinessType(typeCode, res => {
this.tolocationTypeList = res.tolocationTypeList; if (res.success) {
this.showFromLocationPopup(); this.businessType = res.businessType;
} else { this.fromlocationTypeList = res.fromlocationTypeList;
this.$refs.comMessage.showBreakMessage(res.message ); this.tolocationTypeList = res.tolocationTypeList;
} this.showFromLocationPopup();
}); } else {
}, this.$refs.comMessage.showBreakMessage(res.message);
// }
onNavigationBarButtonTap(e) { });
if (e.index === 0) { },
goHome(); //
} onNavigationBarButtonTap(e) {
}, if (e.index === 0) {
// goHome();
onBackPress(e) {}, }
},
onPullDownRefresh() {}, //
onBackPress(e) {},
mounted() {
}, onPullDownRefresh() {},
methods: {
getScanResult(result) { mounted() {},
let balance = result.balance; methods: {
let label = result.label; getScanResult(result) {
let pack = result.package; let balance = result.balance;
var item = this.detailSource.find(res => { let label = result.label;
if (res.itemCode == balance.itemCode) { let pack = result.package;
return res var item = this.detailSource.find(res => {
} if (res.itemCode == balance.itemCode) {
}) return res
if (item == undefined) { }
var itemp = createItemInfo(balance, pack); })
let newDetail = createDetailInfo(balance, pack); // if (item == undefined) {
itemp.subList.push(newDetail); var itemp = createItemInfo(balance, pack);
this.detailSource.push(itemp) let newDetail = createDetailInfo(balance, pack); //
} else { itemp.subList.push(newDetail);
var detail = item.subList.find(r => { this.detailSource.push(itemp)
if (r.packingNumber == balance.packingNumber && } else {
r.batch == balance.batch && var detail = item.subList.find(r => {
r.locationCode == balance.locationCode && if (r.packingNumber == balance.packingNumber &&
r.inventoryStatus == balance.inventoryStatus) { r.batch == balance.batch &&
return r; r.locationCode == balance.locationCode &&
} r.inventoryStatus == balance.inventoryStatus) {
}) return r;
if (detail == undefined) { }
let newDetail = createDetailInfo(balance, pack); })
item.subList.push(newDetail); if (detail == undefined) {
} else { let newDetail = createDetailInfo(balance, pack);
if (detail.scaned == true) { item.subList.push(newDetail);
this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]已经在列表中") } else {
} if (detail.scaned == true) {
} this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]已经在列表中")
} }
this.calcHandleQty(); }
}
}, this.calcHandleQty();
showErrorMessage(message) { },
this.$refs.comMessage.showErrorMessage(message, res => {
if (res) { showErrorMessage(message) {
this.$refs.comMessage.showErrorMessage(message, res => {
} if (res) {
});
}, }
calcHandleQty() { });
for (let item of this.detailSource) { },
item.qty = 0; calcHandleQty() {
for (let detail of item.subList) { for (let item of this.detailSource) {
if (detail != undefined) { item.qty = 0;
item.qty += Number(detail.qty) for (let detail of item.subList) {
} if (detail != undefined) {
} item.qty += Number(detail.qty)
} }
this.$forceUpdate(); }
}, }
this.$forceUpdate();
updateData() { },
this.calcHandleQty();
}, updateData() {
removeItem(index, item) { this.calcHandleQty();
this.detailSource.splice(index, 1) },
}, removeItem(index, item) {
this.detailSource.splice(index, 1)
removePack() { },
for (var i = 0; i < this.detailSource.length; i++) {
var item = this.detailSource[i]; removePack() {
if (item.subList.length == 0) { for (var i = 0; i < this.detailSource.length; i++) {
this.detailSource.splice(i, 1) var item = this.detailSource[i];
} if (item.subList.length == 0) {
} this.detailSource.splice(i, 1)
this.updateData(); }
}, }
this.updateData();
openScanPopup() { },
if (this.fromLocationCode == "") {
this.showFromLocationPopup(); openScanPopup() {
return if (this.fromLocationCode == "") {
} this.showFromLocationPopup();
this.$refs.scanPopup.openScanPopupForType(this.fromLocationCode, this.businessType); return
}, }
showFromLocationPopup() { this.$refs.scanPopup.openScanPopupForType(this.fromLocationCode, this.businessType);
this.$nextTick(() => { },
this.$refs.scanLocationCode.openScanPopup(); showFromLocationPopup() {
}) this.$nextTick(() => {
this.$refs.scanLocationCode.openScanPopup();
}, })
closeScanPopup() {
this.$refs.scanPopup.closeScanPopup(); },
}, closeScanPopup() {
this.$refs.scanPopup.closeScanPopup();
scanPopupGetFocus() { },
this.$refs.scanPopup.getfocus();
}, scanPopupGetFocus() {
this.$refs.scanPopup.getfocus();
scanLocationCode(location, code) { },
this.toLocationCode = code
this.toLocationCode = location; scanLocationCode(location, code) {
this.toLocationCode = code
}, this.toLocationCode = location;
commit() { },
if (this.showToLoaction &&this.toLocationCode == "") {
this.showMessage("请先选择目标库位") commit() {
return; if (this.showToLoaction && this.toLocationCode == "") {
} this.showMessage("请先选择目标库位")
return;
uni.showLoading({ }
title: "提交中....",
mask: true uni.showLoading({
}); title: "提交中....",
mask: true
if(this.fromType=="requestType"){ });
var params = this.setParams(false)
console.log("提交" + JSON.stringify(params)) if (this.fromType == "requestType") {
// putawayRequestSubmit(params).then(res => { var params = this.setParams(false)
// uni.hideLoading() console.log("提交" + JSON.stringify(params))
// if (res.data) { // putawayRequestSubmit(params).then(res => {
// this.showCommitSuccessMessage("<br>" + res.data, ) // uni.hideLoading()
// } else { // if (res.data) {
// this.showErrorMessage("[" + res.msg + "]") // this.showCommitSuccessMessage("<br>" + res.data, )
// } // } else {
// }).catch(error => { // this.showErrorMessage("[" + res.msg + "]")
// uni.hideLoading() // }
// this.showErrorMessage(error) // }).catch(error => {
// }) // uni.hideLoading()
}else { // this.showErrorMessage(error)
// // })
var itemCodes = [] } else {
this.detailSource.forEach(item => { //
itemCodes.push(item.itemCode) var itemCodes = []
}) this.detailSource.forEach(item => {
// itemCodes.push(item.itemCode)
getManagementPrecisions(itemCodes, this.toLocationCode, res => { })
if (res.success) { //
this.managementList = res.list; getManagementPrecisions(itemCodes, this.toLocationCode, res => {
var params = this.setParams(true) if (res.success) {
console.log("提交参数", JSON.stringify(params)); this.managementList = res.list;
var params = this.setParams(true)
// putawayRecordSubmit(params).then(res => { console.log("提交参数", JSON.stringify(params));
// uni.hideLoading()
// if (res.data) { // putawayRecordSubmit(params).then(res => {
// this.showCommitSuccessMessage("<br>" + res.data, ) // uni.hideLoading()
// } else { // if (res.data) {
// this.showErrorMessage("[" + res.msg + "]") // this.showCommitSuccessMessage("<br>" + res.data, )
// } // } else {
// }).catch(error => { // this.showErrorMessage("[" + res.msg + "]")
// uni.hideLoading() // }
// this.showErrorMessage(error) // }).catch(error => {
// }) // uni.hideLoading()
} else { // this.showErrorMessage(error)
uni.hideLoading(); // })
this.showErrorMessage(res.message); } else {
} uni.hideLoading();
}); this.showErrorMessage(res.message);
} }
}, });
}
setParams(queryModel) { },
var subList = []
var creator = this.$store.state.user.id setParams(queryModel) {
this.detailSource.forEach(item => { var subList = []
item.subList.forEach(detail => { var creator = this.$store.state.user.id
if (detail.scaned) { this.detailSource.forEach(item => {
// var subItem = {}; item.subList.forEach(detail => {
// Object.assign(subItem, detail) if (detail.scaned) {
if (queryModel) { // var subItem = {};
var info = getPackingNumberAndBatch(this.managementList, detail.itemCode, // Object.assign(subItem, detail)
detail.packingNumber, detail.batch); if (queryModel) {
detail.toPackingNumber = info.packingNumber;; var info = getPackingNumberAndBatch(this.managementList, detail.itemCode,
detail.toContainerNumber = detail.containerNumber detail.packingNumber, detail.batch);
detail.toBatch = info.batch; detail.toPackingNumber = info.packingNumber;;
detail.toInventoryStatus = detail.inventoryStatus detail.toContainerNumber = detail.containerNumber
detail.toLocationCode = this.toLocationCode detail.toBatch = info.batch;
} else { detail.toInventoryStatus = detail.inventoryStatus
detail.toPackingNumber = detail.packingNumber; detail.toLocationCode = this.toLocationCode
detail.toContainerNumber = detail.containerNumber } else {
detail.toBatch = detail.toBatch; detail.toPackingNumber = detail.packingNumber;
detail.toInventoryStatus = detail.inventoryStatus detail.toContainerNumber = detail.containerNumber
detail.toLocationCode = "" detail.toBatch = detail.toBatch;
} detail.toInventoryStatus = detail.inventoryStatus
detail.toLocationCode = ""
subList.push(detail) }
}
}) subList.push(detail)
}) }
this.jobContent.subList = subList })
this.jobContent.creator = creator; })
return this.jobContent; this.jobContent.subList = subList
}, this.jobContent.creator = creator;
return this.jobContent;
},
showMessage(message) {
this.$refs.comMessage.showMessage(message, res => {
if (res) {} showMessage(message) {
}); this.$refs.comMessage.showMessage(message, res => {
}, if (res) {}
showErrorMessage(message) { });
this.$refs.comMessage.showErrorMessage(message, res => { },
if (res) { showErrorMessage(message) {
this.$refs.comMessage.showErrorMessage(message, res => {
} if (res) {
});
}, }
});
showScanMessage(message) { },
this.$refs.comMessage.showScanMessage(message);
}, showScanMessage(message) {
this.$refs.comMessage.showScanMessage(message);
afterCloseMessage() { },
this.scanPopupGetFocus();
}, afterCloseMessage() {
this.scanPopupGetFocus();
closeScanMessage() { },
this.scanPopupGetFocus();
}, closeScanMessage() {
getLocation(location, code) { this.scanPopupGetFocus();
this.getFromLocationCode(location, code) },
}, getLocation(location, code) {
getFromLocationCode(location, code) { this.getFromLocationCode(location, code)
this.fromLocationInfo = location; },
this.fromLocationCode = code; getFromLocationCode(location, code) {
this.openScanPopup(); this.fromLocationInfo = location;
}, this.fromLocationCode = code;
getToLocationCode(location, code) { this.openScanPopup();
if (this.fromLocationCode == code) { },
uni.showToast({ getToLocationCode(location, code) {
title: "来源库位[" + this.fromLocationCode + "]不能与目标库位[" + code + "]一致", if (this.fromLocationCode == code) {
duration: 2000 uni.showToast({
}) title: "来源库位[" + this.fromLocationCode + "]不能与目标库位[" + code + "]一致",
return duration: 2000
} })
this.toLocationCode = code; return
}, }
this.toLocationCode = code;
showCommitSuccessMessage(hint) { },
this.$refs.comMessage.showSuccessMessage(hint, res => {
this.fromLocationCode = ''; showCommitSuccessMessage(hint) {
this.$refs.comMessage.showSuccessMessage(hint, res => {
}) this.fromLocationCode = '';
},
})
updateData() { },
this.calcHandleQty();
for (var i = 0; i < this.detailSource.length; i++) { updateData() {
let item = this.detailSource[i]; this.calcHandleQty();
if (item.qty == 0) { for (var i = 0; i < this.detailSource.length; i++) {
this.detailSource.splice(i, 1) let item = this.detailSource[i];
} if (item.qty == 0) {
} this.detailSource.splice(i, 1)
} }
} }
} }
</script> }
}
<style scoped lang="scss"> </script>
page {
width: 100%; <style scoped lang="scss">
height: 100%; page {
background-color: #fff; width: 100%;
} height: 100%;
background-color: #fff;
.page-wraper { }
display: flex;
flex-direction: column; .page-wraper {
width: 100%; display: flex;
height: 100%; flex-direction: column;
} width: 100%;
height: 100%;
}
.page-main {
flex: 1;
position: relative; .page-main {
} flex: 1;
position: relative;
.page-main-scroll { }
position: absolute;
left: 0; .page-main-scroll {
right: 0; position: absolute;
top: 0; left: 0;
bottom: 0; right: 0;
} top: 0;
bottom: 0;
.page-main-list { }
/* height: 80rpx;
line-height: 80rpx; */ .page-main-list {
text-align: center; /* height: 80rpx;
background: #e0e0e0; line-height: 80rpx; */
text-align: center;
} background: #e0e0e0;
</style>
}
</style>

Loading…
Cancel
Save