UNPKG

logwire-wms-ui-test

Version:

运匠科技wms-PDA基础组件库

310 lines (273 loc) 8.88 kB
/* * 捆包混入 * @author: 张文 * @date 2022-07-07 * */ import {projectWmsOutboundQueryPackMaterial} from "../../../../api/outbound/bale/aloneBale/action"; import containerInfo from "./components/containerInfo/index.vue"; import containerSkuQty from "./components/containerSkuQty/index.vue"; import allBlock from "./components/allBlock/index.vue"; import partBlock from "./components/partBlock/index.vue"; import delSku from './components/delSku/index.vue' import repeatCheck from './components/repeatCheck/index.vue' import {projectWmsOutboundMobileGetPackConfig} from "../../../../api/outbound/bale/packTableConfig"; export const baleMixins = { components:{ containerInfo, containerSkuQty, allBlock, partBlock, delSku, repeatCheck, }, data(){ return { // 显示剔除按钮 showDelBtn: true, // 完成捆包弹框 overBalePopup:{ show: false, // 实际重量 real:{ value: '', focus: false }, // 包材输入框 materials:{ value:'', focus:false, list:[] }, // 放置库位 packedLocation:{ value: '', focus: false }, // 捆包容器 packUseContainer:{ value: '', focus: false }, data:{} }, // 重新复核 repeatPopupShow: false, // 剔除弹框 delPopupShow: false, // 全部拦截弹框 allBlockShow: false, // 全部拦截的数据 allBlockData:{}, // 部分拦截弹框 partBlockPopup:{ show: false, data:{ pickContainer:'', skuTypeCount:'', skuQty:'', blockData:{} } }, // 推荐包材 suggestMaterialList:[], // 捆包台配置信息 packTableConfig:{}, // 打印机数据 printData:{}, } }, computed:{ // 底部按钮 btnList(){ let list = [] if (this.packBox.boxId){ list = [ { text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.bale.components.mixins.over','完成复核(封箱)'), click: this.overBaleOpen }, { text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.bale.components.mixins.repeat','重新复核'), click: this.mixinRepeatOpen } ] } // 是否显示剔除按钮 if (this.packBox.boxId && this.showDelBtn){ list.push({ text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.bale.components.mixins.del','剔除商品'), click: this.mixinDelSkuOpen }) } // 是否显示追加商品按钮 if (this.packBox.boxId && this.showAddBtn){ list.push({ text: this.$lwLanguage.get('wms_project.pda.components.page.outbound.bale.components.mixins.add','追加'), click: this.addSkuOpen }) } return list }, }, methods: { // 初始化获取打印机和配置信息 async mixinInit(){ // 判断当前是否配置了打印机 const {success,printData} = this.$lwPrint.test( 'OUTBOUND_BOX_LABEL', this.$lwLanguage.get('','出库箱票标签') ) if (!success){ history.go(-1) throw Error('打印机设备未配置') } this.printData = printData this.packTableConfig = await projectWmsOutboundMobileGetPackConfig() }, // 完成捆包打开弹框 mixinOpenOverBale(res){ this.overBalePopup.data = res this.overBalePopup.show = true this.overBalePopup.real.focus = true }, // 完成捆包 - 实际重量确认 mixinRealConfirm(){ this.overBalePopup.materials.focus = true }, // 完成捆包 - 包材确认 mixinMaterialsConfirm(){ const materials = this.overBalePopup.materials.value if (!materials){ this.overBalePopup.materials.focus = true this.$lwShowErrorMsg( this.$lwLanguage.get('wms_project.pda.components.page.outbound.bale.components.mixins.null','捆包包材不能为空') ) return } // 判断是否使用推荐包材 if ( this.packTableConfig.forceUseSuggestPackMaterial && this.suggestMaterialList.length && !this.suggestMaterialList.some(item=>item.packMaterialCode===materials) ){ this.overBalePopup.materials.focus = true this.$lwShowErrorMsg( this.$lwLanguage.get('','捆包包材必须使用推荐的捆包包材,推荐包材:{code}',{code:this.suggestMaterialList.map(item=>item.packMaterialCode).join('、')}) ) this.overBalePopup.materials.value = '' return } projectWmsOutboundQueryPackMaterial({ packMaterialCode: materials, boxId: this.packBox.boxId }).then(res=>{ this.overBalePopup.materials.list.unshift(res) this.overBalePopup.materials.value = '' }).catch(()=>{ this.overBalePopup.materials.value = '' }) }, // 完成捆包 - 删除包材 mixinDelMaterials(index){ this.overBalePopup.materials.list.splice(index, 1) }, // 完成捆包 - 获取捆绑包包材 mixinGetMaterials(){ // 获取每一个包材的使用量 let obj = {} this.overBalePopup.materials.list.forEach(item=>{ if (obj[item.packMaterialId]){ obj[item.packMaterialId] = obj[item.packMaterialId] + 1 }else { obj[item.packMaterialId] = 1 } }) let packMaterialList = [] for (let i in obj){ packMaterialList.push({ packMaterialId: i, qty: obj[i] }) } return packMaterialList }, // 完成捆包 - 弹框关闭 mixinOverBaleOff(){ this.overBalePopup.materials.value = '' this.overBalePopup.materials.list = [] this.overBalePopup.real.value = '' this.overBalePopup.packedLocation ? this.overBalePopup.packedLocation.value = '' : '' }, // 重新复核 - 打开弹框 mixinRepeatOpen(){ this.repeatPopupShow = true }, // 剔除商品 - 打开弹框 mixinDelSkuOpen(){ this.delPopupShow = true }, // 校验是否拦截 mixinCheckBlock(res){ if (!res.containerBlockData) return // 全部拦截 if (res.containerBlockData.blockStatus === '200') { this.allBlockShow = true this.allBlockData = res.containerBlockData } // 部分拦截 if (res.containerBlockData.blockStatus === '100') { this.partBlockPopup.data={ pickContainer: res.containerBlockData.pickContainer, skuTypeCount:res.containerBlockData.skuTypeCount, skuQty:res.containerBlockData.packQty, blockData:res.containerBlockData.blockSkuList[0] } this.partBlockPopup.show = true } }, // 异常上报成功 mixinAbnSuccess(res){ if(res.containerPackFinish){ this.$lwToast.success( this.$lwLanguage.get('wms_project.pda.components.page.outbound.bale.components.mixins.all','当前容器已全部捆包') ) } if (this.packBox.boxId){ this.getData() }else { history.go(-1) } }, // 捆包容器确认 mixinPackUseContainerConfirm(){ this.packTableConfig.needPackedLocation ? this.overBalePopup.packedLocation.focus = true : this.overBaleConfirm() }, // 完成捆包的必填校验 mixinOverBaleCheck(){ const {packNeedUseContainerConf, needPackedLocation} = this.packTableConfig // 校验捆包容器 let packUseContainer = this.overBalePopup.packUseContainer.value if (packNeedUseContainerConf === '1' && !packUseContainer){ this.overBalePopup.packUseContainer.focus = true this.$lwShowErrorMsg( this.$lwLanguage.get('','捆包容器不能为空') ) return {success:false} } // 校验放置库位 let packedLocation = this.overBalePopup.packedLocation.value if (needPackedLocation && !packedLocation){ this.overBalePopup.packedLocation.focus = true this.$lwShowErrorMsg( this.$lwLanguage.get('','放置库位不能为空') ) return {success:false} } return { success:true, packUseContainer, packedLocation } } } }