报价打印

This commit is contained in:
xielue 2023-07-31 11:25:45 +08:00
parent 0c11909b8a
commit 2728d51fce
4 changed files with 314 additions and 82 deletions

View File

@ -1344,6 +1344,20 @@ export default {
}, },
print() { // print() { //
if (this.tabKey != "main") {
let index = parseInt(this.tabKey); // tab
let drawers = this.$refs['drawer']; //
if (drawers && drawers[index] && drawers[index].print) { //
drawers[index].print();
}
return;
}
let hiprint = this.$hiPrint; // let hiprint = this.$hiPrint; //
let tdata = JSON.parse(JSON.stringify(this.formOptions.data)); // let tdata = JSON.parse(JSON.stringify(this.formOptions.data)); //

View File

@ -113,8 +113,7 @@
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column> :edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
<vxe-column field="paint_number" title="油漆面" width="80" <vxe-column field="paint_number" title="油漆面" width="80"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column> :edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
<vxe-column field="board_length_formula" title="板材用量(块)" width="220" <vxe-column field="board_length_formula" title="板材用量(块)" width="220" :edit-render="{ name: 'EditExpressions' }">
:edit-render="{ name: 'EditExpressions' }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -128,8 +127,7 @@
</template> </template>
</vxe-column> </vxe-column>
<vxe-column field="paint_area_formula" title="油漆面积(㎡)" width="220" <vxe-column field="paint_area_formula" title="油漆面积(㎡)" width="220" :edit-render="{ name: 'EditExpressions' }">
:edit-render="{ name: 'EditExpressions' }">
<template #default="{ row }"> <template #default="{ row }">
<a-tooltip> <a-tooltip>
<template slot="title"> <template slot="title">
@ -401,8 +399,7 @@
isEnter: false, isTab: true, isEdit: true, isChecked: true isEnter: false, isTab: true, isEdit: true, isChecked: true
}" :mouse-config="{ selected: true }" @pulldownSelected="labor_onPulldownSelected" }" :mouse-config="{ selected: true }" @pulldownSelected="labor_onPulldownSelected"
@popupSelected="labor_onPopupSelected" :export-config="{}" @edit-closed="labor_afterEditEvent" @popupSelected="labor_onPopupSelected" :export-config="{}" @edit-closed="labor_afterEditEvent"
@edit-actived="labor_beforeEditEvent" @edit-actived="labor_beforeEditEvent" :footer-cell-class-name="labor_footerCellClassName"
:footer-cell-class-name="labor_footerCellClassName"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: labor_beforeEditMethod }"> :edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: labor_beforeEditMethod }">
<vxe-column width="60" v-if="!isReadonly"> <vxe-column width="60" v-if="!isReadonly">
<template #default="{ row }"> <template #default="{ row }">
@ -450,8 +447,7 @@
isEnter: false, isTab: true, isEdit: true, isChecked: true isEnter: false, isTab: true, isEdit: true, isChecked: true
}" :mouse-config="{ selected: true }" @pulldownSelected="expense_onPulldownSelected" }" :mouse-config="{ selected: true }" @pulldownSelected="expense_onPulldownSelected"
@popupSelected="expense_onPopupSelected" :export-config="{}" @edit-closed="expense_afterEditEvent" @popupSelected="expense_onPopupSelected" :export-config="{}" @edit-closed="expense_afterEditEvent"
@edit-actived="expense_beforeEditEvent" @edit-actived="expense_beforeEditEvent" :footer-cell-class-name="expense_footerCellClassName"
:footer-cell-class-name="expense_footerCellClassName"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: expense_beforeEditMethod }"> :edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: expense_beforeEditMethod }">
<vxe-column width="60" v-if="!isReadonly"> <vxe-column width="60" v-if="!isReadonly">
<template #default="{ row }"> <template #default="{ row }">
@ -504,7 +500,6 @@
isEnter: false, isTab: true, isEdit: true, isChecked: true isEnter: false, isTab: true, isEdit: true, isChecked: true
}" :mouse-config="{ selected: true }" @pulldownSelected="paintMaterial_onPulldownSelected" }" :mouse-config="{ selected: true }" @pulldownSelected="paintMaterial_onPulldownSelected"
@popupSelected="paintMaterial_onPopupSelected" :export-config="{}" @edit-closed="paintMaterial_afterEditEvent" @popupSelected="paintMaterial_onPopupSelected" :export-config="{}" @edit-closed="paintMaterial_afterEditEvent"
:footer-cell-class-name="paintMaterial_footerCellClassName" :footer-cell-class-name="paintMaterial_footerCellClassName"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintMaterial_beforeEditMethod }"> :edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintMaterial_beforeEditMethod }">
<vxe-column width="60" v-if="!isReadonly"> <vxe-column width="60" v-if="!isReadonly">
@ -568,9 +563,7 @@
isEnter: false, isTab: true, isEdit: true, isChecked: true isEnter: false, isTab: true, isEdit: true, isChecked: true
}" :mouse-config="{ selected: true }" @pulldownSelected="paintLabor_onPulldownSelected" }" :mouse-config="{ selected: true }" @pulldownSelected="paintLabor_onPulldownSelected"
@popupSelected="paintLabor_onPopupSelected" :export-config="{}" @edit-closed="paintLabor_afterEditEvent" @popupSelected="paintLabor_onPopupSelected" :export-config="{}" @edit-closed="paintLabor_afterEditEvent"
@edit-actived="paintLabor_beforeEditEvent" @edit-actived="paintLabor_beforeEditEvent" :footer-cell-class-name="paintLabor_footerCellClassName"
:footer-cell-class-name="paintLabor_footerCellClassName"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintLabor_beforeEditMethod }"> :edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintLabor_beforeEditMethod }">
<vxe-column width="60" v-if="!isReadonly"> <vxe-column width="60" v-if="!isReadonly">
<template #default="{ row }"> <template #default="{ row }">
@ -618,8 +611,7 @@
isEnter: false, isTab: true, isEdit: true, isChecked: true isEnter: false, isTab: true, isEdit: true, isChecked: true
}" :mouse-config="{ selected: true }" @pulldownSelected="paintExpense_onPulldownSelected" }" :mouse-config="{ selected: true }" @pulldownSelected="paintExpense_onPulldownSelected"
@popupSelected="paintExpense_onPopupSelected" :export-config="{}" @edit-closed="paintExpense_afterEditEvent" @popupSelected="paintExpense_onPopupSelected" :export-config="{}" @edit-closed="paintExpense_afterEditEvent"
@edit-actived="paintExpense_beforeEditEvent" @edit-actived="paintExpense_beforeEditEvent" :footer-cell-class-name="paintExpense_footerCellClassName"
:footer-cell-class-name="paintExpense_footerCellClassName"
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintExpense_beforeEditMethod }"> :edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintExpense_beforeEditMethod }">
<vxe-column width="60" v-if="!isReadonly"> <vxe-column width="60" v-if="!isReadonly">
<template #default="{ row }"> <template #default="{ row }">
@ -1100,6 +1092,55 @@ export default {
} }
}, },
print() { //
let hiprint = this.$hiPrint; //
let tdata = JSON.parse(JSON.stringify(this.formOptions.data)); //
tdata.project_name = tdata.name;
tdata.main_cabinet_length = tdata.long;
tdata.main_cabinet_width = tdata.width;
tdata.main_cabinet_height = tdata.height;
tdata.fittings = this.printFormatListData(this.fittings_detailsData); //
tdata.parts = this.printFormatListData(this.parts_detailsData); //
tdata.packaging = this.printFormatListData(this.packaging_detailsData); //
tdata.labor = this.printFormatListData(this.labor_detailsData); //
tdata.material = this.printFormatListData(this.material_detailsData); //
tdata.paintLabor = this.printFormatListData(this.paintLabor_detailsData); //
tdata.paintMaterial = this.printFormatListData(this.paintMaterial_detailsData); //
tdata.expense = this.printFormatListData(this.expense_detailsData); //
tdata.paintExpense = this.printFormatListData(this.paintExpense_detailsData); //
hiprint.init(); //
var hiprintTemplate = new hiprint.PrintTemplate({ //
template: settings.printTemplate //
});
hiprintTemplate.print(tdata, { printer: '', title: '报价单' }); //
},
printFormatListData(detailsData) { //
let data = JSON.parse(JSON.stringify(detailsData)); //
data.forEach(item => { //
for (let name in item) { //
let o = item[name]; //
if (Array.isArray(o) && o[1]) { //
item[name] = o[1]; //
}
if (typeof (o) == "number") { //
item[name] = parseFloat(o || 0).toFixed(2) //
}
}
});
return data; //
},
setShowType(value) { setShowType(value) {
this.showType = value this.showType = value
@ -2253,4 +2294,5 @@ p.tip {
h3 { h3 {
font-weight: bold; font-weight: bold;
} }
}</style> }
</style>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long