报价打印
This commit is contained in:
parent
0c11909b8a
commit
2728d51fce
|
|
@ -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)); // 复制表单数据
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
Loading…
Reference in New Issue