From c528a5b7bdba8f5a23bf4997a2b5fe2e7dc6ddd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E8=99=B9=E7=9D=BF?= <297504645@qq.com> Date: Tue, 10 Sep 2024 17:30:50 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90nev-pc=E3=80=91xbcll=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E5=B0=81=E8=A3=85=E5=BC=80=E5=8F=91+5?= =?UTF-8?q?=E4=B8=AA=E8=AE=B0=E5=BD=95=E4=BD=BF=E7=94=A8=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fe/PC/src/main.js | 4 +- fe/PC/src/mixins/TableHeaderMixins.js | 59 +++++++++++++++++++ fe/PC/src/mixins/TableMixins.js | 6 +- fe/PC/src/utils/defaultButtons.js | 11 ++++ .../views/kittingManage/KittingIssueNote.vue | 3 + .../src/views/materialIssueBP/IssueNoteBP.vue | 3 + .../src/views/materialIssuePT/IssueNotePT.vue | 3 + .../src/views/materialIssueZP/IssueNoteZP.vue | 3 + .../src/views/materialIssueZS/IssueNoteZS.vue | 3 + 9 files changed, 92 insertions(+), 3 deletions(-) diff --git a/fe/PC/src/main.js b/fe/PC/src/main.js index 672751e96..081985095 100644 --- a/fe/PC/src/main.js +++ b/fe/PC/src/main.js @@ -35,7 +35,8 @@ import { defaultFilterBtn, defaultImportBtn, defaultExportBtn, - defaultFilterForDetailBtn + defaultFilterForDetailBtn, + defaultPrintManyXbcllBtn } from '@/utils/defaultButtons'; Vue.prototype.defaultFieldSettingBtn = defaultFieldSettingBtn; @@ -45,6 +46,7 @@ Vue.prototype.defaultFilterBtn = defaultFilterBtn; Vue.prototype.defaultImportBtn = defaultImportBtn; Vue.prototype.defaultExportBtn = defaultExportBtn; Vue.prototype.defaultFilterForDetailBtn = defaultFilterForDetailBtn; +Vue.prototype.defaultPrintManyXbcllBtn = defaultPrintManyXbcllBtn; import * as filters from './filters' // global filters diff --git a/fe/PC/src/mixins/TableHeaderMixins.js b/fe/PC/src/mixins/TableHeaderMixins.js index e34786183..8d16ed99b 100644 --- a/fe/PC/src/mixins/TableHeaderMixins.js +++ b/fe/PC/src/mixins/TableHeaderMixins.js @@ -5,6 +5,7 @@ import { fileStorage } from "@/api/wms-api" +import { initPrintAllData } from "@/mixins/printMixin" export const TableHeaderMixins = { data() { return { @@ -151,6 +152,64 @@ export const TableHeaderMixins = { listUrl:this.getMOrDUrlSuffix() }) } + // 批量打印(xbcll) + if(val == "printManyXbcll"){ + // 数据模拟 + // this.copyData() + if(this.multipleSelection.length <= 0){ + return this.$warningMsg("请选择要打印的数据!") + } + // 按申请单号汇总 + let _requestNumbers = [] + let _requestInfos = {} + let _numberAndItems = [] + this.multipleSelection.forEach(out=>{ + if(_requestNumbers.indexOf(out.requestNumber) < 0){ + _requestNumbers.push(out.requestNumber) + _requestInfos[out.requestNumber] = JSON.parse(JSON.stringify(out)) + _requestInfos[out.requestNumber].details = [] + } + out.details.forEach(item=>{ + let _name = out.requestNumber + '_' + item.itemCode + if(_numberAndItems.indexOf(_name) < 0){ + _numberAndItems.push(_name) + } + _requestInfos[out.requestNumber].details.push(item) + }) + }) + let _printDataArr = [] + for(let i in _requestInfos){ + _printDataArr.push(_requestInfos[i]) + } + + // 按照同物料及同调入储位汇总明细 + _printDataArr.forEach(print=>{ + let _newDetail = {} + let _detailArr = [] + print.details.forEach(item=>{ + let _copy = JSON.parse(JSON.stringify(item)) + let _name = _copy.itemCode + "_" + _copy.handledToLocationErpCode + if(!_newDetail[_name]){ + _newDetail[_name] = _copy + }else{ + _newDetail[_name].handledToQty += _copy.handledToQty + _newDetail[_name].requestQty += _copy.requestQty + } + }) + for(let i in _newDetail){ _detailArr.push(_newDetail[i]) } + print.details = JSON.parse(JSON.stringify(_detailArr)) + }) + + // 循环打印 + _printDataArr.forEach(async print=>{ + print.details.forEach(item=>{ + item.handledToLot = item.handledToLot + " " + item.boxQtyShow = print.enumIssueSendType == 2 ? item.requestQty : '' + }) + let data = await initPrintAllData(print,'xbcll.rdlx',false,false,true); + this.Print(data) + }) + } }, // 获取主子表列表url模块 getMOrDUrlMoudle(url){ diff --git a/fe/PC/src/mixins/TableMixins.js b/fe/PC/src/mixins/TableMixins.js index f7aa1467c..8d00e25bf 100644 --- a/fe/PC/src/mixins/TableMixins.js +++ b/fe/PC/src/mixins/TableMixins.js @@ -38,7 +38,9 @@ export const tableMixins = { //默认tag firstTabs:'xq', //明细-前端手动添加的基础信息配置 - showDetailBaseFromFE:['configuration'] + showDetailBaseFromFE:['configuration'], + // 列表页是否直接获取detail + pagingShowDetail:false, } }, methods: { @@ -76,7 +78,7 @@ export const tableMixins = { this.initPagingHeaderBtn() this.Loading.tableLoading = true; this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount, - getPageList(this.PageListParams, this.URL,false,this.listURL).then(res => { + getPageList(this.PageListParams, this.URL,this.pagingShowDetail,this.listURL).then(res => { this.tableData = res.items this.totalCount = res.totalCount this.pagingCallback(callback) diff --git a/fe/PC/src/utils/defaultButtons.js b/fe/PC/src/utils/defaultButtons.js index bf997a29b..ae1b0eb9c 100644 --- a/fe/PC/src/utils/defaultButtons.js +++ b/fe/PC/src/utils/defaultButtons.js @@ -104,6 +104,17 @@ export function defaultFilterForDetailBtn(option) { }) } +// 批量打印(xbcll) +export function defaultPrintManyXbcllBtn(option) { + return __defaultBtnOption(option,{ + type: "info", + icon: "el-icon-print", + label: "批量打印", + name: "printManyXbcll", + size: "mini", + }) +} + // 默认按钮规则 function __defaultBtnOption(option,specific){ return { diff --git a/fe/PC/src/views/kittingManage/KittingIssueNote.vue b/fe/PC/src/views/kittingManage/KittingIssueNote.vue index 0a58bfac9..efc307ff0 100644 --- a/fe/PC/src/views/kittingManage/KittingIssueNote.vue +++ b/fe/PC/src/views/kittingManage/KittingIssueNote.vue @@ -22,6 +22,7 @@ :primarySearchOption="primarySearchOption" @overallSearchFormClick="overallSearchFormClick" :httpOverallSearchData="httpOverallSearchData" + :tableSelection="true" > @@ -75,8 +76,10 @@ data() { return { URL: "wms/store/kitting-issue-note", + pagingShowDetail:true, //常用按钮数据 currenButtonData: [ + this.defaultPrintManyXbcllBtn(), // this.defaultImportBtn(),//导入 this.defaultFieldSettingBtn(),//字段设置 this.defaultFreshBtn(),//刷新 diff --git a/fe/PC/src/views/materialIssueBP/IssueNoteBP.vue b/fe/PC/src/views/materialIssueBP/IssueNoteBP.vue index 3552eccee..3c5ded5cc 100644 --- a/fe/PC/src/views/materialIssueBP/IssueNoteBP.vue +++ b/fe/PC/src/views/materialIssueBP/IssueNoteBP.vue @@ -10,6 +10,7 @@ :multipleSelection="multipleSelection" :MaxResultCount="PageListParams.MaxResultCount" @topbutton="topbutton" + :tableSelection="true" @inlineDialog="inlineDialog" @sortChange="sortChange" @alertoldSkipCount="alertoldSkipCount" @@ -75,8 +76,10 @@ export default { data() { return { URL: "wms/store/spare-part-issue-note", + pagingShowDetail:true, //常用按钮数据 currenButtonData: [ + this.defaultPrintManyXbcllBtn(), // this.defaultImportBtn(),//导入 this.defaultFieldSettingBtn(),//字段设置 this.defaultFreshBtn(),//刷新 diff --git a/fe/PC/src/views/materialIssuePT/IssueNotePT.vue b/fe/PC/src/views/materialIssuePT/IssueNotePT.vue index 6ca76ecb8..8a7397344 100644 --- a/fe/PC/src/views/materialIssuePT/IssueNotePT.vue +++ b/fe/PC/src/views/materialIssuePT/IssueNotePT.vue @@ -22,6 +22,7 @@ :primarySearchOption="primarySearchOption" @overallSearchFormClick="overallSearchFormClick" :httpOverallSearchData="httpOverallSearchData" + :tableSelection="true" > @@ -75,8 +76,10 @@ export default { data() { return { URL: "wms/store/coating-issue-note", + pagingShowDetail:true, //常用按钮数据 currenButtonData: [ + this.defaultPrintManyXbcllBtn(), // this.defaultImportBtn(),//导入 this.defaultFieldSettingBtn(),//字段设置 this.defaultFreshBtn(),//刷新 diff --git a/fe/PC/src/views/materialIssueZP/IssueNoteZP.vue b/fe/PC/src/views/materialIssueZP/IssueNoteZP.vue index 040189824..a6c7d5538 100644 --- a/fe/PC/src/views/materialIssueZP/IssueNoteZP.vue +++ b/fe/PC/src/views/materialIssueZP/IssueNoteZP.vue @@ -22,6 +22,7 @@ :primarySearchOption="primarySearchOption" @overallSearchFormClick="overallSearchFormClick" :httpOverallSearchData="httpOverallSearchData" + :tableSelection="true" > @@ -75,8 +76,10 @@ export default { data() { return { URL: "wms/store/assemble-issue-note", + pagingShowDetail:true, //常用按钮数据 currenButtonData: [ + this.defaultPrintManyXbcllBtn(), // this.defaultImportBtn(),//导入 this.defaultFieldSettingBtn(),//字段设置 this.defaultFreshBtn(),//刷新 diff --git a/fe/PC/src/views/materialIssueZS/IssueNoteZS.vue b/fe/PC/src/views/materialIssueZS/IssueNoteZS.vue index d3ecb527f..a39499fce 100644 --- a/fe/PC/src/views/materialIssueZS/IssueNoteZS.vue +++ b/fe/PC/src/views/materialIssueZS/IssueNoteZS.vue @@ -22,6 +22,7 @@ :primarySearchOption="primarySearchOption" @overallSearchFormClick="overallSearchFormClick" :httpOverallSearchData="httpOverallSearchData" + :tableSelection="true" > @@ -75,8 +76,10 @@ export default { data() { return { URL: "wms/store/injection-issue-note", + pagingShowDetail:true, //常用按钮数据 currenButtonData: [ + this.defaultPrintManyXbcllBtn(), // this.defaultImportBtn(),//导入 this.defaultFieldSettingBtn(),//字段设置 this.defaultFreshBtn(),//刷新