报价打印
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)); // 复制表单数据
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,10 +46,10 @@
|
||||||
<vxe-column field="paint_material" title="材料(油漆)" width="160" :params="editorMaterial" formatter="formatRef"
|
<vxe-column field="paint_material" title="材料(油漆)" width="160" :params="editorMaterial" formatter="formatRef"
|
||||||
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
|
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
|
||||||
|
|
||||||
<vxe-column field="long_formula" title="长" width="160" :edit-render="{ name: 'EditExpressions' }"
|
<vxe-column field="long_formula" title="长" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||||
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
{{ row.long_formula || '' }}
|
{{ row.long_formula || '' }}
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -60,9 +60,9 @@
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
<vxe-column field="width_formula" title="宽" width="160" :edit-render="{ name: 'EditExpressions' }"
|
<vxe-column field="width_formula" title="宽" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||||
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
{{ row.width_formula || '' }}
|
{{ row.width_formula || '' }}
|
||||||
|
|
@ -74,9 +74,9 @@
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
<vxe-column field="height_formula" title="厚" width="160" :edit-render="{ name: 'EditExpressions' }"
|
<vxe-column field="height_formula" title="厚" width="160" :edit-render="{ name: 'EditExpressions' }"
|
||||||
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
:params="{ moreExpressionsList: getMoreExpressionsList }">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
{{ row.height_formula || '' }}
|
{{ row.height_formula || '' }}
|
||||||
|
|
@ -112,25 +112,23 @@
|
||||||
<vxe-column field="rate_materials" title="主材利用率" width="80"
|
<vxe-column field="rate_materials" title="主材利用率" width="80"
|
||||||
: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">
|
{{ row.board_length_formula || '' }}
|
||||||
{{ row.board_length_formula || '' }}
|
|
||||||
</template>
|
|
||||||
<span v-if="showExp">
|
|
||||||
{{ row.board_length_formula || '' }}
|
|
||||||
</span>
|
|
||||||
<span v-else v-html="formatShowNumber(row.board_length, 3)"></span>
|
|
||||||
</a-tooltip>
|
|
||||||
</template>
|
</template>
|
||||||
|
<span v-if="showExp">
|
||||||
|
{{ row.board_length_formula || '' }}
|
||||||
|
</span>
|
||||||
|
<span v-else v-html="formatShowNumber(row.board_length, 3)"></span>
|
||||||
|
</a-tooltip>
|
||||||
|
</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">
|
||||||
{{ row.paint_area_formula || '' }}
|
{{ row.paint_area_formula || '' }}
|
||||||
|
|
@ -288,19 +286,19 @@
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
|
|
||||||
<vxe-column field="price_formula" title="单价" width="200" :edit-render="{ name: 'EditExpressions' }">
|
<vxe-column field="price_formula" title="单价" width="200" :edit-render="{ name: 'EditExpressions' }">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
{{ row.price_formula || '' }}
|
{{ row.price_formula || '' }}
|
||||||
</template>
|
|
||||||
<span v-if="showExp">
|
|
||||||
{{ row.price_formula || '' }}
|
|
||||||
</span>
|
|
||||||
<span v-else v-html="formatShowNumber(row.price, 2)"></span>
|
|
||||||
</a-tooltip>
|
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
<span v-if="showExp">
|
||||||
|
{{ row.price_formula || '' }}
|
||||||
|
</span>
|
||||||
|
<span v-else v-html="formatShowNumber(row.price, 2)"></span>
|
||||||
|
</a-tooltip>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
<vxe-column field="amount_formula" title="金额" width="200" :edit-render="{ name: 'EditExpressions' }">
|
<vxe-column field="amount_formula" title="金额" width="200" :edit-render="{ name: 'EditExpressions' }">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
|
@ -338,7 +336,7 @@
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
}" :mouse-config="{ selected: true }" @pulldownSelected="material_onPulldownSelected"
|
}" :mouse-config="{ selected: true }" @pulldownSelected="material_onPulldownSelected"
|
||||||
@popupSelected="material_onPopupSelected" :export-config="{}" @edit-closed="material_afterEditEvent"
|
@popupSelected="material_onPopupSelected" :export-config="{}" @edit-closed="material_afterEditEvent"
|
||||||
:footer-cell-class-name="material_footerCellClassName"
|
:footer-cell-class-name="material_footerCellClassName"
|
||||||
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: material_beforeEditMethod }">
|
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: material_beforeEditMethod }">
|
||||||
<vxe-column width="60" v-if="!isReadonly">
|
<vxe-column width="60" v-if="!isReadonly">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
|
@ -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 }">
|
||||||
|
|
@ -728,7 +720,7 @@ export default {
|
||||||
fittings_detailsData: [],
|
fittings_detailsData: [],
|
||||||
parts_detailsData: [],
|
parts_detailsData: [],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
editorFittings: {
|
editorFittings: {
|
||||||
dataUrl: `${BASE_URL.BASE_URL}/BathroomFittings/v1/bathroom/fittings/list`,
|
dataUrl: `${BASE_URL.BASE_URL}/BathroomFittings/v1/bathroom/fittings/list`,
|
||||||
|
|
@ -825,10 +817,10 @@ export default {
|
||||||
moreExpressionsList_material_height: [],//材料的厚度 变量列表
|
moreExpressionsList_material_height: [],//材料的厚度 变量列表
|
||||||
moreExpressionsList_fittings: [],
|
moreExpressionsList_fittings: [],
|
||||||
expense_detailsData: [
|
expense_detailsData: [
|
||||||
|
|
||||||
],
|
],
|
||||||
paintExpense_detailsData: [
|
paintExpense_detailsData: [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
uploadDefaultImg: null,
|
uploadDefaultImg: null,
|
||||||
|
|
@ -919,11 +911,11 @@ 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();
|
||||||
this.detailDataInit();
|
this.detailDataInit();
|
||||||
this.resetMaterial();
|
this.resetMaterial();
|
||||||
this.resetPaintMaterial();
|
this.resetPaintMaterial();
|
||||||
|
|
@ -945,10 +937,10 @@ 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) + "的厚");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -1052,29 +1044,29 @@ export default {
|
||||||
paintLaborList = paintLaborList.filter(a => a.labor && a.labor[0]); // 过滤油漆人工列表
|
paintLaborList = paintLaborList.filter(a => a.labor && a.labor[0]); // 过滤油漆人工列表
|
||||||
let paintMaterialList = JSON.parse(row.paintMaterialList || "[]"); // 获取油漆材料列表
|
let paintMaterialList = JSON.parse(row.paintMaterialList || "[]"); // 获取油漆材料列表
|
||||||
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); // 过滤油漆材料列表
|
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]); // 过滤油漆材料列表
|
||||||
|
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
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 })
|
||||||
|
|
||||||
|
|
||||||
this.calculateAll();
|
|
||||||
|
this.calculateAll();
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
@ -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 {
|
||||||
|
|
@ -2056,7 +2097,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
_calculateAll() {
|
_calculateAll() {
|
||||||
|
|
||||||
|
|
||||||
this.calculateRows({ detailsData: this.fittings_detailsData, names: ["long", "width", "height", "seal", "board_length", "paint_area"], totalPrev: "fittings" });
|
this.calculateRows({ detailsData: this.fittings_detailsData, names: ["long", "width", "height", "seal", "board_length", "paint_area"], totalPrev: "fittings" });
|
||||||
|
|
||||||
|
|
@ -2076,7 +2117,7 @@ export default {
|
||||||
this.calculateRows({ detailsData: this.expense_detailsData, names: ["amount"], totalPrev: "expense" });
|
this.calculateRows({ detailsData: this.expense_detailsData, names: ["amount"], totalPrev: "expense" });
|
||||||
this.calculateRows({ detailsData: this.paintExpense_detailsData, names: ["amount"], totalPrev: "paintExpense" });
|
this.calculateRows({ detailsData: this.paintExpense_detailsData, names: ["amount"], totalPrev: "paintExpense" });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.formOptions.data.expense = parseFloat(this.formOptions.data.expense_total_amount || 0) +
|
this.formOptions.data.expense = parseFloat(this.formOptions.data.expense_total_amount || 0) +
|
||||||
parseFloat(this.formOptions.data.material_total_amount || 0) +
|
parseFloat(this.formOptions.data.material_total_amount || 0) +
|
||||||
|
|
@ -2090,7 +2131,7 @@ export default {
|
||||||
|
|
||||||
this.formOptions.data.show_expense = parseFloat(this.formOptions.data.expense || 0).toFixed(2);
|
this.formOptions.data.show_expense = parseFloat(this.formOptions.data.expense || 0).toFixed(2);
|
||||||
this.formOptions.data.show_paint_expense = parseFloat(this.formOptions.data.paint_expense || 0).toFixed(2);
|
this.formOptions.data.show_paint_expense = parseFloat(this.formOptions.data.paint_expense || 0).toFixed(2);
|
||||||
|
|
||||||
this.formOptions.data = JSON.parse(JSON.stringify(this.formOptions.data))
|
this.formOptions.data = JSON.parse(JSON.stringify(this.formOptions.data))
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2118,13 +2159,13 @@ export default {
|
||||||
|
|
||||||
postdata.expense_list = postdata.expense_list.filter(item => item.item_name ? true : false);
|
postdata.expense_list = postdata.expense_list.filter(item => item.item_name ? true : false);
|
||||||
postdata.paint_expenseList = postdata.paint_expenseList.filter(item => item.item_name ? true : false);
|
postdata.paint_expenseList = postdata.paint_expenseList.filter(item => item.item_name ? true : false);
|
||||||
|
|
||||||
postdata.expense = parseFloat(this.formOptions.data.expense_total_amount || 0) +
|
postdata.expense = parseFloat(this.formOptions.data.expense_total_amount || 0) +
|
||||||
parseFloat(this.formOptions.data.material_total_amount || 0) +
|
parseFloat(this.formOptions.data.material_total_amount || 0) +
|
||||||
parseFloat(this.formOptions.data.labor_total_amount || 0);
|
parseFloat(this.formOptions.data.labor_total_amount || 0);
|
||||||
|
|
||||||
|
|
||||||
postdata.paint_expense = parseFloat(this.formOptions.data.paintExpense_total_amount || 0) +
|
postdata.paint_expense = parseFloat(this.formOptions.data.paintExpense_total_amount || 0) +
|
||||||
parseFloat(this.formOptions.data.paintMaterial_total_amount || 0) +
|
parseFloat(this.formOptions.data.paintMaterial_total_amount || 0) +
|
||||||
parseFloat(this.formOptions.data.paintLabor_total_amount || 0);
|
parseFloat(this.formOptions.data.paintLabor_total_amount || 0);
|
||||||
|
|
||||||
|
|
@ -2142,7 +2183,7 @@ export default {
|
||||||
this.formatDetailsData(postdata.expense_list);
|
this.formatDetailsData(postdata.expense_list);
|
||||||
this.formatDetailsData(postdata.paint_expenseList);
|
this.formatDetailsData(postdata.paint_expenseList);
|
||||||
|
|
||||||
|
|
||||||
this.$emit("update");
|
this.$emit("update");
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
@ -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