Niext
11 months ago
5 changed files with 448 additions and 79 deletions
@ -0,0 +1,281 @@ |
|||||
|
<template> |
||||
|
<view class=""> |
||||
|
<uni-popup ref="popup" :maskClick="false"> |
||||
|
<view class="uni-flex uni-column pop_customer"> |
||||
|
<view class="" style="padding:10rpx"> |
||||
|
<view class="uni-flex u-col-center uni-row space-between" style="padding: 10rpx 10rpx 20rpx 10rpx"> |
||||
|
<view class="" style="font-size: 35rpx;"> |
||||
|
{{title}} |
||||
|
</view> |
||||
|
<image style="width: 35rpx;height: 35rpx;" src="/static/icons/icons_close.svg" |
||||
|
@click="closeRequestPopup()"></image> |
||||
|
</view> |
||||
|
<u-line /> |
||||
|
<view class="uni-flex uni-column" style="background-color: white; "> |
||||
|
<view class="uni-flex uni-column "> |
||||
|
<view class="uni-flex uni-row padding title u-col-center"> |
||||
|
<text style="width: 80px;">目标库位:</text> |
||||
|
<view class="" style="width: 70% ;"> |
||||
|
{{toLocationCode}} |
||||
|
</view> |
||||
|
<view class=""> |
||||
|
<image src="/static/search.svg" mode="" |
||||
|
style=" width: 40rpx;height: 40rpx;margin-left: 20rpx;" |
||||
|
@click="locationCodeClick"> |
||||
|
</image> |
||||
|
</view> |
||||
|
</view> |
||||
|
<u-line /> |
||||
|
|
||||
|
<view class="title padding" style="display: flex;"> |
||||
|
<text style=" flex-shrink: 0;">物料:</text> |
||||
|
<view class="" style="width: 100% ;"> |
||||
|
{{itemCode}} |
||||
|
</view> |
||||
|
<view class=""> |
||||
|
<image src="/static/search.svg" mode="" |
||||
|
style=" width: 40rpx;height: 40rpx;margin-left: 20rpx;" @click="itemCodeClick"> |
||||
|
</image> |
||||
|
</view> |
||||
|
</view> |
||||
|
<u-line /> |
||||
|
|
||||
|
<view class="uni-flex uni-row padding title u-col-center"> |
||||
|
<text>数量: </text> |
||||
|
<view class="uni-flex uni-row uni-center" |
||||
|
style="align-items: center;margin-left: 20rpx;"> |
||||
|
<uni-number-box :value="counQty" @change="change" style='margin-left: 10rpx;' |
||||
|
:focus="numberFocus" @blur='numberFocus = false'> |
||||
|
</uni-number-box> |
||||
|
<uom :uom="uom"></uom> |
||||
|
</view> |
||||
|
</view> |
||||
|
<u-line /> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="uni-flex uni-row hide_border"> |
||||
|
<button class="btn_edit_big_cancle" hover-class="btn_edit_big_after" @click="cancel()">取消</button> |
||||
|
<button class="btn_edit_big_confirm" hover-class="btn_edit_big_after" @click="confirm()">确认</button> |
||||
|
</view> |
||||
|
</view> |
||||
|
</uni-popup> |
||||
|
<win-scan-item ref="scanPopup" title='物料代码' @getScanCode='getScanCode'> |
||||
|
</win-scan-item> |
||||
|
|
||||
|
<win-scan-location ref="scanLocationPopup" title='目标库位' @getLocation='getLocationCode' |
||||
|
:locationTypeList="toLocationTypeList"> |
||||
|
</win-scan-location> |
||||
|
|
||||
|
<comMessage ref="comMessage"> |
||||
|
</comMessage> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { |
||||
|
getBasicLocationByCode, |
||||
|
getBasicItemByCode, |
||||
|
getProductionlineItem, |
||||
|
getWorkShopLineStation |
||||
|
} from '@/api/request2.js'; |
||||
|
import { |
||||
|
getLocationTypeName, |
||||
|
getListLocationTypeDesc, |
||||
|
checkDirectoryItemExist |
||||
|
} from '@/common/directory.js'; |
||||
|
import uom from '@/mycomponents/qty/uom.vue' |
||||
|
import balanceStatus from '@/mycomponents/status/balanceStatus.vue' |
||||
|
import comMessage from '@/mycomponents/common/comMessage.vue' |
||||
|
import winScanItem from '@/mycomponents/scan/winScanItem.vue' |
||||
|
import winScanLocation from '@/mycomponents/scan/winScanLocation.vue' |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
uom, |
||||
|
balanceStatus, |
||||
|
comMessage, |
||||
|
winScanItem, |
||||
|
winScanLocation |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
itemCode: '请扫描物料信息', |
||||
|
toLocation: {}, |
||||
|
toLocationCode: '请扫目标库位', |
||||
|
itemName: "", |
||||
|
qty: 0, |
||||
|
rawLocationCode: "", |
||||
|
fgLocationCode: "", |
||||
|
itemCodeFocus: false, |
||||
|
isCheckItemCode: false, |
||||
|
counQty: 0, |
||||
|
editPosition: true, |
||||
|
numberFocus: false, |
||||
|
uom: "", |
||||
|
positionInfo: "请选择位置", |
||||
|
show: false, |
||||
|
isModifiedPosition: true, |
||||
|
positionList: [], |
||||
|
} |
||||
|
}, |
||||
|
props: { |
||||
|
title: { |
||||
|
type: String, |
||||
|
default: '补料需求信息' |
||||
|
}, |
||||
|
toLocationTypeList: { |
||||
|
type: Array, |
||||
|
default: [] |
||||
|
}, |
||||
|
}, |
||||
|
mounted() { |
||||
|
|
||||
|
}, |
||||
|
methods: { |
||||
|
openRequestPopup(editPosition) { |
||||
|
// this.editPosition = editPosition; |
||||
|
// if (this.isModifiedPosition) { |
||||
|
// this.isModifiedPosition = false |
||||
|
// } else { |
||||
|
// this.itemCode = ""; |
||||
|
// this.uom = "" |
||||
|
// this.qty = 0 |
||||
|
// this.itemCodeGetFocus(); |
||||
|
// } |
||||
|
|
||||
|
this.$refs.popup.open('bottom'); |
||||
|
this.showScanLocation(); |
||||
|
}, |
||||
|
closeRequestPopup() { |
||||
|
this.$refs.popup.close() |
||||
|
}, |
||||
|
|
||||
|
locationCodeClick() { |
||||
|
this.showScanLocation(); |
||||
|
}, |
||||
|
|
||||
|
showScanLocation() { |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.scanLocationPopup.openScanPopup(); |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
itemCodeClick() { |
||||
|
this.$refs.scanPopup.openScanPopup(); |
||||
|
}, |
||||
|
|
||||
|
showScanItem() { |
||||
|
this.$nextTick(() => { |
||||
|
this.$refs.scanPopup.openScanPopup(); |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
itemCodeGetFocus() { |
||||
|
this.itemCodeFocus = true; |
||||
|
}, |
||||
|
itemCodeLoseFocus() { |
||||
|
this.itemCodeFocus = false; |
||||
|
}, |
||||
|
selectedItem(item) { |
||||
|
this.itemCode = item.itemCode; |
||||
|
this.checkItemCode(); |
||||
|
}, |
||||
|
|
||||
|
confirm() { |
||||
|
if (this.itemCode == "" || !this.isCheckItemCode) { |
||||
|
this.showErrorMessage("请输入物料", "itemCode") |
||||
|
return |
||||
|
} |
||||
|
if (this.qty == 0) { |
||||
|
this.showErrorMessage("数量必须大于0") |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
this.callback('add'); |
||||
|
}, |
||||
|
|
||||
|
checkItemCode(itemCode) { |
||||
|
//校验物料 |
||||
|
getBasicItemByCode(itemCode).then(res => { |
||||
|
uni.hideLoading(); |
||||
|
this.$refs.scanPopup.closeScanPopup(); |
||||
|
if (res.data != null && res.data.list.length > 0) { |
||||
|
this.itemCode = res.data.list[0].code; |
||||
|
this.itemName = res.data.list[0].name |
||||
|
this.isCheckItemCode = true; |
||||
|
this.numberFocus = true |
||||
|
this.uom = res.data.list[0].uom |
||||
|
} else { |
||||
|
this.showErrorMessage('未查找到物料【' + itemCode + '】', "itemCode"); |
||||
|
} |
||||
|
|
||||
|
}).catch(error => { |
||||
|
uni.hideLoading(); |
||||
|
this.showErrorMessage(error, "itemCode"); |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
callback(action) { |
||||
|
let item = { |
||||
|
toLocation: this.toLocation, |
||||
|
itemCode: this.itemCode, |
||||
|
itemName: this.itemName, |
||||
|
uom: this.uom, |
||||
|
qty: this.qty |
||||
|
}; |
||||
|
this.closeRequestPopup(); |
||||
|
this.$emit("confirm", action, item); |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
change(value) { |
||||
|
this.qty = value; |
||||
|
}, |
||||
|
|
||||
|
cancel(e) { |
||||
|
this.closeRequestPopup(); |
||||
|
}, |
||||
|
|
||||
|
getScanCode(code) { |
||||
|
if (code == "") { |
||||
|
this.showErrorMessage('物料号不能为空') |
||||
|
return; |
||||
|
} |
||||
|
this.itemCode = ""; |
||||
|
this.checkItemCode(code) |
||||
|
}, |
||||
|
|
||||
|
getLocationCode(location, code) { |
||||
|
if (location != null) { |
||||
|
this.toLocation = location; |
||||
|
this.toLocationCode = code; |
||||
|
this.showScanItem(); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
showErrorMessage(message, type) { |
||||
|
setTimeout(r => { |
||||
|
this.$refs.comMessage.showErrorMessage(message, res => { |
||||
|
if (type == "itemCode") { |
||||
|
this.itemCodeGetFocus(); |
||||
|
} else { |
||||
|
this.numberFocus = true; |
||||
|
} |
||||
|
}) |
||||
|
if (type == "itemCode") { |
||||
|
this.itemCode = "" |
||||
|
this.isCheckItemCode = false; |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
.title { |
||||
|
font-size: 30rpx; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue