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.
 
 
 
 
 
 

288 lines
7.7 KiB

<template>
<page-meta root-font-size="16px"></page-meta>
<view class="">
<view class="top_card">
<view class="device-detail">
<view class="cell_box uni-flex uni-row margin_top">
<view class="cell_info result_card">
<view class="text_lightblue">应收数量</view>
<view class="text_black text_bold">{{ allCount }}</view>
</view>
<view class="cell_info result_card">
<view class="text_lightblue">实收数量</view>
<view class="text_black text_bold">{{ receiptCount }}</view>
</view>
<view class="cell_info result_card">
<view class="text_lightblue">不合格数量</view>
<view class="text_black text_bold red">{{ unPassCount }}</view>
</view>
<view class="cell_info result_card">
<view class="text_lightblue">未收数量</view>
<view class="text_black text_bold">{{ unReceiptCount }}</view>
</view>
</view>
</view>
</view>
<scroll-view v-if="itemList.length>0" :scroll-top="scrollTop" scroll-y="true" class="scroll-detail"
@scrolltoupper="upper" @scrolltolower="lower" @scroll="scroll">
<view class="detail-list" v-for="(item, index) in itemList" :key="item.id">
<view class="detail-content common_card">
<view class="choose_main">
<view class="ljh_box">
<view class="ljh_info">
<view class="tit_ljh">{{ item.itemCode }}</view>
<view class="label_xm font_sm fr">{{ item.recommendPackingCode }}</view>
</view>
<view class="desc_card uni-flex space-between">
<view class="ljh_left desc_ljh">
<view class="font_xs text_lightblue">{{ item.itemName }}</view>
<view class="font_xs text_lightblue">{{ item.itemDesc1 }}</view>
</view>
</view>
</view>
<view class="cen_card margin_xs_bottom">
<view class="label_box uni-flex uni-row space-between">
<view class="label_info">
<text>不合格数量:{{ item.recommendQty}}({{ item.uom}})</text>
</view>
<view v-if="item.purchaseReceiptInspectStatus==3?true:false" @click="seePhoto(item)">
<!-- <label class="">
<image class="icon_normal" src="@/static/icons_ui/icon_take_photo.svg"></image>
</label> -->
<text class="text_blue">查看</text>
</view>
</view>
</view>
</view>
<view v-if="item.check" class="choose_marked">
<image src="@/static/image_marked.svg"></image>
</view>
</view>
</view>
</scroll-view>
<view class="result_nodata" v-else>
<image class="default_nodata" src="@/static/icons_ui/default_notpassed.png"></image>
<text>暂无不合格零件</text>
</view>
<view class="new_btn_bot">
<button class="new_save_btn" @click="save">提交</button>
</view>
<comMessage ref="comMessage" @afterCloseCommitMessage='closeCommitMessage()'></comMessage>
<receipt-check ref="receiptCheck" :dataContent='selectedItem' :disabled='true'
@getReceiptResult='afterTakePhoto'>
</receipt-check>
</view>
</template>
<script>
import {
showConfirmMsg,
goHome,
} from '@/common/basic.js';
import {
purchaseReceipts,
finishReceiptJob,
saveReceiptResult,
} from '@/api/index.js';
import comMessage from '@/mycomponents/common/comMessage.vue'
import receiptCheck from '@/pages/task/receipt_check.vue'
export default {
components: {
comMessage,
receiptCheck
},
name: 'receipt_result',
data() {
return {
id: '',
receiptJob: {},
itemList: [],
allCount: 0,
receiptCount: 0,
unPassCount: 0,
unReceiptCount: 0,
selectedItem: {},
scrollTop: 0,
old: {
scrollTop: 0
},
}
},
props: {
dataContent: {
type: Object,
value: null
},
},
filters: {},
mounted: function() {
uni.setNavigationBarColor({
frontColor: '#ffffff',
backgroundColor: "#5A7CF3 !important"
})
},
created() {
},
//返回首页
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}else if(e.index === 1){
window.location.reload();
}
},
onLoad: function(e) {
let that = this;
that.id = e.id;
this.getJoDetail(res => {
that.receiptJob = res;
that.itemList = that.receiptJob.details.filter(r => {
return r.purchaseReceiptInspectStatus == 3
})
that.receiptJob.details.forEach(r => {
that.allCount += r.recommendQty;
switch (r.purchaseReceiptInspectStatus) {
case 1: //待检,不收货
that.unReceiptCount += r.recommendQty
break;
case 2: //合格
that.receiptCount += r.recommendQty
break;
case 3: //不合格
that.unPassCount += r.recommendQty
break;
}
})
});
},
methods: {
getJoDetail(callBack) {
let that = this;
purchaseReceipts(that.id)
.then(res => {
if (res != null) {
callBack(res);
}
})
.catch(err => {
this.showMessage(err.message);
});
},
//保存
save() {
let uncheckitems = this.receiptJob.details.filter(r => {
return (r.purchaseReceiptInspectStatus <= 1)
});
if (uncheckitems.length > 0) {
showConfirmMsg('未扫描的零件将生成缺料记录,是否继续提交?', confirm => {
if (confirm) {
this.submit();
}
})
} else {
this.submit();
}
},
submit() {
let that = this;
uni.showLoading({
'title': '提交中...',
mask: true
})
//赋值
that.receiptJob.completeUserId = localStorage.getItem('userId')
that.receiptJob.completeUserName = localStorage.getItem('userName_CN')
that.receiptJob.completeTime = new Date()
that.receiptJob.details.forEach(r => {
r.handledToLocationCode = r.recommendToLocationCode;
r.worker = localStorage.userName_CN ==""?localStorage.userName:localStorage.userName_CN
if (r.purchaseReceiptInspectStatus == 1) {
r.handledArriveDate = new Date(); //
r.purchaseReceiptInspectStatus = 4; //未收货
r.handledQty = 0;
// r.handledUom = r.recommendUom;
r.handledContainerCode = r.recommendContainerCode;
r.handledPackingCode = r.recommendPackingCode;
r.handledSupplierBatch = r.recommendSupplierBatch;
r.handledProduceDate = r.recommendProduceDate;
r.handledExpireDate = r.recommendExpireDate;
r.handledLot = r.recommendLot;
r.handledToLocationCode = r.recommendToLocationCode;
r.handledToLocationArea = r.recommendToLocationArea;
r.handledToLocationGroup = r.recommendToLocationGroup;
r.handledToLocationErpCode = r.recommendToLocationErpCode;
}
});
let param = JSON.stringify(that.receiptJob);
console.log(param);
finishReceiptJob(that.id, param).then(res => {
uni.hideLoading();
if (res != null) {
that.showCommitSuccessMessage();
that.backJobList(1000);
}
}).catch(err => {
uni.hideLoading();
that.showMessage(err.message);
});
},
//返回任务列表页
backJobList(delay) {
setTimeout(() => {
uni.navigateTo({
url: './receipt'
})
}, delay)
},
seePhoto(item) {
this.selectedItem = item;
this.$refs.receiptCheck.openReceiptCheckPopup(item.inspectPhotoJson);
},
afterTakePhoto(files) {
let pass = files.length == 0 ? 'pass' : 'unPass';
this.selectedItem.files = files;
this.scanItem(this.selectedItem, pass);
this.$forceUpdate();
},
showMessage(message) {
this.$refs.comMessage.showMessage(message);
},
showCommitSuccessMessage() {
this.$refs.comMessage.showCommitSuccess();
},
closeCommitMessage() {
this.backJobList(0); //点关闭直接返回列表
uni.hideLoading();
},
scroll: function(e) {
// console.log(e)
this.old.scrollTop = e.receiptJob.scrollTop;
},
}
}
</script>
<style scoped lang="scss">
</style>