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.
282 lines
6.2 KiB
282 lines
6.2 KiB
<template>
|
|
<uni-popup ref="popup">
|
|
<scroll-view scroll-y="true" class="scroll-Y">
|
|
<view class="popup_box">
|
|
<view class="pop_title">
|
|
扫描信息
|
|
<text class="fr" @click="close()">关闭</text>
|
|
</view>
|
|
<view class="uni-steps">
|
|
<com-steps-custom :options="list" :active="active"></com-steps-custom>
|
|
</view>
|
|
<view class="pop_tab">
|
|
<view class="tab_info tab_notitle">
|
|
<win-com-scan @getScanResult="getScanResult" :placeholder="placeholder"></win-com-scan>
|
|
</view>
|
|
|
|
<view class="uni-list popuni_list" v-if="location!=null">
|
|
<view class="list_cell uni-flex uni-row space-between">
|
|
<view>目标库位</view>
|
|
<text>{{location.code==''?'暂未扫描':location.code}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="list_card" v-for="(item, index) in itemList">
|
|
<view class="ljh_box nopad">
|
|
<uni-swipe-action>
|
|
<uni-swipe-action-item :right-options="options2" :auto-close="false"
|
|
@click="swipeClick($event,index)">
|
|
<dy-item-info :dataContent='item'></dy-item-info>
|
|
</uni-swipe-action-item>
|
|
</uni-swipe-action>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<com-message ref="comMessage"></com-message>
|
|
</view>
|
|
</scroll-view>
|
|
<view class="pop_btn uni-flex uni-row space-between" style="background-color: #fff;">
|
|
<button class="cancel" @click="cancel">取消</button>
|
|
<button class="save" @click="save">确定</button>
|
|
</view>
|
|
</uni-popup>
|
|
</template>
|
|
|
|
<script>
|
|
import comStepsCustom from '@/mycomponents/common/comStepsCustom.vue'
|
|
import winComScan from '@/mycomponents/wincom/winComScan.vue'
|
|
import dyItemInfo from '@/mycomponents/dycom/dyItemInfo.vue'
|
|
import comMessage from '@/mycomponents/common/comMessage.vue'
|
|
import {
|
|
locations
|
|
} from '@/api/index.js';
|
|
|
|
import {
|
|
showConfirmMsg,
|
|
showConfirmMsg1,
|
|
} from '@/common/basic.js';
|
|
|
|
export default {
|
|
name: 'comScanPutaway',
|
|
components: {
|
|
comStepsCustom,
|
|
winComScan,
|
|
dyItemInfo,
|
|
comMessage
|
|
},
|
|
data() {
|
|
return {
|
|
active: 0,
|
|
list: [{
|
|
title: '目标库位',
|
|
num: "1"
|
|
}, {
|
|
title: '箱标签',
|
|
num: "2"
|
|
}],
|
|
options2: [{
|
|
text: '移除',
|
|
style: {
|
|
backgroundColor: '#F56C6C'
|
|
}
|
|
}],
|
|
itemList: [],
|
|
locationCode: '',
|
|
location: null,
|
|
placeholder: '目标库位'
|
|
};
|
|
},
|
|
props: {
|
|
|
|
},
|
|
mounted() {
|
|
|
|
},
|
|
onPullDownRefresh() {
|
|
|
|
},
|
|
methods: {
|
|
openScanPopup(location, itemList) {
|
|
if (location != null) {
|
|
this.active = 1;
|
|
} else {
|
|
this.active = 0;
|
|
}
|
|
this.location = location;
|
|
this.itemList = itemList;
|
|
this.$refs.popup.open('bottom');
|
|
},
|
|
|
|
closeScanPopup() {
|
|
this.$refs.popup.close();
|
|
},
|
|
|
|
//提示是否移除选择的行?
|
|
swipeClick(e, index) {
|
|
let {
|
|
content
|
|
} = e;
|
|
if (content.text === '移除') {
|
|
uni.showModal({
|
|
title: '提示',
|
|
content: '是否移除选择的行?',
|
|
success: res => {
|
|
if (res.confirm) {
|
|
this.itemList.splice(index, 1);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
getScanResult(result) {
|
|
if (this.active == 0) //库位
|
|
{
|
|
this.scanLocation(result.data.code);
|
|
} else //零件号
|
|
{
|
|
this.scanItem(result);
|
|
}
|
|
},
|
|
|
|
//扫描库位
|
|
scanLocation(code) {
|
|
if (code == '') return;
|
|
let locationCode = code;
|
|
if (locationCode != '') {
|
|
uni.showLoading({
|
|
title: '扫描中...',
|
|
mask: true
|
|
})
|
|
locations(locationCode)
|
|
.then(res => {
|
|
if (res != null) {
|
|
if (res.type != 2) {
|
|
this.showMessage('目标库位必须是原材料库')
|
|
} else {
|
|
location
|
|
this.location = res;
|
|
this.afterScanlocation();
|
|
}
|
|
} else {
|
|
this.showMessage('未查询到库位' + locationCode);
|
|
}
|
|
uni.hideLoading();
|
|
})
|
|
.catch(err => {
|
|
this.showMessage(err.message);
|
|
uni.hideLoading();
|
|
});
|
|
}
|
|
},
|
|
|
|
//扫描箱码
|
|
scanItem(result) {
|
|
let code = result.data.code;
|
|
if (code == '') return;
|
|
let that = this;
|
|
let items = that.itemList.filter(r => {
|
|
return r.packingCode === code
|
|
});
|
|
if (items.length > 0) {
|
|
showConfirmMsg('零件已经存在,是否要请重新扫描?', confirm => {
|
|
if (confirm) {
|
|
that.deleteItemCode(code);
|
|
that.getItem(result);
|
|
}
|
|
});
|
|
} else {
|
|
that.getItem(result);
|
|
}
|
|
},
|
|
|
|
//删除已经扫描的零件
|
|
deleteItemCode(code) {
|
|
let that = this;
|
|
that.itemList.forEach((r, i) => {
|
|
if (r.packingCode == code) {
|
|
that.itemList.splice(i, 1);
|
|
return;
|
|
}
|
|
});
|
|
this.$forceUpdate();
|
|
},
|
|
|
|
getItem(result) {
|
|
let data = this.createItem(result);
|
|
this.itemList.unshift(data);
|
|
},
|
|
|
|
createItem(item) {
|
|
let data = {
|
|
packingCode: item.code,
|
|
itemCode: item.itemCode,
|
|
itemName: item.itemName,
|
|
itemDesc1: item.itemDesc1,
|
|
itemDesc2: item.itemDesc2,
|
|
lot: item.lot,
|
|
expireDate: item.expireDate,
|
|
stdPackUom: item.stdPackUom,
|
|
qty: item.qty,
|
|
uom: item.uom,
|
|
remark: item.remark,
|
|
arriveDate: item.arriveDate,
|
|
stdPackQty: item.stdPackQty,
|
|
supplierBatch: item.supplierBatch,
|
|
status: 2, //合格
|
|
reasonCode: '',
|
|
|
|
locationErpCode: this.location.erpLocationCode,
|
|
locationCode: this.location.code,
|
|
|
|
//标签中没有的属性
|
|
locationArea: item.locationArea,
|
|
locationGroup: item.locationGroup,
|
|
produceDate: item.produceDate,
|
|
containerCode: '',
|
|
warehouseCode: localStorage.warehouseCode,
|
|
}
|
|
return data;
|
|
},
|
|
|
|
save() {
|
|
let that = this;
|
|
if (this.location == null) {
|
|
return;
|
|
} else if (this.itemList.length == 0) {
|
|
return;
|
|
} else {
|
|
this.closeScanPopup();
|
|
this.$emit('confirm', this.itemList, this.location)
|
|
return;
|
|
}
|
|
},
|
|
|
|
//扫描完库位的下一步动作
|
|
afterScanlocation() {
|
|
this.active += 1;
|
|
this.placeholder = '箱标签';
|
|
},
|
|
|
|
//取消
|
|
cancel() {
|
|
this.active = 0;
|
|
this.location = null;
|
|
this.itemList = [];
|
|
this.placeholder = '目标库位';
|
|
},
|
|
|
|
//关闭
|
|
close() {
|
|
this.closeScanPopup();
|
|
},
|
|
|
|
showMessage(message) {
|
|
this.$refs.comMessage.showMessage(message);
|
|
},
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style>
|
|
</style>
|
|
|