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.
744 lines
25 KiB
744 lines
25 KiB
<template>
|
|
<view class="page-wraper">
|
|
<view class="">
|
|
<com-blank-view @goScan="showFromLocationPopup" v-if="recommendList.length == 0"></com-blank-view>
|
|
</view>
|
|
<view class="page-wraper" v-if="recommendList.length > 0">
|
|
<!-- <view class="page-header">
|
|
<view class="header_item">
|
|
来源库位 : {{fromLocationCode}}
|
|
</view>
|
|
<view class='split_line'></view>
|
|
</view> -->
|
|
|
|
<view class="page-header">
|
|
<view class="header_item" style="font-size: 35rpx; padding: 10rpx">
|
|
<uni-collapse ref="collapse">
|
|
<uni-collapse-item :open="true">
|
|
<template v-slot:title>
|
|
<view class="card_itemName" style="padding: 3px 5px; font-size: 28rpx"> 先进先出推荐信息 </view>
|
|
</template>
|
|
<view class="detail-list" v-for="(recommend, index) in recommendList" :key="recommend.id">
|
|
<view class="card_view">
|
|
<text class="card_item_code">物料代码</text>
|
|
<text class="card_content">{{ recommend.itemCode }}</text>
|
|
</view>
|
|
<balance :dataContent="recommend" :isShowStatus="false"></balance>
|
|
</view>
|
|
</uni-collapse-item>
|
|
</uni-collapse>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="page-main">
|
|
<scroll-view scroll-y="true" class="page-main-scroll">
|
|
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
|
|
<view class="">
|
|
<record-com-detail-card :dataContent="item" :index="index" :settingParam="dataContent" :isShowFromLocation="false" @removeItem="removeItem(index, item)" :isShowToLocation="false" @updateData="updateData" @removePack="removePack"> </record-com-detail-card>
|
|
</view>
|
|
</view>
|
|
</scroll-view>
|
|
</view>
|
|
<view class="page-footer">
|
|
<view class="uni-flex u-col-center space-between padding_10" style="background-color: ghostwhite; width: 100%">
|
|
<view class="uni-row uni-flex">
|
|
<text>生产线:</text>
|
|
<view class="uni-flex u-col-center uni-row" @click="showSelect">
|
|
<view class="" style="margin-left: 20rpx">
|
|
{{ positionInfo }}
|
|
</view>
|
|
<u-select v-model="show" mode="mutil-column-auto" :list="positionList" @confirm="confirmSelect"></u-select>
|
|
</view>
|
|
</view>
|
|
<view class="uni-flex uni-row">
|
|
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<win-scan-button @goScan="openScanPopup"></win-scan-button>
|
|
</view>
|
|
<win-scan-pack-and-location ref="scanPopup" @getResult="onScan" :allowModifyLocation="false" :queryBalance="false"> </win-scan-pack-and-location>
|
|
<comMessage ref="comMessage"></comMessage>
|
|
<win-scan-location ref="scanLocationCode" title="来源库位" @getLocation="getLocation" :locationAreaTypeList="fromLocationAreaTypeList"></win-scan-location>
|
|
<balance-select ref="balanceSelect" @onSelectItem="selectBalanceItem"></balance-select>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { issueRecordSubmit, getWorkShopLineStation, getBalanceByFilter, getBalanceByBatchOffShelf } from '@/api/request2.js'
|
|
|
|
import { goHome, getPackingNumberAndBatchByList, deepCopyData } from '@/common/basic.js'
|
|
|
|
import { calc } from '@/common/calc.js'
|
|
|
|
import { getInventoryStatusDesc, getDirectoryItemArray } from '@/common/directory.js'
|
|
|
|
import { getBusinessType, createItemInfo, createDetailInfo, calcTreeHandleQty, calcHandleQty } from '@/common/record.js'
|
|
|
|
import { getManagementPrecisions, getPrecisionStrategyList, getPrecisionStrategyParams } from '@/common/balance.js'
|
|
|
|
import winScanButton from '@/mycomponents/scan/winScanButton.vue'
|
|
import winScanPack from '@/mycomponents/scan/winScanPack.vue'
|
|
import requiredLocation from '@/mycomponents/location/requiredLocation.vue'
|
|
import comBlankView from '@/mycomponents/common/comBlankView.vue'
|
|
import winScanLocation from '@/mycomponents/scan/winScanLocation.vue'
|
|
import winScanPackAndLocation from '@/mycomponents/scan/winScanPackAndLocation.vue'
|
|
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
|
|
import recordDetailCard from '@/mycomponents/record/recordDetailCard.vue'
|
|
import balanceSelect from '@/mycomponents/balance/balanceSelect.vue'
|
|
import balance from '@/mycomponents/balance/balance.vue'
|
|
|
|
export default {
|
|
components: {
|
|
winScanButton,
|
|
winScanPack,
|
|
requiredLocation,
|
|
comBlankView,
|
|
winScanLocation,
|
|
winScanPackAndLocation,
|
|
recordComDetailCard,
|
|
recordDetailCard,
|
|
balanceSelect,
|
|
balance
|
|
},
|
|
data() {
|
|
return {
|
|
id: '',
|
|
dataContent: {}, // 内容
|
|
detailSource: [], // 绑定在页面上的数据源
|
|
fromLocationInfo: {},
|
|
fromLocationCode: '',
|
|
fromLocationAreaTypeList: [],
|
|
toLocationAreaTypeList: [],
|
|
inInventoryStatus: '', // 目标入库库存状态
|
|
outInventoryStatus: '', // 来源出库库存状态
|
|
businessType: {},
|
|
showToLoaction: true,
|
|
recommendLocationList: [], // 推荐库位列表
|
|
fromWarehouseCode: '', // 来源仓库
|
|
businessTypeCode: 'Issue',
|
|
positionList: [],
|
|
show: false,
|
|
positionInfo: '请选择生产线',
|
|
resultData: {},
|
|
recommendList: []
|
|
}
|
|
},
|
|
onLoad(option) {
|
|
uni.setNavigationBarTitle({
|
|
title: option.title
|
|
})
|
|
this.clearData()
|
|
getBusinessType(this.businessTypeCode, (res) => {
|
|
if (res.success) {
|
|
this.businessType = res.businessType
|
|
this.fromLocationAreaTypeList = res.fromLocationAreaTypeList
|
|
this.toLocationAreaTypeList = res.toLocationAreaTypeList
|
|
this.showFromLocationPopup()
|
|
} else {
|
|
this.showErrorMessage(res.message)
|
|
}
|
|
})
|
|
|
|
// 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)
|
|
})
|
|
// }
|
|
},
|
|
// 返回首页
|
|
onNavigationBarButtonTap(e) {
|
|
if (e.index === 0) {
|
|
goHome()
|
|
}
|
|
},
|
|
// 拦截返回按钮事件
|
|
onBackPress(e) {},
|
|
|
|
onPullDownRefresh() {},
|
|
|
|
mounted() {},
|
|
|
|
methods: {
|
|
getBalance(label, packageInfo, callback) {
|
|
const filters = []
|
|
|
|
if (packageInfo.parentNumber) {
|
|
const packingNumber = `${packageInfo.parentNumber},${label.packingNumber}`
|
|
filters.push({
|
|
column: 'packingNumber',
|
|
action: 'in',
|
|
value: packingNumber
|
|
})
|
|
} else {
|
|
filters.push({
|
|
column: 'packingNumber',
|
|
action: '==',
|
|
value: label.packingNumber
|
|
})
|
|
}
|
|
|
|
filters.push({
|
|
column: 'itemCode',
|
|
action: '==',
|
|
value: label.itemCode
|
|
})
|
|
filters.push({
|
|
column: 'batch',
|
|
action: '==',
|
|
value: label.batch
|
|
})
|
|
|
|
if (this.fromInventoryStatuses != null && this.fromInventoryStatuses != '') {
|
|
filters.push({
|
|
column: 'inventoryStatus',
|
|
action: 'in',
|
|
value: this.fromInventoryStatuses
|
|
})
|
|
}
|
|
|
|
const params = {
|
|
filters,
|
|
pageNo: 1,
|
|
pageSize: 100
|
|
}
|
|
getBalanceByFilter(params)
|
|
.then((res) => {
|
|
callback(res.data)
|
|
})
|
|
.catch((err) => {
|
|
this.showErrorMessage(err.message)
|
|
})
|
|
},
|
|
|
|
getScanResult(result) {
|
|
this.resultData = result
|
|
const packageInfo = result.package
|
|
this.getBalance(result.label, packageInfo, (balances) => {
|
|
// 扫描的是外包装
|
|
const s = ''
|
|
if (!result.package.parentNumber) {
|
|
if (balances.list.length == 0) {
|
|
this.showErrorMessage('未查找到该包装的库存信息,请重新扫描')
|
|
} else {
|
|
const newBalances = balances.list.filter((b) => b.locationCode == this.fromLocationCode)
|
|
if (newBalances.length == 0) {
|
|
this.showErrorMessage('未查找到该包装的库存信息,请重新扫描')
|
|
} else if (newBalances.length == 1) {
|
|
const balance = newBalances[0]
|
|
result.balance = balance
|
|
this.afterGetBalance(result)
|
|
} else {
|
|
this.showBalanceSelect(newBalances)
|
|
}
|
|
}
|
|
} else {
|
|
// 扫描的是小包装
|
|
if (balances.list.length == 0) {
|
|
this.showErrorMessage('未查找到该包装的库存信息,请重新扫描')
|
|
} else {
|
|
// 小包装库存
|
|
const subPackitems = balances.list.filter((r) => r.packingNumber == packageInfo.number)
|
|
// 外包装库存
|
|
const subParentPackitems = balances.list.filter((r) => r.packingNumber == packageInfo.parentNumber && r.locationCode == this.fromLocationCode)
|
|
|
|
// 小包装没有库存,
|
|
if (subPackitems.length == 0) {
|
|
// 外包装有库存,出库后剩余库存未转换为出库包装规格
|
|
|
|
if (subParentPackitems.length > 0) {
|
|
if (subParentPackitems.length == 1) {
|
|
const balance = subParentPackitems[0]
|
|
balance.qty = packageInfo.qty
|
|
result.balance = balance
|
|
this.afterGetBalance(result)
|
|
} else {
|
|
this.showBalanceSelect(subParentPackitems)
|
|
}
|
|
} else {
|
|
this.showErrorMessage(`按外包装【${packageInfo.parentNumber}】和子包装【${packageInfo.number}】都未查找到库存余额`)
|
|
}
|
|
} else {
|
|
let locationCode = this.fromLocationCode
|
|
if (balances.list == 1) {
|
|
locationCode = balances.list[0].locationCode
|
|
} else {
|
|
const manyBlances = balances.list.filter((r) => r.locationCode != this.fromLocationCode)
|
|
if (manyBlances.length > 0) {
|
|
locationCode = manyBlances[0].locationCode
|
|
}
|
|
}
|
|
this.showErrorMessage(`该包装【${packageInfo.number}】在库位【${locationCode}】已经有库存余额,请重新扫描`)
|
|
}
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
onScan(result) {
|
|
const that = this
|
|
const pack = result.package
|
|
if (that.recommendList.length > 0) {
|
|
const recommend = that.recommendList.filter((r) => r.itemCode == pack.itemCode)
|
|
if (recommend.length == 0) {
|
|
this.showErrorMessage(`物料代码【${pack.itemCode}】不在推荐列表中`)
|
|
} else {
|
|
const batch = recommend.find((r) => r.batch == pack.batch)
|
|
if (batch == undefined) {
|
|
that.showErrorMessage(`扫描的批次【${pack.batch}】,不是系统推荐的批次,不满足系统的先进先出规则,请重新扫描物料`)
|
|
} else {
|
|
this.getScanResult(result)
|
|
}
|
|
}
|
|
} else {
|
|
this.getRecommendInfo(result)
|
|
}
|
|
},
|
|
|
|
getRecommendInfo(result) {
|
|
const that = this
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
})
|
|
const item = {
|
|
itemCode: result.package.itemCode,
|
|
qty: result.package.qty
|
|
}
|
|
getBalanceByBatchOffShelf(item.itemCode, item.qty, 'issue')
|
|
.then((res) => {
|
|
if (res.data == null) {
|
|
that.showErrorMessage('未获取到推荐信息')
|
|
} else {
|
|
if (res.data.length > 0) {
|
|
that.recommendList = res.data
|
|
that.recommendList.forEach((r) => (r.locationCode = r.fromLocationCode))
|
|
const recommendInfo = res.data[0]
|
|
if (recommendInfo.batch != result.package.batch) {
|
|
that.showErrorMessage(`扫描的批次【${result.package.batch}】,不是系统推荐的批次【${recommendInfo.batch}】,不满足系统的先进先出规则,请重新扫描`)
|
|
} else {
|
|
this.getScanResult(result)
|
|
}
|
|
} else {
|
|
that.showErrorMessage('未查找到物料的推荐信息')
|
|
}
|
|
uni.hideLoading()
|
|
}
|
|
})
|
|
.catch((error) => {
|
|
uni.hideLoading()
|
|
that.showErrorMessage(error)
|
|
})
|
|
},
|
|
|
|
showBalanceSelect(items) {
|
|
this.$refs.balanceSelect.openPopup(items)
|
|
},
|
|
|
|
selectBalanceItem(balance) {
|
|
this.resultData.balance = balance
|
|
this.afterGetBalance(this.resultData)
|
|
},
|
|
|
|
afterGetBalance(result) {
|
|
const { balance } = result
|
|
const { label } = result
|
|
const pack = result.package
|
|
const { packUnit } = pack
|
|
const { packQty } = pack
|
|
const item = this.detailSource.find((res) => {
|
|
if (res.itemCode == balance.itemCode) {
|
|
return res
|
|
}
|
|
})
|
|
if (this.fromWarehouseCode == '') {
|
|
this.fromWarehouseCode = balance.warehouseCode
|
|
}
|
|
if (item == undefined) {
|
|
const itemp = createItemInfo(balance, pack)
|
|
const newDetail = createDetailInfo(balance, pack) //
|
|
newDetail.parentNumber = pack.parentNumber
|
|
newDetail.packingNumber = pack.number
|
|
newDetail.packUnit = packUnit
|
|
newDetail.packQty = packQty
|
|
itemp.subList.push(newDetail)
|
|
this.detailSource.push(itemp)
|
|
calcHandleQty(this.detailSource)
|
|
} else {
|
|
const detail = item.subList.find((r) => {
|
|
if (r.packingNumber == pack.number && r.batch == balance.batch && r.locationCode == balance.locationCode && r.inventoryStatus == balance.inventoryStatus) {
|
|
return r
|
|
}
|
|
})
|
|
if (detail == undefined) {
|
|
const newDetail = createDetailInfo(balance, pack)
|
|
newDetail.parentNumber = pack.parentNumber
|
|
newDetail.packingNumber = pack.number
|
|
newDetail.packUnit = packUnit
|
|
newDetail.packQty = packQty
|
|
item.subList.push(newDetail)
|
|
calcHandleQty(this.detailSource)
|
|
} else if (detail.scaned == true) {
|
|
this.showErrorMessage(`箱码[${detail.packingNumber}]批次[${balance.batch}]已经在列表中`)
|
|
}
|
|
}
|
|
},
|
|
|
|
getScanResult1(result) {
|
|
const { balance } = result
|
|
const { label } = result
|
|
const pack = result.package
|
|
const { packUnit } = pack
|
|
const { packQty } = pack
|
|
const item = this.detailSource.find((res) => {
|
|
if (res.itemCode == balance.itemCode) {
|
|
return res
|
|
}
|
|
})
|
|
if (this.fromWarehouseCode == '') {
|
|
this.fromWarehouseCode = balance.warehouseCode
|
|
}
|
|
if (item == undefined) {
|
|
const itemp = createItemInfo(balance, pack)
|
|
const newDetail = createDetailInfo(balance, pack) //
|
|
newDetail.packUnit = packUnit
|
|
newDetail.packQty = packQty
|
|
itemp.subList.push(newDetail)
|
|
this.detailSource.push(itemp)
|
|
calcHandleQty(this.detailSource)
|
|
} else {
|
|
const detail = item.subList.find((r) => {
|
|
if (r.packingNumber == balance.packingNumber && r.batch == balance.batch && r.locationCode == balance.locationCode && r.inventoryStatus == balance.inventoryStatus) {
|
|
return r
|
|
}
|
|
})
|
|
if (detail == undefined) {
|
|
const newDetail = createDetailInfo(balance, pack)
|
|
newDetail.packUnit = packUnit
|
|
newDetail.packQty = packQty
|
|
item.subList.push(newDetail)
|
|
calcHandleQty(this.detailSource)
|
|
} else if (detail.scaned == true) {
|
|
this.showErrorMessage(`箱码[${balance.packingNumber}批次[${balance.batch}]已经在列表中`)
|
|
}
|
|
}
|
|
},
|
|
|
|
// 获取推荐库位
|
|
getRecommendLocation(balance, pack, callback) {
|
|
uni.showLoading({
|
|
title: '扫描中...',
|
|
mask: true
|
|
})
|
|
const recommend = this.recommendLocationList.find((r) => r.itemCode == balance.itemCode)
|
|
if (recommend == undefined) {
|
|
const param = {
|
|
itemCode: balance.itemCode,
|
|
batch: balance.batch,
|
|
inventoryStatus: balance.inventoryStatus,
|
|
supplierCode: pack.supplierCode,
|
|
businessCode: this.businessTypeCode
|
|
}
|
|
console.log(JSON.stringify(param))
|
|
getPutawayRecommendLocation(param)
|
|
.then((res) => {
|
|
this.recommendLocationList.push({
|
|
itemCode: balance.itemCode,
|
|
locationCode: res.data.code
|
|
})
|
|
callback(res.data)
|
|
uni.hideLoading()
|
|
})
|
|
.catch((error) => {
|
|
uni.hideLoading()
|
|
this.showErrorMessage(error)
|
|
uni.hideLoading()
|
|
})
|
|
} else {
|
|
callback(recommend)
|
|
}
|
|
},
|
|
|
|
showErrorMessage(message) {
|
|
this.$refs.comMessage.showErrorMessage(message, (res) => {
|
|
if (res) {
|
|
}
|
|
})
|
|
},
|
|
|
|
calcTreeHandleQty() {
|
|
for (const item of this.detailSource) {
|
|
item.qty = 0
|
|
for (const detail of item.subList) {
|
|
if (detail != undefined) {
|
|
item.qty = calc.add(item.qty, detail.qty)
|
|
}
|
|
}
|
|
}
|
|
this.$forceUpdate()
|
|
},
|
|
|
|
showSelect() {
|
|
// if (this.editPosition) {
|
|
this.show = true
|
|
// }
|
|
},
|
|
|
|
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
|
|
|
|
const shop = this.positionList.find((shop) => shop.value == this.workshopCode)
|
|
if (shop != undefined && shop.children != undefined) {
|
|
const prodLine = shop.children.find((line) => line.value == this.productionLineCode)
|
|
if (prodLine != undefined && prodLine.children != undefined) {
|
|
const station = prodLine.children.find((r) => r.value == this.workStationCode)
|
|
if (station.rawLocationCode == '' && station.rawLocationCode == null) {
|
|
this.showErrorMessage(`${this.workStationName}的原材料库位为空,请重新选择`)
|
|
return
|
|
}
|
|
this.rawLocationCode = station.rawLocationCode
|
|
this.fgLocationCode = station.fgLocationCode
|
|
} else {
|
|
this.showErrorMessage('生产线-工位基础信息维护错误')
|
|
}
|
|
} else {
|
|
this.showErrorMessage('车间-生产线基础信息维护错误')
|
|
}
|
|
|
|
// 赋值到库位代码
|
|
let toLocationCode = ''
|
|
this.positionList.forEach((item) => {
|
|
if (this.workshopCode == item.value) {
|
|
// 车间
|
|
item.children.find((child) => {
|
|
if (this.productionLineCode == child.value) {
|
|
toLocationCode = child.children.find((subChild) => this.workStationCode == subChild.value).rawLocationCode
|
|
}
|
|
})
|
|
}
|
|
})
|
|
this.detailSource.forEach((item) => {
|
|
item.subList.forEach((detail) => {
|
|
detail.toLocationCode = toLocationCode
|
|
})
|
|
})
|
|
},
|
|
|
|
removeItem(index, item) {
|
|
this.detailSource.splice(index, 1)
|
|
},
|
|
|
|
removePack() {
|
|
for (let i = 0; i < this.detailSource.length; i++) {
|
|
const item = this.detailSource[i]
|
|
if (item.subList.length == 0) {
|
|
this.detailSource.splice(i, 1)
|
|
}
|
|
}
|
|
this.updateData()
|
|
},
|
|
|
|
openScanPopup() {
|
|
if (this.fromLocationCode == '') {
|
|
this.showFromLocationPopup()
|
|
return
|
|
}
|
|
this.$refs.scanPopup.openScanPopupForType(this.fromLocationCode, this.businessType)
|
|
},
|
|
|
|
showFromLocationPopup() {
|
|
this.$nextTick(() => {
|
|
this.$refs.scanLocationCode.openScanPopup()
|
|
})
|
|
},
|
|
|
|
closeScanPopup() {
|
|
if (this.$refs.scanPopup != undefined) {
|
|
this.$refs.scanPopup.closeScanPopup()
|
|
}
|
|
},
|
|
|
|
scanPopupGetFocus() {
|
|
if (this.$refs.scanPopup != undefined) {
|
|
this.$refs.scanPopup.getfocus()
|
|
}
|
|
},
|
|
|
|
// scanLocationCode(location, code) {
|
|
// this.toLocationCode = code
|
|
// this.toLocationCode = location;
|
|
|
|
// },
|
|
|
|
commit() {
|
|
uni.showLoading({
|
|
title: '提交中....',
|
|
mask: true
|
|
})
|
|
|
|
// 记录有目标库位,需要查询管理模式
|
|
const precisionStrategyParams = getPrecisionStrategyParams(this.detailSource)
|
|
// 2:获取管理模式,封装参数
|
|
getPrecisionStrategyList(precisionStrategyParams, (res) => {
|
|
if (res.success) {
|
|
this.managementList = res.list
|
|
const params = {
|
|
...this.setRecordParams()
|
|
}
|
|
console.log('提交参数', JSON.stringify(params))
|
|
|
|
issueRecordSubmit(params)
|
|
.then((res) => {
|
|
uni.hideLoading()
|
|
if (res.data) {
|
|
this.showCommitSuccessMessage(`提交成功<br>生成直接发料记录<br>${res.data}`)
|
|
} else {
|
|
this.showErrorMessage(`提交失败[${res.msg}]`)
|
|
}
|
|
})
|
|
.catch((error) => {
|
|
uni.hideLoading()
|
|
this.showErrorMessage(error)
|
|
})
|
|
} else {
|
|
uni.hideLoading()
|
|
this.showErrorMessage(res.message)
|
|
}
|
|
})
|
|
},
|
|
|
|
setRecordParams() {
|
|
const subList = []
|
|
const creator = this.$store.state.user.id
|
|
this.detailSource.forEach((item) => {
|
|
item.subList.forEach((detail) => {
|
|
if (detail.scaned) {
|
|
const info = getPackingNumberAndBatchByList(this.managementList, detail.itemCode, detail.packingNumber, detail.toLocationCode, detail.batch)
|
|
const submitItem = deepCopyData(detail)
|
|
submitItem.toPackingNumber = info.packingNumber
|
|
submitItem.toBatch = info.batch
|
|
submitItem.toContainerNumber = detail.containerNumber
|
|
|
|
submitItem.fromPackingNumber = info.packingNumber
|
|
submitItem.fromBatch = info.batch
|
|
submitItem.fromContainerNumber = detail.containerNumber
|
|
|
|
submitItem.fromLocationCode = detail.locationCode
|
|
submitItem.toLocationCode = detail.toLocationCode
|
|
|
|
// detail.toInventoryStatus = detail.inventoryStatus
|
|
// detail.toLocationCode = detail.toLocationCode
|
|
submitItem.qty = detail.handleQty
|
|
submitItem.package = ''
|
|
submitItem.recordList = [
|
|
{
|
|
toInventoryStatus: detail.inventoryStatus,
|
|
fromParentPackingNumber: detail.parentNumber,
|
|
fromPackingNumber: info.packingNumber,
|
|
fromBatch: info.batch,
|
|
toPackingNumber: info.packingNumber,
|
|
toBatch: info.batch,
|
|
fromLocationCode: detail.locationCode,
|
|
toLocationCode: detail.toLocationCode,
|
|
handleQty: detail.handleQty,
|
|
fromPackUnit: detail.packUnit,
|
|
toPackUnit: detail.packUnit,
|
|
fromPackQty: detail.packQty,
|
|
toPackQty: detail.packQty
|
|
}
|
|
]
|
|
subList.push(submitItem)
|
|
}
|
|
})
|
|
})
|
|
if (subList.length > 0) {
|
|
this.dataContent.toWarehouseCode = subList[0].toWarehouseCode
|
|
}
|
|
this.dataContent.subList = subList
|
|
this.dataContent.creator = creator
|
|
this.dataContent.fromWarehouseCode = this.fromWarehouseCode
|
|
return this.dataContent
|
|
},
|
|
|
|
showMessage(message) {
|
|
this.$refs.comMessage.showMessage(message, (res) => {
|
|
if (res) {
|
|
}
|
|
})
|
|
},
|
|
|
|
showScanMessage(message) {
|
|
this.$refs.comMessage.showScanMessage(message)
|
|
},
|
|
|
|
afterCloseMessage() {
|
|
this.scanPopupGetFocus()
|
|
},
|
|
|
|
closeScanMessage() {
|
|
this.scanPopupGetFocus()
|
|
},
|
|
getLocation(location, code) {
|
|
this.getFromLocationCode(location, code)
|
|
},
|
|
getFromLocationCode(location, code) {
|
|
this.fromLocationInfo = location
|
|
this.fromLocationCode = code
|
|
this.openScanPopup()
|
|
},
|
|
getToLocationCode(location, code) {
|
|
if (this.fromLocationCode == code) {
|
|
uni.showToast({
|
|
title: `来源库位[${this.fromLocationCode}]不能与目标库位[${code}]一致`,
|
|
duration: 2000
|
|
})
|
|
return
|
|
}
|
|
this.toLocationCode = code
|
|
},
|
|
|
|
showCommitSuccessMessage(hint) {
|
|
this.$refs.comMessage.showSuccessMessage(hint, (res) => {
|
|
this.clearData()
|
|
})
|
|
},
|
|
|
|
updateData() {
|
|
calcHandleQty(this.detailSource)
|
|
for (let i = 0; i < this.detailSource.length; i++) {
|
|
const item = this.detailSource[i]
|
|
if (item.qty == 0) {
|
|
this.detailSource.splice(i, 1)
|
|
}
|
|
}
|
|
this.$forceUpdate()
|
|
},
|
|
|
|
clearData() {
|
|
this.fromLocationInfo = {}
|
|
this.fromLocationCode = ''
|
|
this.fromWarehouseCode = ''
|
|
this.toWarehouseCode = ''
|
|
this.detailSource = []
|
|
this.positionInfo = '请选择生产线'
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss"></style>
|
|
|