<template>
|
<view class="has-foot">
|
<form>
|
<view class="cu-form-group" v-show="!isconfirm">
|
<view class="title">盘点单号:<text class="text-black ">{{check.orderCode}}</text></view>
|
<text class='cuIcon-add text-blue' @click="returnPage"></text>
|
</view>
|
<view class="cu-form-group" v-show="!isconfirm">
|
<view class="title">容器号</view>
|
<input placeholder="请扫描容器号" v-model="barcode" focus></input>
|
<text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text>
|
<text class='cuIcon-search text-blue' @click="search"></text>
|
</view>
|
<view class="cu-form-group" v-show="isconfirm">
|
<view class="title">物料码</view>
|
<input placeholder="请扫描物料码" v-model="matnr" focus></input>
|
<text class='cuIcon-close text-gray margin-right-xs' v-show="matnr!==''" @click="clearCode"></text>
|
<text class='cuIcon-search text-blue' @click="addMatnr" v-show="matnr!==''"></text>
|
|
</view>
|
</form>
|
|
<view class="cu-list det menu sm-border padding">
|
<block v-for="(item, index) in list" v-if="!isconfirm">
|
<view class="cu-list det menu ">
|
<view class="cu-bar bg-white solid-bottom margin-top-sm">
|
<view class="action">
|
<view class="index">
|
{{index+1}}
|
</view>
|
</view>
|
<view class="content2">
|
<text class="text-gray"><text class="text-black ">{{item.exceStatus$}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-gray">批次:<text class="text-black ">{{item.batch}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item" v-if="check.checkType === 0">
|
<view class="content">
|
<text class="text-gray">库存数:<text class="text-black ">{{item.anfme}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<view class="title text-blue"><text class="text-red text-xl vertical-middle"></text>实盘数:
|
</view>
|
<uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty"
|
:step='1'></uni-number-box>
|
</view>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<text class=" text-blue">备注:</text>
|
<input placeholder="请输入备注" v-model="item.memo"></input>
|
</view>
|
</view>
|
</view>
|
<view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<view class=" text-blue">差异原因</view>
|
<view style="width: 80%;">
|
<uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason"
|
:localdata="reasons" placement="top"></uni-data-select>
|
</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
</block>
|
|
<block v-for="(item, index) in matnrList">
|
<view class="cu-list det menu ">
|
<view class="cu-bar bg-white solid-bottom margin-top-sm">
|
<view class="action">
|
<view class="index">
|
{{index+1}}
|
</view>
|
</view>
|
<view class="action">
|
<text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item" v-if="check.checkType === 0">
|
<view class="content">
|
<text class="text-gray">库存数:<text class="text-black ">{{item.anfme}}</text></text>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<text class=" text-blue">批次:</text>
|
<input placeholder="请输入批次" v-model="item.batch"></input>
|
</view>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<view class="title text-blue"><text class="text-red text-xl vertical-middle"></text>实盘数:
|
</view>
|
<uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty"
|
:step='1'></uni-number-box>
|
</view>
|
</view>
|
</view>
|
<view class="cu-item">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<text class=" text-blue">备注:</text>
|
<input placeholder="请输入备注" v-model="item.memo"></input>
|
</view>
|
</view>
|
</view>
|
<view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
|
<view class="content">
|
<view class="cu-form-group padding-lr-0">
|
<view class=" text-blue">差异原因</view>
|
<view style="width: 80%;">
|
<uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason"
|
:localdata="reasons" placement="top"></uni-data-select>
|
</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
</block>
|
</view>
|
|
<view class="cu-bar btn-group foot" v-show="!isconfirm">
|
<button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
|
<button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="complete">提交</button>
|
</view>
|
|
<view class="cu-bar btn-group foot" v-show="isconfirm">
|
<button class="cu-btn text-blue line-blue shadow" @click="returnPage">返回</button>
|
<button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="sureAdd">确定添加</button>
|
</view>
|
|
|
|
</view>
|
</template>
|
|
<script>
|
import {
|
request
|
} from '../../common/request.js'
|
import {
|
mapState,
|
mapMutations,
|
mapActions,
|
mapGetters
|
} from 'vuex';
|
export default {
|
data() {
|
return {
|
check: '',
|
list: [],
|
isconfirm: false,
|
barcode: '',
|
max: 99999999,
|
repeatClick: false,
|
reasons: [],
|
matnr: '',
|
matnrList:[]
|
|
}
|
},
|
computed: {
|
|
|
},
|
mounted() {
|
this.getReasons()
|
},
|
onLoad() {
|
let that = this
|
const eventChannel = this.getOpenerEventChannel();
|
|
eventChannel.on('checkItem', function(data) {
|
that.check = data.data
|
|
})
|
|
},
|
methods: {
|
sureAdd(){
|
if(this.matnrList.length === 0){
|
uni.showToast({
|
title: "请添加物料明细",
|
icon: "none",
|
position: 'top'
|
})
|
return ;
|
}
|
this.list.push(...this.matnrList)
|
this.matnrList = []
|
this.isconfirm = !this.isconfirm
|
},
|
remove(index) {
|
this.matnrList.splice(index, 1);
|
},
|
async addMatnr() {
|
const {
|
code,
|
data,
|
msg
|
} = await request('/selectAddMatnr', {
|
matnr:this.matnr
|
})
|
if (code === 200) {
|
this.matnrList.push(data)
|
this.matnr = ''
|
}
|
},
|
returnPage() {
|
this.matnrList = []
|
this.isconfirm = !this.isconfirm
|
},
|
async getReasons() {
|
const {
|
code,
|
data,
|
msg
|
} = await request('/getCheckDiffReasonList', {}, 'get')
|
if (code === 200) {
|
this.reasons = data.map(item => ({
|
value: item.id,
|
text: item.label
|
}));
|
}
|
},
|
clear() {
|
this.barcode = ''
|
this.list = []
|
},
|
clearCode() {
|
this.barcode = ''
|
this.matnr = ''
|
},
|
async search() {
|
this.list = []
|
// if(this.barcode === '' || this.barcode ===null){
|
// return ;
|
// }
|
const {
|
code,
|
data,
|
msg
|
} = await request('/getCheckTaskItemList', {
|
barcode: this.barcode,
|
checkCode: this.check.orderCode
|
})
|
if (code === 200) {
|
if (Object.keys(data).length === 0) {
|
uni.showToast({
|
title: "该标签未查询到数据",
|
icon: "none",
|
position: 'top'
|
})
|
}
|
for (var i = 0; i < data.length; i++) {
|
data[i].checkQty = data[i].anfme
|
}
|
this.list = data
|
|
} else if (code == 401) {
|
setTimeout(() => {
|
uni.removeStorageSync('token');
|
uni.reLaunch({
|
url: "/pages/login/login"
|
});
|
}, 1000);
|
} else {
|
uni.showToast({
|
title: msg,
|
icon: "none",
|
position: 'top'
|
})
|
}
|
|
|
},
|
async complete() {
|
|
let that = this
|
if (that.barcode === '' || that.barcode === null) {
|
uni.showToast({
|
title: "容器号为空",
|
icon: "error",
|
})
|
return;
|
}
|
if (that.list === [] || that.list.length === 0) {
|
uni.showToast({
|
title: "任务明细为空",
|
icon: "error",
|
})
|
return;
|
}
|
this.repeatClick = true
|
const {
|
code,
|
data,
|
msg
|
} = await request('/saveCheckDiff', {
|
container: that.barcode,
|
checkId: that.check.id,
|
checkDiffItems: that.list
|
})
|
if (code === 200) {
|
uni.showToast({
|
title: msg,
|
icon: "none",
|
})
|
that.clear()
|
} else {
|
uni.showToast({
|
title: msg,
|
icon: "none",
|
})
|
}
|
this.repeatClick = false
|
},
|
}
|
}
|
</script>
|
|
<style>
|
.index {
|
border: 1px solid #e54d42;
|
color: #e54d42;
|
border-radius: 50%;
|
display: block;
|
width: 50rpx;
|
height: 50rpx;
|
line-height: 48rpx;
|
text-align: center;
|
margin-right: 20rpx;
|
font-size: 30rpx;
|
}
|
|
.text-blue {
|
color: #0081ff !important;
|
|
}
|
|
.item {
|
position: relative;
|
display: flex;
|
min-height: 80upx;
|
align-items: center;
|
}
|
|
.content2 {
|
/* background-color: coral; */
|
width: 100%;
|
display: flex;
|
flex-direction: row;
|
align-items: center;
|
justify-content: flex-end;
|
margin-right: 10px;
|
color: #0081ff;
|
}
|
|
.noMargin {
|
margin-top: 0px;
|
padding: 5px;
|
}
|
</style>
|