Browse Source

修改拆包

hella_online_20240829
lijuncheng 2 months ago
parent
commit
2fbc89521a
  1. 397
      src/pages/fg/coms/comReceiptPopup.vue
  2. 7
      src/pages/fg/receiptByPlan.vue
  3. 76
      src/pages/package/record/splitPackageRecord.vue
  4. 4
      src/uni_modules/uni-combox/components/uni-combox/uni-combox.vue

397
src/pages/fg/coms/comReceiptPopup.vue

@ -0,0 +1,397 @@
<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>
<view class='split_line'></view>
<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" style="width: 100%;">
<view class="" style="width:25% ">
<text>生产线</text>
</view>
<view class="" >
<uni-combox :candidates="productLineList" v-model="productLineCode" placeholder="请扫描来源库位"
@confirm="handleConfirm" style='height: 30rpx;border:1px solid #fff ;'></uni-combox>
</view>
</view>
<view class='split_line'></view>
<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>
<view class='split_line'></view>
<view class="uni-flex uni-row padding title u-col-center">
<text>数量 </text>
<view class="uni-flex uni-row uni-center"
style="display: flex; align-items: center;margin-left: 20rpx;justify-content: center;">
<input style="text-align: center;" class="qty_input" v-model="counQty" type="number"
@confirm="confirm()" :focus="numberFocus" @input="checkNum"
:maxlength="maxlength" />
<uom :uom="uom"></uom>
<view class="" v-if="stdPackInfo!=undefined"
style="display: flex;flex-direction: row;margin-left: 10rpx;">
(<packQty :dataContent="stdPackInfo"></packQty>)
</view>
</view>
</view>
<view class='split_line'></view>
</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='物料代码' @getScanResult='getItemScanResult'
:itemCodeTypeList="itemCodeTypeList">
</win-scan-item>
<comMessage ref="comMessage"></comMessage>
</view>
</template>
<script>
import {
getBasicItemByCode,
getProductionlineItem,
getWorkShopLineStation,
getWarehouseCodeList
} from '@/api/request2.js';
import {
getLocationTypeName,
getListLocationTypeDesc,
checkDirectoryItemExist
} from '@/common/directory.js';
import uom from '@/mycomponents/qty/uom.vue'
import packQty from '@/mycomponents/qty/packQty.vue'
import balanceStatus from '@/mycomponents/status/balanceStatus.vue'
import winScanItem from '@/mycomponents/scan/winScanItem.vue'
export default {
components: {
uom,
balanceStatus,
winScanItem,
packQty,
},
data() {
return {
workshopCode: "", //
workShopName: "",
productionLineCode: "", //线
productionLineName: "",
workStationCode: "", //
workStationName: "",
itemCode: '请扫描物料信息',
fromWarehouseCode: "请选择仓库代码",
itemName: "",
qty: 0,
rawLocationCode: "",
fgLocationCode: "",
itemCodeFocus: false,
requestInfo: null,
itemCodeList: [],
counQty: undefined,
editPosition: true,
numberFocus: false,
uom: "",
positionInfo: "请选择位置",
show: false,
isModifiedPosition: true,
positionList: [],
stdQty: 0, //
maxlength: 10,
stdPackInfo: undefined,
wareHouseList: [],
showWareHouse: false,
productLineList:[],
productLineCode:""
}
},
props: {
title: {
type: String,
default: '完工信息'
},
itemCodeTypeList: {
type: Array,
default: []
},
},
methods: {
checkNum(e) {
let value = e.detail.value;
let dot = value.indexOf('.'); //
let reg = /^[0-9]+$/; //
if (dot > -1) {
this.maxlength = dot + 7; //
if (value.length > dot + 7) {
}
}
if (reg.test(value)) { //
this.maxlength = 10;
}
this.change(value)
},
openRequestPopup(editPosition) {
if (this.positionList.length == 0) {
getWorkShopLineStation().then(res => {
if (res.data != null && res.data.length > 0) {
this.positionList = res.data
} else {
this.showErrorMessage('未查找到位置信息');
}
}).catch(error => {
this.showErrorMessage(error);
})
}
this.editPosition = editPosition;
if (this.isModifiedPosition) {
this.isModifiedPosition = false
} else {
this.itemCode = "请扫描物料信息";
this.show = false
this.showWareHouse = false
this.uom = ""
this.qty = 0;
this.stdPackInfo = undefined;
this.counQty = undefined;
this.numberFocus = false
this.itemCodeGetFocus();
}
setTimeout(res => {
this.$refs.popup.open('bottom')
}, 500)
},
initData() {
this.positionList = [];
this.wareHouseList= [],
this.showWareHouse = false
this.editPosition =true;
this.itemCode = "请扫描物料信息";
this.rawLocationCode = ""
this.positionInfo = "请选择位置"
this.fromWarehouseCode = "请选择仓库代码"
this.workshopCode = "" //
this.workShopName = ""
this.productionLineCode = "" //线
this.productionLineName = ""
this.workStationCode = "" //
this.workStationName = ""
this.show = false
this.uom = ""
this.qty = 0;
this.stdPackInfo = undefined;
this.counQty = undefined;
this.numberFocus = false
},
closeRequestPopup() {
this.$refs.popup.close()
},
locationConfirm() {
//
this.checkLocatioCode();
},
itemCodeClick() {
this.$refs.scanPopup.openScanPopup();
},
itemCodeGetFocus() {
this.itemCodeFocus = true;
},
itemCodeLoseFocus() {
this.itemCodeFocus = false;
},
confirm() {
if (this.positionInfo == "请选择位置") {
this.showErrorMessage("请选择位置")
return
}
if (this.fromWarehouseCode == "请选择仓库代码") {
this.showErrorMessage("请选择仓库代码")
return
}
if (this.itemCode == "请扫描物料信息") {
this.showErrorMessage("请输入物料", "itemCode")
return
}
if (this.counQty == undefined) {
this.showErrorMessage("请输入数量")
return
}
if (this.qty == 0) {
this.showErrorMessage("数量必须大于0")
return
}
if (this.rawLocationCode == '') {
this.showErrorMessage(this.workStationName + "的原材料库位为空")
return
}
this.callback('add');
},
callback(action) {
let item = {
positionInfo: this.positionInfo,
workshopCode: this.workshopCode, //
workShopName: this.workShopName,
productionLineCode: this.productionLineCode, //线
productionLineName: this.productionLineName,
workStationCode: this.workStationCode, //
workStationName: this.workStationName,
rawLocationCode: this.rawLocationCode,
fgLocationCode: this.fgLocationCode,
fromWarehouseCode: this.fromWarehouseCode,
toWarehouseCode: this.fromWarehouseCode,
itemCode: this.itemCode,
itemName: this.itemName,
uom: this.uom,
qty: this.qty
};
this.closeRequestPopup();
this.$emit("confirm", action, item);
},
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 = "请扫描物料信息"
}
})
},
change(value) {
this.qty = value;
},
cancel(e) {
this.closeRequestPopup();
},
showSelect() {
if (this.editPosition) {
this.show = true
}
},
showWarseHouseSelect() {
if (this.editPosition) {
this.wareHouseClick();
}
},
confirmSelect(e) {
this.positionInfo = e[0].label + "-" + e[1].label + "-" + e[2].label
console.log("位置", this.positionInfo)
this.workshopCode = e[0].value
this.productionLineCode = e[1].value
this.workStationCode = e[2].value
this.workShopName = e[0].label
this.productionLineName = e[1].label
this.workStationName = e[2].label
let shop = this.positionList.find(shop => shop.value == this.workshopCode);
if (shop != undefined && shop.children != undefined) {
let prodLine = shop.children.find(line => line.value == this.productionLineCode);
if (prodLine != undefined && prodLine.children != undefined) {
let station = prodLine.children.find(r => r.value == this.workStationCode);
if (station.rawLocationCode == '' && station.rawLocationCode == null) {
this.showErrorMessage(this.workStationName + "的原材料库位为空,请重新选择")
return;
} else {
this.rawLocationCode = station.rawLocationCode;
this.fgLocationCode = station.fgLocationCode;
}
} else {
this.showErrorMessage("生产线-工位基础信息维护错误")
}
} else {
this.showErrorMessage("车间-生产线基础信息维护错误")
}
},
getItemScanResult(code, scanResult) {
this.itemCode = code;
this.itemName = scanResult.name
this.uom = scanResult.uom
this.stdPackInfo = scanResult.package;
this.numberFocus = true
},
wareHouseClick() {
uni.showLoading({
title: "查询中....",
mask: true
});
getWarehouseCodeList(1, 100).then(res => {
uni.hideLoading()
if (res.data != null && res.data.list.length > 0) {
res.data.list.forEach(item => {
item.value = item.code;
item.label = item.name;
})
this.wareHouseList = res.data.list
this.showWareHouse = true
} else {
this.showErrorMessage('未查找到仓库代码');
}
}).catch(error => {
uni.hideLoading()
this.showErrorMessage(error);
})
},
confirmWareHouse(e) {
this.fromWarehouseCode = e[0].value;
},
}
}
</script>
<style lang="scss">
.title {
font-size: 30rpx;
}
</style>

7
src/pages/fg/receiptByPlan.vue

@ -3,14 +3,17 @@
<view class="">
<com-blank-view @goScan='openFg' v-if="detailSource.length==0"></com-blank-view>
</view>
<comReceiptPopup ref="comReceiptPopup" @confirm='requestConfirm' ></comReceiptPopup>
</view>
</template>
<script>
import comBlankView from '@/mycomponents/common/comBlankView.vue'
import comReceiptPopup from '@/pages/fg/coms/comReceiptPopup.vue'
export default {
components: {
comBlankView
comBlankView,
comReceiptPopup
},
data() {
return {
@ -26,7 +29,7 @@
},
methods: {
openFg(){
this.$refs.comReceiptPopup.openRequestPopup("");
}
}

76
src/pages/package/record/splitPackageRecord.vue

@ -47,8 +47,10 @@
<script>
import {
goHome,
showConfirmMsg
showConfirmMsg,
getCurrDateTime
} from '@/common/basic.js';
import {
splitPackageRecordSubmit
} from '@/api/request2.js';
@ -199,7 +201,7 @@
this.closeScanPopup()
} else {
var detail = item.subList.find(r => {
if (r.packingNumber == balance.packingNumber &&
if (r.packingNumber == pack.packingNumber &&
r.batch == balance.batch &&
r.locationCode == balance.locationCode &&
r.inventoryStatus == balance.inventoryStatus) {
@ -213,7 +215,7 @@
this.closeScanPopup()
} else {
if (detail.scaned == true) {
this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]已经在列表中")
this.showErrorMessage("箱码[" + detail.packingNumber + "批次[" + balance.batch + "]已经在列表中")
}
}
}
@ -266,8 +268,8 @@
this.showErrorMessage("拆出数量不能等于0")
return;
}
if(this.splitCount>this.detailSource[0].qty){
this.showErrorMessage("拆出数量不能大于库存数量")
if(this.splitCount>=this.detailSource[0].qty){
this.showErrorMessage("拆出数量不能大于等于库存数量")
return;
}
uni.showLoading({
@ -277,38 +279,38 @@
var params = this.setParams();
console.log("提交" + JSON.stringify(params))
// splitPackageRecordSubmit(params).then(res => {
// uni.hideLoading()
// if (res.data) {
splitPackageRecordSubmit(params).then(res => {
uni.hideLoading()
if (res.data) {
// let list = []
// res.data.forEach(item => {
// list.push({
// itemCode: item.itemCode, //
// itemName: item.itemName, //
// packName: item.packName, //
// packageCode: item.toPackingNumber, //
// batch: item.toBatch, //
// parentNumber: item.parentNumber, //
// itemType: item.itemType, //
// asnNumber: item.asnNumber, //ASN
// supplierCode: item.supplierCode, //
// qty: item.qty, //
// printTimes: getCurrDateTime(), //
// productionLineCode: item.productionLineCode, //线
// barcodeString: item.barcodeString, //
// barcodeBase64: '',
// })
// })
// this.showCommitSuccessMessage("<br><br>", list)
let list = []
res.data.forEach(item => {
list.push({
itemCode: item.itemCode, //
itemName: item.itemName, //
packName: item.packName, //
packageCode: item.toPackingNumber, //
batch: item.toBatch, //
parentNumber: item.parentNumber, //
itemType: item.itemType, //
asnNumber: item.asnNumber, //ASN
supplierCode: item.supplierCode, //
qty: item.qty, //
printTimes: getCurrDateTime(), //
productionLineCode: item.productionLineCode, //线
barcodeString: item.barcodeString, //
barcodeBase64: '',
})
})
this.showCommitSuccessMessage("提交成功<br>生成拆包记录<br>", list)
// } else {
// this.showErrorMessage("[" + res.msg + "]")
// }
// }).catch(error => {
// uni.hideLoading()
// this.showErrorMessage(error)
// })
} else {
this.showErrorMessage("提交失败[" + res.msg + "]")
}
}).catch(error => {
uni.hideLoading()
this.showErrorMessage(error)
})
} else {
this.showErrorMessage("没有要提交的数据")
}
@ -331,14 +333,14 @@
subItem.toInventoryStatus = subItem.inventoryStatus;
subItem.fromQty = subItem.qty
subItem.toQty = subItem.qty
subItem.toQty = this.splitCount
subItem.fromPackingNumber = subItem.packingNumber;
subItem.toPackingNumber = subItem.packingNumber;
subItem.fromBatch = subItem.batch;
subItem.toBatch = subItem.batch;
subItem.fromLocationCode = subItem.fromLocationCode;
subItem.locationCode = detail.locationCode;
subItem.package = ""
subItem.Records = ""
subList.push(subItem)

4
src/uni_modules/uni-combox/components/uni-combox/uni-combox.vue

@ -204,7 +204,7 @@
.uni-combox__input {
flex: 1;
font-size: 14px;
font-size: 35rpx;
height: 26px;
line-height: 26px;
}
@ -245,7 +245,7 @@
cursor: pointer;
/* #endif */
line-height: 36px;
font-size: 45rpx;
font-size: 36rpx;
text-align: center;
// border-bottom: solid 1px #DDDDDD;
padding: 0px 10px;

Loading…
Cancel
Save