报价打印
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 }">
|
||||||
|
|
@ -919,8 +911,8 @@ export default {
|
||||||
this.material_detailsData = data.materialList || [];
|
this.material_detailsData = data.materialList || [];
|
||||||
this.paintLabor_detailsData = data.paint_laborList || [];
|
this.paintLabor_detailsData = data.paint_laborList || [];
|
||||||
this.paintMaterial_detailsData = data.paint_materialList || [];
|
this.paintMaterial_detailsData = data.paint_materialList || [];
|
||||||
this.expense_detailsData = data.expense_list|| [];
|
this.expense_detailsData = data.expense_list || [];
|
||||||
this.paintExpense_detailsData = data.paint_expenseList|| [];
|
this.paintExpense_detailsData = data.paint_expenseList || [];
|
||||||
|
|
||||||
this.materialHeightInit()
|
this.materialHeightInit()
|
||||||
this.fittingsListInit();
|
this.fittingsListInit();
|
||||||
|
|
@ -945,7 +937,7 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
this.fittings_list.forEach(o => {
|
this.fittings_list.forEach(o => {
|
||||||
if(o.IsShowExpression){
|
if (o.IsShowExpression) {
|
||||||
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的长");
|
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的长");
|
||||||
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的宽");
|
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的宽");
|
||||||
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的厚");
|
this.moreExpressionsList_fittings.push(this.formatName(o.name) + "的厚");
|
||||||
|
|
@ -1056,8 +1048,8 @@ export default {
|
||||||
|
|
||||||
let updateToList = ({ sourceList, targetList }) => {
|
let updateToList = ({ sourceList, targetList }) => {
|
||||||
sourceList.forEach(item => {
|
sourceList.forEach(item => {
|
||||||
targetList.forEach(targetItem=>{
|
targetList.forEach(targetItem => {
|
||||||
if(targetItem.id == item.id){
|
if (targetItem.id == item.id) {
|
||||||
Object.assign(targetItem, item);
|
Object.assign(targetItem, item);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -1067,7 +1059,7 @@ export default {
|
||||||
updateToList({ sourceList: fittingsList, targetList: this.fittings_detailsData })
|
updateToList({ sourceList: fittingsList, targetList: this.fittings_detailsData })
|
||||||
updateToList({ sourceList: partsList, targetList: this.parts_detailsData })
|
updateToList({ sourceList: partsList, targetList: this.parts_detailsData })
|
||||||
updateToList({ sourceList: packagingList, targetList: this.packaging_detailsData })
|
updateToList({ sourceList: packagingList, targetList: this.packaging_detailsData })
|
||||||
updateToList({ sourceList: laborList, targetList: this.labor_detailsData})
|
updateToList({ sourceList: laborList, targetList: this.labor_detailsData })
|
||||||
updateToList({ sourceList: materialList, targetList: this.material_detailsData })
|
updateToList({ sourceList: materialList, targetList: this.material_detailsData })
|
||||||
updateToList({ sourceList: paintLaborList, targetList: this.paintLabor_detailsData })
|
updateToList({ sourceList: paintLaborList, targetList: this.paintLabor_detailsData })
|
||||||
updateToList({ sourceList: paintMaterialList, targetList: this.paintMaterial_detailsData })
|
updateToList({ sourceList: paintMaterialList, targetList: this.paintMaterial_detailsData })
|
||||||
|
|
@ -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
|
||||||
|
|
@ -1382,7 +1423,7 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
// 包装下拉选择事件
|
// 包装下拉选择事件
|
||||||
packaging_onPulldownSelected({ row, name, column,params, selectedData }) {
|
packaging_onPulldownSelected({ row, name, column, params, selectedData }) {
|
||||||
console.log(row, name, params);
|
console.log(row, name, params);
|
||||||
|
|
||||||
if (column.field == "packaging") {
|
if (column.field == "packaging") {
|
||||||
|
|
@ -2034,9 +2075,9 @@ export default {
|
||||||
return this.getExpressionItemValue({ row, name, defaultValue })
|
return this.getExpressionItemValue({ row, name, defaultValue })
|
||||||
});
|
});
|
||||||
|
|
||||||
value = value.replace("/,/g",",");
|
value = value.replace("/,/g", ",");
|
||||||
value = value.replace("/?/g","?");
|
value = value.replace("/?/g", "?");
|
||||||
value = value.replace("/:/g",":");
|
value = value.replace("/:/g", ":");
|
||||||
eval("value = " + value)
|
eval("value = " + value)
|
||||||
return value;
|
return value;
|
||||||
} catch {
|
} catch {
|
||||||
|
|
@ -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